Plugins/VcsPlugins/vcsMercurial/ProjectHelper.py

changeset 1076
6fb76985422b
parent 1075
75bfe8bd4243
child 1078
aeee8401e2ce
diff -r 75bfe8bd4243 -r 6fb76985422b Plugins/VcsPlugins/vcsMercurial/ProjectHelper.py
--- a/Plugins/VcsPlugins/vcsMercurial/ProjectHelper.py	Sun May 29 15:25:28 2011 +0200
+++ b/Plugins/VcsPlugins/vcsMercurial/ProjectHelper.py	Sun May 29 18:04:36 2011 +0200
@@ -842,7 +842,8 @@
         """
         menu.clear()
         
-        # TODO: close torn off menus in the shutdown method (extend base class with this method)
+        self.subMenus = []
+        
         adminMenu = QMenu(self.trUtf8("Repository Administration"), menu)
         adminMenu.setTearOffEnabled(True)
         adminMenu.addAction(self.hgHeadsAct)
@@ -864,12 +865,14 @@
         adminMenu.addAction(self.hgRollbackAct)
         adminMenu.addSeparator()
         adminMenu.addAction(self.hgVerifyAct)
+        self.subMenus.append(adminMenu)
         
         specialsMenu = QMenu(self.trUtf8("Specials"), menu)
         specialsMenu.setTearOffEnabled(True)
         specialsMenu.addAction(self.hgPushForcedAct)
         specialsMenu.addSeparator()
         specialsMenu.addAction(self.hgServeAct)
+        self.subMenus.append(specialsMenu)
         
         bundleMenu = QMenu(self.trUtf8("Changegroup Management"), menu)
         bundleMenu.setTearOffEnabled(True)
@@ -877,6 +880,7 @@
         bundleMenu.addAction(self.hgIdentifyBundleAct)
         bundleMenu.addAction(self.hgPreviewBundleAct)
         bundleMenu.addAction(self.hgUnbundleAct)
+        self.subMenus.append(bundleMenu)
         
         bisectMenu = QMenu(self.trUtf8("Bisect"), menu)
         bisectMenu.setTearOffEnabled(True)
@@ -884,6 +888,7 @@
         bisectMenu.addAction(self.hgBisectBadAct)
         bisectMenu.addAction(self.hgBisectSkipAct)
         bisectMenu.addAction(self.hgBisectResetAct)
+        self.subMenus.append(bisectMenu)
         
         extensionsMenu = QMenu(self.trUtf8("Extensions"), menu)
         extensionsMenu.aboutToShow.connect(self.__showExtensionMenu)
@@ -957,6 +962,21 @@
         menu.addAction(self.hgEditUserConfigAct)
         menu.addAction(self.hgConfigAct)
     
+    def shutdown(self):
+        """
+        Public method to perform shutdown actions.
+        """
+        # close torn off sub menus
+        for menu in self.subMenus:
+            if menu.isTearOffMenuVisible():
+                menu.hideTearOffMenu()
+        
+        # close torn off extension menus
+        for extensionName in self.extensionMenus:
+            menu = self.extensionMenus[extensionName].menu()
+            if menu.isTearOffMenuVisible():
+                menu.hideTearOffMenu()
+    
     def __showExtensionMenu(self):
         """
         Private slot showing the extensions menu.

eric ide

mercurial