Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 1.9, 1.9.1, and 1.9.2

workbench: lazily create commit widget (not yet complete)

This only works so far if the user first selects the working copy
pseudo revision.

TODO: create commit widget if the user selects the commit task tab.

Changeset c4a946ab8602

Parent ef5488a54e60

by Adrian Buehlmann

Changes to 2 files · Browse files at c4a946ab8602 Showing diff from parent ef5488a54e60 Diff from another changeset...

 
34
35
36
37
 
38
39
40
41
42
 
43
44
45
 
256
257
258
259
260
261
262
263
264
265
266
267
268
 
 
 
 
 
 
 
 
 
 
 
 
 
 
269
270
271
 
297
298
299
300
 
 
301
302
303
 
307
308
309
310
 
 
 
311
312
313
314
315
316
317
 
 
318
319
320
 
340
341
342
343
 
 
344
 
34
35
36
 
37
38
39
40
41
 
42
43
44
45
 
256
257
258
 
 
 
 
 
 
 
 
 
 
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
 
301
302
303
 
304
305
306
307
308
 
312
313
314
 
315
316
317
318
319
320
321
322
323
 
324
325
326
327
328
 
348
349
350
 
351
352
353
@@ -34,12 +34,12 @@
  showMessageSignal = pyqtSignal(str)   switchToSignal = pyqtSignal(QWidget)   - def __init__(self, repo, workbench, commitWidget): + def __init__(self, repo, workbench):   self.repo = repo   self.workbench = workbench   self.revDetailsStackedWidget = workbench.revDetailsStackedWidget   self.commitStackedWidget = workbench.commitStackedWidget - self.commitWidget = commitWidget + self.commitWidget = None   self._reload_rev = '.'   self._loading = True   self._scanForRepoChanges = True @@ -256,16 +256,20 @@
  clip.setText(binascii.hexlify(self.repo[rev].node()))     def revision_selected(self, rev): - if self.repomodel.graph: - ctx = self.repomodel.repo.changectx(rev) - if ctx.rev() is None: - self.workbench.workingCopySelected() - else: - self.revDetailsWidget.revision_selected(rev) - self.workbench.revisionSelected() - if self.workbench.getCurentRepoRoot() == self.repo.root: - self.revDetailsStackedWidget.setCurrentWidget(self.revDetailsWidget) - self.commitStackedWidget.setCurrentWidget(self.commitWidget) + if self.workbench.getCurentRepoRoot() != self.repo.root: + return + if self.repomodel.graph is None: + return + ctx = self.repomodel.repo.changectx(rev) + if ctx.rev() is None: + cw = self.workbench.getCommitWidget(self.repo.root) + self.commitWidget = cw + self.commitStackedWidget.setCurrentWidget(cw) + self.workbench.workingCopySelected() + else: + self.revDetailsWidget.revision_selected(rev) + self.workbench.revisionSelected() + self.revDetailsStackedWidget.setCurrentWidget(self.revDetailsWidget)     def goto(self, rev):   rev = str(rev) @@ -297,7 +301,8 @@
  self.repo = hg.repository(self.repo.ui, self.repo.root)   self._repodate = self._getrepomtime()   self.setupModels() - self.commitWidget.stwidget.refreshWctx() + if self.commitWidget: + self.commitWidget.stwidget.refreshWctx()   self.revDetailsWidget.reload(rev)     def setRepomodel(self, branch): @@ -307,14 +312,17 @@
  return self.repomodel.branch()     def okToContinue(self): - return self.commitWidget.canExit() + if self.commitWidget: + return self.commitWidget.canExit() + return True     def switchTo(self):   self.switchToSignal.emit(self)     def switchedTo(self):   self.revDetailsStackedWidget.setCurrentWidget(self.revDetailsWidget) - self.commitStackedWidget.setCurrentWidget(self.commitWidget) + if self.commitWidget: + self.commitStackedWidget.setCurrentWidget(self.commitWidget)     def storeSettings(self):   s = QSettings() @@ -340,5 +348,6 @@
  self.storeSettings()   self.revDetailsStackedWidget.removeWidget(self.revDetailsWidget)   s = QSettings() - self.commitWidget.storeConfigs(s) + if self.commitWidget: + self.commitWidget.storeConfigs(s)   return True
 
320
321
322
323
324
 
325
326
327
 
335
336
337
 
338
339
340
 
320
321
322
 
 
323
324
325
326
 
334
335
336
337
338
339
340
@@ -320,8 +320,7 @@
  def addRepoTab(self, repo):   '''opens the given repo in a new tab'''   reponame = os.path.basename(repo.root) - cw = self.getCommitWidget(repo.root) - rw = RepoWidget(repo, self, cw) + rw = RepoWidget(repo, self)   rw.showMessageSignal.connect(self.showMessage)   rw.switchToSignal.connect(self.switchTo)   tw = self.repoTabsWidget @@ -335,6 +334,7 @@
  else:   pats = {}   opts = {} + print "creating commit widget for %s" % root   cw = CommitWidget(pats, opts, root=root)   self.commitwidgets[root] = cw   self.commitStackedWidget.addWidget(cw)