Plugins/VcsPlugins/vcsSubversion/SvnStatusDialog.py

changeset 1294
d051b9d1426d
parent 1268
4fc337f391c9
child 1509
c0b5e693b0eb
--- a/Plugins/VcsPlugins/vcsSubversion/SvnStatusDialog.py	Mon Sep 05 19:30:37 2011 +0200
+++ b/Plugins/VcsPlugins/vcsSubversion/SvnStatusDialog.py	Mon Sep 05 20:01:12 2011 +0200
@@ -75,6 +75,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))
@@ -269,7 +273,10 @@
         itm.setTextAlignment(12, Qt.AlignLeft)
         
         if status in "ADM" or propStatus in "M":
+            itm.setFlags(itm.flags() | Qt.ItemIsUserCheckable)
             itm.setCheckState(self.__toBeCommittedColumn, Qt.Checked)
+        else:
+            itm.setFlags(itm.flags() & ~Qt.ItemIsUserCheckable)
         
         self.hidePropertyStatusColumn = self.hidePropertyStatusColumn and \
             propStatus == " "
@@ -689,6 +696,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.
@@ -957,3 +976,17 @@
             if itm.text(self.__changelistColumn) == "":
                 clitems.append(itm)
         return clitems
+    
+    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