Search
SailfishOS Open Build Service
>
Projects
>
home:kaltsi
:
tnhlbug
>
qt
> 0025-update-ofono-API.patch
Log In
Username
Password
Cancel
Overview
Repositories
Revisions
Requests
Users
Advanced
Attributes
Meta
File 0025-update-ofono-API.patch of Package qt
From 3d9b516dff72b5da7a69b61a945466e564081ad3 Mon Sep 17 00:00:00 2001 From: Lorn Potter <lorn.potter@jollamobile.com> Date: Wed, 6 Feb 2013 15:31:06 +0000 Subject: [PATCH 25/29] update ofono API (Change-Id is Qt 5, Qt 4 upstream is where?) Task-number: QTBUG-29381 Change-Id: I952b73d86b4e8f497b4ff90d10c1f5312882bd8a --- src/plugins/bearer/connman/qofonoservice_linux.cpp | 55 +++++++++++++++++--- src/plugins/bearer/connman/qofonoservice_linux_p.h | 8 +++ 2 files changed, 56 insertions(+), 7 deletions(-) diff --git a/src/plugins/bearer/connman/qofonoservice_linux.cpp b/src/plugins/bearer/connman/qofonoservice_linux.cpp index 0d13568..57a1835 100644 --- a/src/plugins/bearer/connman/qofonoservice_linux.cpp +++ b/src/plugins/bearer/connman/qofonoservice_linux.cpp @@ -56,16 +56,33 @@ #ifndef QT_NO_BEARERMANAGEMENT #ifndef QT_NO_DBUS +QDBusArgument &operator<<(QDBusArgument &argument, const ObjectPathProperties &item) +{ + argument.beginStructure(); + argument << item.path << item.properties; + argument.endStructure(); + return argument; +} + +const QDBusArgument &operator>>(const QDBusArgument &argument, ObjectPathProperties &item) +{ + argument.beginStructure(); + argument >> item.path >> item.properties; + argument.endStructure(); + return argument; +} + QT_BEGIN_NAMESPACE static QDBusConnection dbusConnection = QDBusConnection::systemBus(); - QOfonoManagerInterface::QOfonoManagerInterface( QObject *parent) : QDBusAbstractInterface(QLatin1String(OFONO_SERVICE), QLatin1String(OFONO_MANAGER_PATH), OFONO_MANAGER_INTERFACE, QDBusConnection::systemBus(), parent) { + qDBusRegisterMetaType<ObjectPathProperties>(); + qDBusRegisterMetaType<PathPropertiesList>(); } QOfonoManagerInterface::~QOfonoManagerInterface() @@ -74,8 +91,16 @@ QOfonoManagerInterface::~QOfonoManagerInterface() QList <QDBusObjectPath> QOfonoManagerInterface::getModems() { - QVariant var = getProperty("Modems"); - return qdbus_cast<QList<QDBusObjectPath> >(var); + QList <QDBusObjectPath> modemList; + QList<QVariant> argumentList; + QDBusReply<PathPropertiesList > reply = this->asyncCallWithArgumentList(QLatin1String("GetModems"), argumentList); + if(reply.isValid()) { + foreach(ObjectPathProperties modem, reply.value()) { + modemList << modem.path; + } + } + + return modemList; } QDBusObjectPath QOfonoManagerInterface::currentModem() @@ -359,8 +384,16 @@ QString QOfonoNetworkRegistrationInterface::getBaseStation() QList <QDBusObjectPath> QOfonoNetworkRegistrationInterface::getOperators() { - QVariant var = getProperty("Operators"); - return qdbus_cast<QList <QDBusObjectPath> >(var); + QList <QDBusObjectPath> operatorList; + QList<QVariant> argumentList; + QDBusReply<PathPropertiesList > reply = this->asyncCallWithArgumentList(QLatin1String("GetOperators"), + argumentList); + if(reply.isValid()) { + foreach(ObjectPathProperties netop, reply.value()) { + operatorList << netop.path; + } + } + return operatorList; } void QOfonoNetworkRegistrationInterface::connectNotify(const char *signal) @@ -631,8 +664,16 @@ QOfonoDataConnectionManagerInterface::~QOfonoDataConnectionManagerInterface() QList<QDBusObjectPath> QOfonoDataConnectionManagerInterface::getPrimaryContexts() { - QVariant var = getProperty("PrimaryContexts"); - return qdbus_cast<QList<QDBusObjectPath> >(var); + QList <QDBusObjectPath> contextList; + QList<QVariant> argumentList; + QDBusReply<PathPropertiesList > reply = this->asyncCallWithArgumentList(QLatin1String("GetContexts"), + argumentList); + if(reply.isValid()) { + foreach(ObjectPathProperties context, reply.value()) { + contextList << context.path; + } + } + return contextList; } bool QOfonoDataConnectionManagerInterface::isAttached() diff --git a/src/plugins/bearer/connman/qofonoservice_linux_p.h b/src/plugins/bearer/connman/qofonoservice_linux_p.h index c92804d..7b577a0 100644 --- a/src/plugins/bearer/connman/qofonoservice_linux_p.h +++ b/src/plugins/bearer/connman/qofonoservice_linux_p.h @@ -88,6 +88,14 @@ QT_BEGIN_NAMESPACE QT_END_NAMESPACE +struct ObjectPathProperties +{ + QDBusObjectPath path; + QVariantMap properties; +}; +typedef QList<ObjectPathProperties> PathPropertiesList; +Q_DECLARE_METATYPE(ObjectPathProperties) +Q_DECLARE_METATYPE (PathPropertiesList) QT_BEGIN_NAMESPACE -- 1.7.10.3