diff options
author | Renato Araujo Oliveira Filho <renato.filho@canonical.com> | 2012-09-06 16:43:27 -0300 |
---|---|---|
committer | Renato Araujo Oliveira Filho <renato.filho@canonical.com> | 2012-09-06 16:43:27 -0300 |
commit | 31f8103187d2e27b1bb76eaed10dc9c9be226c90 (patch) | |
tree | 5b0d6a0a6bf07aaf213c482c61860a2784cd678f /src/QMenuModel/qdbusobject.h | |
parent | 0dfd3d4cd4214a732e4a5cda59fd4dfc082b8425 (diff) | |
download | qmenumodel-31f8103187d2e27b1bb76eaed10dc9c9be226c90.tar.gz qmenumodel-31f8103187d2e27b1bb76eaed10dc9c9be226c90.tar.bz2 qmenumodel-31f8103187d2e27b1bb76eaed10dc9c9be226c90.zip |
Implemented QDBusActionGroup.
Diffstat (limited to 'src/QMenuModel/qdbusobject.h')
-rw-r--r-- | src/QMenuModel/qdbusobject.h | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/QMenuModel/qdbusobject.h b/src/QMenuModel/qdbusobject.h new file mode 100644 index 0000000..0b17ae1 --- /dev/null +++ b/src/QMenuModel/qdbusobject.h @@ -0,0 +1,65 @@ +#ifndef QDBUSOBJECT_H +#define QDBUSOBJECT_H + +#include <QObject> + +#include <gio/gio.h> + +class QDbusObject +{ +public: + enum BusType { + None = 0, + SessionBus, + SystemBus, + LastBusType + }; + + enum ConnectionStatus { + Disconnected = 0, + Connecting, + Connected + }; + + QDbusObject(); + ~QDbusObject(); + + BusType busType() const; + void setBusType(BusType type); + + QString busName() const; + void setBusName(const QString &busName); + + QString objectPath() const; + void setObjectPath(const QString &busName); + + ConnectionStatus status() const; + + void connect(); + void disconnect(); + +protected: + virtual void serviceAppear(GDBusConnection *connection) = 0; + virtual void serviceVanish(GDBusConnection *connection) = 0; + + // notify functions + virtual void busTypeChanged(BusType type) = 0; + virtual void busNameChanged(const QString &busNameChanged) = 0; + virtual void objectPathChanged(const QString &objectPath) = 0; + virtual void statusChanged(ConnectionStatus status) = 0; + +private: + guint m_watchId; + BusType m_busType; + QString m_busName; + QString m_objectPath; + ConnectionStatus m_status; + + void setStatus(ConnectionStatus status); + + // glib slots + static void onServiceAppeared(GDBusConnection *connection, const gchar *name, const gchar *name_owner, gpointer data); + static void onServiceFanished(GDBusConnection *connection, const gchar *name, gpointer data); +}; + +#endif |