Changeset 738

Show
Ignore:
Timestamp:
07/24/08 10:37:36 (4 months ago)
Author:
sylvain
Message:

Started making the node model capable of handling both node and items at once

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • oss/jlib/examples/basic/client.py

    r735 r738  
    118118 
    119119    def clientReady(self, jid): 
     120        model = jlibNodeItemModel(parent=self.connection.qobj.discovery) 
     121        self.nodesUi.setPubSub(self.connection.qobj.pubsubnode) 
     122        self.nodesUi.setModel(model) 
     123         
    120124        QtCore.QObject.connect(self.connection.qobj.chat, QtCore.SIGNAL("receivedMessage(PyQt_PyObject)"),  
    121125                               self.messageReceived) 
     
    163167 
    164168    def setItemsModel(self, items): 
    165         model = jlibNodeItemModel(parent=self.connection.qobj.discovery
     169        model = self.nodesUi.model(
    166170        model.setNodeItems(items) 
    167         self.nodesUi.setPubSub(self.connection.qobj.pubsubnode) 
    168         self.nodesUi.setModel(model) 
    169         self.nodesUi.setNode(items.node_name) 
    170171 
    171172    def displayPubSubItems(self, message): 
  • oss/jlib/jlib/core/pubsub.py

    r733 r738  
    2626           'jlibAffiliationItem', 'jlibAffiliationDiscoveryModel', 
    2727           'jlibPubSubNode', 'jlibPubSubNodeComponent', 
    28            'jlibNodeItem', 'jlibNodeItemModel'] 
     28           'jlibNodeItem', 'jlibNodeItemItem', 'jlibNodeItemModel'] 
    2929 
    3030class jlibPubSubDiscovery(QAxonObject): 
     
    536536                self.send(p, "delete-node") 
    537537 
     538            if self.dataReady('request-purge-collection-node'): 
     539                nodeid = self.recv('request-purge-collection-node') 
     540                p = Node(unicode(self.from_jid), self.pubsub_service, node_name=nodeid) 
     541                self.send(p, "purge-collection-node") 
     542 
    538543            if self.dataReady('request-subscribe-node'): 
    539544                nodeid = self.recv('request-subscribe-node') 
     
    578583 
    579584class jlibNodeItem(QtGui.QStandardItem): 
    580     def __init__(self, node_item): 
     585    def __init__(self, node): 
    581586        QtGui.QStandardItem.__init__(self) 
    582         self.node_item = node_item 
     587        self.node = node 
    583588 
    584589    def type(self): 
    585590        return QtGui.QStandardItem.UserType + 106 
     591     
     592class jlibNodeItem(QtGui.QStandardItem): 
     593    TYPE = QtGui.QStandardItem.UserType + 107 
     594    def __init__(self, node): 
     595        QtGui.QStandardItem.__init__(self) 
     596        self.node = node 
     597 
     598    def type(self): 
     599        return self.TYPE 
     600     
     601class jlibNodeItemItem(QtGui.QStandardItem): 
     602    TYPE = QtGui.QStandardItem.UserType + 108 
     603    def __init__(self, item): 
     604        QtGui.QStandardItem.__init__(self) 
     605        self.item = item 
     606 
     607    def type(self): 
     608        return self.TYPE 
    586609     
    587610class jlibNodeItemModel(QtGui.QStandardItemModel): 
     
    594617        return QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled 
    595618 
    596     def setNodeItems(self, node_items): 
    597         for item in node_items.items: 
     619    def setNodeItems(self, items): 
     620        self.setNode(items.node_name) 
     621        for item in items.items: 
    598622            self.setNodeItem(item) 
     623 
     624    def setNode(self, node): 
     625        rootItem = self.invisibleRootItem() 
     626        index = self.getNodeIndex(node) 
     627        if index.isValid(): 
     628            item = self.items[node] 
     629        else: 
     630            item = jlibNodeItem(node) 
     631            rootItem.appendRow(item) 
     632 
     633        item.setData(QtCore.QVariant(QtCore.QString(node)), 
     634                     QtCore.Qt.DisplayRole) 
     635 
     636        self.items[node] = item 
     637 
     638        return item 
     639 
     640    def getNodeIndex(self, node): 
     641        if node in self.items: 
     642            return self.items[node].index() 
     643 
     644        return QtCore.QModelIndex() 
    599645 
    600646    def hasNodeItem(self, item_id): 
     
    608654        return QtCore.QModelIndex() 
    609655 
    610     def getNodeItem(self, index): 
    611         return self.itemFromIndex(index) 
    612  
    613656    def setNodeItem(self, node_item): 
    614         rootItem = self.invisibleRootItem() 
     657        if node_item.node in self.items: 
     658            rootItem = self.items[node_item.node] 
     659        else: 
     660            rootItem = self.invisibleRootItem() 
    615661 
    616662        item_id = str(node_item.name) 
     
    619665            item = self.items[item_id] 
    620666        else: 
    621             item = jlibNodeItem(node_item) 
     667            item = jlibNodeItemItem(node_item) 
    622668            rootItem.appendRow(item) 
    623669 
    624         self.setData(self.index(item.row(), 0), QtCore.QVariant(QtCore.QString(item_id)), 
    625                     QtCore.Qt.DisplayRole) 
     670        item.setData(QtCore.QVariant(QtCore.QString(item_id)), 
     671                    QtCore.Qt.DisplayRole) 
    626672 
    627673        self.items[item_id] = item