aboutsummaryrefslogtreecommitdiff
path: root/libqmenumodel/src/qdbusmenumodel.cpp
diff options
context:
space:
mode:
authorNick Dedekind <nicholas.dedekind@gmail.com>2013-08-27 17:47:45 +0100
committerNick Dedekind <nicholas.dedekind@gmail.com>2013-08-27 17:47:45 +0100
commit8cc3f9af6063a7256936da9813b6917023b1f626 (patch)
treeda44d4e1d373a7045e6c881df6c52908cc2c75dc /libqmenumodel/src/qdbusmenumodel.cpp
parentebace67d14edcd8e0e4d3d1ebe5e54e2b59270b3 (diff)
parent8977be59b11dfd6b5117ed85c962b792c3e7cf77 (diff)
downloadqmenumodel-8cc3f9af6063a7256936da9813b6917023b1f626.tar.gz
qmenumodel-8cc3f9af6063a7256936da9813b6917023b1f626.tar.bz2
qmenumodel-8cc3f9af6063a7256936da9813b6917023b1f626.zip
merged with trunk
Diffstat (limited to 'libqmenumodel/src/qdbusmenumodel.cpp')
-rw-r--r--libqmenumodel/src/qdbusmenumodel.cpp27
1 files changed, 22 insertions, 5 deletions
diff --git a/libqmenumodel/src/qdbusmenumodel.cpp b/libqmenumodel/src/qdbusmenumodel.cpp
index 284b08b..f8b4a51 100644
--- a/libqmenumodel/src/qdbusmenumodel.cpp
+++ b/libqmenumodel/src/qdbusmenumodel.cpp
@@ -22,6 +22,9 @@ extern "C" {
}
#include "qdbusmenumodel.h"
+#include "qmenumodelevents.h"
+
+#include <QCoreApplication>
/*!
\qmltype QDBusMenuModel
@@ -49,7 +52,8 @@ extern "C" {
\endcode
*/
QDBusMenuModel::QDBusMenuModel(QObject *parent)
- : QMenuModel(0, parent)
+ : QMenuModel(0, parent),
+ QDBusObject(this)
{
}
@@ -83,13 +87,24 @@ void QDBusMenuModel::start()
void QDBusMenuModel::stop()
{
QDBusObject::disconnect();
- setMenuModel(NULL);
+
+ MenuModelEvent mme(NULL);
+ QCoreApplication::sendEvent(this, &mme);
+}
+
+bool QDBusMenuModel::event(QEvent* e)
+{
+ if (QDBusObject::event(e)) {
+ return true;
+ }
+ return QMenuModel::event(e);
}
/*! \internal */
void QDBusMenuModel::serviceVanish(GDBusConnection *)
{
- setMenuModel(NULL);
+ MenuModelEvent mme(NULL);
+ QCoreApplication::sendEvent(this, &mme);
}
/*! \internal */
@@ -98,8 +113,10 @@ void QDBusMenuModel::serviceAppear(GDBusConnection *connection)
GMenuModel *model = G_MENU_MODEL(g_dbus_menu_model_get(connection,
busName().toUtf8().data(),
objectPath().toUtf8().data()));
- setMenuModel(model);
- //setModel take care of the ref
+
+ MenuModelEvent mme(model);
+ QCoreApplication::sendEvent(this, &mme);
+ //event handling takes care of the ref
g_object_unref(model);
}