summaryrefslogtreecommitdiffstats
path: root/qt/qdbusinterface.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qt/qdbusinterface.cpp')
-rw-r--r--qt/qdbusinterface.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/qt/qdbusinterface.cpp b/qt/qdbusinterface.cpp
index e0d1049c..ff8fdc95 100644
--- a/qt/qdbusinterface.cpp
+++ b/qt/qdbusinterface.cpp
@@ -63,7 +63,7 @@ QDBusInterface::~QDBusInterface()
*/
const QMetaObject *QDBusInterface::metaObject() const
{
- return d_func()->metaObject;
+ return d_func()->isValid ? d_func()->metaObject : &QDBusAbstractInterface::staticMetaObject;
}
/*!
@@ -87,7 +87,7 @@ void *QDBusInterface::qt_metacast(const char *_clname)
int QDBusInterface::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QDBusAbstractInterface::qt_metacall(_c, _id, _a);
- if (_id < 0)
+ if (_id < 0 || !d_func()->isValid)
return _id;
return d_func()->metacall(_c, _id, _a);
}
@@ -238,3 +238,14 @@ int QDBusInterfacePrivate::metacall(QMetaObject::Call c, int id, void **argv)
return id;
}
+QDBusRef::QDBusRef(QDBusConnection &conn, const QString &service, const QString &path,
+ const QString &interface)
+ : d(conn.findInterface(service, path, interface))
+{
+}
+
+QDBusRef::QDBusRef(const QString &service, const QString &path, const QString &interface)
+ : d(QDBus::sessionBus().findInterface(service, path, interface))
+{
+}
+