Changeset 1a9ab68f463a…
Parent 8a4715695ed0…
by
Changes to 2 files · Browse files at 1a9ab68f463a Showing diff from parent 8a4715695ed0 Diff from another changeset...
@@ -87,6 +87,16 @@ self._repodate = self._getrepomtime()
self._watchrepotimer = self.startTimer(500)
+ # restore settings
+ s = QtCore.QSettings()
+ wb = "RepoWidget/"
+ self.splitternames = []
+ sn = ('revisions', 'filelist', 'message')
+ for n in sn:
+ n += '_splitter'
+ self.splitternames.append(n)
+ getattr(self, n).restoreState(s.value(wb + n).toByteArray())
+
def showMessage(self, msg):
self.currentMessage = msg
if self.isVisible():
@@ -450,6 +460,27 @@ self.repomodel.setRepo(self.repo, branch=branch, fromhead=startrev,
follow=follow)
+ def okToContinue(self):
+ '''
+ returns False if there is unsaved data
+
+ If there is unsaved data, present a dialog asking the user if it is ok to
+ discard the changes made.
+ '''
+ return True # TODO: check if there is an unsaved commit message
+
+ def closeRepoWidget(self):
+ '''returns False if close should be aborted'''
+ if not self.okToContinue():
+ return False
+ if self.isVisible():
+ # assuming here that there is at most one RepoWidget visible
+ s = QtCore.QSettings()
+ wb = "RepoWidget/"
+ for n in self.splitternames:
+ s.setValue(wb + n, getattr(self, n).saveState())
+ return True
+
def run(ui, *pats, **opts):
repo = None
root = paths.find_root()
|
@@ -83,14 +83,6 @@ wb = "Workbench/"
self.restoreGeometry(s.value(wb + 'geometry').toByteArray())
self.restoreState(s.value(wb + 'windowState').toByteArray())
- '''
- self.splitternames = []
- sn = ('revisions', 'filelist', 'message')
- for n in sn:
- n += '_splitter'
- self.splitternames.append(n)
- getattr(self, n).restoreState(s.value(wb + n).toByteArray())
- '''
self.setAcceptDrops(True)
@@ -424,14 +416,23 @@ def closeEvent(self, event):
if not self.okToContinue():
event.ignore()
+
s = QtCore.QSettings()
wb = "Workbench/"
s.setValue(wb + 'geometry', self.saveGeometry())
s.setValue(wb + 'windowState', self.saveState())
- '''
- for n in self.splitternames:
- s.setValue(wb + n, getattr(self, n).saveState())
- '''
+
+ if not self.closeRepoTabs():
+ event.ignore()
+
+ def closeRepoTabs(self):
+ '''returns False if close should be aborted'''
+ tw = self.repoTabsWidget
+ for idx in range(tw.count()):
+ rw = tw.widget(idx)
+ if not rw.closeRepoWidget():
+ return False
+ return True
def run(ui, *pats, **opts):
repo = None
|
Loading...