Changeset 749

Show
Ignore:
Timestamp:
07/28/08 15:14:24 (4 months ago)
Author:
sylvain
Message:

support for node information error handling

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • oss/jlib/designer/ui/atomentryform.ui

    r745 r749  
    1313   <string>Form</string> 
    1414  </property> 
    15   <layout class="QVBoxLayout" name="verticalLayout_4"
     15  <layout class="QVBoxLayout"
    1616   <item> 
    1717    <widget class="QToolBox" name="toolBox" > 
    1818     <property name="currentIndex" > 
    19       <number>5</number> 
     19      <number>0</number> 
    2020     </property> 
    2121     <widget class="QWidget" name="generalItem" > 
     22      <property name="geometry" > 
     23       <rect> 
     24        <x>0</x> 
     25        <y>0</y> 
     26        <width>496</width> 
     27        <height>300</height> 
     28       </rect> 
     29      </property> 
    2230      <attribute name="label" > 
    2331       <string>General</string> 
    2432      </attribute> 
    25       <layout class="QGridLayout" name="gridLayout"
     33      <layout class="QGridLayout"
    2634       <item row="0" column="0" > 
    2735        <widget class="QLabel" name="label" > 
     
    7280       </item> 
    7381       <item rowspan="2" row="3" column="2" colspan="2" > 
    74         <spacer name="horizontalSpacer"
     82        <spacer
    7583         <property name="orientation" > 
    7684          <enum>Qt::Horizontal</enum> 
    7785         </property> 
    78          <property name="sizeHint" stdset="0"
     86         <property name="sizeHint"
    7987          <size> 
    8088           <width>259</width> 
     
    121129        <x>0</x> 
    122130        <y>0</y> 
    123         <width>497</width> 
    124         <height>243</height> 
     131        <width>94</width> 
     132        <height>68</height> 
    125133       </rect> 
    126134      </property> 
     
    128136       <string>Authors</string> 
    129137      </attribute> 
    130       <layout class="QVBoxLayout" name="verticalLayout"
     138      <layout class="QVBoxLayout"
    131139       <item> 
    132140        <widget class="QTableView" name="authors" > 
     
    143151        <x>0</x> 
    144152        <y>0</y> 
    145         <width>497</width> 
    146         <height>243</height> 
     153        <width>94</width> 
     154        <height>68</height> 
    147155       </rect> 
    148156      </property> 
     
    150158       <string>Links</string> 
    151159      </attribute> 
    152       <layout class="QVBoxLayout" name="verticalLayout_2"
     160      <layout class="QVBoxLayout"
    153161       <item> 
    154162        <widget class="QTableView" name="links" > 
     
    161169     </widget> 
    162170     <widget class="QWidget" name="categoryItem" > 
     171      <property name="geometry" > 
     172       <rect> 
     173        <x>0</x> 
     174        <y>0</y> 
     175        <width>94</width> 
     176        <height>68</height> 
     177       </rect> 
     178      </property> 
    163179      <attribute name="label" > 
    164180       <string>Categories</string> 
    165181      </attribute> 
    166       <layout class="QVBoxLayout" name="verticalLayout_3"
     182      <layout class="QVBoxLayout"
    167183       <item> 
    168184        <widget class="QTableView" name="categories" > 
     
    175191     </widget> 
    176192     <widget class="QWidget" name="contentItem" > 
     193      <property name="geometry" > 
     194       <rect> 
     195        <x>0</x> 
     196        <y>0</y> 
     197        <width>94</width> 
     198        <height>68</height> 
     199       </rect> 
     200      </property> 
    177201      <attribute name="label" > 
    178202       <string>Content</string> 
    179203      </attribute> 
    180       <layout class="QVBoxLayout" name="verticalLayout_5"
     204      <layout class="QVBoxLayout"
    181205       <item> 
    182206        <widget class="QTextEdit" name="content" /> 
    183        </item> 
    184       </layout> 
    185      </widget> 
    186      <widget class="QWidget" name="page" > 
    187       <attribute name="label" > 
    188        <string>Page</string> 
    189       </attribute> 
    190       <layout class="QGridLayout" name="gridLayout_2" > 
    191        <item row="0" column="0" > 
    192         <widget class="QWebView" name="browser" > 
    193          <property name="url" > 
    194           <url> 
    195            <string>about:blank</string> 
    196           </url> 
    197          </property> 
    198         </widget> 
    199207       </item> 
    200208      </layout> 
     
    211219  </layout> 
    212220 </widget> 
    213  <customwidgets> 
    214   <customwidget> 
    215    <class>QWebView</class> 
    216    <extends>QWidget</extends> 
    217    <header>QtWebKit/QWebView</header> 
    218   </customwidget> 
    219  </customwidgets> 
    220221 <resources/> 
    221222 <connections/> 
  • oss/jlib/examples/basic/client.py

    r741 r749  
    3737 
    3838        self.logger = jlibLogger() 
    39         self.logger.setComponent(jlibLoggerComponent()) 
     39        #self.logger.setComponent(jlibLoggerComponent()) 
    4040        QtCore.QObject.connect(self.actionShowLog, QtCore.SIGNAL("toggled(bool)"), 
    4141                               self.changeLogAreaView) 
    42         QtCore.QObject.connect(self.logger, QtCore.SIGNAL("logData(PyQt_PyObject)"), 
    43                                self.logData) 
     42        #QtCore.QObject.connect(self.logger, QtCore.SIGNAL("logData(PyQt_PyObject)"), 
     43        #                       self.logData) 
    4444 
    4545        self.toolBox.setItemText(0, "Contacts") 
     
    7575        self.connection.emit(QtCore.SIGNAL("activateChat()")) 
    7676        self.connection.emit(QtCore.SIGNAL("activatePubSub(PyQt_PyObject)"), unicode(self.options.pubsub)) 
    77         self.connection.emit(QtCore.SIGNAL("registerLinkages(PyQt_PyObject)"), self.logger) 
     77        #self.connection.emit(QtCore.SIGNAL("registerLinkages(PyQt_PyObject)"), self.logger) 
    7878        self.connection.emit(QtCore.SIGNAL("registerLinkages(PyQt_PyObject)"), self.contactUi.contact) 
    7979        self.connection.emit(QtCore.SIGNAL("registerLinkages(PyQt_PyObject)"), self.contactUi.presence) 
     
    105105            self.actionStop.setEnabled(True) 
    106106 
     107 
    107108    def clientReady(self, jid): 
     109        self.nodesUi.setPubSub(self.connection.qobj.pubsubnode) 
     110        self.subsUi.setPubSub(self.connection.qobj.pubsubnode) 
     111        self.subsUi.setDiscovery(self.connection.qobj.discovery) 
     112        self.affsUi.setPubSub(self.connection.qobj.pubsubnode) 
     113 
    108114        model = jlibNodeItemModel(parent=self.connection.qobj.discovery) 
    109         self.nodesUi.setPubSub(self.connection.qobj.pubsubnode) 
    110115        self.nodesUi.setModel(model) 
    111116         
    112         QtCore.QObject.connect(self.connection.qobj.chat, QtCore.SIGNAL("receivedMessage(PyQt_PyObject)"),  
     117        QtCore.QObject.connect(self.connection.qobj.chat,  
     118                               QtCore.SIGNAL("receivedMessage(PyQt_PyObject)"),  
    113119                               self.messageReceived) 
    114         self.nodesUi.setPubSub(self.connection.qobj.pubsubnode) 
    115120     
    116121        disco = self.connection.qobj.discovery 
     
    119124                               self.setSubscriptionsModel) 
    120125        disco.emit(QtCore.SIGNAL("discoverSubscriptions()")) 
    121          
     126        if self.options.rootnode: 
     127            disco.emit(QtCore.SIGNAL("discoverNodeInformation(PyQt_PyObject)"),  
     128                       unicode(self.options.rootnode)) 
     129 
    122130        QtCore.QObject.connect(disco, QtCore.SIGNAL("receivedFeatures(PyQt_PyObject)"), 
    123131                               self.setFeaturesModel) 
     
    141149        model = jlibSubscriptionDiscoveryModel(parent=self.connection.qobj.discovery) 
    142150        model.setSubscriptions(subscriptions) 
    143         self.subsUi.setPubSub(self.connection.qobj.pubsubnode) 
    144         self.subsUi.setDiscovery(self.connection.qobj.discovery) 
    145151        self.subsUi.setModel(model) 
    146152 
     
    153159        model = jlibAffiliationDiscoveryModel(parent=self.connection.qobj.discovery) 
    154160        model.setAffiliations(affiliations) 
    155         self.affsUi.setPubSub(self.connection.qobj.pubsubnode) 
    156161        self.affsUi.setModel(model) 
    157162 
     
    237242                      help="Jabber PubSub service name (default: pubsub.localhost)") 
    238243    parser.set_defaults(pubsub='pubsub.localhost') 
     244    parser.add_option("-r", "--pubsub-root-node", dest="rootnode", 
     245                      help="Jabber PubSub user root node") 
    239246 
    240247    args = [str(arg) for arg in QtGui.QApplication.instance().arguments()] 
  • oss/jlib/jlib/core/pubsub.py

    r747 r749  
    4343 
    4444    def getLinkages(self): 
    45         linkages = {("xmpp", "%s.query" % XMPP_DISCO_INFO_NS): ("discodisp", "features.inbox"), 
     45        linkages = {("xmpp", "%s.query" % XMPP_DISCO_INFO_NS): ("discodisp", "inbox"), 
    4646                    ("xmpp", "%s.query" % XMPP_DISCO_ITEMS_NS): ("discodisp", "items.inbox"), 
    4747                    ("xmpp", "%s.affiliations" % XMPP_PUBSUB_NS): ("discodisp", "affiliation.inbox"), 
     
    5757                    ("discodisp",'affiliation.outbox'):('xmpp','forward'), 
    5858                    ("discodisp",'out.subscription.result'): ('discohandler','subscriptions.result'), 
     59                    ("discodisp",'out.subscription.error'): ('discohandler','subscriptions.error'), 
     60                    ("discodisp",'out.info.error'): ('discohandler','information.error'), 
    5961                    ("discodisp",'out.affiliation.result'): ('discohandler','affiliations.result'), 
    6062                    ("discodisp", 'out.items.result'): ('discohandler', 'items.result'), 
     
    9597                
    9698               "subscriptions.result": "", 
     99               "subscriptions.error": "", 
    97100               "affiliations.result": "", 
    98101               "information.result": "", 
     102               "information.error": "", 
    99103               "features.result": "", 
    100104               "items.result": "", 
     
    183187                items = self.recv('items.error') 
    184188                self.qobj.emit(QtCore.SIGNAL("receivedItemsError(PyQt_PyObject)"), items) 
     189                 
     190            if self.dataReady('subscriptions.error'): 
     191                subscriptions = self.recv('subscriptions.error') 
     192                self.qobj.emit(QtCore.SIGNAL("receivedSubscriptionError(PyQt_PyObject)"), subscriptions) 
     193                 
     194            if self.dataReady('information.error'): 
     195                info = self.recv('information.error') 
     196                self.qobj.emit(QtCore.SIGNAL("receivedInformationError(PyQt_PyObject)"), info) 
    185197                 
    186198            if self.dataReady('subscriptions.result'): 
  • oss/jlib/jlib/gui/atom/entryui.py

    r745 r749  
    11# -*- coding: utf-8 -*- 
    22 
    3 # Form implementation generated from reading ui file '..\..\designer\ui\atomentryform.ui' 
     3# Form implementation generated from reading ui file 'designer/ui/atomentryform.ui' 
    44# 
    5 # Created: Fri Jul 25 17:21:10 2008 
    6 #      by: PyQt4 UI code generator 4.4.2 
     5# Created: Sat Jul 26 22:19:08 2008 
     6#      by: PyQt4 UI code generator 4.3.3 
    77# 
    88# WARNING! All changes made in this file will be lost! 
     
    1313    def setupUi(self, jlibAtomEntryForm): 
    1414        jlibAtomEntryForm.setObjectName("jlibAtomEntryForm") 
    15         jlibAtomEntryForm.resize(533,477) 
    16         self.verticalLayout_4 = QtGui.QVBoxLayout(jlibAtomEntryForm) 
    17         self.verticalLayout_4.setObjectName("verticalLayout_4") 
     15        jlibAtomEntryForm.resize(QtCore.QSize(QtCore.QRect(0,0,533,477).size()).expandedTo(jlibAtomEntryForm.minimumSizeHint())) 
     16 
     17        self.vboxlayout = QtGui.QVBoxLayout(jlibAtomEntryForm) 
     18        self.vboxlayout.setObjectName("vboxlayout") 
     19 
    1820        self.toolBox = QtGui.QToolBox(jlibAtomEntryForm) 
    1921        self.toolBox.setObjectName("toolBox") 
     22 
    2023        self.generalItem = QtGui.QWidget() 
     24        self.generalItem.setGeometry(QtCore.QRect(0,0,496,300)) 
    2125        self.generalItem.setObjectName("generalItem") 
    22         self.gridLayout = QtGui.QGridLayout(self.generalItem) 
    23         self.gridLayout.setObjectName("gridLayout") 
     26 
     27        self.gridlayout = QtGui.QGridLayout(self.generalItem) 
     28        self.gridlayout.setObjectName("gridlayout") 
     29 
    2430        self.label = QtGui.QLabel(self.generalItem) 
    2531        self.label.setObjectName("label") 
    26         self.gridLayout.addWidget(self.label,0,0,1,1) 
     32        self.gridlayout.addWidget(self.label,0,0,1,1) 
     33 
    2734        self.atomID = QtGui.QLineEdit(self.generalItem) 
    2835        self.atomID.setObjectName("atomID") 
    29         self.gridLayout.addWidget(self.atomID,0,1,1,2) 
     36        self.gridlayout.addWidget(self.atomID,0,1,1,2) 
     37 
    3038        self.withUuid = QtGui.QCheckBox(self.generalItem) 
    3139        self.withUuid.setObjectName("withUuid") 
    32         self.gridLayout.addWidget(self.withUuid,0,3,1,1) 
     40        self.gridlayout.addWidget(self.withUuid,0,3,1,1) 
     41 
    3342        self.label_2 = QtGui.QLabel(self.generalItem) 
    3443        self.label_2.setObjectName("label_2") 
    35         self.gridLayout.addWidget(self.label_2,1,0,1,1) 
     44        self.gridlayout.addWidget(self.label_2,1,0,1,1) 
     45 
    3646        self.title = QtGui.QLineEdit(self.generalItem) 
    3747        self.title.setObjectName("title") 
    38         self.gridLayout.addWidget(self.title,1,1,1,3) 
     48        self.gridlayout.addWidget(self.title,1,1,1,3) 
     49 
    3950        self.label_4 = QtGui.QLabel(self.generalItem) 
    4051        self.label_4.setObjectName("label_4") 
    41         self.gridLayout.addWidget(self.label_4,2,0,1,1) 
     52        self.gridlayout.addWidget(self.label_4,2,0,1,1) 
     53 
    4254        self.subtitle = QtGui.QLineEdit(self.generalItem) 
    4355        self.subtitle.setObjectName("subtitle") 
    44         self.gridLayout.addWidget(self.subtitle,2,1,1,3) 
     56        self.gridlayout.addWidget(self.subtitle,2,1,1,3) 
     57 
    4558        self.label_3 = QtGui.QLabel(self.generalItem) 
    4659        self.label_3.setObjectName("label_3") 
    47         self.gridLayout.addWidget(self.label_3,3,0,1,1) 
     60        self.gridlayout.addWidget(self.label_3,3,0,1,1) 
     61 
    4862        self.publication = QtGui.QDateTimeEdit(self.generalItem) 
    4963        self.publication.setObjectName("publication") 
    50         self.gridLayout.addWidget(self.publication,3,1,1,1) 
     64        self.gridlayout.addWidget(self.publication,3,1,1,1) 
     65 
    5166        spacerItem = QtGui.QSpacerItem(259,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum) 
    52         self.gridLayout.addItem(spacerItem,3,2,2,2) 
     67        self.gridlayout.addItem(spacerItem,3,2,2,2) 
     68 
    5369        self.label_6 = QtGui.QLabel(self.generalItem) 
    5470        self.label_6.setObjectName("label_6") 
    55         self.gridLayout.addWidget(self.label_6,4,0,1,1) 
     71        self.gridlayout.addWidget(self.label_6,4,0,1,1) 
     72 
    5673        self.edition = QtGui.QDateTimeEdit(self.generalItem) 
    5774        self.edition.setObjectName("edition") 
    58         self.gridLayout.addWidget(self.edition,4,1,1,1) 
     75        self.gridlayout.addWidget(self.edition,4,1,1,1) 
     76 
    5977        self.label_7 = QtGui.QLabel(self.generalItem) 
    6078        self.label_7.setObjectName("label_7") 
    61         self.gridLayout.addWidget(self.label_7,5,0,1,1) 
     79        self.gridlayout.addWidget(self.label_7,5,0,1,1) 
     80 
    6281        self.rights = QtGui.QLineEdit(self.generalItem) 
    6382        self.rights.setObjectName("rights") 
    64         self.gridLayout.addWidget(self.rights,5,1,1,3) 
     83        self.gridlayout.addWidget(self.rights,5,1,1,3) 
     84 
    6585        self.label_5 = QtGui.QLabel(self.generalItem) 
    6686        self.label_5.setObjectName("label_5") 
    67         self.gridLayout.addWidget(self.label_5,6,0,1,1) 
     87        self.gridlayout.addWidget(self.label_5,6,0,1,1) 
     88 
    6889        self.summary = QtGui.QTextEdit(self.generalItem) 
    6990        self.summary.setObjectName("summary") 
    70         self.gridLayout.addWidget(self.summary,7,0,1,4) 
     91        self.gridlayout.addWidget(self.summary,7,0,1,4) 
    7192        self.toolBox.addItem(self.generalItem,"") 
     93 
    7294        self.authorItem = QtGui.QWidget() 
    73         self.authorItem.setGeometry(QtCore.QRect(0,0,497,243)) 
     95        self.authorItem.setGeometry(QtCore.QRect(0,0,94,68)) 
    7496        self.authorItem.setObjectName("authorItem") 
    75         self.verticalLayout = QtGui.QVBoxLayout(self.authorItem) 
    76         self.verticalLayout.setObjectName("verticalLayout") 
     97 
     98        self.vboxlayout1 = QtGui.QVBoxLayout(self.authorItem) 
     99        self.vboxlayout1.setObjectName("vboxlayout1") 
     100 
    77101        self.authors = QtGui.QTableView(self.authorItem) 
    78102        self.authors.setAlternatingRowColors(True) 
    79103        self.authors.setObjectName("authors") 
    80         self.verticalLayout.addWidget(self.authors) 
     104        self.vboxlayout1.addWidget(self.authors) 
    81105        self.toolBox.addItem(self.authorItem,"") 
     106 
    82107        self.linkItem = QtGui.QWidget() 
    83         self.linkItem.setGeometry(QtCore.QRect(0,0,497,243)) 
     108        self.linkItem.setGeometry(QtCore.QRect(0,0,94,68)) 
    84109        self.linkItem.setObjectName("linkItem") 
    85         self.verticalLayout_2 = QtGui.QVBoxLayout(self.linkItem) 
    86         self.verticalLayout_2.setObjectName("verticalLayout_2") 
     110 
     111        self.vboxlayout2 = QtGui.QVBoxLayout(self.linkItem) 
     112        self.vboxlayout2.setObjectName("vboxlayout2") 
     113 
    87114        self.links = QtGui.QTableView(self.linkItem) 
    88115        self.links.setAlternatingRowColors(True) 
    89116        self.links.setObjectName("links") 
    90         self.verticalLayout_2.addWidget(self.links) 
     117        self.vboxlayout2.addWidget(self.links) 
    91118        self.toolBox.addItem(self.linkItem,"") 
     119 
    92120        self.categoryItem = QtGui.QWidget() 
     121        self.categoryItem.setGeometry(QtCore.QRect(0,0,94,68)) 
    93122        self.categoryItem.setObjectName("categoryItem") 
    94         self.verticalLayout_3 = QtGui.QVBoxLayout(self.categoryItem) 
    95         self.verticalLayout_3.setObjectName("verticalLayout_3") 
     123 
     124        self.vboxlayout3 = QtGui.QVBoxLayout(self.categoryItem) 
     125        self.vboxlayout3.setObjectName("vboxlayout3") 
     126 
    96127        self.categories = QtGui.QTableView(self.categoryItem) 
    97128        self.categories.setAlternatingRowColors(True) 
    98129        self.categories.setObjectName("categories") 
    99         self.verticalLayout_3.addWidget(self.categories) 
     130        self.vboxlayout3.addWidget(self.categories) 
    100131        self.toolBox.addItem(self.categoryItem,"") 
     132 
    101133        self.contentItem = QtGui.QWidget() 
     134        self.contentItem.setGeometry(QtCore.QRect(0,0,94,68)) 
    102135        self.contentItem.setObjectName("contentItem") 
    103         self.verticalLayout_5 = QtGui.QVBoxLayout(self.contentItem) 
    104         self.verticalLayout_5.setObjectName("verticalLayout_5") 
     136 
     137        self.vboxlayout4 = QtGui.QVBoxLayout(self.contentItem) 
     138        self.vboxlayout4.setObjectName("vboxlayout4") 
     139 
    105140        self.content = QtGui.QTextEdit(self.contentItem) 
    106141        self.content.setObjectName("content") 
    107         self.verticalLayout_5.addWidget(self.content) 
     142        self.vboxlayout4.addWidget(self.content) 
    108143        self.toolBox.addItem(self.contentItem,"") 
    109         self.page = QtGui.QWidget() 
    110         self.page.setObjectName("page") 
    111         self.gridLayout_2 = QtGui.QGridLayout(self.page) 
    112         self.gridLayout_2.setObjectName("gridLayout_2") 
    113         self.browser = QtWebKit.QWebView(self.page) 
    114         self.browser.setUrl(QtCore.QUrl("about:blank")) 
    115         self.browser.setObjectName("browser") 
    116         self.gridLayout_2.addWidget(self.browser,0,0,1,1) 
    117         self.toolBox.addItem(self.page,"") 
    118         self.verticalLayout_4.addWidget(self.toolBox) 
     144        self.vboxlayout.addWidget(self.toolBox) 
     145 
    119146        self.buttonBox = QtGui.QDialogButtonBox(jlibAtomEntryForm) 
    120147        self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Save) 
    121148        self.buttonBox.setObjectName("buttonBox") 
    122         self.verticalLayout_4.addWidget(self.buttonBox) 
     149        self.vboxlayout.addWidget(self.buttonBox) 
    123150 
    124151        self.retranslateUi(jlibAtomEntryForm) 
    125         self.toolBox.setCurrentIndex(5
     152        self.toolBox.setCurrentIndex(0
    126153        QtCore.QMetaObject.connectSlotsByName(jlibAtomEntryForm) 
    127154 
     
    141168        self.toolBox.setItemText(self.toolBox.indexOf(self.categoryItem), QtGui.QApplication.translate("jlibAtomEntryForm", "Categories", None, QtGui.QApplication.UnicodeUTF8)) 
    142169        self.toolBox.setItemText(self.toolBox.indexOf(self.contentItem), QtGui.QApplication.translate("jlibAtomEntryForm", "Content", None, QtGui.QApplication.UnicodeUTF8)) 
    143         self.toolBox.setItemText(self.toolBox.indexOf(self.page), QtGui.QApplication.translate("jlibAtomEntryForm", "Page", None, QtGui.QApplication.UnicodeUTF8)) 
    144170 
    145 from PyQt4 import QtWebKit 
  • oss/jlib/jlib/gui/pubsub/subscription.py

    r747 r749  
    44from jlib.gui.pubsub.subscriptionsui import Ui_jlibPubSubSubscription 
    55from jlib.gui.pubsub.subscribenodedialog import jlibSubscribeNodeDialog 
     6from jlib.gui.pubsub.createnodedialog import jlibCreateNodeDialog 
    67 
    78__all__ = ['jlibPubSubSubscriptionWidget'] 
     
    2425    def setDiscovery(self, discovery): 
    2526        self.discovery = discovery 
     27        QtCore.QObject.connect(self.discovery, QtCore.SIGNAL("receivedSubscriptionError(PyQt_PyObject)"), 
     28                               self.handleSubscriptionError) 
     29        QtCore.QObject.connect(self.discovery, QtCore.SIGNAL("receivedInformationError(PyQt_PyObject)"), 
     30                               self.handleInformationError) 
     31 
     32    def handleSubscriptionError(self, subscription): 
     33        QtGui.QMessageBox.warning(self, "Error", repr(subscription.error), QtGui.QMessageBox.Ok) 
     34 
     35    def handleInformationError(self, information): 
     36        if int(information.error.code) == 404: 
     37            ui = jlibCreateNodeDialog() 
     38            ui.show() 
     39            ui.nodeName.setText(information.node_name) 
     40            if ui.exec_() == QtGui.QDialog.Accepted: 
     41                self.pubsub.emit(QtCore.SIGNAL("createNode(PyQt_PyObject)"), unicode(ui.nodeName.text())) 
     42        else: 
     43            QtGui.QMessageBox.warning(self, "Error", repr(information.error), QtGui.QMessageBox.Ok) 
    2644 
    2745    def subscribeNode(self):