diff options
author | Nick Dedekind <nicholas.dedekind@gmail.com> | 2013-08-27 17:47:45 +0100 |
---|---|---|
committer | Nick Dedekind <nicholas.dedekind@gmail.com> | 2013-08-27 17:47:45 +0100 |
commit | 8cc3f9af6063a7256936da9813b6917023b1f626 (patch) | |
tree | da44d4e1d373a7045e6c881df6c52908cc2c75dc /libqmenumodel/src/qdbusmenumodel.cpp | |
parent | ebace67d14edcd8e0e4d3d1ebe5e54e2b59270b3 (diff) | |
parent | 8977be59b11dfd6b5117ed85c962b792c3e7cf77 (diff) | |
download | qmenumodel-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.cpp | 27 |
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); } |