Changeset 6f4244e449d4…
Parent 0ff5500708ee…
by
Changes to 2 files · Browse files at 6f4244e449d4 Showing diff from parent 0ff5500708ee Diff from another changeset...
@@ -378,7 +378,7 @@ if self._reload_rev is not None:
try:
self.repoview.goto(self._reload_rev)
- self.revDetailsWidget.on_filled()
+ self.revDetailsWidget.finishReload()
except IndexError:
pass
@@ -488,8 +488,8 @@ self._dirstatemtime = self._getdirstatemtime()
self._oldparents = self.repo.parents()
self.setupModels()
+ self.revDetailsWidget.record()
self.commitDemand.forward('reload')
- self.revDetailsWidget.reload()
def reloadTaskTab(self):
tti = self.taskTabsWidget.currentIndex()
@@ -510,7 +510,7 @@ 'Refresh the repo model view, clear cached data'
self.repo.thginvalidate()
self.repomodel.invalidate()
- self.revDetailsWidget.on_filled()
+ self.revDetailsWidget.reload()
def setBranch(self, branch, allparents=True):
'Triggered by workbench on branch selection'
|
@@ -33,6 +33,7 @@ self.splitternames = []
# these are used to know where to go after a reload
+ self._last_rev = None
self._reload_file = None
self.load_config()
@@ -41,7 +42,6 @@
self.fileview.setFont(self._font)
self.fileview.showMessage.connect(self.showMessage)
- self.fileview.fileDisplayed.connect(self.file_displayed)
self.restoreSettings()
def setupUi(self):
@@ -280,20 +280,16 @@ self.filelistmodel = HgFileListModel(self.repo)
def setupModels(self, repomodel):
+ 'Called directly from repowidget to establish repomodel'
self.repomodel = repomodel
self.create_models()
self.filelist.setModel(self.filelistmodel)
self.fileview.setModel(repomodel)
self.filelist.fileRevSelected.connect(self.fileview.displayFile)
- def on_filled(self):
- self.filelist.selectFile(self._reload_file)
-
- def file_displayed(self, filename):
- self.actionPrevDiff.setEnabled(False)
-
def revision_selected(self, rev):
# TODO: handle rev == patch name
+ self._last_rev = rev
ctx = self.repo[rev]
if len(self.filelistmodel):
self.filelist.selectRow(0)
@@ -309,9 +305,20 @@ self.actionNextDiff.setEnabled(enable and mode != 'diff')
self.actionPrevDiff.setEnabled(enable and mode != 'diff')
- def reload(self, rev=None):
+ def record(self):
+ 'Repo widget is reloading, record current file'
self._reload_file = self.filelist.currentFile()
- self.setupModels(self.repomodel)
+
+ def finishReload(self):
+ 'Finish reload by re-selecting previous file'
+ self.filelist.selectFile(self._reload_file)
+
+ def reload(self):
+ 'Task tab is reloaded, or repowidget is refreshed'
+ if self._last_rev and len(self.repo) > self._last_rev:
+ f = self.filelist.currentFile()
+ self.revision_selected(self._last_rev)
+ self.filelist.selectFile(f)
def storeSettings(self):
s = QSettings()
|
Loading...