aboutsummaryrefslogtreecommitdiff
path: root/src/QMenuModel/qdbusactiongroup.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/QMenuModel/qdbusactiongroup.cpp')
-rw-r--r--src/QMenuModel/qdbusactiongroup.cpp193
1 files changed, 0 insertions, 193 deletions
diff --git a/src/QMenuModel/qdbusactiongroup.cpp b/src/QMenuModel/qdbusactiongroup.cpp
deleted file mode 100644
index ca430fb..0000000
--- a/src/QMenuModel/qdbusactiongroup.cpp
+++ /dev/null
@@ -1,193 +0,0 @@
-#include "qdbusactiongroup.h"
-
-#include <QDebug>
-
-#include <gio/gio.h>
-
-QDBusActionGroup::QDBusActionGroup(QObject *parent)
- :QObject(parent),
- m_actionGroup(NULL)
-{
-}
-
-QDBusActionGroup::~QDBusActionGroup()
-{
- clear();
-}
-
-QAction *QDBusActionGroup::getAction(const QString &actionName)
-{
- Q_FOREACH(QAction *act, m_actions) {
- if (act->text() == actionName) {
- return act;
- }
- }
-
- return NULL;
-}
-
-void QDBusActionGroup::serviceVanish(GDBusConnection *)
-{
- clear();
-}
-
-void QDBusActionGroup::serviceAppear(GDBusConnection *connection)
-{
- GDBusActionGroup *ag = g_dbus_action_group_get(connection,
- busName().toLatin1(),
- objectPath().toLatin1());
- setActionGroup(ag);
- if (ag == NULL) {
- stop();
- }
-}
-
-void QDBusActionGroup::start()
-{
- QDbusObject::connect();
-}
-
-void QDBusActionGroup::stop()
-{
- QDbusObject::disconnect();
-}
-
-void QDBusActionGroup::busTypeChanged(BusType)
-{
- busTypeChanged();
-}
-
-void QDBusActionGroup::busNameChanged(const QString &)
-{
- busNameChanged();
-}
-
-void QDBusActionGroup::objectPathChanged(const QString &objectPath)
-{
- objectPathChanged();
-}
-
-void QDBusActionGroup::statusChanged(ConnectionStatus status)
-{
- statusChanged();
-}
-
-void QDBusActionGroup::setIntBusType(int busType)
-{
- if ((busType > None) && (busType < LastBusType)) {
- setBusType(static_cast<BusType>(busType));
- }
-}
-
-void QDBusActionGroup::setActionGroup(GDBusActionGroup *ag)
-{
- if (m_actionGroup == reinterpret_cast<GActionGroup*>(ag)) {
- return;
- }
-
- if (m_actionGroup) {
- g_signal_handler_disconnect(m_actionGroup, m_signalActionAddId);
- g_signal_handler_disconnect(m_actionGroup, m_signalActionRemovedId);
- m_signalActionAddId = m_signalActionRemovedId = 0;
- g_object_unref(m_actionGroup);
- }
-
- m_actionGroup = reinterpret_cast<GActionGroup*>(ag);
-
- if (m_actionGroup) {
-
- m_signalActionAddId = g_signal_connect(m_actionGroup,
- "action-add",
- G_CALLBACK(QDBusActionGroup::onActionAdded),
- this);
-
- m_signalActionRemovedId = g_signal_connect(m_actionGroup,
- "action-removed",
- G_CALLBACK(QDBusActionGroup::onActionRemoved),
- this);
-
- gchar **actionNames = g_action_group_list_actions(m_actionGroup);
- for(int i=0; actionNames[i] != NULL; i++) {
- addAction(actionNames[i]);
- }
- g_strfreev(actionNames);
- }
-}
-
-void QDBusActionGroup::addAction(const char *actionName)
-{
- QAction *act = new QAction(actionName, this);
-
- act->setEnabled(g_action_group_get_action_enabled(m_actionGroup, actionName));
-
- const GVariantType *stateType = g_action_group_get_action_state_type(m_actionGroup, actionName);
- if (stateType == G_VARIANT_TYPE_BOOLEAN) {
- act->setCheckable(true);
-
- GVariant *actState = g_action_group_get_action_state(m_actionGroup, actionName);
- if (actState != NULL) {
- act->setChecked(g_variant_get_boolean(actState));
- g_variant_unref(actState);
- }
- }
-
- // remove any older action with the same name
- removeAction(actionName);
-
- m_actions.insert(act);
-}
-
-void QDBusActionGroup::removeAction(const char *actionName)
-{
- Q_FOREACH(QAction *act, m_actions) {
- if (act->text() == actionName) {
- m_actions.remove(act);
- delete act;
- break;
- }
- }
-}
-
-void QDBusActionGroup::updateAction(const char *actionName, GVariant *state)
-{
- QAction *action = getAction(actionName);
- if ((action != NULL) && (state != NULL)) {
-
- const GVariantType *stateType = g_variant_get_type(state);
- if (stateType == G_VARIANT_TYPE_BOOLEAN) {
- action->setChecked(g_variant_get_boolean(state));
- }
- }
-}
-
-void QDBusActionGroup::clear()
-{
- Q_FOREACH(QAction *act, m_actions) {
- delete act;
- }
- m_actions.clear();
-
- if (m_actionGroup != NULL) {
- g_object_unref(m_actionGroup);
- m_actionGroup = NULL;
- }
-}
-
-void QDBusActionGroup::onActionAdded(GDBusActionGroup *, gchar *actionName, gpointer data)
-{
- QDBusActionGroup *self = reinterpret_cast<QDBusActionGroup*>(data);
- self->addAction(actionName);
-}
-
-void QDBusActionGroup::onActionRemoved(GDBusActionGroup *, gchar *actionName, gpointer data)
-{
- QDBusActionGroup *self = reinterpret_cast<QDBusActionGroup*>(data);
- self->removeAction(actionName);
-
-}
-
-void QDBusActionGroup::onActionStateChanged(GDBusActionGroup *ag, gchar *actionName, GVariant *value, gpointer data)
-{
- QDBusActionGroup *self = reinterpret_cast<QDBusActionGroup*>(data);
- self->updateAction(actionName, value);
-}