Changeset 1ca58b3e828d…
Parent 52576d86fa09…
by
Changes to 3 files · Browse files at 1ca58b3e828d Showing diff from parent 52576d86fa09 Diff from another changeset...
|
|
@@ -0,0 +1,126 @@ + # reporegistry.py - registry for a user's repositories
+#
+# Copyright 2010 Adrian Buehlmann <adrian@cadifra.com>
+#
+# This software may be used and distributed according to the terms of the
+# GNU General Public License version 2 or any later version.
+
+from PyQt4 import QtCore, QtGui
+
+from PyQt4.QtCore import Qt, QVariant, SIGNAL, SLOT
+from PyQt4.QtCore import QModelIndex
+
+from PyQt4.QtGui import QWidget, QVBoxLayout
+
+from tortoisehg.hgqt.i18n import _
+
+connect = QtCore.QObject.connect
+
+class RepoTreeItem:
+ def __init__(self, name, parent=None):
+ self.name = name
+ self._parent = parent
+ self.childs = []
+ self._row = 0
+
+ def appendChild(self, child):
+ child._row = len(self.childs)
+ child._parent = self
+ self.childs.append(child)
+
+ def child(self, row):
+ return self.childs[row]
+
+ def childCount(self):
+ return len(self.childs)
+
+ def columnCount(self):
+ return 1
+
+ def data(self, column):
+ return QVariant(self.name)
+
+ def row(self):
+ return self._row
+
+ def parent(self):
+ return self._parent
+
+
+class RepoTreeModel(QtCore.QAbstractItemModel):
+ def __init__(self, parent=None):
+ QtCore.QAbstractItemModel.__init__(self, parent)
+
+ self.rootItem = root = RepoTreeItem('')
+
+ self.allrepos = all = RepoTreeItem(_('All Repositories'))
+ root.appendChild(all)
+
+ all.appendChild(RepoTreeItem('dummy-repo-A'))
+ all.appendChild(RepoTreeItem('dummy-repo-B'))
+ all.appendChild(RepoTreeItem('dummy-repo-C'))
+
+ def index(self, row, column, parent):
+ if not self.hasIndex(row, column, parent):
+ return QModelIndex()
+ if (not parent.isValid()):
+ parentItem = self.rootItem
+ else:
+ parentItem = parent.internalPointer()
+ childItem = parentItem.child(row)
+ if childItem:
+ return self.createIndex(row, column, childItem)
+ else:
+ return QModelIndex()
+
+ def parent(self, index):
+ if not index.isValid():
+ return QModelIndex()
+ childItem = index.internalPointer()
+ parentItem = childItem.parent()
+ if parentItem is self.rootItem:
+ return QModelIndex()
+ return self.createIndex(parentItem.row(), 0, parentItem)
+
+ def rowCount(self, parent):
+ if parent.column() > 0:
+ return 0
+ if not parent.isValid():
+ parentItem = self.rootItem;
+ else:
+ parentItem = parent.internalPointer()
+ return parentItem.childCount()
+
+ def columnCount(self, parent):
+ if parent.isValid():
+ return parent.internalPointer().columnCount()
+ else:
+ return self.rootItem.columnCount()
+
+ def data(self, index, role):
+ if not index.isValid():
+ return QVariant()
+ if role != Qt.DisplayRole:
+ return QVariant();
+ item = index.internalPointer()
+ return item.data(index.column())
+
+ def flags(self, index):
+ if not index.isValid():
+ return 0
+ return Qt.ItemIsEnabled | Qt.ItemIsSelectable
+
+
+class RepoRegistryView(QWidget):
+ def __init__(self, parent=None):
+ QWidget.__init__(self, parent)
+
+ lay = QVBoxLayout()
+ lay.setContentsMargins(0, 0, 0, 0)
+ self.setLayout(lay)
+
+ self.tmodel = m = RepoTreeModel()
+
+ self.tview = tv = QtGui.QTreeView()
+ lay.addWidget(tv)
+ tv.setModel(m)
|
@@ -26,23 +26,29 @@ <number>0</number>
</property>
<item>
- <widget class="QTabWidget" name="repoTabsWidget">
- <property name="currentIndex">
- <number>0</number>
+ <widget class="QSplitter" name="reporegistrysplitter">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
</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 class="RepoRegistryView" name="reporegistry" native="true"/>
+ <widget class="QTabWidget" name="repoTabsWidget">
+ <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>
</item>
@@ -197,6 +203,14 @@ </property>
</action>
</widget>
+ <customwidgets>
+ <customwidget>
+ <class>RepoRegistryView</class>
+ <extends>QWidget</extends>
+ <header>reporegistry.h</header>
+ <container>1</container>
+ </customwidget>
+ </customwidgets>
<resources>
<include location="workbench.qrc"/>
</resources>
|
@@ -2,7 +2,7 @@
# Form implementation generated from reading ui file 'C:\Users\adi\hgrepos\thg-qt\tortoisehg\hgqt\workbench.ui'
#
-# Created: Sat May 15 20:00:23 2010
+# Created: Sun May 16 12:30:17 2010
# by: PyQt4 UI code generator 4.7.3
#
# WARNING! All changes made in this file will be lost!
@@ -22,7 +22,12 @@ self.horizontalLayout.setSpacing(0)
self.horizontalLayout.setMargin(0)
self.horizontalLayout.setObjectName("horizontalLayout")
- self.repoTabsWidget = QtGui.QTabWidget(self.centralwidget)
+ self.reporegistrysplitter = QtGui.QSplitter(self.centralwidget)
+ self.reporegistrysplitter.setOrientation(QtCore.Qt.Horizontal)
+ self.reporegistrysplitter.setObjectName("reporegistrysplitter")
+ self.reporegistry = RepoRegistryView(self.reporegistrysplitter)
+ self.reporegistry.setObjectName("reporegistry")
+ self.repoTabsWidget = QtGui.QTabWidget(self.reporegistrysplitter)
self.repoTabsWidget.setDocumentMode(True)
self.repoTabsWidget.setTabsClosable(True)
self.repoTabsWidget.setMovable(True)
@@ -30,7 +35,7 @@ self.firstRepoTab = QtGui.QWidget()
self.firstRepoTab.setObjectName("firstRepoTab")
self.repoTabsWidget.addTab(self.firstRepoTab, "")
- self.horizontalLayout.addWidget(self.repoTabsWidget)
+ self.horizontalLayout.addWidget(self.reporegistrysplitter)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtGui.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 671, 19))
@@ -121,4 +126,5 @@ self.actionBack.setText(QtGui.QApplication.translate("MainWindow", "Back", None, QtGui.QApplication.UnicodeUTF8))
self.actionForward.setText(QtGui.QApplication.translate("MainWindow", "Forward", None, QtGui.QApplication.UnicodeUTF8))
+from reporegistry import RepoRegistryView
import workbench_rc
|
Loading...