1425 self.subMenus.append(bookmarksMenu) |
1425 self.subMenus.append(bookmarksMenu) |
1426 |
1426 |
1427 self.__extensionsMenu = QMenu(self.tr("Extensions"), menu) |
1427 self.__extensionsMenu = QMenu(self.tr("Extensions"), menu) |
1428 self.__extensionsMenu.setTearOffEnabled(True) |
1428 self.__extensionsMenu.setTearOffEnabled(True) |
1429 self.__extensionsMenu.aboutToShow.connect(self.__showExtensionMenu) |
1429 self.__extensionsMenu.aboutToShow.connect(self.__showExtensionMenu) |
1430 # TODO: change this to store the menu instead of the menu action to not use action.menu() |
1430 self.__extensionMenus = {} |
1431 self.extensionMenus = {} |
|
1432 for extensionMenuTitle in sorted(self.__extensionMenuTitles): |
1431 for extensionMenuTitle in sorted(self.__extensionMenuTitles): |
1433 extensionName = self.__extensionMenuTitles[extensionMenuTitle] |
1432 extensionName = self.__extensionMenuTitles[extensionMenuTitle] |
1434 self.extensionMenus[extensionName] = self.__extensionsMenu.addMenu( |
1433 extensionMenu = self.__extensions[extensionName].initMenu( |
1435 self.__extensions[extensionName].initMenu( |
1434 self.__extensionsMenu) |
1436 self.__extensionsMenu)) |
1435 self.__extensionMenus[extensionName] = extensionMenu |
|
1436 self.__extensionsMenu.addMenu(extensionMenu) |
1437 self.vcs.activeExtensionsChanged.connect(self.__showExtensionMenu) |
1437 self.vcs.activeExtensionsChanged.connect(self.__showExtensionMenu) |
1438 |
1438 |
1439 graftMenu = QMenu(self.tr("Copy Changesets"), menu) |
1439 graftMenu = QMenu(self.tr("Copy Changesets"), menu) |
1440 graftMenu.setIcon(UI.PixmapCache.getIcon("vcsGraft")) |
1440 graftMenu.setIcon(UI.PixmapCache.getIcon("vcsGraft")) |
1441 graftMenu.setTearOffEnabled(True) |
1441 graftMenu.setTearOffEnabled(True) |
1628 for menu in self.subMenus: |
1628 for menu in self.subMenus: |
1629 if menu.isTearOffMenuVisible(): |
1629 if menu.isTearOffMenuVisible(): |
1630 menu.hideTearOffMenu() |
1630 menu.hideTearOffMenu() |
1631 |
1631 |
1632 # close torn off extension menus |
1632 # close torn off extension menus |
1633 for extensionName in self.extensionMenus: |
1633 for extensionName in self.__extensionMenus: |
1634 self.__extensions[extensionName].shutdown() |
1634 self.__extensions[extensionName].shutdown() |
1635 menu = self.extensionMenus[extensionName].menu() |
1635 menu = self.__extensionMenus[extensionName] |
1636 if menu.isTearOffMenuVisible(): |
1636 if menu.isTearOffMenuVisible(): |
1637 menu.hideTearOffMenu() |
1637 menu.hideTearOffMenu() |
1638 |
1638 |
1639 if self.__extensionsMenu.isTearOffMenuVisible(): |
1639 if self.__extensionsMenu.isTearOffMenuVisible(): |
1640 self.__extensionsMenu.hideTearOffMenu() |
1640 self.__extensionsMenu.hideTearOffMenu() |
1641 |
1641 |
1642 def __showExtensionMenu(self): |
1642 def __showExtensionMenu(self): |
1643 """ |
1643 """ |
1644 Private slot showing the extensions menu. |
1644 Private slot showing the extensions menu. |
1645 """ |
1645 """ |
1646 for extensionName in self.extensionMenus: |
1646 for extensionName in self.__extensionMenus: |
1647 self.extensionMenus[extensionName].setEnabled( |
1647 extensionMenu = self.__extensionMenus[extensionName] |
|
1648 extensionMenu.menuAction().setEnabled( |
1648 self.vcs.isExtensionActive(extensionName)) |
1649 self.vcs.isExtensionActive(extensionName)) |
1649 if ( |
1650 if ( |
1650 not self.extensionMenus[extensionName].isEnabled() and |
1651 not extensionMenu.menuAction().isEnabled() and |
1651 self.extensionMenus[extensionName].menu() |
1652 extensionMenu.isTearOffMenuVisible() |
1652 .isTearOffMenuVisible() |
|
1653 ): |
1653 ): |
1654 self.extensionMenus[extensionName].menu().hideTearOffMenu() |
1654 extensionMenu.hideTearOffMenu() |
1655 if self.vcs.version < (4, 8, 0): |
|
1656 self.extensionMenus["closehead"].setEnabled(False) |
|
1657 |
1655 |
1658 def __hgExtendedDiff(self): |
1656 def __hgExtendedDiff(self): |
1659 """ |
1657 """ |
1660 Private slot used to perform a hg diff with the selection of revisions. |
1658 Private slot used to perform a hg diff with the selection of revisions. |
1661 """ |
1659 """ |