equal
deleted
inserted
replaced
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. |