--- 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)