src/dbus/qdbusinterface.cpp
changeset 3 41300fa6a67c
parent 0 1918ee327afb
child 4 3b1da2848fc7
equal deleted inserted replaced
2:56cd8111b7f7 3:41300fa6a67c
    39 **
    39 **
    40 ****************************************************************************/
    40 ****************************************************************************/
    41 
    41 
    42 #include "qdbusinterface.h"
    42 #include "qdbusinterface.h"
    43 
    43 
    44 #include <qdbus_symbols_p.h>
    44 #include "qdbus_symbols_p.h"
    45 #include <QtCore/qpointer.h>
    45 #include <QtCore/qpointer.h>
    46 #include <QtCore/qstringlist.h>
    46 #include <QtCore/qstringlist.h>
    47 
    47 
    48 #include "qdbusmetatype_p.h"
    48 #include "qdbusmetatype_p.h"
    49 #include "qdbusinterface_p.h"
    49 #include "qdbusinterface_p.h"
   155     if (connection.isConnected()) {
   155     if (connection.isConnected()) {
   156         metaObject = connectionPrivate()->findMetaObject(service, path, interface, lastError);
   156         metaObject = connectionPrivate()->findMetaObject(service, path, interface, lastError);
   157 
   157 
   158         if (!metaObject) {
   158         if (!metaObject) {
   159             // creation failed, somehow
   159             // creation failed, somehow
   160             isValid = false;
   160             // most common causes are that the service doesn't exist or doesn't support introspection
       
   161             // those are not fatal errors, so we continue working
       
   162 
   161             if (!lastError.isValid())
   163             if (!lastError.isValid())
   162                 lastError = QDBusError(QDBusError::InternalError, QLatin1String("Unknown error"));
   164                 lastError = QDBusError(QDBusError::InternalError, QLatin1String("Unknown error"));
   163         }
   165         }
   164     }
   166     }
   165 }
   167 }
   230     \internal
   232     \internal
   231     Overrides QObject::metaObject to return our own copy.
   233     Overrides QObject::metaObject to return our own copy.
   232 */
   234 */
   233 const QMetaObject *QDBusInterface::metaObject() const
   235 const QMetaObject *QDBusInterface::metaObject() const
   234 {
   236 {
   235     return d_func()->isValid ? d_func()->metaObject : &QDBusAbstractInterface::staticMetaObject;
   237     return d_func()->metaObject ? d_func()->metaObject : &QDBusAbstractInterface::staticMetaObject;
   236 }
   238 }
   237 
   239 
   238 /*!
   240 /*!
   239     \internal
   241     \internal
   240     Override QObject::qt_metacast to catch the interface name too.
   242     Override QObject::qt_metacast to catch the interface name too.