aboutsummaryrefslogtreecommitdiff
path: root/libqmenumodel/src/unitymenuaction.cpp
diff options
context:
space:
mode:
authorNick Dedekind <nicholas.dedekind@gmail.com>2013-08-22 12:56:43 +0100
committerNick Dedekind <nicholas.dedekind@gmail.com>2013-08-22 12:56:43 +0100
commitc2746565786204a732ff5531434bf636f8df605c (patch)
tree928b3caf70d57782917024efeb53d5f3accb4794 /libqmenumodel/src/unitymenuaction.cpp
parentd912a0aed3c62b8f615c37fd9406583b9f0a6a36 (diff)
downloadqmenumodel-c2746565786204a732ff5531434bf636f8df605c.tar.gz
qmenumodel-c2746565786204a732ff5531434bf636f8df605c.tar.bz2
qmenumodel-c2746565786204a732ff5531434bf636f8df605c.zip
Using qt event loop to pass UnityMenuAction events
Diffstat (limited to 'libqmenumodel/src/unitymenuaction.cpp')
-rw-r--r--libqmenumodel/src/unitymenuaction.cpp71
1 files changed, 42 insertions, 29 deletions
diff --git a/libqmenumodel/src/unitymenuaction.cpp b/libqmenumodel/src/unitymenuaction.cpp
index c2c7034..b41fd3e 100644
--- a/libqmenumodel/src/unitymenuaction.cpp
+++ b/libqmenumodel/src/unitymenuaction.cpp
@@ -18,6 +18,7 @@
#include "unitymenuaction.h"
#include "unitymenumodel.h"
+#include "unitymenuactionevents.h"
#include <QDebug>
@@ -71,41 +72,20 @@ QVariant UnityMenuAction::state() const
return m_state;
}
-bool UnityMenuAction::isEnabled() const
+void UnityMenuAction::setState(const QVariant& state)
{
- return m_enabled;
-}
-
-bool UnityMenuAction::isValid() const
-{
- return m_valid;
-}
-
-void UnityMenuAction::onAdded(bool enabled, const QVariant &state)
-{
- if (m_enabled != enabled) {
- m_enabled = enabled;
- Q_EMIT enabledChanged(m_enabled);
- }
if (m_state != state) {
m_state = state;
Q_EMIT stateChanged(m_state);
}
- if (m_valid != true) {
- m_valid = true;
- Q_EMIT validChanged(m_valid);
- }
}
-void UnityMenuAction::onRemoved()
+bool UnityMenuAction::isEnabled() const
{
- if (m_valid != false) {
- m_valid = false;
- Q_EMIT validChanged(m_valid);
- }
+ return m_enabled;
}
-void UnityMenuAction::onEnabledChanged(bool enabled)
+void UnityMenuAction::setEnabled(bool enabled)
{
if (m_enabled != enabled) {
m_enabled = enabled;
@@ -113,11 +93,16 @@ void UnityMenuAction::onEnabledChanged(bool enabled)
}
}
-void UnityMenuAction::onStateChanged(const QVariant &state)
+bool UnityMenuAction::isValid() const
{
- if (m_state != state) {
- m_state = state;
- Q_EMIT stateChanged(m_state);
+ return m_valid;
+}
+
+void UnityMenuAction::setValid(bool valid)
+{
+ if (m_valid != valid) {
+ m_valid = valid;
+ Q_EMIT validChanged(m_valid);
}
}
@@ -134,3 +119,31 @@ void UnityMenuAction::unregisterAction()
m_model->unregisterAction(this);
}
}
+
+bool UnityMenuAction::event(QEvent* e)
+{
+ if (e->type() == UnityMenuActionAddEvent::eventType) {
+ UnityMenuActionAddEvent *umaae = static_cast<UnityMenuActionAddEvent*>(e);
+
+ setEnabled(umaae->enabled);
+ setState(umaae->state);
+ setValid(true);
+ return true;
+ } else if (e->type() == UnityMenuActionEnabledChangedEvent::eventType) {
+ UnityMenuActionEnabledChangedEvent *umaece = static_cast<UnityMenuActionEnabledChangedEvent*>(e);
+
+ setEnabled(umaece->enabled);
+ return true;
+ } else if (e->type() == UnityMenuActionStateChangeEvent::eventType) {
+ UnityMenuActionStateChangeEvent *umasce = static_cast<UnityMenuActionStateChangeEvent*>(e);
+
+ setState(umasce->state);
+ return true;
+ } else if (e->type() == UnityMenuActionRemoveEvent::eventType) {
+ UnityMenuActionRemoveEvent *umare = static_cast<UnityMenuActionRemoveEvent*>(e);
+
+ setValid(false);
+ return true;
+ }
+ return QObject::event(e);
+}