--- /dev/null
+#include "dbusclient.h"
+
+#ifdef Q_WS_MAEMO_5
+#include <QDebug>
+#include <QDBusReply>
+#include <icd/dbus_api.h>
+
+QDBusConnection DBusClient::system_bus(QDBusConnection::systemBus());
+QDBusConnection DBusClient::session_bus(QDBusConnection::sessionBus());
+QDBusInterface* DBusClient::icd_interface = new QDBusInterface(ICD_DBUS_API_INTERFACE,
+ ICD_DBUS_API_PATH,
+ ICD_DBUS_API_INTERFACE,
+ system_bus);
+QDBusInterface* DBusClient::gl_interface = new QDBusInterface("com.linfati.GoogleLatitude",
+ "/",
+ "com.linfati.GoogleLatitude",
+ session_bus);
+
+DBusClient::DBusClient(QObject *parent) :
+ QObject(parent)
+{
+ QDBusConnection::systemBus().connect(ICD_DBUS_API_INTERFACE,
+ ICD_DBUS_API_PATH,
+ ICD_DBUS_API_INTERFACE,
+ ICD_DBUS_API_CONNECT_SIG,
+ this,
+ SLOT(networkStateChanged()));
+}
+
+bool DBusClient::daemonRunning()
+{
+ return ((QDBusReply<bool>)gl_interface->call("running")).value();
+}
+
+bool DBusClient::networkConnected()
+{
+ QDBusReply<uint> reply = icd_interface->call(ICD_DBUS_API_STATE_REQ);
+
+ return (reply.value() > 0) ? true : false;
+}
+
+void DBusClient::networkStateChanged()
+{
+ networkConnected() ? emit sigNetworkConnected() : sigNetworkDisconnected();
+}
+
+
+void DBusClient::quitDaemon()
+{
+ gl_interface->call("quit");
+}
+
+void DBusClient::reloadDaemonConfig()
+{
+ gl_interface->call("reparseConfiguration");
+}
+
+void DBusClient::showWindow()
+{
+ gl_interface->call("show");
+}
+#endif