Changeset 2b3f52e1dd1c…
Parent 1bda3d5a595a…
by
Changes to 3 files · Browse files at 2b3f52e1dd1c Showing diff from parent 1bda3d5a595a Diff from another changeset...
@@ -260,6 +260,10 @@ if rev != self._p_rev:
self.displayFile(rev=rev)
+ def showLine(self, line):
+ if line < self.sci.lines():
+ self.sci.setCursorPosition(line, 0)
+
@pyqtSlot()
def clearDisplay(self):
self._filename = None
|
|
|
@@ -18,11 +18,15 @@ from tortoisehg.util import paths, hglib
from tortoisehg.hgqt.i18n import _
-from tortoisehg.hgqt import qtlib, qscilib, annotate, status, thgrepo
+from tortoisehg.hgqt import qtlib, qscilib, fileview, status, thgrepo
from tortoisehg.hgqt import visdiff, wctxactions, revert
from tortoisehg.hgqt.filedialogs import FileLogDialog, FileDiffDialog
from tortoisehg.hgqt.manifestmodel import ManifestModel
+# TODO
+# Communicate status (MARC) from model to HgFileView
+# Allow manifest mode in HgFileView even when no diffs are available
+
class ManifestDialog(QMainWindow):
"""
Qt4 dialog to display all files of a repo at a given revision
@@ -39,19 +43,12 @@ self._manifest_widget = ManifestWidget(repo, rev)
self._manifest_widget.revChanged.connect(self._updatewindowtitle)
self._manifest_widget.pathChanged.connect(self._updatewindowtitle)
- self._manifest_widget.editSelected.connect(self._openInEditor)
self._manifest_widget.grepRequested.connect(self._openSearchWidget)
self.setCentralWidget(self._manifest_widget)
self.addToolBar(self._manifest_widget.toolbar)
- self._searchbar = qscilib.SearchToolBar()
- connectsearchbar(self._manifest_widget, self._searchbar)
- self.addToolBar(self._searchbar)
- QShortcut(QKeySequence.Find, self,
- lambda: self._searchbar.setFocus(Qt.OtherFocusReason))
-
self.setStatusBar(QStatusBar())
- self._manifest_widget.revisionHint.connect(self.statusBar().showMessage)
+ self._manifest_widget.showMessage.connect(self.statusBar().showMessage)
self._readsettings()
self._updatewindowtitle()
@@ -81,7 +78,7 @@
def setSearchPattern(self, text):
"""Set search pattern [unicode]"""
- self._searchbar.setPattern(text)
+ self._fileview.searchbar.setPattern(text)
@pyqtSlot(unicode, dict)
def _openSearchWidget(self, pattern, opts):
@@ -93,7 +90,7 @@ def _openInEditor(self, path, rev, line):
"""Open editor to show the specified file"""
_openineditor(self._repo, path, rev, line,
- pattern=self._searchbar.pattern(), parent=self)
+ pattern=self._fileview.searchbar.pattern(), parent=self)
class ManifestWidget(QWidget):
"""Display file tree and contents at the specified revision"""
@@ -104,15 +101,12 @@ pathChanged = pyqtSignal(unicode)
"""Emitted (path) when the current file path changed"""
- revisionHint = pyqtSignal(unicode)
+ showMessage = pyqtSignal(unicode)
"""Emitted when to show revision summary as a hint"""
searchRequested = pyqtSignal(unicode)
"""Emitted (pattern) when user request to search content"""
- editSelected = pyqtSignal(unicode, object, int)
- """Emitted (path, rev, line) when user requests to open editor"""
-
grepRequested = pyqtSignal(unicode, dict)
"""Emitted (pattern, opts) when user request to search changelog"""
@@ -150,19 +144,14 @@ navlayoutw = QWidget()
navlayoutw.setLayout(navlayout)
- self._contentview = QStackedWidget()
self._splitter.addWidget(navlayoutw)
- self._splitter.addWidget(self._contentview)
self._splitter.setStretchFactor(0, 1)
+
+ self._fileview = fileview.HgFileView(self._repo, self)
+ self._splitter.addWidget(self._fileview)
self._splitter.setStretchFactor(1, 3)
-
- self._nullcontent = QWidget()
- self._contentview.addWidget(self._nullcontent)
- self._fileview = annotate.AnnotateView(self._repo)
- self._fileview.sourceChanged.connect(self.setSource)
- self._contentview.addWidget(self._fileview)
- for name in ('revisionHint', 'searchRequested', 'editSelected',
- 'grepRequested'):
+ self._fileview.revisionSelected.connect(self.setRev)
+ for name in ('showMessage', 'searchRequested', 'grepRequested'):
getattr(self._fileview, name).connect(getattr(self, name))
def loadSettings(self, qs, prefix):
@@ -180,18 +169,6 @@ statustext='MAC', text=_('Status'))
self._toolbar.addWidget(self._statusfilter)
- self._action_annotate_mode = QAction(_('Annotate'), self, checkable=True)
- self._action_annotate_mode.toggled.connect(
- self._fileview.setAnnotationEnabled)
- self._action_annotate_mode.setEnabled(self.rev is not None)
- self._toolbar.addAction(self._action_annotate_mode)
-
- if hasattr(self, '_searchbar'):
- self._action_find = self._searchbar.toggleViewAction()
- self._action_find.setIcon(qtlib.geticon('edit-find'))
- self._action_find.setShortcut(QKeySequence.Find)
- self._toolbar.addAction(self._action_find)
-
self._actions = {}
for name, desc, icon, key, tip, cb in [
('navigate', _('File history'), 'hg-log', 'Shift+Return',
@@ -376,11 +353,15 @@ self._rev = rev
self._setupmodel()
self.setPath(path)
- if self.path in self._repo[rev]:
- self._fileview.setSource(path, rev, line)
+ ctx = self._repo[rev]
+ if self.path in ctx:
+ self._fileview.setContext(ctx)
+ self._fileview.displayFile(path, rev)
+ if line:
+ self._fileview.showLine(int(line) - 1)
+ else:
+ self._fileview.clearDisplay()
if revchanged:
- # annotate working copy is not supported
- self._action_annotate_mode.setEnabled(rev is not None)
self.revChanged.emit(rev)
@property
@@ -395,38 +376,13 @@
@pyqtSlot()
def _updatecontent(self):
- if hglib.fromunicode(self.path) not in self._repo[self._rev]:
- self._contentview.setCurrentWidget(self._nullcontent)
- return
-
- self._contentview.setCurrentWidget(self._fileview)
- self._fileview.setSource(self.path, self._rev)
+ self._fileview.setContext(self._repo[self._rev])
+ self._fileview.displayFile(self.path, self._rev, 'C') # TODO
@pyqtSlot()
def _emitPathChanged(self):
self.pathChanged.emit(self.path)
-class ManifestTaskWidget(ManifestWidget):
- """Manifest widget designed for task tab"""
-
- def __init__(self, repo, rev, parent):
- super(ManifestTaskWidget, self).__init__(repo, rev, parent)
- self.editSelected.connect(self._openInEditor)
-
- @util.propertycache
- def _searchbar(self):
- searchbar = qscilib.SearchToolBar(hidable=True)
- searchbar.hide()
- self.layout().addWidget(searchbar)
- connectsearchbar(self, searchbar)
- return searchbar
-
- @pyqtSlot(unicode, object, int)
- def _openInEditor(self, path, rev, line):
- """Open editor to show the specified file"""
- _openineditor(self._repo, path, rev, line,
- pattern=self._searchbar.pattern(), parent=self)
-
def connectsearchbar(manifestwidget, searchbar):
"""Connect searchbar to manifest widget"""
searchbar.conditionChanged.connect(manifestwidget.highlightText)
|
@@ -27,7 +27,7 @@ from tortoisehg.hgqt.repoview import HgRepoView
from tortoisehg.hgqt.revdetails import RevDetailsWidget
from tortoisehg.hgqt.commit import CommitWidget
-from tortoisehg.hgqt.manifestdialog import ManifestTaskWidget
+from tortoisehg.hgqt.manifestdialog import ManifestWidget
from tortoisehg.hgqt.sync import SyncWidget
from tortoisehg.hgqt.grep import SearchWidget
from tortoisehg.hgqt.pbranch import PatchBranchWidget
@@ -261,10 +261,10 @@ rev = None
else:
rev = self.rev
- w = ManifestTaskWidget(self.repo, rev, self)
+ w = ManifestWidget(self.repo, rev, self)
w.loadSettings(QSettings(), 'workbench')
w.revChanged.connect(self.repoview.goto)
- w.revisionHint.connect(self.showMessage)
+ w.showMessage.connect(self.showMessage)
w.grepRequested.connect(self.grep)
return w
|
Loading...