--- a/Plugins/VcsPlugins/vcsSubversion/SvnLogBrowserDialog.py Sat Jan 28 14:22:00 2017 +0100 +++ b/Plugins/VcsPlugins/vcsSubversion/SvnLogBrowserDialog.py Sat Jan 28 16:02:52 2017 +0100 @@ -101,6 +101,21 @@ self.__logTreeNormalFont.setBold(False) self.__logTreeBoldFont = self.logTree.font() self.__logTreeBoldFont.setBold(True) + + self.__finishCallbacks = [] + + def __addFinishCallback(self, callback): + """ + Private method to add a method to be called once the process finished. + + The callback methods are invoke in a FIFO style and are consumed. If + a callback method needs to be called again, it must be added again. + + @param callback callback method + @type function + """ + if callback not in self.__finishCallbacks: + self.__finishCallbacks.append(callback) def __initData(self): """ @@ -358,6 +373,9 @@ self.inputGroup.setEnabled(False) self.inputGroup.hide() + + while self.__finishCallbacks: + self.__finishCallbacks.pop(0)() def __processBuffer(self): """ @@ -697,8 +715,8 @@ self.logTree.setCurrentItem(itm) else: # load the next bunch and try again + self.__addFinishCallback(self.on_downButton_clicked) self.on_nextButton_clicked() - self.on_downButton_clicked() def on_passwordCheckBox_toggled(self, isOn): """