2
Copyright 2013 Lukas Tinkl <ltinkl@redhat.com>
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.
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.
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/>.
21
#include "modemtimeinterface.h"
22
#include "modemtimeinterface_p.h"
25
ModemTimeInterfacePrivate::ModemTimeInterfacePrivate(const QString &path)
26
: InterfacePrivate(path)
27
, modemTimeIface(MM_DBUS_SERVICE, path, QDBusConnection::systemBus())
31
ModemManager::ModemTimeInterface::ModemTimeInterface(const QString &path, QObject *parent)
32
: Interface(*new ModemTimeInterfacePrivate(path), parent)
34
Q_D(ModemTimeInterface);
36
connect(&d->modemTimeIface, SIGNAL(NetworkTimeChanged(QString)), SLOT(onNetworkTimeChanged(QString)));
39
ModemManager::ModemTimeInterface::~ModemTimeInterface()
43
QDateTime ModemManager::ModemTimeInterface::networkTime()
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);
55
ModemManager::ModemTimeInterface::NetworkTimeZone ModemManager::ModemTimeInterface::networkTimeZone() const
57
Q_D(const ModemTimeInterface);
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();
72
void ModemManager::ModemTimeInterface::onNetworkTimeChanged(const QString &isoDateTime)
74
Q_D(ModemTimeInterface);
76
const QDateTime result = QDateTime::fromString(isoDateTime, Qt::ISODate);
78
emit networkTimeChanged(result);