Changeset fb7dd75e314b…
Parent ecd4fda6bfee…
by
Changes to 4 files · Browse files at fb7dd75e314b Showing diff from parent ecd4fda6bfee Diff from another changeset...
|
@@ -26,7 +26,6 @@ from tortoisehg.hgqt.manifestdialog import ManifestDialog
from repoview import HgRepoView
-from commit import CommitWidget
from revdetailswidget import RevDetailsWidget
@@ -40,33 +39,27 @@ showMessageSignal = QtCore.pyqtSignal(str)
switchToSignal = QtCore.pyqtSignal(QtGui.QWidget)
- def __init__(self, repo):
+ def __init__(self, repo, stackedWidget, commitWidget):
self.repo = repo
+ self.stackedWidget = stackedWidget
+ self.commitWidget = commitWidget
self._closed_branch_supp = has_closed_branch_support(self.repo)
-
- # these are used to know where to go after a reload
self._reload_rev = '.'
-
self._loading = True
self._scanForRepoChanges = True
-
self.splitternames = []
+ self.disab_shortcuts = []
+ self.currentMessage = ''
+ self.currenWidget = None
QtGui.QWidget.__init__(self)
self.load_config()
-
self.setupUi()
- self.disab_shortcuts = []
-
- self.currentMessage = ''
-
self.createActions()
connect(self.repoview, SIGNAL('showMessage'), self.showMessage)
-# self.revdisplay.commitsignal.connect(self.commit)
-
self.setupModels()
self.setupRevisionTable()
@@ -82,11 +75,8 @@ self.hbox.setSpacing(0)
self.hbox.setMargin(0)
- self.revisions_splitter = QtGui.QSplitter(self)
- self.splitternames.append('revisions_splitter')
- self.revisions_splitter.setOrientation(Qt.Vertical)
-
- self.repoview = HgRepoView(self.revisions_splitter)
+ self.repoview = HgRepoView()
+ self.hbox.addWidget(self.repoview)
sp = SP(SP.Expanding, SP.Expanding)
sp.setHorizontalStretch(0)
sp.setVerticalStretch(1)
@@ -94,18 +84,9 @@ self.repoview.setSizePolicy(sp)
self.repoview.setFrameShape(QtGui.QFrame.StyledPanel)
- self.stackedWidget = QtGui.QStackedWidget(self.revisions_splitter)
-
self.revDetailsWidget = RevDetailsWidget(self.repo, self.repoview)
self.stackedWidget.addWidget(self.revDetailsWidget)
- pats = {}
- opts = {}
- self.commitWidget = CommitWidget(pats, opts, root=self.repo.root)
- self.stackedWidget.addWidget(self.commitWidget)
-
- self.hbox.addWidget(self.revisions_splitter)
-
def load_config(self):
cfg = HgConfig(self.repo.ui)
fontstr = cfg.getFont()
@@ -258,11 +239,11 @@ ctx = self.repomodel.repo.changectx(rev)
if ctx.rev() is None:
# working copy
- curridx = 1
+ self.currenWidget = self.commitWidget
else:
self.revDetailsWidget.revision_selected(rev)
- curridx = 0
- self.stackedWidget.setCurrentIndex(curridx)
+ self.currenWidget = self.revDetailsWidget
+ self.stackedWidget.setCurrentWidget(self.currenWidget)
def goto(self, rev):
if len(self.repoview.model().graph):
@@ -308,6 +289,10 @@
def switchTo(self):
self.switchToSignal.emit(self)
+
+ def switchedTo(self):
+ if self.currenWidget:
+ self.stackedWidget.setCurrentWidget(self.currenWidget)
def storeSettings(self):
s = QtCore.QSettings()
@@ -331,4 +316,5 @@ if self.isVisible():
# assuming here that there is at most one RepoWidget visible
self.storeSettings()
+ self.stackedWidget.removeWidget(self.revDetailsWidget)
return True
|
@@ -28,6 +28,7 @@ from tortoisehg.hgqt.dialogmixin import HgDialogMixin
from tortoisehg.hgqt.quickbar import FindInGraphlogQuickBar
from tortoisehg.hgqt.repowidget import RepoWidget
+from tortoisehg.hgqt.commit import CommitWidget
from tortoisehg.util import paths
@@ -52,9 +53,15 @@ self._scanForRepoChanges = True
self._searchWidgets = []
+ self.commitwidgets = {} # key: reporoot
+
QtGui.QMainWindow.__init__(self)
HgDialogMixin.__init__(self, ui)
+ self.dummywidget = QtGui.QWidget()
+ self.stackedWidget.addWidget(self.dummywidget)
+ self.stackedWidget.setCurrentWidget(self.dummywidget)
+
self.setWindowTitle('TortoiseHg Workbench')
if repo:
@@ -123,15 +130,28 @@ mode = w.getMode()
ann = w.getAnnotate()
tags = w.repo.tags().keys()
+ w.switchedTo()
else:
self.actionDiffMode.setEnabled(False)
+ self.stackedWidget.setCurrentWidget(self.dummywidget)
+
self.actionDiffMode.setChecked(mode == 'diff')
self.actionAnnMode.setChecked(ann)
def addRepoTab(self, repo):
'''opens the given repo in a new tab'''
reponame = os.path.basename(repo.root)
- rw = RepoWidget(repo)
+
+ if repo.root in self.commitwidgets:
+ cw = self.commitwidgets[repo.root]
+ else:
+ pats = {}
+ opts = {}
+ cw = CommitWidget(pats, opts, root=repo.root)
+ self.commitwidgets[repo.root] = cw
+ self.stackedWidget.addWidget(cw)
+
+ rw = RepoWidget(repo, self.stackedWidget, cw)
rw.showMessageSignal.connect(self.showMessage)
rw.switchToSignal.connect(self.switchTo)
tw = self.repoTabsWidget
|
@@ -6,8 +6,8 @@ <rect>
<x>0</x>
<y>0</y>
- <width>671</width>
- <height>669</height>
+ <width>685</width>
+ <height>721</height>
</rect>
</property>
<property name="windowTitle">
@@ -18,10 +18,7 @@ <normaloff>:/icons/log.svg</normaloff>:/icons/log.svg</iconset>
</property>
<widget class="QWidget" name="centralwidget">
- <layout class="QHBoxLayout" name="horizontalLayout">
- <property name="spacing">
- <number>0</number>
- </property>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
<property name="margin">
<number>0</number>
</property>
@@ -38,30 +35,58 @@ </sizepolicy>
</property>
</widget>
- <widget class="QTabWidget" name="repoTabsWidget">
+ <widget class="QFrame" name="repoframe">
<property name="sizePolicy">
- <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>1</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
- <property name="currentIndex">
- <number>0</number>
+ <property name="frameShape">
+ <enum>QFrame::StyledPanel</enum>
</property>
- <property name="documentMode">
- <bool>true</bool>
+ <property name="frameShadow">
+ <enum>QFrame::Raised</enum>
</property>
- <property name="tabsClosable">
- <bool>true</bool>
- </property>
- <property name="movable">
- <bool>true</bool>
- </property>
- <widget class="QWidget" name="firstRepoTab">
- <attribute name="title">
- <string>repo1</string>
- </attribute>
- </widget>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <property name="margin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QSplitter" name="repotabssplitter">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <widget class="QTabWidget" name="repoTabsWidget">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+ <horstretch>1</horstretch>
+ <verstretch>1</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="currentIndex">
+ <number>0</number>
+ </property>
+ <property name="documentMode">
+ <bool>true</bool>
+ </property>
+ <property name="tabsClosable">
+ <bool>true</bool>
+ </property>
+ <property name="movable">
+ <bool>true</bool>
+ </property>
+ <widget class="QWidget" name="firstRepoTab">
+ <attribute name="title">
+ <string>repo1</string>
+ </attribute>
+ </widget>
+ </widget>
+ <widget class="QStackedWidget" name="stackedWidget">
+ </widget>
+ </widget>
+ </item>
+ </layout>
</widget>
</widget>
</item>
@@ -72,7 +97,7 @@ <rect>
<x>0</x>
<y>0</y>
- <width>671</width>
+ <width>685</width>
<height>19</height>
</rect>
</property>
|
@@ -2,7 +2,7 @@
# Form implementation generated from reading ui file 'C:\Users\adi\hgrepos\thg-qt\tortoisehg\hgqt\workbench.ui'
#
-# Created: Tue May 18 01:00:57 2010
+# Created: Sun May 23 21:33:00 2010
# by: PyQt4 UI code generator 4.7.3
#
# WARNING! All changes made in this file will be lost!
@@ -12,16 +12,15 @@class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
- MainWindow.resize(671, 669)
+ MainWindow.resize(685, 721)
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap(":/icons/log.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
MainWindow.setWindowIcon(icon)
self.centralwidget = QtGui.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
- self.horizontalLayout = QtGui.QHBoxLayout(self.centralwidget)
- self.horizontalLayout.setSpacing(0)
- self.horizontalLayout.setMargin(0)
- self.horizontalLayout.setObjectName("horizontalLayout")
+ self.verticalLayout_2 = QtGui.QVBoxLayout(self.centralwidget)
+ self.verticalLayout_2.setMargin(0)
+ self.verticalLayout_2.setObjectName("verticalLayout_2")
self.reporegistry_splitter = QtGui.QSplitter(self.centralwidget)
self.reporegistry_splitter.setOrientation(QtCore.Qt.Horizontal)
self.reporegistry_splitter.setObjectName("reporegistry_splitter")
@@ -32,10 +31,25 @@ sizePolicy.setHeightForWidth(self.reporegistry.sizePolicy().hasHeightForWidth())
self.reporegistry.setSizePolicy(sizePolicy)
self.reporegistry.setObjectName("reporegistry")
- self.repoTabsWidget = QtGui.QTabWidget(self.reporegistry_splitter)
+ self.repoframe = QtGui.QFrame(self.reporegistry_splitter)
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)
+ sizePolicy.setHorizontalStretch(1)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.repoframe.sizePolicy().hasHeightForWidth())
+ self.repoframe.setSizePolicy(sizePolicy)
+ self.repoframe.setFrameShape(QtGui.QFrame.StyledPanel)
+ self.repoframe.setFrameShadow(QtGui.QFrame.Raised)
+ self.repoframe.setObjectName("repoframe")
+ self.verticalLayout = QtGui.QVBoxLayout(self.repoframe)
+ self.verticalLayout.setMargin(0)
+ self.verticalLayout.setObjectName("verticalLayout")
+ self.repotabssplitter = QtGui.QSplitter(self.repoframe)
+ self.repotabssplitter.setOrientation(QtCore.Qt.Vertical)
+ self.repotabssplitter.setObjectName("repotabssplitter")
+ self.repoTabsWidget = QtGui.QTabWidget(self.repotabssplitter)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(1)
- sizePolicy.setVerticalStretch(0)
+ sizePolicy.setVerticalStretch(1)
sizePolicy.setHeightForWidth(self.repoTabsWidget.sizePolicy().hasHeightForWidth())
self.repoTabsWidget.setSizePolicy(sizePolicy)
self.repoTabsWidget.setDocumentMode(True)
@@ -45,10 +59,13 @@ self.firstRepoTab = QtGui.QWidget()
self.firstRepoTab.setObjectName("firstRepoTab")
self.repoTabsWidget.addTab(self.firstRepoTab, "")
- self.horizontalLayout.addWidget(self.reporegistry_splitter)
+ self.stackedWidget = QtGui.QStackedWidget(self.repotabssplitter)
+ self.stackedWidget.setObjectName("stackedWidget")
+ self.verticalLayout.addWidget(self.repotabssplitter)
+ self.verticalLayout_2.addWidget(self.reporegistry_splitter)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtGui.QMenuBar(MainWindow)
- self.menubar.setGeometry(QtCore.QRect(0, 0, 671, 19))
+ self.menubar.setGeometry(QtCore.QRect(0, 0, 685, 19))
self.menubar.setObjectName("menubar")
self.menuFile = QtGui.QMenu(self.menubar)
self.menuFile.setObjectName("menuFile")
|
Loading...