Changeset 747

Show
Ignore:
Timestamp:
07/28/08 10:40:04 (4 months ago)
Author:
sylvain
Message:

Support for node information discovery

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • oss/jlib/jlib/core/pubsub.py

    r740 r747  
    3636        QtCore.QObject.connect(self, QtCore.SIGNAL("discoverAffiliations()"), self.discoverAffiliations) 
    3737        QtCore.QObject.connect(self, QtCore.SIGNAL("discoverItems(PyQt_PyObject)"), self.discoverItems) 
     38        QtCore.QObject.connect(self, QtCore.SIGNAL("discoverNodeInformation(PyQt_PyObject)"), self.discoverNodeInfo) 
    3839     
    3940    def setComponent(self, component): 
     
    5152                    ('discohandler', 'subscriptions-disco'): ('discodisp', 'subscription.forward'), 
    5253                    ('discohandler', 'affiliations-disco'): ('discodisp', 'affiliation.forward'), 
     54                    ('discohandler', "information-disco"): ('discodisp', "info.forward"), 
    5355                    ("discodisp", "out.features.result"): ('discohandler', "features.result"), 
    5456                    ("discodisp",'subscription.outbox'):('xmpp','forward'), 
     
    5860                    ("discodisp", 'out.items.result'): ('discohandler', 'items.result'), 
    5961                    ("discodisp", 'out.items.error'): ('discohandler', 'items.error'), 
     62                    ("discodisp", 'out.info.result'): ('discohandler', 'information.result'), 
    6063                    ("discodisp", "outbox"): ("xmpp", "forward")} 
    6164        return dict(discohandler=self.component, discodisp=DiscoveryDispatcher()), linkages 
     
    7578    def discoverItems(self, node_name): 
    7679        self._deliver(node_name, 'request-items-disco') 
     80 
     81    def discoverNodeInfo(self, node_name): 
     82        self._deliver(node_name, 'request-information-disco') 
    7783 
    7884class jlibPubSubDiscoveryComponent(component): 
     
    8692               "request-subscriptions-disco": "", 
    8793               "request-node-subscriptions-disco": "", 
     94               "request-information-disco": "", 
    8895                
    8996               "subscriptions.result": "", 
    9097               "affiliations.result": "", 
     98               "information.result": "", 
    9199               "features.result": "", 
    92100               "items.result": "", 
     
    100108                    "the other components about the features instance received from the server", 
    101109                "items-disco"   : "", 
     110                "information-disco": "", 
    102111                "subscriptions-disco": "", 
    103112                "affiliations-disco" : ""} 
     
    152161                d = AffiliationsDiscovery(unicode(self.from_jid), self.pubsub_service) 
    153162                self.send(d, "affiliations-disco") 
     163 
     164            if self.dataReady("request-information-disco"): 
     165                nodeid = self.recv("request-information-disco") 
     166                d = InformationDiscovery(unicode(self.from_jid), self.pubsub_service, node_name=nodeid) 
     167                self.send(d, "information-disco") 
    154168 
    155169            if self.dataReady("request-items-disco"): 
  • oss/jlib/jlib/gui/pubsub/node.py

    r745 r747  
    7676        item = model.itemFromIndex(index) 
    7777 
    78         if item.type() == jlibNodeItem.TYPE: 
     78        if not item: 
     79            menu = QtGui.QMenu(self.parent()) 
     80            actionNewnode = QtGui.QAction(QtCore.QString("Create a new node"), self.parent()) 
     81            QtCore.QObject.connect(actionNewnode, QtCore.SIGNAL("triggered()"), 
     82                                   self.createNode) 
     83            menu.addAction(actionNewnode) 
     84            menu.exec_(event.globalPos()) 
     85        elif item.type() == jlibNodeItem.TYPE: 
    7986            menu = QtGui.QMenu(self.parent()) 
    8087            publishMenu = QtGui.QMenu(menu) 
  • oss/jlib/jlib/gui/pubsub/subscription.py

    r721 r747  
    4343        self.discovery.emit(QtCore.SIGNAL("discoverNodeSubscriptions(PyQt_PyObject)"), subscription.node) 
    4444 
     45    def discoverNodeInfo(self): 
     46        model = self.subscriptions.model() 
     47        subscription = model.getSubscriptionItem(self.subscriptions.currentIndex()).subscription 
     48        self.discovery.emit(QtCore.SIGNAL("discoverNodeInformation(PyQt_PyObject)"), subscription.node) 
     49 
    4550    def discoverItems(self): 
    4651        model = self.subscriptions.model() 
     
    6368        menu.addAction(actionDiscoverNode) 
    6469 
     70        actionDiscoverNodeInfo = QtGui.QAction(QtCore.QString("Discover node information"), self.parent()) 
     71        QtCore.QObject.connect(actionDiscoverNodeInfo, QtCore.SIGNAL("triggered()"), self.discoverNodeInfo) 
     72        menu.addAction(actionDiscoverNodeInfo) 
     73 
    6574        actionDiscoverItem = QtGui.QAction(QtCore.QString("Discover items"), self.parent()) 
    6675        QtCore.QObject.connect(actionDiscoverItem, QtCore.SIGNAL("triggered()"), self.discoverItems)