summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforminputcontexts/ibus/qibusproxy.cpp
blob: 156e9b7c901e780d2a8be10bc1cdd4122fc95179 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
/*
 * This file was generated by qdbusxml2cpp version 0.7
 * Command line was: qdbusxml2cpp -N -p qibusproxy -c QIBusProxy interfaces/org.freedesktop.IBus.xml
 *
 * qdbusxml2cpp is Copyright (C) 2015 The Qt Company Ltd.
 *
 * This is an auto-generated file.
 * This file may have been hand-edited. Look for HAND-EDIT comments
 * before re-generating it.
 */

#include <QtDBus/qdbusextratypes.h>

#include "qibusproxy.h"

/*
 * Implementation of interface class QIBusProxy
 */

QIBusProxy::QIBusProxy(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent)
    : QDBusAbstractInterface(service, path, staticInterfaceName(), connection, parent)
{
    this->connection().connect(service,
                               path,
                               this->interface(), // interface
                               QStringLiteral("GlobalEngineChanged"),
                               QStringList(),
                               QString(), // signature
                               this, SLOT(globalEngineChanged(QString)));
}

QIBusProxy::~QIBusProxy()
{
}

#ifdef QIBUS_GET_ADDRESS
QString QIBusProxy::getAddress()
{
    QDBusReply<QDBusVariant> reply = Address();
    QVariant variant = reply.value().variant();
    if (!variant.isValid())
        return QString();
    return variant.toString();
}
#endif

#ifdef QIBUS_GET_ENGINES
QList<QIBusEngineDesc> QIBusProxy::getEngines()
{
    QList<QIBusEngineDesc> engines;
    QDBusReply<QDBusVariant> reply = Engines();
    QVariant variant = reply.value().variant();
    if (!variant.isValid())
        return engines;
    const QDBusArgument argument = variant.value<QDBusArgument>();
    qCDebug(qtQpaInputMethodsSerialize) << "QIBusProxy::getEngines()" << argument.currentSignature();

    int i = 1;
    argument.beginMap();
    while (!argument.atEnd()) {
        QDBusVariant value;
        argument >> value;
        if (!value.variant().isValid()) {
            qWarning() << "Warning in QIBusProxy::getEngines():" << QString::asprintf("%dth variant is wrong", i);
            break;
        }
        const QDBusArgument desc_arg = value.variant().value<QDBusArgument>();

        QIBusEngineDesc desc;
        desc_arg >> desc;
        engines.append(desc);
        ++i;
    }
    argument.endMap();
    return engines;
}
#endif

QIBusEngineDesc QIBusProxy::getGlobalEngine()
{
    QIBusEngineDesc desc;
    QDBusReply<QDBusVariant> reply = GlobalEngine();
    QVariant variant = reply.value().variant();
    if (!variant.isValid())
        return desc;
    QVariant child = variant.value<QDBusVariant>().variant();
    if (!child.isValid())
        return desc;
    const QDBusArgument argument = child.value<QDBusArgument>();
    argument >> desc;
    return desc;
}

void QIBusProxy::globalEngineChanged(const QString &engine_name)
{
    emit GlobalEngineChanged(engine_name);
}