Plugins/VcsPlugins/vcsMercurial/HgStatusDialog.py

changeset 1294
d051b9d1426d
parent 1256
885706dbb69f
child 1311
95685f9ad9f8
--- a/Plugins/VcsPlugins/vcsMercurial/HgStatusDialog.py	Mon Sep 05 19:30:37 2011 +0200
+++ b/Plugins/VcsPlugins/vcsMercurial/HgStatusDialog.py	Mon Sep 05 20:01:12 2011 +0200
@@ -62,6 +62,10 @@
         self.menu = QMenu()
         self.menuactions.append(self.menu.addAction(
             self.trUtf8("Commit changes to repository..."), self.__commit))
+        self.menuactions.append(self.menu.addAction(
+            self.trUtf8("Select all for commit"), self.__commitSelectAll))
+        self.menuactions.append(self.menu.addAction(
+            self.trUtf8("Deselect all from commit"), self.__commitDeselectAll))
         self.menu.addSeparator()
         self.menuactions.append(self.menu.addAction(
             self.trUtf8("Add to repository"), self.__add))
@@ -138,7 +142,10 @@
         itm.setTextAlignment(2, Qt.AlignLeft)
     
         if status in "AMR":
+            itm.setFlags(itm.flags() | Qt.ItemIsUserCheckable)
             itm.setCheckState(self.__toBeCommittedColumn, Qt.Checked)
+        else:
+            itm.setFlags(itm.flags() & ~Qt.ItemIsUserCheckable)
         
         if statusText not in self.__statusFilters:
             self.__statusFilters.append(statusText)
@@ -557,6 +564,18 @@
             self.on_refreshButton_clicked()
             self.vcs.checkVCSStatus()
     
+    def __commitSelectAll(self):
+        """
+        Private slot to select all entries for commit.
+        """
+        self.__commitSelect(True)
+    
+    def __commitDeselectAll(self):
+        """
+        Private slot to deselect all entries from commit.
+        """
+        self.__commitSelect(False)
+    
     def __add(self):
         """
         Private slot to handle the Add context menu entry.
@@ -698,3 +717,17 @@
             if itm.text(self.__statusColumn) in self.missingIndicators:
                 missingItems.append(itm)
         return missingItems
+    
+    def __commitSelect(self, selected):
+        """
+        Private slot to select or deselect all entries.
+        
+        @param selected commit selection state to be set (boolean)
+        """
+        for index in range(self.statusList.topLevelItemCount()):
+            itm = self.statusList.topLevelItem(index)
+            if itm.flags() & Qt.ItemIsUserCheckable:
+                if selected:
+                    itm.setCheckState(self.__toBeCommittedColumn, Qt.Checked)
+                else:
+                    itm.setCheckState(self.__toBeCommittedColumn, Qt.Unchecked)

eric ide

mercurial