diff options
Diffstat (limited to 'src/networksettings')
10 files changed, 51 insertions, 17 deletions
diff --git a/src/networksettings/connman/connmancommon.cpp b/src/networksettings/connman/connmancommon.cpp index ae57da8..887af48 100644 --- a/src/networksettings/connman/connmancommon.cpp +++ b/src/networksettings/connman/connmancommon.cpp @@ -55,6 +55,9 @@ const QString &operator>>(const QString &argument, QNetworkSettingsType &obj) else if (argument == AttributeWifi) { obj.setType(QNetworkSettingsType::Wifi); } + else if (argument == AttributeBluetooth) { + obj.setType(QNetworkSettingsType::Bluetooth); + } else { obj.setType(QNetworkSettingsType::Unknown); } diff --git a/src/networksettings/connman/connmancommon.h b/src/networksettings/connman/connmancommon.h index 9c6e53a..442730f 100644 --- a/src/networksettings/connman/connmancommon.h +++ b/src/networksettings/connman/connmancommon.h @@ -42,6 +42,7 @@ #define AttributeWifi QStringLiteral("wifi") #define AttributeEthernet QStringLiteral("ethernet") +#define AttributeBluetooth QStringLiteral("bluetooth") #define AttributeIdle QStringLiteral("idle") #define AttributeFailure QStringLiteral("failure") #define AttributeAssociation QStringLiteral("association") diff --git a/src/networksettings/connman/qnetworksettingsinterface_p.cpp b/src/networksettings/connman/qnetworksettingsinterface_p.cpp index 041dcca..5a64c15 100644 --- a/src/networksettings/connman/qnetworksettingsinterface_p.cpp +++ b/src/networksettings/connman/qnetworksettingsinterface_p.cpp @@ -97,7 +97,10 @@ void QNetworkSettingsInterfacePrivate::setPowered(const bool aPowered) void QNetworkSettingsInterfacePrivate::scan() { - m_technology->Scan(); + if (m_powered) + m_technology->Scan(); + else + qDebug() << "Tried to scan while not powered"; } QT_END_NAMESPACE diff --git a/src/networksettings/connman/qnetworksettingsmanager_p.cpp b/src/networksettings/connman/qnetworksettingsmanager_p.cpp index a136237..b3373ee 100644 --- a/src/networksettings/connman/qnetworksettingsmanager_p.cpp +++ b/src/networksettings/connman/qnetworksettingsmanager_p.cpp @@ -81,12 +81,9 @@ QNetworkSettingsManagerPrivate::QNetworkSettingsManagerPrivate(QNetworkSettingsM void QNetworkSettingsManagerPrivate::requestInput(const QString& service, const QString& type) { + Q_UNUSED(service); Q_UNUSED(type); - foreach (QNetworkSettingsService* servicePtr, m_serviceModel->getModel()) { - if (servicePtr->id() == service) - emit servicePtr->showCrendentialInput(); - } - m_agent->showUserCredentialsInput(); + emit m_agent->showUserCredentialsInput(); } void QNetworkSettingsManagerPrivate::getServicesFinished(QDBusPendingCallWatcher *watcher) diff --git a/src/networksettings/connman/qnetworksettingsuseragent_p.cpp b/src/networksettings/connman/qnetworksettingsuseragent_p.cpp index 595092b..e9e8063 100644 --- a/src/networksettings/connman/qnetworksettingsuseragent_p.cpp +++ b/src/networksettings/connman/qnetworksettingsuseragent_p.cpp @@ -46,8 +46,14 @@ QNetworkSettingsUserAgentPrivate::QNetworkSettingsUserAgentPrivate(QNetworkSetti void QNetworkSettingsUserAgentPrivate::cancel() { // handle method call net.connman.Agent.Cancel + if (!m_pendingReply) + return; + m_pendingReply = false; - QMetaObject::invokeMethod(parent(), "Cancel"); + QDBusMessage errorMessage = m_pendingMessage.createErrorReply( + QStringLiteral("net.connman.Agent.Error.Canceled"), + QStringLiteral("")); + QDBusConnection::systemBus().send(errorMessage); } void QNetworkSettingsUserAgentPrivate::release() @@ -76,8 +82,9 @@ QVariantMap QNetworkSettingsUserAgentPrivate::RequestInput(const QDBusObjectPath Q_UNUSED(path); Q_UNUSED(params); msg.setDelayedReply(true); - m_reply = msg.createReply(); + m_pendingReply = true; + m_pendingMessage = msg; emit q->showUserCredentialsInput(); return QVariantMap(); } @@ -85,11 +92,16 @@ QVariantMap QNetworkSettingsUserAgentPrivate::RequestInput(const QDBusObjectPath void QNetworkSettingsUserAgentPrivate::setPassphrase(const QString& passphrase) { m_passphrase = passphrase; + if (!m_pendingReply) + return; + QVariantMap response; response[PropertyPassphrase] = m_passphrase; - m_reply << response; + + QDBusMessage reply = m_pendingMessage.createReply(); + reply << response; m_pendingReply = false; - QDBusConnection::systemBus().send(m_reply); + QDBusConnection::systemBus().send(reply); } QT_END_NAMESPACE diff --git a/src/networksettings/connman/qnetworksettingsuseragent_p.h b/src/networksettings/connman/qnetworksettingsuseragent_p.h index 6433918..180eea5 100644 --- a/src/networksettings/connman/qnetworksettingsuseragent_p.h +++ b/src/networksettings/connman/qnetworksettingsuseragent_p.h @@ -72,7 +72,7 @@ public Q_SLOTS: // Dbus methods void registerAgent(); private: QNetworkSettingsUserAgent *q_ptr; - QDBusMessage m_reply; + QDBusMessage m_pendingMessage; bool m_pendingReply; QString m_passphrase; }; diff --git a/src/networksettings/qnetworksettingsmanager.cpp b/src/networksettings/qnetworksettingsmanager.cpp index dafc0b1..71aa081 100644 --- a/src/networksettings/qnetworksettingsmanager.cpp +++ b/src/networksettings/qnetworksettingsmanager.cpp @@ -29,6 +29,7 @@ #include "qnetworksettingsmanager.h" #include "qnetworksettingsservice.h" #include "qnetworksettingsservicemodel.h" +#include "qnetworksettingsinterface.h" #include "qnetworksettingsinterfacemodel.h" #include "qnetworksettingsmanager_p.h" #include <QStringListModel> @@ -53,7 +54,7 @@ QNetworkSettingsInterfaceModel *QNetworkSettingsManager::interfaces() return d->interfaceModel(); } -QNetworkSettingsService* QNetworkSettingsManager::service(const QString& name, const int type) +QNetworkSettingsService* QNetworkSettingsManager::service(const QString& name, int type) { Q_D(QNetworkSettingsManager); @@ -62,7 +63,23 @@ QNetworkSettingsService* QNetworkSettingsManager::service(const QString& name, c return service; } } - return NULL; + return nullptr; +} + +QNetworkSettingsInterface* QNetworkSettingsManager::interface(int type, int instance) +{ + Q_D(QNetworkSettingsManager); + int matchingInstance = 0; + + foreach (QNetworkSettingsInterface* interface, d->m_interfaceModel.getModel()) { + if (interface->type() == type) { + if (matchingInstance == instance) { + return interface; + } + matchingInstance++; + } + } + return nullptr; } void QNetworkSettingsManager::setUserAgent(QNetworkSettingsUserAgent *agent) diff --git a/src/networksettings/qnetworksettingsmanager.h b/src/networksettings/qnetworksettingsmanager.h index 7e7cfad..3ce5095 100644 --- a/src/networksettings/qnetworksettingsmanager.h +++ b/src/networksettings/qnetworksettingsmanager.h @@ -38,6 +38,7 @@ QT_FORWARD_DECLARE_CLASS(QNetworkSettingsService) QT_FORWARD_DECLARE_CLASS(QNetworkSettingsServiceModel) QT_FORWARD_DECLARE_CLASS(QNetworkSettingsUserAgent) QT_FORWARD_DECLARE_CLASS(QNetworkSettingsServiceFilter) +QT_FORWARD_DECLARE_CLASS(QNetworkSettingsInterface) QT_FORWARD_DECLARE_CLASS(QNetworkSettingsInterfaceModel) QT_BEGIN_NAMESPACE @@ -57,7 +58,8 @@ public: void setUserAgent(QNetworkSettingsUserAgent *agent); QNetworkSettingsUserAgent* userAgent(); - Q_INVOKABLE QNetworkSettingsService* service(const QString& name, const int type); + Q_INVOKABLE QNetworkSettingsService* service(const QString& name, int type); + Q_INVOKABLE QNetworkSettingsInterface* interface(int type, int instance); Q_SIGNALS: void servicesChanged(); diff --git a/src/networksettings/qnetworksettingsservice.h b/src/networksettings/qnetworksettingsservice.h index 3019b2d..be24a5c 100644 --- a/src/networksettings/qnetworksettingsservice.h +++ b/src/networksettings/qnetworksettingsservice.h @@ -85,7 +85,6 @@ Q_SIGNALS: void domainsChanged(); void nameserversChanged(); void wirelessChanged(); - void showCrendentialInput(); protected: QNetworkSettingsServicePrivate *d_ptr; diff --git a/src/networksettings/qnetworksettingsservicemodel.cpp b/src/networksettings/qnetworksettingsservicemodel.cpp index 9c0b93d..3040dab 100644 --- a/src/networksettings/qnetworksettingsservicemodel.cpp +++ b/src/networksettings/qnetworksettingsservicemodel.cpp @@ -204,7 +204,7 @@ void QNetworkSettingsServiceModel::signalStrengthChanged() */ QNetworkSettingsServiceFilter::QNetworkSettingsServiceFilter(QObject* parent) - :QSortFilterProxyModel(parent) + :QSortFilterProxyModel(parent), m_type(QNetworkSettingsType::Unknown) { connect(this, &QNetworkSettingsServiceFilter::typeChanged, this, &QNetworkSettingsServiceFilter::invalidate); } @@ -244,7 +244,7 @@ bool QNetworkSettingsServiceFilter::filterAcceptsRow( int source_row, const QMod { QObject * obj = qvariant_cast<QObject *>(index.data(Qt::UserRole)); QNetworkSettingsService * service = qobject_cast<QNetworkSettingsService *>(obj); - if (service->type() == m_type) + if (service->type() == m_type || m_type == QNetworkSettingsType::Unknown) return true; } } |