Changeset c5ce70af9811…
Parent 20930c62b180…
by
Changes to 4 files · Browse files at c5ce70af9811 Showing diff from parent 20930c62b180 Diff from another changeset...
@@ -155,7 +155,7 @@ self.repotabs_splitter.setStretchFactor(1, 1)
self.revDetailsWidget = w = RevDetailsWidget(self.repo)
- w.revisionLinkClicked.connect(self.goto)
+ w.linkActivated.connect(self._openLink)
w.fileview.showDescSignal.connect(self.showMessage)
self.logTabIndex = idx = tt.addTab(w, geticon('log'), '')
tt.setTabToolTip(idx, _("Revision details"))
@@ -208,6 +208,19 @@ vis = self.gototb.isVisible()
self.gototb.setVisible(not vis)
+ @pyqtSlot(unicode)
+ def _openLink(self, link):
+ link = unicode(link)
+ handlers = {'cset': self.goto,
+ 'subrepo': self.repoLinkClicked.emit}
+ if ':' in link:
+ scheme, param = link.split(':')
+ hdr = handlers.get(scheme)
+ if hdr:
+ return hdr(param)
+
+ QDesktopServices.openUrl(QUrl(link))
+
def getCommitWidget(self):
return getattr(self.repo, '_commitwidget', None) # TODO: ugly
@@ -236,11 +249,7 @@ cw.output.connect(self.output)
cw.progress.connect(self.progress)
cw.makeLogVisible.connect(self.makeLogVisible)
-
- def openlink(link):
- if unicode(link).startswith('subrepo:'):
- self.repoLinkClicked.emit(link[8:])
- cw.linkActivated.connect(openlink)
+ cw.linkActivated.connect(self._openLink)
cw.showMessage.connect(self.showMessage)
return cw
|
@@ -23,7 +23,7 @@ class RevDetailsWidget(QWidget):
showMessage = pyqtSignal(str)
- revisionLinkClicked = pyqtSignal(str)
+ linkActivated = pyqtSignal(unicode)
def __init__(self, repo):
QWidget.__init__(self)
@@ -131,7 +131,7 @@ self.message_splitter.setOrientation(Qt.Vertical)
self.message_splitter.setOpaqueResize(True)
self.message = RevMessage(self.message_splitter)
- self.message.revisionLinkClicked.connect(self.revisionLinkClicked_)
+ self.message.linkActivated.connect(self.linkActivated)
sp = SP(SP.Expanding, SP.Expanding)
sp.setHorizontalStretch(0)
@@ -150,7 +150,7 @@ self.fileview.setMinimumSize(QSize(0, 0))
self.revpanel = RevPanelWidget(self.repo)
- self.revpanel.revisionLinkClicked.connect(self.revisionLinkClicked)
+ self.revpanel.linkActivated.connect(self.linkActivated)
cset_and_file_details_layout.addWidget(self.revpanel)
cset_and_file_details_layout.addWidget(self.message_splitter)
@@ -164,9 +164,6 @@ revisiondetails_layout.addWidget(self.searchbar)
self.fileview.filled.connect(self._updateHighlightText)
- def revisionLinkClicked_(self, rev):
- self.revisionLinkClicked.emit(rev)
-
def createActions(self):
self.actionDiffMode = QAction('Diff mode', self)
self.actionDiffMode.setCheckable(True)
|
@@ -20,7 +20,7 @@ from tortoisehg.hgqt import qtlib
class RevMessage(QWidget):
- revisionLinkClicked = pyqtSignal(str)
+ linkActivated = pyqtSignal(unicode)
def __init__(self, parent):
QWidget.__init__(self, parent)
@@ -41,15 +41,8 @@
self._htmlize = qtlib.descriptionhtmlizer()
- self._message.anchorClicked.connect(self.anchorClicked)
-
- def anchorClicked(self, qurl):
- link = str(qurl.toString())
- if link.startswith('cset:'):
- rev = link[len('cset:'):]
- self.revisionLinkClicked.emit(rev)
- else:
- QDesktopServices.openUrl(qurl)
+ self._message.anchorClicked.connect(
+ lambda url: self.linkActivated.emit(url.toString()))
def displayRevision(self, ctx):
self.ctx = ctx
|
@@ -136,22 +136,7 @@ style = csinfo.panelstyle(contents=('cset', 'branch', 'user',
'dateage', 'parents', 'children', 'tags', 'transplant',
'p4', 'svn'), selectable=True, expandable=True)
- revpanel = csinfo.create(repo, style=style, custom=custom)
-
- class RevPanelWidget_(revpanel.__class__):
- revisionLinkClicked = pyqtSignal(unicode)
- """Emitted (changesetid) if user clicked link to revision"""
-
- @pyqtSlot(unicode)
- def _maplink(self, link):
- link = unicode(link)
- if link.startswith('cset:'):
- self.revisionLinkClicked.emit(link[5:])
-
- revpanel.__class__ = RevPanelWidget_
- revpanel.linkActivated.connect(revpanel._maplink)
-
- return revpanel
+ return csinfo.create(repo, style=style, custom=custom)
def nomarkup(widget, item, value):
|
Loading...