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

workbench,repowidget: fix repo deletion behavior

this hasn't been safe since we added multiple repo tabs

Changeset 5becea145c67

Parent 5d31ccc87182

by Steve Borho

Changes to 2 files · Browse files at 5becea145c67 Showing diff from parent 5d31ccc87182 Diff from another changeset...

 
39
40
41
 
42
43
44
 
361
362
363
364
365
366
367
 
519
520
521
522
523
524
525
526
527
 
 
 
 
 
 
 
 
 
528
529
530
 
39
40
41
42
43
44
45
 
362
363
364
 
365
366
367
 
519
520
521
 
 
 
 
 
 
522
523
524
525
526
527
528
529
530
531
532
533
@@ -39,6 +39,7 @@
    showMessageSignal = pyqtSignal(str)   switchToSignal = pyqtSignal(QWidget) + closeSelfSignal = pyqtSignal(QWidget)     def __init__(self, repo, workbench):   self.repo = repo @@ -361,7 +362,6 @@
    def on_filled(self):   'initial batch of revisions loaded' - self._repodate = self._getrepomtime()   self.repoview.resizeColumns()   if self._reload_rev is not None:   try: @@ -519,12 +519,15 @@
  watchedfiles = [(self.repo.root, ".hg", "store", "00changelog.i"),   (self.repo.root, ".hg", "dirstate")]   watchedfiles = [os.path.join(*wf) for wf in watchedfiles] - mtime = [os.path.getmtime(wf) for wf in watchedfiles \ - if os.path.isfile(wf)] - if mtime: - return max(mtime) - # humm, directory has probably been deleted, exiting... - self.close() + try: + mtime = [os.path.getmtime(wf) for wf in watchedfiles \ + if os.path.isfile(wf)] + if mtime: + return max(mtime) + except EnvironmentError: + return None + self._scanForRepoChanges = False + self.closeSelfSignal.emit(self)     def reload(self, rev=None):   'Initiate a refresh of the repo model, rebuild graph'
 
315
316
317
 
 
 
 
 
 
318
319
320
 
341
342
343
 
344
345
346
 
315
316
317
318
319
320
321
322
323
324
325
326
 
347
348
349
350
351
352
353
@@ -315,6 +315,12 @@
  event.setDropAction(Qt.LinkAction)   event.accept()   + def repoTabCloseSelf(self, widget): + self.repoTabsWidget.setCurrentWidget(widget) + index = self.repoTabsWidget.currentIndex() + if widget.closeRepoWidget(): + self.repoTabsWidget.removeTab(index) +   def repoTabCloseRequested(self, index):   tw = self.repoTabsWidget   w = tw.widget(index) @@ -341,6 +347,7 @@
  rw.showMessageSignal.connect(self.showMessage)   rw.revDetailsWidget.fileview.showDescSignal.connect(self.showMessage)   rw.switchToSignal.connect(self.switchTo) + rw.closeSelfSignal.connect(self.repoTabCloseSelf)   tw = self.repoTabsWidget   index = self.repoTabsWidget.addTab(rw, reponame)   tw.setCurrentIndex(index)