File: inputcontextdbusaddress.cpp

package info (click to toggle)
maliit-framework 2.3.0-8
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 3,244 kB
  • sloc: cpp: 13,146; ansic: 2,506; xml: 299; makefile: 46; sh: 34; sed: 4
file content (80 lines) | stat: -rw-r--r-- 2,295 bytes parent folder | download | duplicates (4)
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
/* * This file is part of Maliit framework *
 *
 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 *
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License version 2.1 as published by the Free Software Foundation
 * and appearing in the file LICENSE.LGPL included in the packaging
 * of this file.
 */

#include "inputcontextdbusaddress.h"

#include <QDBusConnection>
#include <QDBusMessage>
#include <QDBusVariant>
#include <QDBusError>

namespace {
    const char * const MaliitServerName = "org.maliit.server";
    const char * const MaliitServerObjectPath = "/org/maliit/server/address";
    const char * const MaliitServerInterface = "org.maliit.Server.Address";
    const char * const MaliitServerAddressProperty = "address";

    const char * const DBusPropertiesInterface = "org.freedesktop.DBus.Properties";
    const char * const DBusPropertiesGetMethod = "Get";
}

namespace Maliit {
namespace InputContext {
namespace DBus {

Address::Address()
{
}

Address::~Address()
{
}

void DynamicAddress::get()
{
    QList<QVariant> arguments;
    arguments.push_back(QVariant(QString::fromLatin1(MaliitServerInterface)));
    arguments.push_back(QVariant(QString::fromLatin1(MaliitServerAddressProperty)));

    QDBusMessage message = QDBusMessage::createMethodCall(MaliitServerName, MaliitServerObjectPath,
                                                          DBusPropertiesInterface, DBusPropertiesGetMethod);
    message.setArguments(arguments);

    QDBusConnection::sessionBus().callWithCallback(message, this,
                                                   SLOT(successCallback(QDBusVariant)),
                                                   SLOT(errorCallback(QDBusError)));
}

void DynamicAddress::successCallback(const QDBusVariant &address)
{
    Q_EMIT addressReceived(address.variant().toString());
}

void DynamicAddress::errorCallback(const QDBusError &error)
{
    Q_EMIT addressFetchError(error.message());
}

FixedAddress::FixedAddress(const QString &address)
    : mAddress(address)
{
}

void FixedAddress::get()
{
    Q_EMIT this->addressReceived(mAddress);
}

} // namespace DBus
} // namespace InputContext
} // namespace Maliit