by
Changes to 2 files · Browse files at 320540eb79ea Showing diff from parent c0110bb1099f e882f630e4c3 Diff from another changeset...
@@ -31,6 +31,7 @@
fileSelected = pyqtSignal(QString, QString)
clearDisplay = pyqtSignal()
+ linkActivated = pyqtSignal(QString)
filecontextmenu = None
subrepocontextmenu = None
@@ -46,7 +47,7 @@
self.createActions()
- self.doubleClicked.connect(self.vdiff)
+ self.doubleClicked.connect(self.doubleClickHandler)
self._diff_dialogs = {}
self._nav_dialogs = {}
@@ -201,6 +202,22 @@ dlg.raise_()
dlg.activateWindow()
+ def opensubrepo(self):
+ path = os.path.join(self.model().repo.root, self.currentFile())
+ if os.path.isdir(path):
+ self.linkActivated.emit(u'subrepo:'+hglib.tounicode(path))
+ else:
+ QMessageBox.warning(self,
+ _("Cannot open subrepository"),
+ _("The selected subrepository does not exist on the working directory"))
+
+ def doubleClickHandler(self):
+ itemissubrepo = (self.model().dataFromIndex(self.currentIndex())['status'] == 'S')
+ if itemissubrepo:
+ self.opensubrepo()
+ else:
+ self.vdiff()
+
def createActions(self):
self.actionShowAllMerge = QAction(_('Show All'), self)
self.actionShowAllMerge.setToolTip(
@@ -226,6 +243,9 @@ ('revert', _('Revert to Revision'), 'hg-revert', 'Alt+Ctrl+T',
_('Revert file(s) to contents at this revision'),
self.revertfile),
+ ('opensubrepo', _('Open subrepository'), 'thg-repository-open',
+ 'Alt+Ctrl+O', _('Open the selected subrepository'),
+ self.opensubrepo),
]:
act = QAction(desc, self)
if icon:
@@ -238,14 +258,14 @@ act.triggered.connect(cb)
self._actions[name] = act
self.addAction(act)
-
+
def contextMenuEvent(self, event):
itemissubrepo = (self.model().dataFromIndex(self.currentIndex())['status'] == 'S')
# Subrepos and regular items have different context menus
if itemissubrepo:
contextmenu = self.subrepocontextmenu
- actionlist = []
+ actionlist = ['opensubrepo']
else:
contextmenu = self.filecontextmenu
actionlist = ['diff', 'ldiff', 'edit', 'ledit', 'revert',
|
@@ -89,6 +89,7 @@ self.filelistToolbar = QToolBar(_('File List Toolbar'))
self.filelistToolbar.setIconSize(QSize(16,16))
self.filelist = HgFileListView()
+ self.filelist.linkActivated.connect(self.linkActivated)
self.tbarFileListFrame = QFrame(self.filelist_splitter)
sp = SP(SP.Preferred, SP.Preferred)
|
Loading...