~ci-train-bot/qmenumodel/qmenumodel-ubuntu-xenial-landing-064

« back to all changes in this revision

Viewing changes to libqmenumodel/src/qdbusactiongroup.cpp

  • Committer: CI Train Bot
  • Author(s): Nick Dedekind
  • Date: 2015-01-08 13:55:44 UTC
  • mfrom: (114.1.3 qmenumodel)
  • Revision ID: ci_train_bot_citrain_user@canonical.com-20150108135544-o7roasft5koe3w1w
Add support for overriding QDBusActionGroup state parser Fixes: #1385331
Approved by: PS Jenkins bot, Albert Astals Cid

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
 *      Renato Araujo Oliveira Filho <renato@canonical.com>
18
18
 */
19
19
 
 
20
#include "actionstateparser.h"
20
21
#include "qdbusactiongroup.h"
21
22
#include "qstateaction.h"
22
23
#include "converter.h"
58
59
QDBusActionGroup::QDBusActionGroup(QObject *parent)
59
60
    :QObject(parent),
60
61
     QDBusObject(this),
61
 
     m_actionGroup(NULL)
 
62
     m_actionGroup(NULL),
 
63
     m_actionStateParser(new ActionStateParser(this))
62
64
{
63
65
}
64
66
 
89
91
{
90
92
    QVariant result;
91
93
    GVariant *state = g_action_group_get_action_state(m_actionGroup, name.toUtf8().data());
92
 
    result = Converter::toQVariant(state);
 
94
 
 
95
    if (m_actionStateParser != NULL) {
 
96
        result = m_actionStateParser->toQVariant(state);
 
97
    } else {
 
98
        result = Converter::toQVariant(state);
 
99
    }
 
100
 
93
101
    if (state) {
94
102
        g_variant_unref(state);
95
103
    }
190
198
    }
191
199
}
192
200
 
 
201
ActionStateParser* QDBusActionGroup::actionStateParser() const
 
202
{
 
203
    return m_actionStateParser;
 
204
}
 
205
 
 
206
void QDBusActionGroup::setActionStateParser(ActionStateParser* actionStateParser)
 
207
{
 
208
    if (m_actionStateParser != actionStateParser) {
 
209
        m_actionStateParser = actionStateParser;
 
210
        Q_EMIT actionStateParserChanged(actionStateParser);
 
211
    }
 
212
}
 
213
 
193
214
/*! \internal */
194
215
void QDBusActionGroup::clear()
195
216
{