From: Barış Metin Date: Fri, 10 Sep 2010 12:39:39 +0000 (+0200) Subject: fix nodeview issues and expand all X-Git-Tag: sface-0.1-1~75 X-Git-Url: http://git.onelab.eu/?p=sface.git;a=commitdiff_plain;h=5cfdb943593ce3ac4b958b90bc621bda6953bf00 fix nodeview issues and expand all --- 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):