Plugins/VcsPlugins/vcsPySvn/SvnDiffDialog.py

changeset 4072
46fb585f60f2
parent 4065
8e81259fb739
child 4110
5a106c734527
--- a/Plugins/VcsPlugins/vcsPySvn/SvnDiffDialog.py	Wed Jan 28 19:40:01 2015 +0100
+++ b/Plugins/VcsPlugins/vcsPySvn/SvnDiffDialog.py	Wed Jan 28 19:48:55 2015 +0100
@@ -44,6 +44,11 @@
         self.setupUi(self)
         SvnDialogMixin.__init__(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).setEnabled(False)
         self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True)
@@ -117,7 +122,8 @@
         else:
             return " "
         
-    def start(self, fn, versions=None, urls=None, summary=False, pegRev=None):
+    def start(self, fn, versions=None, urls=None, summary=False, pegRev=None,
+              refreshable=False):
         """
         Public slot to start the svn diff command.
         
@@ -128,7 +134,10 @@
         @keyparam summary flag indicating a summarizing diff
             (only valid for URL diffs) (boolean)
         @keyparam pegRev revision number the filename is valid (integer)
+        @keyparam refreshable flag indicating a refreshable diff (boolean)
         """
+        self.refreshButton.setVisible(refreshable)
+        
         self.buttonBox.button(QDialogButtonBox.Save).setEnabled(False)
         self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False)
         self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(True)
@@ -330,8 +339,10 @@
         """
         QApplication.restoreOverrideCursor()
         
+        self.refreshButton.setEnabled(True)
         self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(False)
         self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True)
+        self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True)
         self.buttonBox.button(QDialogButtonBox.Close).setDefault(True)
         
         tc = self.contents.textCursor()
@@ -362,7 +373,9 @@
             self.__finish()
         elif 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):
         """
@@ -457,6 +470,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 __showError(self, msg):
         """
         Private slot to show an error message.

eric ide

mercurial