summaryrefslogtreecommitdiffstats
path: root/src/networksettings
diff options
context:
space:
mode:
Diffstat (limited to 'src/networksettings')
-rw-r--r--src/networksettings/connman/connmancommon.cpp3
-rw-r--r--src/networksettings/connman/connmancommon.h1
-rw-r--r--src/networksettings/connman/qnetworksettingsinterface_p.cpp5
-rw-r--r--src/networksettings/connman/qnetworksettingsmanager_p.cpp7
-rw-r--r--src/networksettings/connman/qnetworksettingsuseragent_p.cpp20
-rw-r--r--src/networksettings/connman/qnetworksettingsuseragent_p.h2
-rw-r--r--src/networksettings/qnetworksettingsmanager.cpp21
-rw-r--r--src/networksettings/qnetworksettingsmanager.h4
-rw-r--r--src/networksettings/qnetworksettingsservice.h1
-rw-r--r--src/networksettings/qnetworksettingsservicemodel.cpp4
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;
}
}