Changeset 224d0acd9ec6…
Parent 3092f7b071d8…
by
Changes to 2 files · Browse files at 224d0acd9ec6 Showing diff from parent 3092f7b071d8 Diff from another changeset...
|
|
@@ -20,18 +20,14 @@
from tortoisehg.hgqt import icon as geticon
from tortoisehg.hgqt.repomodel import HgRepoListModel
-from tortoisehg.hgqt.filelistmodel import HgFileListModel
from tortoisehg.hgqt.update import UpdateDialog
from tortoisehg.hgqt import cmdui
from tortoisehg.hgqt.config import HgConfig
from tortoisehg.hgqt.manifestdialog import ManifestDialog
-from revdisplay import RevMessage
-from filelistview import HgFileListView
-from fileview import HgFileView
from repoview import HgRepoView
-from revpanelwidget import RevPanelWidget
from commit import CommitWidget
+from revdetailswidget import RevDetailsWidget
Qt = QtCore.Qt
@@ -50,7 +46,6 @@
# these are used to know where to go after a reload
self._reload_rev = '.'
- self._reload_file = None
self._loading = True
self._scanForRepoChanges = True
@@ -68,17 +63,10 @@
self.createActions()
- self.fileview.setFont(self._font)
- connect(self.fileview, SIGNAL('showMessage'), self.showMessage)
connect(self.repoview, SIGNAL('showMessage'), self.showMessage)
# self.revdisplay.commitsignal.connect(self.commit)
- connect(self.message, SIGNAL('revisionSelected'), self.repoview.goto)
-
- # setup tables and views
- connect(self.fileview, SIGNAL('fileDisplayed'),
- self.file_displayed)
self.setupModels()
self.setupRevisionTable()
@@ -108,8 +96,8 @@
self.stackedWidget = QtGui.QStackedWidget(self.revisions_splitter)
- self.setupRevisionDetailsWidget()
- self.stackedWidget.addWidget(self.revisionDetailsWidget)
+ self.revDetailsWidget = RevDetailsWidget(self.repo, self.repoview)
+ self.stackedWidget.addWidget(self.revDetailsWidget)
pats = {}
opts = {}
@@ -118,91 +106,6 @@
self.hbox.addWidget(self.revisions_splitter)
- def setupRevisionDetailsWidget(self):
- SP = QtGui.QSizePolicy
-
- self.revisionDetailsWidget = QtGui.QFrame()
- sp = SP(SP.Preferred, SP.Expanding)
- sp.setHorizontalStretch(0)
- sp.setVerticalStretch(0)
- sp.setHeightForWidth(self.revisionDetailsWidget.sizePolicy().hasHeightForWidth())
- self.revisionDetailsWidget.setSizePolicy(sp)
- self.revisionDetailsWidget.setFrameShape(QtGui.QFrame.NoFrame)
- self.revisionDetailsWidget.setFrameShadow(QtGui.QFrame.Plain)
-
- revisiondetails_layout = QtGui.QVBoxLayout(self.revisionDetailsWidget)
- revisiondetails_layout.setSpacing(0)
- revisiondetails_layout.setMargin(0)
-
- self.filelist_splitter = QtGui.QSplitter(self.revisionDetailsWidget)
- self.splitternames.append('filelist_splitter')
-
- sp = SP(SP.Expanding, SP.Expanding)
- sp.setHorizontalStretch(0)
- sp.setVerticalStretch(0)
- sp.setHeightForWidth(self.filelist_splitter.sizePolicy().hasHeightForWidth())
- self.filelist_splitter.setSizePolicy(sp)
- self.filelist_splitter.setOrientation(QtCore.Qt.Horizontal)
- self.filelist_splitter.setChildrenCollapsible(False)
-
- self.tableView_filelist = HgFileListView(self.filelist_splitter)
-
- self.cset_and_file_details_frame = QtGui.QFrame(self.filelist_splitter)
- sp = SP(SP.Preferred, SP.Preferred)
- sp.setHorizontalStretch(1)
- sp.setVerticalStretch(0)
- sp.setHeightForWidth(
- self.cset_and_file_details_frame.sizePolicy().hasHeightForWidth())
- self.cset_and_file_details_frame.setSizePolicy(sp)
- self.cset_and_file_details_frame.setFrameShape(QtGui.QFrame.NoFrame)
-
- vbox = QtGui.QVBoxLayout(self.cset_and_file_details_frame)
- vbox.setSpacing(0)
- vbox.setSizeConstraint(QtGui.QLayout.SetDefaultConstraint)
- vbox.setMargin(0)
- cset_and_file_details_layout = vbox
-
- self.message_splitter = QtGui.QSplitter(self.cset_and_file_details_frame)
- self.splitternames.append('message_splitter')
- sp = SP(SP.Preferred, SP.Expanding)
- sp.setHorizontalStretch(0)
- sp.setVerticalStretch(0)
- sp.setHeightForWidth(self.message_splitter.sizePolicy().hasHeightForWidth())
- self.message_splitter.setSizePolicy(sp)
- self.message_splitter.setMinimumSize(QtCore.QSize(50, 50))
- self.message_splitter.setFrameShape(QtGui.QFrame.NoFrame)
- self.message_splitter.setLineWidth(0)
- self.message_splitter.setMidLineWidth(0)
- self.message_splitter.setOrientation(Qt.Vertical)
- self.message_splitter.setOpaqueResize(True)
- self.message = RevMessage(self.message_splitter)
-
- sp = SP(SP.Expanding, SP.Expanding)
- sp.setHorizontalStretch(0)
- sp.setVerticalStretch(0)
- sp.setHeightForWidth(self.message.sizePolicy().hasHeightForWidth())
- self.message.setSizePolicy(sp)
- self.message.setMinimumSize(QtCore.QSize(0, 0))
- font = QtGui.QFont()
- font.setFamily("Courier")
- font.setPointSize(9)
- self.message.setFont(font)
-
- self.fileview = HgFileView(self.message_splitter)
- sp = SP(SP.Expanding, SP.Expanding)
- sp.setHorizontalStretch(0)
- sp.setVerticalStretch(1)
- sp.setHeightForWidth(self.fileview.sizePolicy().hasHeightForWidth())
- self.fileview.setSizePolicy(sp)
- self.fileview.setMinimumSize(QtCore.QSize(0, 0))
-
- self.revpanel = RevPanelWidget(self.repo, self.repoview)
-
- cset_and_file_details_layout.addWidget(self.revpanel)
- cset_and_file_details_layout.addWidget(self.message_splitter)
-
- revisiondetails_layout.addWidget(self.filelist_splitter)
-
def load_config(self):
cfg = HgConfig(self.repo.ui)
fontstr = cfg.getFont()
@@ -235,17 +138,7 @@ self.showMessageSignal.emit(self.currentMessage)
def commit(self, action='commit'):
- args = [str(action)]
- args += ['-v', '-m', self.message.text()]
- dlg = cmdui.Dialog(args)
- if action == 'commit':
- dlg.setWindowTitle(_('Commit'))
- elif action == 'qrefresh':
- dlg.setWindowTitle(_('QRefresh'))
- if dlg.exec_():
- self.message.setSaved()
- self.message.clear()
- self.reload('tip')
+ pass
def timerEvent(self, event):
if event.timerId() == self._watchrepotimer:
@@ -265,45 +158,11 @@ self._loading = False
def createActions(self):
- # navigate in file viewer
- self.actionNextLine = QtGui.QAction('Next line', self)
- self.actionNextLine.setShortcut(Qt.SHIFT + Qt.Key_Down)
- connect(self.actionNextLine, SIGNAL('triggered()'),
- self.fileview.nextLine)
- self.addAction(self.actionNextLine)
- self.actionPrevLine = QtGui.QAction('Prev line', self)
- self.actionPrevLine.setShortcut(Qt.SHIFT + Qt.Key_Up)
- connect(self.actionPrevLine, SIGNAL('triggered()'),
- self.fileview.prevLine)
- self.addAction(self.actionPrevLine)
- self.actionNextCol = QtGui.QAction('Next column', self)
- self.actionNextCol.setShortcut(Qt.SHIFT + Qt.Key_Right)
- connect(self.actionNextCol, SIGNAL('triggered()'),
- self.fileview.nextCol)
- self.addAction(self.actionNextCol)
- self.actionPrevCol = QtGui.QAction('Prev column', self)
- self.actionPrevCol.setShortcut(Qt.SHIFT + Qt.Key_Left)
- connect(self.actionPrevCol, SIGNAL('triggered()'),
- self.fileview.prevCol)
- self.addAction(self.actionPrevCol)
-
- # Activate file (file diff navigator)
- self.actionActivateFile = QtGui.QAction('Activate file', self)
-
- self.actionActivateFileAlt = QtGui.QAction('Activate alt. file', self)
- self.actionActivateFileAlt.setShortcuts([Qt.ALT+Qt.Key_Return, Qt.ALT+Qt.Key_Enter])
- connect(self.actionActivateFileAlt, SIGNAL('triggered()'),
- lambda self=self:
- self.tableView_filelist.fileActivated(self.tableView_filelist.currentIndex(),
- alternate=True))
self.actionActivateRev = QtGui.QAction('Activate rev.', self)
self.actionActivateRev.setShortcuts([Qt.SHIFT+Qt.Key_Return, Qt.SHIFT+Qt.Key_Enter])
connect(self.actionActivateRev, SIGNAL('triggered()'),
self.revision_activated)
- self.addAction(self.actionActivateFile)
- self.addAction(self.actionActivateFileAlt)
self.addAction(self.actionActivateRev)
- self.disab_shortcuts.append(self.actionActivateFile)
self.disab_shortcuts.append(self.actionActivateRev)
def back(self):
@@ -313,50 +172,34 @@ self.repoview.forward()
def setMode(self, mode):
- self.fileview.setMode(mode)
+ self.revDetailsWidget.setMode(mode)
def getMode(self):
- return self.fileview.getMode()
+ return self.revDetailsWidget.getMode()
def setAnnotate(self, ann):
- self.fileview.setAnnotate(ann)
+ self.revDetailsWidget.setAnnotate(ann)
def getAnnotate(self):
- return self.fileview.getAnnotate()
+ return self.revDetailsWidget.getAnnotate()
def nextDiff(self):
- notlast = self.fileview.nextDiff()
- self.actionNextDiff.setEnabled(self.fileview.fileMode() and notlast and self.fileview.nDiffs())
- self.actionPrevDiff.setEnabled(self.fileview.fileMode() and self.fileview.nDiffs())
+ self.revDetailsWidget.nextDiff()
def prevDiff(self):
- notfirst = self.fileview.prevDiff()
- self.actionPrevDiff.setEnabled(self.fileview.fileMode() and notfirst and self.fileview.nDiffs())
- self.actionNextDiff.setEnabled(self.fileview.fileMode() and self.fileview.nDiffs())
+ self.revDetailsWidget.prevDiff()
def create_models(self):
self.repomodel = HgRepoListModel(self.repo)
- connect(self.repomodel, SIGNAL('filled'),
- self.on_filled)
- connect(self.repomodel, SIGNAL('loaded'),
- self.loaded)
+ connect(self.repomodel, SIGNAL('filled'), self.on_filled)
+ connect(self.repomodel, SIGNAL('loaded'), self.loaded)
connect(self.repomodel, SIGNAL('showMessage'),
self.showMessage, Qt.QueuedConnection)
- self.filelistmodel = HgFileListModel(self.repo)
-
def setupModels(self):
self.create_models()
self.repoview.setModel(self.repomodel)
- self.tableView_filelist.setModel(self.filelistmodel)
- self.fileview.setModel(self.repomodel)
- #self.find_toolbar.setModel(self.repomodel)
-
- filetable = self.tableView_filelist
- connect(filetable, SIGNAL('fileSelected'),
- self.fileview.displayFile)
-# connect(self.fileview, SIGNAL('revForDiffChanged'),
-# self.revdisplay.setDiffRevision)
+ self.revDetailsWidget.setupModels(self.repomodel)
def setupRevisionTable(self):
view = self.repoview
@@ -369,21 +212,12 @@ gotoaction.setIcon(geticon('goto'))
#self.toolBar_edit.addAction(gotoaction)
- def _setup_table(self, table):
- table.setTabKeyNavigation(False)
- table.verticalHeader().setDefaultSectionSize(self.rowheight)
- table.setShowGrid(False)
- table.verticalHeader().hide()
- table.setSelectionMode(QtGui.QAbstractItemView.SingleSelection)
- table.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows)
- table.setAlternatingRowColors(True)
-
def on_filled(self):
tv = self.repoview
if self._reload_rev is not None:
try:
tv.goto(self._reload_rev)
- self.tableView_filelist.selectFile(self._reload_file)
+ self.revDetailsWidget.on_filled()
return
except IndexError:
pass
@@ -416,26 +250,17 @@ dlg.quitsignal.connect(quit)
dlg.show()
- def file_displayed(self, filename):
- #self.actionPrevDiff.setEnabled(False)
- pass
-
def revision_selected(self, rev):
"""
Callback called when a revision is selected in the revisions table
"""
if self.repomodel.graph:
ctx = self.repomodel.repo.changectx(rev)
- if len(self.filelistmodel):
- self.tableView_filelist.selectRow(0)
if ctx.rev() is None:
# working copy
curridx = 1
else:
- self.fileview.setContext(ctx)
- self.revpanel.update(ctx.rev())
- self.message.displayRevision(ctx, None)
- self.filelistmodel.setSelectedRev(ctx)
+ self.revDetailsWidget.revision_selected(rev)
curridx = 0
self.stackedWidget.setCurrentIndex(curridx)
@@ -466,11 +291,11 @@ else:
self._reload_rev = rev
self._loading = True
- self._reload_file = self.tableView_filelist.currentFile()
self.repo = hg.repository(self.repo.ui, self.repo.root)
self._repodate = self._getrepomtime()
self.setupModels()
self.commitWidget.stwidget.refreshWctx()
+ self.revDetailsWidget.reload(rev)
def setRepomodel(self, branch):
self.repomodel.setRepo(self.repo, branch=branch)
@@ -479,22 +304,7 @@ return self.repomodel.branch()
def okToContinue(self):
- if self.message.isSaved():
- res = True
- else:
- self.switchTo()
- MB = QtGui.QMessageBox
- prompt = _("The message text for '%s' has not been saved.")
- mb = MB(MB.Warning, _("Unsaved Change Message"),
- prompt % self.reponame(), MB.Discard | MB.Cancel, self)
- mb.setInformativeText(_("Discard changes and close anyway?"))
- mb.setDefaultButton(MB.Cancel)
- ret = mb.exec_()
- if ret == MB.Cancel:
- res = False
- else:
- res = True
- return res
+ return True
def switchTo(self):
self.switchToSignal.emit(self)
@@ -504,7 +314,7 @@ wb = "RepoWidget/"
for n in self.splitternames:
s.setValue(wb + n, getattr(self, n).saveState())
- s.setValue(wb + 'revpanel.expanded', self.revpanel.is_expanded())
+ self.revDetailsWidget.storeSettings()
def restoreSettings(self):
s = QtCore.QSettings()
@@ -512,7 +322,7 @@ for n in self.splitternames:
getattr(self, n).restoreState(s.value(wb + n).toByteArray())
expanded = s.value(wb + 'revpanel.expanded', True).toBool()
- self.revpanel.set_expanded(expanded)
+ self.revDetailsWidget.restoreSettings()
def closeRepoWidget(self):
'''returns False if close should be aborted'''
|
|
|
@@ -0,0 +1,285 @@ + # -*- coding: iso-8859-1 -*-
+#!/usr/bin/env python
+# repowidget.py - TortoiseHg repository widget
+#
+# Copyright (C) 2007-2010 Logilab. All rights reserved.
+# Copyright (C) 2010 Adrian Buehlmann <adrian@cadifra.com>
+#
+# This software may be used and distributed according to the terms
+# of the GNU General Public License, incorporated herein by reference.
+
+from PyQt4 import QtCore, QtGui
+
+from mercurial import hg
+
+from tortoisehg.hgqt.i18n import _
+
+from tortoisehg.hgqt.config import HgConfig
+from tortoisehg.hgqt.filelistmodel import HgFileListModel
+
+from filelistview import HgFileListView
+from fileview import HgFileView
+from revpanelwidget import RevPanelWidget
+from revdisplay import RevMessage
+
+Qt = QtCore.Qt
+connect = QtCore.QObject.connect
+SIGNAL = QtCore.SIGNAL
+
+
+class RevDetailsWidget(QtGui.QWidget):
+
+ showMessageSignal = QtCore.pyqtSignal(str)
+
+ def __init__(self, repo, repoview):
+ self.repo = repo
+ self.repoview = repoview
+
+ # these are used to know where to go after a reload
+ self._reload_file = None
+
+ self.splitternames = []
+
+ QtGui.QWidget.__init__(self)
+
+ self.load_config()
+
+ self.setupUi()
+ self.disab_shortcuts = []
+
+ self.currentMessage = ''
+
+ self.createActions()
+
+ self.fileview.setFont(self._font)
+ connect(self.fileview, SIGNAL('showMessage'), self.showMessage)
+ connect(self.fileview, SIGNAL('fileDisplayed'), self.file_displayed)
+
+ self.restoreSettings()
+
+ def setupUi(self):
+ SP = QtGui.QSizePolicy
+
+ self.hbox = QtGui.QHBoxLayout(self)
+ self.hbox.setSpacing(0)
+ self.hbox.setMargin(0)
+
+ self.setupRevisionDetailsWidget()
+
+ self.hbox.addWidget(self.revisionDetailsWidget)
+
+ def setupRevisionDetailsWidget(self):
+ SP = QtGui.QSizePolicy
+
+ self.revisionDetailsWidget = QtGui.QFrame()
+ sp = SP(SP.Preferred, SP.Expanding)
+ sp.setHorizontalStretch(0)
+ sp.setVerticalStretch(0)
+ sp.setHeightForWidth(self.revisionDetailsWidget.sizePolicy().hasHeightForWidth())
+ self.revisionDetailsWidget.setSizePolicy(sp)
+ self.revisionDetailsWidget.setFrameShape(QtGui.QFrame.NoFrame)
+ self.revisionDetailsWidget.setFrameShadow(QtGui.QFrame.Plain)
+
+ revisiondetails_layout = QtGui.QVBoxLayout(self.revisionDetailsWidget)
+ revisiondetails_layout.setSpacing(0)
+ revisiondetails_layout.setMargin(0)
+
+ self.filelist_splitter = QtGui.QSplitter(self.revisionDetailsWidget)
+ self.splitternames.append('filelist_splitter')
+
+ sp = SP(SP.Expanding, SP.Expanding)
+ sp.setHorizontalStretch(0)
+ sp.setVerticalStretch(0)
+ sp.setHeightForWidth(self.filelist_splitter.sizePolicy().hasHeightForWidth())
+ self.filelist_splitter.setSizePolicy(sp)
+ self.filelist_splitter.setOrientation(QtCore.Qt.Horizontal)
+ self.filelist_splitter.setChildrenCollapsible(False)
+
+ self.tableView_filelist = HgFileListView(self.filelist_splitter)
+
+ self.cset_and_file_details_frame = QtGui.QFrame(self.filelist_splitter)
+ sp = SP(SP.Preferred, SP.Preferred)
+ sp.setHorizontalStretch(1)
+ sp.setVerticalStretch(0)
+ sp.setHeightForWidth(
+ self.cset_and_file_details_frame.sizePolicy().hasHeightForWidth())
+ self.cset_and_file_details_frame.setSizePolicy(sp)
+ self.cset_and_file_details_frame.setFrameShape(QtGui.QFrame.NoFrame)
+
+ vbox = QtGui.QVBoxLayout(self.cset_and_file_details_frame)
+ vbox.setSpacing(0)
+ vbox.setSizeConstraint(QtGui.QLayout.SetDefaultConstraint)
+ vbox.setMargin(0)
+ cset_and_file_details_layout = vbox
+
+ self.message_splitter = QtGui.QSplitter(self.cset_and_file_details_frame)
+ self.splitternames.append('message_splitter')
+ sp = SP(SP.Preferred, SP.Expanding)
+ sp.setHorizontalStretch(0)
+ sp.setVerticalStretch(0)
+ sp.setHeightForWidth(self.message_splitter.sizePolicy().hasHeightForWidth())
+ self.message_splitter.setSizePolicy(sp)
+ self.message_splitter.setMinimumSize(QtCore.QSize(50, 50))
+ self.message_splitter.setFrameShape(QtGui.QFrame.NoFrame)
+ self.message_splitter.setLineWidth(0)
+ self.message_splitter.setMidLineWidth(0)
+ self.message_splitter.setOrientation(Qt.Vertical)
+ self.message_splitter.setOpaqueResize(True)
+ self.message = RevMessage(self.message_splitter)
+
+ sp = SP(SP.Expanding, SP.Expanding)
+ sp.setHorizontalStretch(0)
+ sp.setVerticalStretch(0)
+ sp.setHeightForWidth(self.message.sizePolicy().hasHeightForWidth())
+ self.message.setSizePolicy(sp)
+ self.message.setMinimumSize(QtCore.QSize(0, 0))
+ font = QtGui.QFont()
+ font.setFamily("Courier")
+ font.setPointSize(9)
+ self.message.setFont(font)
+
+ self.fileview = HgFileView(self.message_splitter)
+ sp = SP(SP.Expanding, SP.Expanding)
+ sp.setHorizontalStretch(0)
+ sp.setVerticalStretch(1)
+ sp.setHeightForWidth(self.fileview.sizePolicy().hasHeightForWidth())
+ self.fileview.setSizePolicy(sp)
+ self.fileview.setMinimumSize(QtCore.QSize(0, 0))
+
+ self.revpanel = RevPanelWidget(self.repo, self.repoview)
+
+ cset_and_file_details_layout.addWidget(self.revpanel)
+ cset_and_file_details_layout.addWidget(self.message_splitter)
+
+ revisiondetails_layout.addWidget(self.filelist_splitter)
+
+ def load_config(self):
+ cfg = HgConfig(self.repo.ui)
+ fontstr = cfg.getFont()
+ font = QtGui.QFont()
+ try:
+ if not font.fromString(fontstr):
+ raise Exception
+ except:
+ print "bad font name '%s'" % fontstr
+ font.setFamily("Monospace")
+ font.setFixedPitch(True)
+ font.setPointSize(10)
+ self._font = font
+
+ self.rowheight = cfg.getRowHeight()
+ self.users, self.aliases = cfg.getUsers()
+ self.hidefinddelay = cfg.getHideFindDelay()
+ return cfg
+
+ def showMessage(self, msg):
+ self.currentMessage = msg
+ if self.isVisible():
+ self.showMessageSignal.emit(msg)
+
+ def showEvent(self, event):
+ QtGui.QWidget.showEvent(self, event)
+ self.showMessageSignal.emit(self.currentMessage)
+
+ def createActions(self):
+ # navigate in file viewer
+ self.actionNextLine = QtGui.QAction('Next line', self)
+ self.actionNextLine.setShortcut(Qt.SHIFT + Qt.Key_Down)
+ connect(self.actionNextLine, SIGNAL('triggered()'),
+ self.fileview.nextLine)
+ self.addAction(self.actionNextLine)
+ self.actionPrevLine = QtGui.QAction('Prev line', self)
+ self.actionPrevLine.setShortcut(Qt.SHIFT + Qt.Key_Up)
+ connect(self.actionPrevLine, SIGNAL('triggered()'),
+ self.fileview.prevLine)
+ self.addAction(self.actionPrevLine)
+ self.actionNextCol = QtGui.QAction('Next column', self)
+ self.actionNextCol.setShortcut(Qt.SHIFT + Qt.Key_Right)
+ connect(self.actionNextCol, SIGNAL('triggered()'),
+ self.fileview.nextCol)
+ self.addAction(self.actionNextCol)
+ self.actionPrevCol = QtGui.QAction('Prev column', self)
+ self.actionPrevCol.setShortcut(Qt.SHIFT + Qt.Key_Left)
+ connect(self.actionPrevCol, SIGNAL('triggered()'),
+ self.fileview.prevCol)
+ self.addAction(self.actionPrevCol)
+
+ # Activate file (file diff navigator)
+ self.actionActivateFile = QtGui.QAction('Activate file', self)
+
+ self.actionActivateFileAlt = QtGui.QAction('Activate alt. file', self)
+ self.actionActivateFileAlt.setShortcuts([Qt.ALT+Qt.Key_Return, Qt.ALT+Qt.Key_Enter])
+ connect(self.actionActivateFileAlt, SIGNAL('triggered()'),
+ lambda self=self:
+ self.tableView_filelist.fileActivated(self.tableView_filelist.currentIndex(),
+ alternate=True))
+
+ def setMode(self, mode):
+ self.fileview.setMode(mode)
+
+ def getMode(self):
+ return self.fileview.getMode()
+
+ def setAnnotate(self, ann):
+ self.fileview.setAnnotate(ann)
+
+ def getAnnotate(self):
+ return self.fileview.getAnnotate()
+
+ def nextDiff(self):
+ notlast = self.fileview.nextDiff()
+ self.actionNextDiff.setEnabled(self.fileview.fileMode() and notlast and self.fileview.nDiffs())
+ self.actionPrevDiff.setEnabled(self.fileview.fileMode() and self.fileview.nDiffs())
+
+ def prevDiff(self):
+ notfirst = self.fileview.prevDiff()
+ self.actionPrevDiff.setEnabled(self.fileview.fileMode() and notfirst and self.fileview.nDiffs())
+ self.actionNextDiff.setEnabled(self.fileview.fileMode() and self.fileview.nDiffs())
+
+ def create_models(self):
+ self.filelistmodel = HgFileListModel(self.repo)
+
+ def setupModels(self, repomodel):
+ self.repomodel = repomodel
+ self.create_models()
+ self.tableView_filelist.setModel(self.filelistmodel)
+ self.fileview.setModel(repomodel)
+ filetable = self.tableView_filelist
+ connect(filetable, SIGNAL('fileSelected'), self.fileview.displayFile)
+
+ def on_filled(self):
+ self.tableView_filelist.selectFile(self._reload_file)
+
+ def file_displayed(self, filename):
+ #self.actionPrevDiff.setEnabled(False)
+ pass
+
+ def revision_selected(self, rev):
+ ctx = self.repo[rev]
+ if len(self.filelistmodel):
+ self.tableView_filelist.selectRow(0)
+ if ctx.rev() is not None:
+ self.fileview.setContext(ctx)
+ self.revpanel.update(ctx.rev())
+ self.message.displayRevision(ctx, None)
+ self.filelistmodel.setSelectedRev(ctx)
+
+ def reload(self, rev=None):
+ self._reload_file = self.tableView_filelist.currentFile()
+ self.repo = hg.repository(self.repo.ui, self.repo.root)
+ self.setupModels(self.repomodel)
+
+ def storeSettings(self):
+ s = QtCore.QSettings()
+ wb = "RevDetailsWidget/"
+ for n in self.splitternames:
+ s.setValue(wb + n, getattr(self, n).saveState())
+ s.setValue(wb + 'revpanel.expanded', self.revpanel.is_expanded())
+
+ def restoreSettings(self):
+ s = QtCore.QSettings()
+ wb = "RevDetailsWidget/"
+ for n in self.splitternames:
+ getattr(self, n).restoreState(s.value(wb + n).toByteArray())
+ expanded = s.value(wb + 'revpanel.expanded', True).toBool()
+ self.revpanel.set_expanded(expanded)
|
Loading...