Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 2.1, 2.1.1, and 2.1.2

stable filedialogs: add "Revert to revision" and "View file at revision" commands to context menu (closes #683)

Changeset 2ee363bb0bc0

Parent 373e8e264aa2

by Angel Ezquerra

Changes to one file · Browse files at 2ee363bb0bc0 Showing diff from parent 373e8e264aa2 Diff from another changeset...

 
17
18
19
 
20
21
22
23
24
25
 
26
27
28
 
205
206
207
 
 
 
 
 
 
 
208
209
210
 
240
241
242
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
243
244
245
 
17
18
19
20
21
22
23
24
25
 
26
27
28
29
 
206
207
208
209
210
211
212
213
214
215
216
217
218
 
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
@@ -17,12 +17,13 @@
 Qt4 dialogs to display hg revisions of a file  """   +import os  import difflib    from tortoisehg.util import hglib  from tortoisehg.hgqt.i18n import _  from tortoisehg.hgqt import qtlib, visdiff, filerevmodel, blockmatcher, lexers -from tortoisehg.hgqt import fileview, repoview, revpanel +from tortoisehg.hgqt import fileview, repoview, revpanel, revert    from PyQt4.QtCore import *  from PyQt4.QtGui import * @@ -205,6 +206,13 @@
  a = menu.addAction(_('Diff file to local...'))   a.setIcon(qtlib.getmenuicon('ldiff'))   a.triggered.connect(self.onVisualDiffFileToLocal) + menu.addSeparator() + a = menu.addAction(_('Revert to revision...')) + a.setIcon(qtlib.getmenuicon('hg-revert')) + a.triggered.connect(self.onRevertFileToRevision) + a = menu.addAction(_('View at revision...')) + a.setIcon(qtlib.getmenuicon('view-at-revision')) + a.triggered.connect(self.onViewFileAtRevision)   self.selection = selection   self.menu.exec_(point)   @@ -240,6 +248,33 @@
  dlg.exec_()   dlg.deleteLater()   + def onRevertFileToRevision(self): + rev = self.selection[0] + if rev is None: + rev = self.repo['.'].rev() + fileSelection = [self.filerevmodel.graph.filename(rev)] + if len(fileSelection) == 0: + return + dlg = revert.RevertDialog(self.repo, fileSelection, rev, self) + if dlg: + dlg.exec_() + dlg.deleteLater() + + + def onViewFileAtRevision(self): + rev = self.selection[0] + filenames = [self.filerevmodel.graph.filename(rev)] + if not filenames: + return + if rev is None: + qtlib.editfiles(self.repo, filenames, parent=self) + else: + base, _ = visdiff.snapshot(self.repo, filenames, self.repo[rev]) + files = [os.path.join(base, filename) + for filename in filenames] + qtlib.editfiles(self.repo, files, parent=self) + +   @pyqtSlot(QString)   def onLinkActivated(self, link):   link = unicode(link)