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

stable fileview: add a toolbar action to launch the shelve tool

The action is only visible when the file view is displaying the working
directory context. This removes the need for a link in the status widget and
a push button in the MQ tool.

Changeset 68c1c4ab3eeb

Parent dfc4b5259041

by Steve Borho

Changes to 3 files · Browse files at 68c1c4ab3eeb Showing diff from parent dfc4b5259041 Diff from another changeset...

 
42
43
44
 
45
46
47
 
59
60
61
 
62
63
64
 
168
169
170
 
 
 
 
 
171
172
173
 
177
178
179
 
180
181
182
 
199
200
201
 
 
 
 
 
 
 
 
202
203
204
 
248
249
250
 
251
252
253
 
281
282
283
284
285
286
287
 
288
289
290
291
 
292
293
294
 
380
381
382
383
384
385
 
386
387
388
 
389
390
391
 
42
43
44
45
46
47
48
 
60
61
62
63
64
65
66
 
170
171
172
173
174
175
176
177
178
179
180
 
184
185
186
187
188
189
190
 
207
208
209
210
211
212
213
214
215
216
217
218
219
220
 
264
265
266
267
268
269
270
 
298
299
300
 
 
301
 
302
303
304
305
 
306
307
308
309
 
395
396
397
 
398
 
399
400
401
 
402
403
404
405
@@ -42,6 +42,7 @@
  fileDisplayed = pyqtSignal(QString, QString)   showMessage = pyqtSignal(QString)   revisionSelected = pyqtSignal(int) + shelveToolExited = pyqtSignal()     searchRequested = pyqtSignal(unicode)   """Emitted (pattern) when user request to search content""" @@ -59,6 +60,7 @@
  l.setContentsMargins(0,0,0,0)   l.setSpacing(0)   + self.repo = repo   self.topLayout = QVBoxLayout()     self.labelhbox = hbox = QHBoxLayout() @@ -168,6 +170,11 @@
  self.actionFind.setToolTip(_('Toggle display of text search bar'))   self.actionFind.setShortcut(QKeySequence.Find)   + self.actionShelf = QAction('Shelve', self) + self.actionShelf.setIcon(qtlib.geticon('shelve')) + self.actionShelf.setToolTip(_('Open shelve tool')) + self.actionShelf.triggered.connect(self.launchShelve) +   tb = self.diffToolbar   tb.addAction(self.actionDiffMode)   tb.addAction(self.actionFileMode) @@ -177,6 +184,7 @@
  tb.addAction(self.actionPrevDiff)   tb.addSeparator()   tb.addAction(self.actionFind) + tb.addAction(self.actionShelf)     self.actionNextLine = QAction('Next line', self)   self.actionNextLine.setShortcut(Qt.SHIFT + Qt.Key_Down) @@ -199,6 +207,14 @@
  self.timer.setSingleShot(False)   self.timer.timeout.connect(self.timerBuildDiffMarkers)   + def launchShelve(self): + from tortoisehg.hgqt import shelve + # TODO: pass self._filename + dlg = shelve.ShelveDialog(self.repo, self) + dlg.finished.connect(dlg.deleteLater) + dlg.exec_() + self.shelveToolExited.emit() +   def setFont(self, font):   self.sci.setFont(font)   @@ -248,6 +264,7 @@
  self._p_rev = None   self.sci.setTabWidth(ctx._repo.tabwidth)   self.actionAnnMode.setVisible(ctx.rev() != None) + self.actionShelf.setVisible(ctx.rev() == None)     def displayDiff(self, rev):   if rev != self._p_rev: @@ -281,14 +298,12 @@
  self.forceMode('file')   return   - ctx = self._ctx - repo = ctx._repo   if self._p_rev is not None: - ctx2 = repo[self._p_rev] + ctx2 = self.repo[self._p_rev]   else:   ctx2 = None   - fd = FileData(ctx, ctx2, filename, status) + fd = FileData(self._ctx, ctx2, filename, status)     if fd.elabel:   self.extralabel.setText(fd.elabel) @@ -380,12 +395,11 @@
  @pyqtSlot(unicode, object, int)   def editSelected(self, path, rev, line):   """Open editor to show the specified file""" - repo = self._ctx._repo   path = hglib.fromunicode(path) - base = visdiff.snapshot(repo, [path], repo[rev])[0] + base = visdiff.snapshot(self.repo, [path], self.repo[rev])[0]   files = [os.path.join(base, path)]   pattern = hglib.fromunicode(self._lastSearch[0]) - wctxactions.edit(self, repo.ui, repo, files, line, pattern) + wctxactions.edit(self, self.repo.ui, self.repo, files, line, pattern)     @pyqtSlot(unicode, bool, bool, bool)   def find(self, exp, icase=True, wrap=False, forward=True):
 
