aboutsummaryrefslogtreecommitdiff
path: root/src/common/qdbusmenumodel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/qdbusmenumodel.cpp')
-rw-r--r--src/common/qdbusmenumodel.cpp66
1 files changed, 66 insertions, 0 deletions
diff --git a/src/common/qdbusmenumodel.cpp b/src/common/qdbusmenumodel.cpp
new file mode 100644
index 0000000..6e35c85
--- /dev/null
+++ b/src/common/qdbusmenumodel.cpp
@@ -0,0 +1,66 @@
+#include "qdbusmenumodel.h"
+#include <QDebug>
+
+QDBusMenuModel::QDBusMenuModel(QObject *parent)
+ :QMenuModel(0, parent)
+{
+}
+
+QDBusMenuModel::~QDBusMenuModel()
+{
+}
+
+void QDBusMenuModel::start()
+{
+ QDBusObject::connect();
+}
+
+void QDBusMenuModel::stop()
+{
+ QDBusObject::disconnect();
+}
+
+void QDBusMenuModel::serviceVanish(GDBusConnection *)
+{
+ setMenuModel(NULL);
+}
+
+void QDBusMenuModel::serviceAppear(GDBusConnection *connection)
+{
+ GMenuModel *model = reinterpret_cast<GMenuModel*>(g_dbus_menu_model_get(connection,
+ busName().toLatin1(),
+ objectPath().toLatin1()));
+ setMenuModel(model);
+ if (model == NULL) {
+ stop();
+ }
+}
+
+/*
+void QDBusMenuModel::busTypeChanged(BusType)
+{
+ busTypeChanged();
+}
+
+void QDBusMenuModel::busNameChanged(const QString &)
+{
+ busNameChanged();
+}
+
+void QDBusMenuModel::objectPathChanged(const QString &objectPath)
+{
+ objectPathChanged();
+}
+
+void QDBusMenuModel::statusChanged(ConnectionStatus status)
+{
+ statusChanged();
+}
+*/
+
+void QDBusMenuModel::setIntBusType(int busType)
+{
+ if ((busType > None) && (busType < LastBusType)) {
+ setBusType(static_cast<BusType>(busType));
+ }
+}