9 #include <tqstringlist.h>
12 #include <tqdbusdata.h>
13 #include <tqdbusdatalist.h>
14 #include <tqdbusdatamap.h>
15 #include <tqdbuserror.h>
16 #include <tqdbusmessage.h>
17 #include <tqdbusproxy.h>
18 #include <tqdbusvariant.h>
29 : TQObject(parent, name),
30 m_baseProxy(new TQT_DBusProxy())
32 m_baseProxy->setInterface(
"org.freedesktop.DBus.Properties");
33 m_baseProxy->setPath(path);
34 m_baseProxy->setService(service);
36 TQObject::connect(m_baseProxy, TQ_SIGNAL(dbusSignal(
const TQT_DBusMessage&)),
37 this, TQ_SLOT(slotHandleDBusSignal(
const TQT_DBusMessage&)));
40 PropertiesProxy::~PropertiesProxy()
45 void PropertiesProxy::setConnection(
const TQT_DBusConnection& connection)
47 m_baseProxy->setConnection(connection);
50 bool PropertiesProxy::Get(
const TQString& interface,
const TQString& name, TQT_DBusVariant& value, TQT_DBusError& error)
52 TQValueList<TQT_DBusData> parameters;
54 parameters << TQT_DBusData::fromString(interface);
55 parameters << TQT_DBusData::fromString(name);
57 TQT_DBusMessage reply = m_baseProxy->sendWithReply(
"Get", parameters, &error);
59 if (reply.type() != TQT_DBusMessage::ReplyMessage)
return false;
61 if (reply.count() != 1)
return false;
65 value = reply.front().toVariant(&ok);
66 if (!ok)
return false;
71 bool PropertiesProxy::Set(
const TQString& interface,
const TQString& name,
const TQT_DBusVariant& value, TQT_DBusError& error)
73 TQValueList<TQT_DBusData> parameters;
75 parameters << TQT_DBusData::fromString(interface);
76 parameters << TQT_DBusData::fromString(name);
77 parameters << TQT_DBusData::fromVariant(value);
79 TQT_DBusMessage reply = m_baseProxy->sendWithReply(
"Set", parameters, &error);
81 if (reply.type() != TQT_DBusMessage::ReplyMessage)
return false;
87 TQValueList<TQT_DBusData> parameters;
89 parameters << TQT_DBusData::fromString(interface);
91 TQT_DBusMessage reply = m_baseProxy->sendWithReply(
"GetAll", parameters, &error);
93 if (reply.type() != TQT_DBusMessage::ReplyMessage)
return false;
95 if (reply.count() != 1)
return false;
101 properties = reply.front().toStringKeyMap(&ok).toVariantMap(&subOK);
102 if (!subOK)
return false;
103 if (!ok)
return false;
108 void PropertiesProxy::slotHandleDBusSignal(
const TQT_DBusMessage& message)
110 if (message.member() ==
"PropertiesChanged")
112 TQString _interface = message[0].toString();
114 TQStringList _invalidated_properties = message[2].toList().toTQStringList();
116 emit PropertiesChanged(_interface, _changed_properties, _invalidated_properties);
126 #include "propertiesProxy.moc"
PropertiesProxy(const TQString &service, const TQString &path, TQObject *parent=0, const char *name=0)