summaryrefslogtreecommitdiffstats
path: root/src/networksettings
diff options
context:
space:
mode:
Diffstat (limited to 'src/networksettings')
-rw-r--r--src/networksettings/qnetworksettingsmanager.cpp21
-rw-r--r--src/networksettings/qnetworksettingsmanager.h4
2 files changed, 22 insertions, 3 deletions
diff --git a/src/networksettings/qnetworksettingsmanager.cpp b/src/networksettings/qnetworksettingsmanager.cpp
index caf6057..eb687d1 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>
@@ -51,7 +52,7 @@ QNetworkSettingsInterfaceModel *QNetworkSettingsManager::interfaces()
return &d->m_interfaceModel;
}
-QNetworkSettingsService* QNetworkSettingsManager::service(const QString& name, const int type)
+QNetworkSettingsService* QNetworkSettingsManager::service(const QString& name, int type)
{
Q_D(QNetworkSettingsManager);
@@ -60,7 +61,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();