Plugins/VcsPlugins/vcsSubversion/SvnDiffDialog.py

changeset 4072
46fb585f60f2
parent 4065
8e81259fb739
child 4110
5a106c734527
--- a/Plugins/VcsPlugins/vcsSubversion/SvnDiffDialog.py	Wed Jan 28 19:40:01 2015 +0100
+++ b/Plugins/VcsPlugins/vcsSubversion/SvnDiffDialog.py	Wed Jan 28 19:48:55 2015 +0100
@@ -44,6 +44,11 @@
         super(SvnDiffDialog, self).__init__(parent)
         self.setupUi(self)
         
+        self.refreshButton = self.buttonBox.addButton(
+            self.tr("Refresh"), QDialogButtonBox.ActionRole)
+        self.refreshButton.setToolTip(
+            self.tr("Press to refresh the display"))
+        self.refreshButton.setEnabled(False)
         self.buttonBox.button(QDialogButtonBox.Save).setEnabled(False)
         self.buttonBox.button(QDialogButtonBox.Close).setDefault(True)
         
@@ -94,7 +99,8 @@
         else:
             return str(version)
         
-    def start(self, fn, versions=None, urls=None, summary=False):
+    def start(self, fn, versions=None, urls=None, summary=False,
+              refreshable=False):
         """
         Public slot to start the svn diff command.
         
@@ -104,9 +110,13 @@
         @keyparam urls list of repository URLs (list of 2 strings)
         @keyparam summary flag indicating a summarizing diff
             (only valid for URL diffs) (boolean)
+        @keyparam refreshable flag indicating a refreshable diff (boolean)
         """
+        self.refreshButton.setVisible(refreshable)
+        
         self.errorGroup.hide()
         self.inputGroup.show()
+        self.inputGroup.setEnabled(True)
         self.intercept = False
         self.filename = fn
         
@@ -199,6 +209,7 @@
         """
         self.inputGroup.setEnabled(False)
         self.inputGroup.hide()
+        self.refreshButton.setEnabled(True)
         
         if self.paras == 0:
             self.contents.setCurrentCharFormat(self.cNormalFormat)
@@ -206,6 +217,7 @@
                 self.tr('There is no difference.'))
             
         self.buttonBox.button(QDialogButtonBox.Save).setEnabled(self.paras > 0)
+        self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True)
         self.buttonBox.button(QDialogButtonBox.Close).setDefault(True)
         self.buttonBox.button(QDialogButtonBox.Close).setFocus(
             Qt.OtherFocusReason)
@@ -317,7 +329,9 @@
         """
         if button == self.buttonBox.button(QDialogButtonBox.Save):
             self.on_saveButton_clicked()
-        
+        elif button == self.refreshButton:
+            self.on_refreshButton_clicked()
+    
     @pyqtSlot(int)
     def on_filesCombo_activated(self, index):
         """
@@ -412,6 +426,18 @@
                     '<br>Reason: {1}</p>')
                 .format(fname, str(why)))
         
+    @pyqtSlot()
+    def on_refreshButton_clicked(self):
+        """
+        Private slot to refresh the display.
+        """
+        self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False)
+        
+        self.buttonBox.button(QDialogButtonBox.Save).setEnabled(False)
+        self.refreshButton.setEnabled(False)
+        
+        self.start(self.filename, refreshable=True)
+    
     def on_passwordCheckBox_toggled(self, isOn):
         """
         Private slot to handle the password checkbox toggled.

eric ide

mercurial