From 5cfdb943593ce3ac4b958b90bc621bda6953bf00 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bar=C4=B1=C5=9F=20Metin?= Date: Fri, 10 Sep 2010 14:39:39 +0200 Subject: [PATCH] fix nodeview issues and expand all --- sface/screens/mainscreen.py | 43 ++++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/sface/screens/mainscreen.py b/sface/screens/mainscreen.py index 2b8b88f..6a2b95b 100644 --- a/sface/screens/mainscreen.py +++ b/sface/screens/mainscreen.py @@ -24,6 +24,14 @@ class TreeItem: self.itemData = data self.childItems = [] + def clear(self): + print "TODO: TreeItem.clear()" + for child in self.childItems: + child.clear() + del child + del self.childItems + self.childItems = [] + def appendChild(self, child): self.childItems.append(child) @@ -34,7 +42,6 @@ class TreeItem: return len(self.childItems) def columnCount(self): - print len(self.itemData) return len(self.itemData) def data(self, column): @@ -42,9 +49,11 @@ class TreeItem: def row(self): if (self.parentItem): - for i in self.parentItem.childItems: - if i is self: - return i + try: + return self.parentItem.childItems.index(self) + except ValueError: + return 0 + return 0 def parent(self): return self.parentItem @@ -54,17 +63,19 @@ class TreeItem: class NodeModel(QAbstractItemModel): def __init__(self, parent): QAbstractItemModel.__init__(self, parent) - self.rootItem = TreeItem([QString("Testbed"), QString("Hostname")]) + self.__initRoot() - def addToRoot(self, item): - self.rootItem.appendChild(item) + def clear(self): + self.rootItem.clear() + self.__initRoot() + + def __initRoot(self): + self.rootItem = TreeItem([QString("Testbed"), QString("Hostname")]) def columnCount(self, parent): if parent.isValid(): - print "toto" - parent.internalPointer().columnCount() + return parent.internalPointer().columnCount() else: - print "lala" return self.rootItem.columnCount() def data(self, index, role): @@ -108,10 +119,10 @@ class NodeModel(QAbstractItemModel): if not parentItem: return QModelIndex() - if parentItem == self.rootItem: + if parentItem is self.rootItem: return QModelIndex() - return self.createIndex(parentItem.row(), 0, parentItem); + return self.createIndex(parentItem.row(), 0, parentItem) def rowCount(self, parent): if parent.column() > 0: @@ -182,14 +193,16 @@ class SliceWidget(QWidget): networks = rspec_get_networks(rspec_string) for network in networks: - networkItem = TreeItem([QString(network), QString("")]) + networkItem = TreeItem([QString(network), QString("")], self.nodeModel.rootItem) all_nodes = rspec_get_nodes_from_network(rspec_string, network) for node in all_nodes: - nodeItem = TreeItem([QString(""), QString(node)]) + nodeItem = TreeItem([QString(""), QString(node)], networkItem) networkItem.appendChild(nodeItem) - self.nodeModel.addToRoot(networkItem) + self.nodeModel.rootItem.appendChild(networkItem) + + self.nodeView.expandAll() class MainScreen(SfaScreen): -- 2.43.0