diff -r 5d46da4c2ce5 -r 46fb585f60f2 Plugins/VcsPlugins/vcsMercurial/HgDiffDialog.py --- a/Plugins/VcsPlugins/vcsMercurial/HgDiffDialog.py Wed Jan 28 19:40:01 2015 +0100 +++ b/Plugins/VcsPlugins/vcsMercurial/HgDiffDialog.py Wed Jan 28 19:48:55 2015 +0100 @@ -43,6 +43,11 @@ super(HgDiffDialog, 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) @@ -98,18 +103,23 @@ else: return str(version) - def start(self, fn, versions=None, bundle=None, qdiff=False): + def start(self, fn, versions=None, bundle=None, qdiff=False, + refreshable=False): """ Public slot to start the hg diff command. @param fn filename to be diffed (string) - @param versions list of versions to be diffed (list of up to 2 strings - or None) - @param bundle name of a bundle file (string) - @param qdiff flag indicating qdiff command shall be used (boolean) + @keyparam versions list of versions to be diffed (list of up to + 2 strings or None) + @keyparam bundle name of a bundle file (string) + @keyparam qdiff flag indicating qdiff command shall be used (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 @@ -222,6 +232,7 @@ QApplication.restoreOverrideCursor() self.inputGroup.setEnabled(False) self.inputGroup.hide() + self.refreshButton.setEnabled(True) if self.paras == 0: self.contents.setCurrentCharFormat(self.cNormalFormat) @@ -229,6 +240,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) @@ -351,6 +363,8 @@ """ 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): @@ -446,6 +460,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.