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

status. commit: status widget should emit actual progress reports

This allows the status tool to have a real status bar with progress reports,
and for the commit tool to follow the preferred signaling protocol:

output - to log widget
progress - to progress bar in status bar
showMessage - to status bar label

Changeset 7591f62d1a2f

Parent 7da57131b723

by Steve Borho

Changes to 2 files · Browse files at 7591f62d1a2f Showing diff from parent 7da57131b723 Diff from another changeset...

 
42
43
44
45
46
 
47
48
49
 
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
 
42
43
44
 
 
45
46
47
48
 
127
128
129
 
 
 
 
 
 
 
 
 
 
 
 
130
131
132
@@ -42,8 +42,7 @@
  self.opts = opts # user, date   self.stwidget = status.StatusWidget(pats, opts, root, self)   self.stwidget.showMessage.connect(self.showMessage) - self.stwidget.loadBegin.connect(self.loadBegin) - self.stwidget.loadComplete.connect(self.loadComplete) + self.stwidget.progress.connect(self.progress)   self.msghistory = []   self.qref = False   @@ -128,18 +127,6 @@
  self.msgte = msgte   self.msgcombo = msgcombo   - def loadBegin(self): - 'Status widget has started to refresh' - topic, item, pos, total, unit = 'Refresh', '...', 'status', None, None - w = thread.DataWrapper((topic, item, pos, total, unit)) - self.progress.emit(w) - - def loadComplete(self): - 'Status widget refresh has finished' - topic, item, pos, total, unit = 'Refresh', 'status', None, None, None - w = thread.DataWrapper((topic, item, pos, total, unit)) - self.progress.emit(w) -   def details(self):   dlg = DetailsDialog(self.opts, self.userhist, self)   if dlg.exec_() == QDialog.Accepted:
 
10
11
12
13
 
14
15
16
 
42
43
44
45
46
 
47
48
49
50
51
 
52
53
54
 
239
240
241
242
 
243
244
245
 
250
251
252
253
 
254
255
256
 
442
443
444
445
 
446
447
448
 
762
763
764
765
766
767
768
769
770
771
 
 
 
 
772
773
774
 
775
776
777
 
10
11
12
 
13
14
15
16
 
42
43
44
 
 
45
46
47
48
 
 
49
50
51
52
 
237
238
239
 
240
241
242
243
 
248
249
250
 
251
252
253
254
 
440
441
442
 
443
444
445
446
 
760
761
762
 
 
 
763
764
765
766
767
768
769
770
771
 
772
773
774
775
776
@@ -10,7 +10,7 @@
 from mercurial import ui, hg, util, patch, cmdutil, error, mdiff  from mercurial import context, merge, commands, subrepo  from tortoisehg.hgqt import qtlib, htmlui, chunkselect, wctxactions, visdiff -from tortoisehg.hgqt import thgrepo +from tortoisehg.hgqt import thgrepo, cmdui, thread  from tortoisehg.util import paths, hglib  from tortoisehg.util.util import xml_escape  from tortoisehg.hgqt.i18n import _ @@ -42,13 +42,11 @@
 class StatusWidget(QWidget):   '''Working copy status widget   SIGNALS: - loadBegin() - for progress bar - loadComplete() - for progress bar + progress() - for progress bar   showMessage(unicode) - for status bar   titleTextChanged(QString) - for window title   ''' - loadBegin = pyqtSignal() - loadComplete = pyqtSignal() + progress = pyqtSignal(thread.DataWrapper)   titleTextChanged = pyqtSignal(QString)   showMessage = pyqtSignal(unicode)   @@ -239,7 +237,7 @@
  sp = None   self.sp = sp   - self.loadBegin.emit() + self.progress.emit(cmdui.startProgress(_('Refresh'), _('status')))   self.refreshing = StatusThread(self.repo, self.pats, self.opts)   self.refreshing.finished.connect(self.reloadComplete)   self.refreshing.showMessage.connect(self.showMessage) @@ -250,7 +248,7 @@
  self.wctx = wctx   self.patchecked = patchecked.copy()   self.updateModel() - self.loadComplete.emit() + self.progress.emit(cmdui.stopProgress(_('Refresh')))   self.refreshing.wait()   self.refreshing = None   @@ -442,7 +440,7 @@
  '''Background thread for generating a workingctx'''     finished = pyqtSignal(object, object) - showMessage = pyqtSignal(str) + showMessage = pyqtSignal(unicode)     def __init__(self, repo, pats, opts, parent=None):   super(StatusThread, self).__init__() @@ -762,16 +760,17 @@
  self.stwidget = StatusWidget(pats, opts, None, self)   layout.addWidget(self.stwidget, 1)   - self.stbar = QStatusBar(self) - layout.addWidget(self.stbar) -   s = QSettings()   self.stwidget.restoreState(s.value('status/state').toByteArray())   self.restoreGeometry(s.value('status/geom').toByteArray())   + self.statusbar = cmdui.ThgStatusBar(self) + layout.addWidget(self.statusbar) + self.stwidget.showMessage.connect(self.statusbar.showMessage) + self.stwidget.progress.connect(self.statusbar.progress)   self.stwidget.titleTextChanged.connect(self.setWindowTitle) - self.stwidget.showMessage.connect(self.stbar.showMessage)   self.setWindowTitle(self.stwidget.getTitle()) +   QTimer.singleShot(0, self.stwidget.refreshWctx)     def keyPressEvent(self, event):