17
18
19
20
 
21
22
23
 
63
64
65
 
66
67
68
 
143
144
145
146
147
148
149
150
151
152
153
 
158
159
160
161
162
163
164
 
439
440
441
442
443
444
445
446
447
448
449
450
451
 
17
18
19
 
20
21
22
23
 
63
64
65
66
67
68
69
 
144
145
146
 
147
148
149
 
150
151
152
 
157
158
159
 
160
161
162
 
437
438
439
 
 
 
 
 
 
 
440
441
442
@@ -17,7 +17,7 @@
   from tortoisehg.util import hglib, patchctx  from tortoisehg.hgqt.i18n import _ -from tortoisehg.hgqt import qtlib, cmdui, rejects, commit, shelve, qscilib +from tortoisehg.hgqt import qtlib, cmdui, rejects, commit, qscilib  from tortoisehg.hgqt import qqueue, fileview    # TODO: Disable MQ toolbar while cmdui.Runner is busy @@ -63,6 +63,7 @@
    self.fileview.showMessage.connect(self.showMessage)   self.fileview.setContext(repo[None]) + self.fileview.shelveToolExited.connect(self.reload)     # Patch Queue Frame   layout = QVBoxLayout() @@ -143,11 +144,9 @@
  qrefhbox.setContentsMargins(0, 0, 0, 0)   self.qqueueBtn = QPushButton(_('Manage queues'))   self.qqueueBtn.setMinimumWidth(150) - self.shelveBtn = QPushButton(_('Shelve'))   self.qnewOrRefreshBtn = QPushButton(_('QRefresh'))   qrefhbox.addWidget(self.qqueueBtn)   qrefhbox.addStretch(1) - qrefhbox.addWidget(self.shelveBtn)   qrefhbox.addWidget(self.qnewOrRefreshBtn)     # Command runner and connections... @@ -158,7 +157,6 @@
  self.cmd.commandFinished.connect(self.onCommandFinished)     self.qqueueBtn.clicked.connect(self.launchQQueueTool) - self.shelveBtn.clicked.connect(self.launchShelveTool)   self.optionsBtn.clicked.connect(self.launchOptionsDialog)   self.revisionOrCommitBtn.clicked.connect(self.qinitOrCommit)   self.msgSelectCombo.activated.connect(self.onMessageSelected) @@ -439,13 +437,6 @@
  self.reload()     @pyqtSlot() - def launchShelveTool(self): - dlg = shelve.ShelveDialog(self.repo, self) - dlg.finished.connect(dlg.deleteLater) - dlg.exec_() - self.reload() - - @pyqtSlot()   def launchOptionsDialog(self):   dlg = OptionsDialog(self)   dlg.finished.connect(dlg.deleteLater)
 
178
179
180
 
181
182
183
184
185
186
187
188
189
190
191
192
 
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
 
178
179
180
181
182
183
184
 
 
 
 
 
 
185
186
187
 
696
697
698
 
699
700
701
702
703
 
 
 
 
 
 
 
 
 
 
 
704
705
706
@@ -178,15 +178,10 @@
  self.fileview.showMessage.connect(self.showMessage)   self.fileview.linkActivated.connect(self.linkActivated)   self.fileview.fileDisplayed.connect(self.fileDisplayed) + self.fileview.shelveToolExited.connect(self.refreshWctx)   self.fileview.setContext(self.repo[None])   vbox.addWidget(self.fileview, 1)   - lbltext = u'<a href="shelve:">' + _('shelve tool') + u'</a>' - self.shelflabel = QLabel(lbltext) - self.shelflabel.linkActivated.connect(self.linkActivated) - self.fileview.labelhbox.addStretch(1) - self.fileview.labelhbox.addWidget(self.shelflabel) -   self.split = split   self.diffvbox = vbox   @@ -701,23 +696,11 @@
  layout.addWidget(self.statusbar)   self.stwidget.showMessage.connect(self.statusbar.showMessage)   self.stwidget.progress.connect(self.statusbar.progress) - self.stwidget.linkActivated.connect(self.linkActivated)   self.stwidget.titleTextChanged.connect(self.setWindowTitle)   self.setWindowTitle(self.stwidget.getTitle())     QTimer.singleShot(0, self.stwidget.refreshWctx)   - @pyqtSlot(QString) - def linkActivated(self, link): - link = unicode(link) - repo = self.stwidget.repo - if link.startswith('shelve:'): - from tortoisehg.hgqt import shelve - dlg = shelve.ShelveDialog(self.stwidget.repo, self) - dlg.finished.connect(dlg.deleteLater) - dlg.exec_() - self.stwidget.refreshWctx() -   def keyPressEvent(self, event):   if event.matches(QKeySequence.Refresh):   self.stwidget.refreshWctx()