42 """ |
42 """ |
43 super(SvnDiffDialog, self).__init__(parent) |
43 super(SvnDiffDialog, self).__init__(parent) |
44 self.setupUi(self) |
44 self.setupUi(self) |
45 SvnDialogMixin.__init__(self) |
45 SvnDialogMixin.__init__(self) |
46 |
46 |
|
47 self.refreshButton = self.buttonBox.addButton( |
|
48 self.tr("Refresh"), QDialogButtonBox.ActionRole) |
|
49 self.refreshButton.setToolTip( |
|
50 self.tr("Press to refresh the display")) |
|
51 self.refreshButton.setEnabled(False) |
47 self.buttonBox.button(QDialogButtonBox.Save).setEnabled(False) |
52 self.buttonBox.button(QDialogButtonBox.Save).setEnabled(False) |
48 self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False) |
53 self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False) |
49 self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True) |
54 self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True) |
50 |
55 |
51 self.searchWidget.attachTextEdit(self.contents) |
56 self.searchWidget.attachTextEdit(self.contents) |
115 elif summaryKind == pysvn.diff_summarize_kind.normal: |
120 elif summaryKind == pysvn.diff_summarize_kind.normal: |
116 return "N" |
121 return "N" |
117 else: |
122 else: |
118 return " " |
123 return " " |
119 |
124 |
120 def start(self, fn, versions=None, urls=None, summary=False, pegRev=None): |
125 def start(self, fn, versions=None, urls=None, summary=False, pegRev=None, |
|
126 refreshable=False): |
121 """ |
127 """ |
122 Public slot to start the svn diff command. |
128 Public slot to start the svn diff command. |
123 |
129 |
124 @param fn filename to be diffed (string) |
130 @param fn filename to be diffed (string) |
125 @param versions list of versions to be diffed (list of up to 2 integer |
131 @param versions list of versions to be diffed (list of up to 2 integer |
126 or None) |
132 or None) |
127 @keyparam urls list of repository URLs (list of 2 strings) |
133 @keyparam urls list of repository URLs (list of 2 strings) |
128 @keyparam summary flag indicating a summarizing diff |
134 @keyparam summary flag indicating a summarizing diff |
129 (only valid for URL diffs) (boolean) |
135 (only valid for URL diffs) (boolean) |
130 @keyparam pegRev revision number the filename is valid (integer) |
136 @keyparam pegRev revision number the filename is valid (integer) |
131 """ |
137 @keyparam refreshable flag indicating a refreshable diff (boolean) |
|
138 """ |
|
139 self.refreshButton.setVisible(refreshable) |
|
140 |
132 self.buttonBox.button(QDialogButtonBox.Save).setEnabled(False) |
141 self.buttonBox.button(QDialogButtonBox.Save).setEnabled(False) |
133 self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False) |
142 self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False) |
134 self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(True) |
143 self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(True) |
135 self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True) |
144 self.buttonBox.button(QDialogButtonBox.Cancel).setDefault(True) |
136 |
145 |
328 """ |
337 """ |
329 Private slot called when the user pressed the button. |
338 Private slot called when the user pressed the button. |
330 """ |
339 """ |
331 QApplication.restoreOverrideCursor() |
340 QApplication.restoreOverrideCursor() |
332 |
341 |
|
342 self.refreshButton.setEnabled(True) |
333 self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(False) |
343 self.buttonBox.button(QDialogButtonBox.Cancel).setEnabled(False) |
|
344 self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True) |
334 self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True) |
345 self.buttonBox.button(QDialogButtonBox.Close).setEnabled(True) |
335 self.buttonBox.button(QDialogButtonBox.Close).setDefault(True) |
346 self.buttonBox.button(QDialogButtonBox.Close).setDefault(True) |
336 |
347 |
337 tc = self.contents.textCursor() |
348 tc = self.contents.textCursor() |
338 tc.movePosition(QTextCursor.Start) |
349 tc.movePosition(QTextCursor.Start) |
360 self.close() |
371 self.close() |
361 elif button == self.buttonBox.button(QDialogButtonBox.Cancel): |
372 elif button == self.buttonBox.button(QDialogButtonBox.Cancel): |
362 self.__finish() |
373 self.__finish() |
363 elif button == self.buttonBox.button(QDialogButtonBox.Save): |
374 elif button == self.buttonBox.button(QDialogButtonBox.Save): |
364 self.on_saveButton_clicked() |
375 self.on_saveButton_clicked() |
365 |
376 elif button == self.refreshButton: |
|
377 self.on_refreshButton_clicked() |
|
378 |
366 @pyqtSlot(int) |
379 @pyqtSlot(int) |
367 def on_filesCombo_activated(self, index): |
380 def on_filesCombo_activated(self, index): |
368 """ |
381 """ |
369 Private slot to handle the selection of a file. |
382 Private slot to handle the selection of a file. |
370 |
383 |
455 self.tr( |
468 self.tr( |
456 '<p>The patch file <b>{0}</b> could not be saved.' |
469 '<p>The patch file <b>{0}</b> could not be saved.' |
457 '<br>Reason: {1}</p>') |
470 '<br>Reason: {1}</p>') |
458 .format(fname, str(why))) |
471 .format(fname, str(why))) |
459 |
472 |
|
473 @pyqtSlot() |
|
474 def on_refreshButton_clicked(self): |
|
475 """ |
|
476 Private slot to refresh the display. |
|
477 """ |
|
478 self.buttonBox.button(QDialogButtonBox.Close).setEnabled(False) |
|
479 |
|
480 self.buttonBox.button(QDialogButtonBox.Save).setEnabled(False) |
|
481 self.refreshButton.setEnabled(False) |
|
482 |
|
483 self.start(self.filename, refreshable=True) |
|
484 |
460 def __showError(self, msg): |
485 def __showError(self, msg): |
461 """ |
486 """ |
462 Private slot to show an error message. |
487 Private slot to show an error message. |
463 |
488 |
464 @param msg error message to show (string) |
489 @param msg error message to show (string) |