~neon/project-neon/libmm-qt

« back to all changes in this revision

Viewing changes to modemtimeinterface.cpp

  • Committer: Jan Grulich
  • Date: 2013-10-06 11:42:12 UTC
  • Revision ID: git-v1:6b330d21e12353005970209902f3e02b2786e265
Rename files to mach classes and dbus interfaces

Update README a little bit

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
Copyright 2013 Lukas Tinkl <ltinkl@redhat.com>
3
 
 
4
 
This library is free software; you can redistribute it and/or
5
 
modify it under the terms of the GNU Lesser General Public
6
 
License as published by the Free Software Foundation; either
7
 
version 2.1 of the License, or (at your option) version 3, or any
8
 
later version accepted by the membership of KDE e.V. (or its
9
 
successor approved by the membership of KDE e.V.), which shall
10
 
act as a proxy defined in Section 6 of version 3 of the license.
11
 
 
12
 
This library is distributed in the hope that it will be useful,
13
 
but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15
 
Lesser General Public License for more details.
16
 
 
17
 
You should have received a copy of the GNU Lesser General Public
18
 
License along with this library.  If not, see <http://www.gnu.org/licenses/>.
19
 
*/
20
 
 
21
 
#include "modemtimeinterface.h"
22
 
#include "modemtimeinterface_p.h"
23
 
#include "mmdebug.h"
24
 
 
25
 
ModemTimeInterfacePrivate::ModemTimeInterfacePrivate(const QString &path)
26
 
    : InterfacePrivate(path)
27
 
    , modemTimeIface(MM_DBUS_SERVICE, path, QDBusConnection::systemBus())
28
 
{
29
 
}
30
 
 
31
 
ModemManager::ModemTimeInterface::ModemTimeInterface(const QString &path, QObject *parent)
32
 
    : Interface(*new ModemTimeInterfacePrivate(path), parent)
33
 
{
34
 
    Q_D(ModemTimeInterface);
35
 
 
36
 
    connect(&d->modemTimeIface, SIGNAL(NetworkTimeChanged(QString)), SLOT(onNetworkTimeChanged(QString)));
37
 
}
38
 
 
39
 
ModemManager::ModemTimeInterface::~ModemTimeInterface()
40
 
{
41
 
}
42
 
 
43
 
QDateTime ModemManager::ModemTimeInterface::networkTime()
44
 
{
45
 
    Q_D(ModemTimeInterface);
46
 
    QDBusPendingReply<QString> reply = d->modemTimeIface.GetNetworkTime();
47
 
    reply.waitForFinished();
48
 
    if (reply.isValid()) {
49
 
        return QDateTime::fromString(reply.value(), Qt::ISODate);
50
 
    }
51
 
 
52
 
    return QDateTime();
53
 
}
54
 
 
55
 
ModemManager::ModemTimeInterface::NetworkTimeZone ModemManager::ModemTimeInterface::networkTimeZone() const
56
 
{
57
 
    Q_D(const ModemTimeInterface);
58
 
 
59
 
    NetworkTimeZone result;
60
 
    const QVariantMap map = d->modemTimeIface.networkTimezone();
61
 
    if (map.contains("offset"))
62
 
        result.offset = map.value("offset").toInt();
63
 
    if (map.contains("dst-offset"))
64
 
        result.dst_offset = map.value("dst-offset").toInt();
65
 
    if (map.contains("leap-seconds"))
66
 
        result.leap_seconds = map.value("leap-seconds").toInt();
67
 
 
68
 
    return result;
69
 
}
70
 
 
71
 
 
72
 
void ModemManager::ModemTimeInterface::onNetworkTimeChanged(const QString &isoDateTime)
73
 
{
74
 
    Q_D(ModemTimeInterface);
75
 
 
76
 
    const QDateTime result = QDateTime::fromString(isoDateTime, Qt::ISODate);
77
 
    if (result.isValid())
78
 
        emit networkTimeChanged(result);
79
 
}