Changeset 731
- Timestamp:
- 07/21/08 10:27:31 (4 months ago)
- Files:
-
- oss/jlib/examples/basic/client.py (modified) (3 diffs)
- oss/jlib/jlib/core/pubsub.py (modified) (5 diffs)
- oss/jlib/jlib/gui/atom/entry.py (modified) (5 diffs)
- oss/jlib/jlib/gui/pubsub/node.py (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
oss/jlib/examples/basic/client.py
r725 r731 134 134 self.nodesUi.setPubSub(self.connection.qobj.pubsubnode) 135 135 self.nodesUi.setModel(model) 136 self.nodesUi.setNode(items.node_name) 136 137 137 138 def messageReceived(self, message): … … 153 154 tab = self.tabWidget.addTab(widget, QtCore.QString(contact_jid)) 154 155 self.tabWidget.setCurrentIndex(tab) 156 157 def updatedItem(self, node_name, item_id, entry): 158 pubsub = self.connection.qobj.pubsubnode 159 pubsub.emit(QtCore.SIGNAL("publishItem(PyQt_PyObject, PyQt_PyObject, PyQt_PyObject)"), 160 node_name, item_id, entry) 155 161 156 162 def retrievedItems(self, node): … … 163 169 widget = QtGui.QWidget() 164 170 form = jlibAtomEntryForm(parent=widget) 171 form.setNode(node.node_name) 165 172 form.setEntry(child) 166 173 tab = self.tabWidget.addTab(widget, QtCore.QString(str(id_element))) 167 174 self.tabWidget.setCurrentIndex(tab) 175 176 QtCore.QObject.connect(form, QtCore.SIGNAL("itemReady(PyQt_PyObject, PyQt_PyObject, PyQt_PyObject)"), 177 self.updatedItem) 168 178 169 179 def parse_commandline(): oss/jlib/jlib/core/pubsub.py
r729 r731 387 387 ("pubsubdisp", "publish.outbox"): ("xmpp", "forward"), 388 388 ("pubsubdisp", "retract.outbox"): ("xmpp", "forward"), 389 ("pubsubdisp", "out.message"): ('itemshandler', 'message.received'), 389 390 ("pubsubdisp", "out.retrieve.result"): ("itemshandler", "retrieved"), 390 391 ("pubsubdisp", "out.create.result"): ("itemshandler", "created"), … … 446 447 "deleted" : "", 447 448 "error" : "", 449 "message.received": "", 448 450 "xmpp.result": "", 449 451 "published": "", … … 510 512 if self.dataReady('request-publish-item'): 511 513 node_id, item_id, data = self.recv('request-publish-item') 512 p = Node(unicode(self.from_jid), self.pubsub_service, type=u"get", 513 node_name=node_id, item=Item(id=item_id)) 514 self.send(p, "retrieve-item") 514 i = Item(id=item_id, payload=data) 515 p = Node(unicode(self.from_jid), self.pubsub_service, 516 node_name=node_id, item=i) 517 self.send(p, "publish-item") 515 518 516 519 if self.dataReady('request-create-collection-node'): … … 558 561 self.qobj.emit(QtCore.SIGNAL("errorNode(PyQt_PyObject)"), node) 559 562 563 if self.dataReady("message.received"): 564 msg = self.recv("message.received") 565 self.qobj.emit(QtCore.SIGNAL("receivedPubSubMessage(PyQt_PyObject)"), message) 566 560 567 if not self.anyReady(): 561 568 self.pause() … … 614 621 615 622 return item 623 624 625 626 oss/jlib/jlib/gui/atom/entry.py
r729 r731 1 1 # -*- coding: utf-8 -*- 2 import datetime 2 3 from PyQt4 import QtCore, QtGui 3 from bridge.common import ATOM10_NS 4 5 from bridge import Element as E 6 from bridge.common import ATOM10_NS, ATOM10_PREFIX 4 7 5 8 from jlib.gui.atom.entryui import Ui_jlibAtomEntryForm 6 9 from jlib.core.atom import jlibAtomAuthorModel, jlibAtomLinkModel 7 10 8 __all__ = ['jlibAtomEntryForm' ]11 __all__ = ['jlibAtomEntryForm', 'jlibAtomEntryFormDialog'] 9 12 10 13 class jlibAtomEntryForm(QtGui.QWidget, Ui_jlibAtomEntryForm): … … 12 15 QtGui.QWidget.__init__(self, parent) 13 16 self.setupUi(parent=parent) 17 self.entry = None 14 18 self.node = None 15 self.entry = None16 19 17 20 def setupUi(self, parent): … … 19 22 QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL("accepted()"), 20 23 self.saveEntry) 21 22 def setPubSub(self, pubsub):23 self.pubsub = pubsub24 24 25 25 def setNode(self, node): 26 26 self.node = node 27 28 def makeDefaultEntry(self): 29 entry = E(u'entry', namespace=ATOM10_NS, prefix=ATOM10_PREFIX) 30 E(u'id', namespace=ATOM10_NS, prefix=ATOM10_PREFIX, 31 content=unicode(self.atomID.text()), parent=entry) 32 date = unicode(datetime.datetime.utcnow().isoformat()) + u'Z' 33 E(u'published', namespace=ATOM10_NS, prefix=ATOM10_PREFIX, 34 content=date, parent=entry) 35 E(u'updated', namespace=ATOM10_NS, prefix=ATOM10_PREFIX, 36 content=date, parent=entry) 37 E(u'title', namespace=ATOM10_NS, prefix=ATOM10_PREFIX, 38 attributes={u'type': u'text'}, content=unicode(self.title.text()), parent=entry) 39 E(u'content', namespace=ATOM10_NS, prefix=ATOM10_PREFIX, 40 attributes={u'type': u'text'}, parent=entry) 41 42 self.entry = entry 27 43 28 44 def setEntry(self, entry): … … 31 47 if id_element: 32 48 self.atomID.setText(QtCore.QString(str(id_element))) 49 self.atomID.setEnabled(False) 33 50 34 51 title_element = entry.get_child('title', ATOM10_NS) … … 49 66 50 67 def saveEntry(self): 51 self.pubsub.emit(QtCore.SIGNAL("publishItem(PyQt_PyObject, PyQt_PyObject)"), 52 self.publishItem) 68 id_element = self.entry.get_child('id', ATOM10_NS) 69 id_element.xml_text = unicode(self.atomID.text()) 70 71 title_element = self.entry.get_child('title', ATOM10_NS) 72 title_element.xml_text = unicode(self.title.text()) 73 74 updated_element = self.entry.get_child('updated', ATOM10_NS) 75 updated_element.xml_text = unicode(datetime.datetime.utcnow().isoformat()) + u'Z' 53 76 54 77 self.emit(QtCore.SIGNAL("itemReady(PyQt_PyObject, PyQt_PyObject, PyQt_PyObject)"), 78 self.node, id_element.xml_text, self.entry) 79 80 class jlibAtomEntryFormDialog(QtGui.QDialog): 81 def __init__(self, parent=None): 82 QtGui.QDialog.__init__(self, parent) 83 self.setObjectName("jlibAtomEntryFormDialog") 84 85 self.form = jlibAtomEntryForm(parent=self) 86 self.form.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Save) 87 88 self.resize(QtCore.QSize(QtCore.QRect(0,0,444,461).size()).expandedTo(self.form.minimumSizeHint())) 89 self.retranslateUi(self) 90 QtCore.QObject.connect(self.form.buttonBox,QtCore.SIGNAL("accepted()"), self.accept) 91 QtCore.QObject.connect(self.form.buttonBox,QtCore.SIGNAL("rejected()"), self.reject) 92 QtCore.QMetaObject.connectSlotsByName(self) 93 94 def retranslateUi(self, Dialog): 95 Dialog.setWindowTitle(QtGui.QApplication.translate("Dialog", "Dialog", None, QtGui.QApplication.UnicodeUTF8)) 96 97 def accept(self): 98 self.form.makeDefaultEntry() 99 return QtGui.QDialog.accept(self) 100 oss/jlib/jlib/gui/pubsub/node.py
r721 r731 4 4 from jlib.gui.pubsub.nodesui import Ui_jlibPubSubNodes 5 5 from jlib.gui.pubsub.createnodedialog import jlibCreateNodeDialog 6 from jlib.gui.atom.entry import jlibAtomEntryFormDialog 6 7 7 8 __all__ = ['jlibPubSubNodeWidget'] … … 23 24 self.handleError) 24 25 26 def setNode(self, node): 27 self.node = node 28 25 29 def setModel(self, model): 26 30 self.nodes.setModel(model) … … 35 39 self.pubsub.emit(QtCore.SIGNAL("createNode(PyQt_PyObject)"), unicode(ui.nodeName.text())) 36 40 41 def publishAtomEntry(self): 42 dialog = jlibAtomEntryFormDialog() 43 if dialog.exec_() == QtGui.QDialog.Accepted: 44 self.pubsub.emit(QtCore.SIGNAL("publishItem(PyQt_PyObject, PyQt_PyObject, PyQt_PyObject)"), 45 self.node, unicode(dialog.form.atomID.text()), dialog.form.entry) 46 37 47 def clicked(self, index): 38 48 model = self.nodes.model() … … 44 54 menu = QtGui.QMenu(self.parent()) 45 55 46 actionCreateNode = QtGui.QAction(QtCore.QString("Create node"), self.parent()) 47 QtCore.QObject.connect(actionCreateNode, QtCore.SIGNAL("triggered()"), self.createNode) 48 menu.addAction(actionCreateNode) 56 publishMenu = QtGui.QMenu(menu) 57 publishMenu.setTitle(QtCore.QString("Publish")) 58 59 actionPublishAtomEntry = QtGui.QAction(QtCore.QString("Atom Entry"), self.parent()) 60 QtCore.QObject.connect(actionPublishAtomEntry, QtCore.SIGNAL("triggered()"), 61 self.publishAtomEntry) 62 publishMenu.addAction(actionPublishAtomEntry) 49 63 64 menu.addAction(publishMenu.menuAction()) 50 65 menu.exec_(event.globalPos())
