Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 2.0, 2.0.1, and 2.0.2

stable cmdui: cleanup use of cmdui.Runner

* useInternal should be false if signals are connected to a repowidget
* there is no point setting a title if useInternal is False
* make useInternal and parent parameters non-optional
* use a single cmdui.Runner instance per repowidget

Changeset e16c6ff4dd06

Parent efde908f44e0

by Steve Borho

Changes to 15 files · Browse files at e16c6ff4dd06 Showing diff from parent efde908f44e0 Diff from another changeset...

 
803
804
805
806
 
807
808
809
 
813
814
815
816
 
817
818
819
 
828
829
830
 
 
 
831
832
833
 
847
848
849
850
851
852
853
854
855
856
857
 
 
 
 
 
858
859
860
 
803
804
805
 
806
807
808
809
 
813
814
815
 
816
817
818
819
 
828
829
830
831
832
833
834
835
836
 
850
851
852
 
 
 
 
 
 
 
 
853
854
855
856
857
858
859
860
@@ -803,7 +803,7 @@
  progress = pyqtSignal(QString, object, QString, QString, object)   makeLogVisible = pyqtSignal(bool)   - def __init__(self, title=_('TortoiseHg'), useInternal=True, parent=None): + def __init__(self, useInternal, parent):   super(Runner, self).__init__(parent)     # XXX: workaround not to eat mouse-click around left-top corner of @@ -813,7 +813,7 @@
  self.resize(0, 0)     self.internallog = useInternal - self.title = title + self.title = _('TortoiseHg')     self.core = Core(useInternal, self)   self.core.commandStarted.connect(self.commandStarted) @@ -828,6 +828,9 @@
    ### Public Methods ###   + def setTitle(self, title): + self.title = title +   def run(self, cmdline, *args, **opts):   self.core.run(cmdline, *args, **opts)   @@ -847,14 +850,11 @@
  if not self.internallog:   return   if not hasattr(self, 'dlg'): - self.dlg = QDialog(self) - self.dlg.setWindowTitle(self.title) - flags = self.dlg.windowFlags() & ~Qt.WindowContextHelpButtonHint - self.dlg.setWindowFlags(flags) - box = QVBoxLayout() - box.setContentsMargins(*(0,)*4) - box.addWidget(self.core.outputLog) - self.dlg.setLayout(box) + self.dlg = dlg = QDialog(self) + dlg.setWindowTitle(self.title) + dlg.setWindowFlags(Qt.Dialog) + dlg.setLayout(QVBoxLayout()) + dlg.layout().addWidget(self.core.outputLog)   self.dlg.setVisible(visible)     ### Signal Handler ###
 
177
178
179
180
 
 
181
182
183
 
177
178
179
 
180
181
182
183
184
@@ -177,7 +177,8 @@
  self.stwidget.fileDisplayed.connect(self.fileDisplayed)   self.msghistory = []   self.repo = repo = self.stwidget.repo - self.runner = cmdui.Runner(_('Commit'), not embedded, self) + self.runner = cmdui.Runner(not embedded, self) + self.runner.setTitle(_('Commit'))   self.runner.output.connect(self.output)   self.runner.progress.connect(self.progress)   self.runner.makeLogVisible.connect(self.makeLogVisible)
 
160
161
162
163
 
164
165
166
 
160
161
162
 
163
164
165
166
@@ -160,7 +160,7 @@
  self.checkStatus()   cmdline = ['update', '--clean', '--repository', self.repo.root,   '--rev', '.'] - self.runner = cmdui.Runner(_('Discard - TortoiseHg'), True, self) + self.runner = cmdui.Runner(False, self)   self.runner.commandFinished.connect(finished)   self.repo.incrementBusyCount()   self.runner.run(cmdline)
 
457
458
459
460
 
461
462
463
 
476
477
478
479
 
480
481
482
 
457
458
459
 
460
461
462
463
 
476
477
478
 
