Plugins/VcsPlugins/vcsMercurial/HgStatusDialog.py

changeset 3342
f8cd11fa94ed
parent 3326
b4868bd56338
child 3406
b3612f0fbf55
--- a/Plugins/VcsPlugins/vcsMercurial/HgStatusDialog.py	Fri Mar 07 19:13:06 2014 +0100
+++ b/Plugins/VcsPlugins/vcsMercurial/HgStatusDialog.py	Fri Mar 07 19:15:46 2014 +0100
@@ -115,13 +115,17 @@
                 self.__showContextMenu)
         
         if not mq and self.vcs.version >= (2, 0):
+            self.__lfAddActions = []
             self.__addButtonMenu = QMenu()
             self.__addButtonMenu.addAction(self.tr("Add"), self.__add)
-            self.__addButtonMenu.addAction(self.tr("Add as Large File"),
-                                           lambda: self.__lfAdd("large"))
-            self.__addButtonMenu.addAction(self.tr("Add as Normal File"),
-                                           lambda: self.__lfAdd("normal"))
+            self.__lfAddActions.append(
+                self.__addButtonMenu.addAction(self.tr("Add as Large File"),
+                                               lambda: self.__lfAdd("large")))
+            self.__lfAddActions.append(
+                self.__addButtonMenu.addAction(self.tr("Add as Normal File"),
+                                               lambda: self.__lfAdd("normal")))
             self.addButton.setMenu(self.__addButtonMenu)
+            self.__addButtonMenu.aboutToShow.connect(self.__showAddMenu)
         
         self.modifiedIndicators = [
             self.tr('added'),
@@ -603,6 +607,14 @@
             act.setEnabled(enable)
         self.menu.popup(self.mapToGlobal(coord))
     
+    def __showAddMenu(self):
+        """
+        Private slot to prepare the Add button menu before it is shown.
+        """
+        enable = self.vcs.isExtensionActive("largefiles")
+        for act in self.__lfAddActions:
+            act.setEnabled(enable)
+    
     def __commit(self):
         """
         Private slot to handle the Commit context menu entry.

eric ide

mercurial