479
480
481
482
@@ -457,7 +457,7 @@
  self.check_status()   cmdline = ['update', '--clean', '--repository', repo.root,   '--rev', '.'] - self.runner = cmdui.Runner(_('Discard - TortoiseHg'), True, self) + self.runner = cmdui.Runner(True, self)   self.runner.commandFinished.connect(finished)   repo.incrementBusyCount()   self.runner.run(cmdline) @@ -476,7 +476,7 @@
  '%(new)s</b>. <a href="rename:%(new)s"><b>'   'Rename</b></a> again?')   self.wd_text.setText(text % dict(old=patch, new=name)) - self.runner = cmdui.Runner(_('Rename - TortoiseHg'), True, self) + self.runner = cmdui.Runner(True, self)   self.runner.commandFinished.connect(finished)   repo.incrementBusyCount()   self.runner.run(['qrename', '--repository', repo.root,
 
164
165
166
167
 
168
169
170
 
164
165
166
 
167
168
169
170
@@ -164,7 +164,7 @@
  qrefhbox.addWidget(self.qnewOrRefreshBtn)     # Command runner and connections... - self.cmd = cmdui.Runner(_('Patch Queue'), parent == None, self) + self.cmd = cmdui.Runner(not parent, self)   self.cmd.output.connect(self.output)   self.cmd.makeLogVisible.connect(self.makeLogVisible)   self.cmd.progress.connect(self.progress)
 
39
40
41
42
 
43
44
45
 
39
40
41
 
42
43
44
45
@@ -39,7 +39,7 @@
  self.cslist = cslist.ChangesetList()   layout.addWidget(self.cslist)   - self.cmd = cmdui.Runner(parent=self) + self.cmd = cmdui.Runner(False, self)   self.cmd.commandFinished.connect(self.commandFinished)   self.cmd.output.connect(self.output)   self.cmd.makeLogVisible.connect(self.makeLogVisible)
 
99
100
101
102
 
103
104
105
 
99
100
101
 
102
103
104
105
@@ -99,7 +99,7 @@
  vbox.addWidget(self.patchlist, 1)     # Command output - self.runner = cmdui.Runner(_('Patch Branch'), True, parent=self) + self.runner = cmdui.Runner(False, self)   self.runner.output.connect(self.output)   self.runner.progress.connect(self.progress)   self.runner.makeLogVisible.connect(self.makeLogVisible)
 
333
334
335
336
 
 
337
338
339
 
333
334
335
 
336
337
338
339
340
@@ -333,7 +333,8 @@
  self.qui.post_review_button.setEnabled(False)   self.qui.close_button.setEnabled(False)   - self.cmd = cmdui.Runner(_('Review Board'), False, self) + self.cmd = cmdui.Runner(False, self) + self.cmd.setTitle(_('Review Board'))   self.cmd.commandFinished.connect(self.onCompletion)   self.cmd.run(['postreview'] + cmdargs(opts) + [revstr])  
 
38
39
40
41
 
42
43
44
 
38
39
40
 
41
42
43
44
@@ -38,7 +38,7 @@
  self.keepchk.setChecked(True)   self.layout().addWidget(self.keepchk)   - self.cmd = cmdui.Runner() + self.cmd = cmdui.Runner(False, self)   self.cmd.output.connect(self.output)   self.cmd.makeLogVisible.connect(self.makeLogVisible)  
 
92
93
94
95
 
96
97
98
 
92
93
94
 
95
96
97
98
@@ -92,7 +92,7 @@
  self.summ.setFocusPolicy(Qt.NoFocus)   self.layout().addWidget(self.summ)   - self.cmd = cmdui.Runner() + self.cmd = cmdui.Runner(False, self)   self.cmd.output.connect(self.output)   self.cmd.makeLogVisible.connect(self.makeLogVisible)  
 
111
112
113
114
 
 
115
116
117
 
111
112
113
 
114
115
116
117
118
@@ -111,7 +111,8 @@
  botsep = qtlib.LabeledSeparator('')   layout.addWidget(botsep)   - cmd = cmdui.Runner(_('QQueue'), not embedded, self) + cmd = cmdui.Runner(not embedded, self) + cmd.setTitle(_('QQueue'))   cmd.output.connect(self.output)   cmd.makeLogVisible.connect(self.makeLogVisible)   cmd.commandFinished.connect(self.qqcmdFinished)
 
39
40
41
42
 
43
44
45
 
39
40
41
 
42
43
44
45
@@ -39,7 +39,7 @@
  self.le = QLineEdit(hglib.tounicode(self.oldpatchname))   self.layout().addWidget(self.le)   - self.cmd = cmdui.Runner() + self.cmd = cmdui.Runner(True, self)   self.cmd.output.connect(self.output)   self.cmd.makeLogVisible.connect(self.makeLogVisible)   self.cmd.commandFinished.connect(self.reject)
 
82
83
84
85
 
86
87
88
 
158
159
160
161
 
162
163
164
 
82
83
84
 
85
86
87
88
 
158
159
160
 
161
162
163
164
@@ -82,7 +82,7 @@
  self.statusbar.setSizeGripEnabled(False)   stwidget.showMessage.connect(self.statusbar.showMessage)   - self.cmd = cmd = cmdui.Runner(parent=self) + self.cmd = cmd = cmdui.Runner(True, self)   cmd.commandStarted.connect(self.commandStarted)   cmd.commandFinished.connect(self.commandFinished)   cmd.progress.connect(self.statusbar.progress) @@ -158,7 +158,7 @@
  QWidget.__init__(self)   self.files = cmdline[1:]   os.chdir(repo.root) - self.cmd = cmdui.Runner(parent=self) + self.cmd = cmdui.Runner(True, self)   self.cmd.commandFinished.connect(self.commandFinished)   self.cmd.run(cmdline)   self.hide()
 
225
226
227
228
 
229
230
231
 
225
226
227
 
228
229
230
231
@@ -225,7 +225,7 @@
  self.checkStatus()   cmdline = ['update', '--clean', '--repository', self.repo.root,   '--rev', '.'] - self.runner = cmdui.Runner(_('Discard - TortoiseHg'), True, self) + self.runner = cmdui.Runner(True, self)   self.runner.commandFinished.connect(finished)   self.repo.incrementBusyCount()   self.runner.run(cmdline)
 
71
72
73
74
75
76
77
 
79
80
81
 
 
 
 
 
 
82
83
84
 
523
524
525
526
 
527
528
529
 
740
741
742
 
 
 
743
744
745
 
1122
1123
1124
1125
 
1126
1127
1128
 
1170
1171
1172
1173
 
1174
1175
1176
 
1239
1240
1241
1242
 
1243
1244
1245
1246
1247
1248
 
1249
1250
1251
1252
1253
1254
1255
 
1256
1257
1258
 
1264
1265
1266
1267
 
1268
1269
1270
 
 
 
 
 
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
 
71
72
73
 
74
75
76
 
78
79
80
81
82
83
84
85
86
87
88
89
 
528
529
530
 
531
532
533
534
 
745
746
747
748
749
750
751
752
753
 
1130
1131
1132
 
1133
1134
1135
1136
 
1178
1179
1180
 
1181
1182
1183
1184
 
1247
1248
1249
 
1250
1251
1252
1253
1254
1255
 
1256
1257
1258
1259
1260
1261
1262
 
1263
1264
1265
1266
 
1272
1273
1274
 
1275
1276
 
 
1277
1278
1279
1280
1281
1282
1283
1284
 
 
 
 
 
 
 
 
1285
1286
@@ -71,7 +71,6 @@
  else:   self._reload_rev = '.'   self.currentMessage = '' - self.runner = None   self.dirty = False     self.setupUi() @@ -79,6 +78,12 @@
  self.loadSettings()   self.setupModels()   + self.runner = cmdui.Runner(False, self) + self.runner.output.connect(self.output) + self.runner.progress.connect(self.progress) + self.runner.makeLogVisible.connect(self.makeLogVisible) + self.runner.commandFinished.connect(self.onCommandFinished) +   def setupUi(self):   SP = QSizePolicy   @@ -523,7 +528,7 @@
  'Continue?' % rev)):   return   cmdline = ['rollback', '--repository', self.repo.root, '--verbose'] - self.runCommand(_('Rollback - TortoiseHg'), cmdline) + self.runCommand(cmdline)     def purge(self):   dlg = purge.PurgeDialog(self.repo, self) @@ -740,6 +745,9 @@
  self.taskTabsWidget.setCurrentIndex(self.grepTabIndex)   self.showMessage(_('Search tab cannot exit'))   return False + if self.runner.core.running(): + self.showMessage(_('Repository command still running')) + return False   return True     def closeRepoWidget(self): @@ -1122,7 +1130,7 @@
  '--output', epath]   for rev in revisions:   cmdline.extend(['--rev', str(rev)]) - self.runCommand(_('Export - TortoiseHg'), cmdline) + self.runCommand(cmdline)     def visualDiffRevision(self):   opts = dict(change=self.rev) @@ -1170,7 +1178,7 @@
    def transplantRevision(self):   cmdline = ['transplant', '--repository', self.repo.root, str(self.rev)] - self.runCommand(_('Transplant - TortoiseHg'), cmdline) + self.runCommand(cmdline)     def backoutToRevision(self):   dlg = backout.BackoutDialog(self.repo, str(self.rev), self) @@ -1239,20 +1247,20 @@
  endrev = ''   cmdline = ['qimport', '--rev', '%s::%s' % (self.rev, endrev),   '--repository', self.repo.root] - self.runCommand(_('QImport - TortoiseHg'), cmdline) + self.runCommand(cmdline)     def qfinishRevision(self):   """Finish applied patches up to and including selected revision"""   cmdline = ['qfinish', 'qbase::%s' % self.rev,   '--repository', self.repo.root] - self.runCommand(_('QFinish - TortoiseHg'), cmdline) + self.runCommand(cmdline)     def qgotoRevision(self):   """Make REV the top applied patch"""   ctx = self.repo.changectx(self.rev)   if 'qparent' in ctx.tags():   cmdline = ['qpop', '--all', '--repository', self.repo.root] - self.runCommand(_('QGoto - TortoiseHg'), cmdline) + self.runCommand(cmdline)   else:   patchname = self.repo.changectx(self.rev).thgmqpatchname()   self.taskTabsWidget.setCurrentIndex(self.mqTabIndex) @@ -1264,20 +1272,15 @@
  patchname = self.repo.changectx(self.rev).thgmqpatchname()   cmdline = ['qpush', '--move', str(patchname),   '--repository', self.repo.root] - self.runCommand(_('QPush --move - TortoiseHg'), cmdline) + self.runCommand(cmdline)   - def runCommand(self, title, cmdline): - if self.runner: + def onCommandFinished(self, ret): + self.repo.decrementBusyCount() + + def runCommand(self, cmdline): + if self.runner.core.running():   InfoMsgBox(_('Unable to start'),   _('Previous command is still running'))   return - def finished(ret): - self.repo.decrementBusyCount() - self.runner = None - self.runner = cmdui.Runner(title, False, self) - self.runner.output.connect(self.output) - self.runner.progress.connect(self.progress) - self.runner.makeLogVisible.connect(self.makeLogVisible) - self.runner.commandFinished.connect(finished)   self.repo.incrementBusyCount()   self.runner.run(cmdline)