diff options
author | Dan Ackers <dan.ackers@qt.io> | 2021-06-21 11:19:40 +0300 |
---|---|---|
committer | Dan Ackers <dan.ackers@qt.io> | 2021-06-24 16:58:28 +0300 |
commit | c0c3066d25678a92bcb2932b6595d019e9613d27 (patch) | |
tree | 657691e138e2d9aaf5ed948f9143370a0f8f89c5 /src/networksettings | |
parent | 10c59319e196f717e569a9a0bfc45ae73d88d1fd (diff) |
Port qtdeviceutilities to use declarative types
Task-number: QTBUG-94426
Change-Id: I9ac17f38eccff96e25a6c1d40998b222d349274d
Reviewed-by: Teemu Holappa <teemu.holappa@qt.io>
Diffstat (limited to 'src/networksettings')
4 files changed, 290 insertions, 4 deletions
diff --git a/src/networksettings/networksettingsqml/CMakeLists.txt b/src/networksettings/networksettingsqml/CMakeLists.txt new file mode 100644 index 0000000..a2c8403 --- /dev/null +++ b/src/networksettings/networksettingsqml/CMakeLists.txt @@ -0,0 +1,14 @@ +qt_internal_add_qml_module(networksettingsqml + URI "QtDeviceUtilities.NetworkSettings" + VERSION "${CMAKE_PROJECT_VERSION}" + PAST_MAJOR_VERSIONS 1 + PLUGIN_TARGET networksettingsqml + DEPENDENCIES + QtQml + SOURCES + qnetworksettingsforeign.h qnetworksettingsforeign.cpp + PUBLIC_LIBRARIES + Qt::Core + Qt::Qml + Qt::NetworkSettings +) diff --git a/src/networksettings/networksettingsqml/qnetworksettingsforeign.cpp b/src/networksettings/networksettingsqml/qnetworksettingsforeign.cpp new file mode 100644 index 0000000..e3d1414 --- /dev/null +++ b/src/networksettings/networksettingsqml/qnetworksettingsforeign.cpp @@ -0,0 +1,151 @@ +/**************************************************************************** +** +** Copyright (C) 2019 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Device Utilities module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:GPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 or (at your option) any later version +** approved by the KDE Free Qt Foundation. The licenses are as published by +** the Free Software Foundation and appearing in the file LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include "qnetworksettingsforeign.h" + +/*! + \qmlmodule QtDeviceUtilities.NetworkSettings + \ingroup qtdevice-utilities-qml-modules + \ingroup qmlmodules + \title Qt Network Settings QML Types + + \brief Provides singleton QML types for controlling network settings. + + Qt Network Settings QML module provides singleton QML types for controlling + network settings in an embedded device. + + To import and use the module's QML types, use the following statement: + + \badcode + import QtDeviceUtilities.NetworkSettings + \endcode + + \l{Qt Device Utilities WiFi Tutorial} demonstrates how you can use + \l{QtDeviceUtilities.NetworkSettings}{NetworkSettings} for connecting to WiFi. + + \note Some functions may not be available on all of the platforms. + + \section1 QML Types +*/ + +/*! + \qmltype NetworkSettingsManager + \inqmlmodule QtDeviceUtilities.NetworkSettings + \brief A singleton QML type for managing network settings. + + There is no need to create an instance of this object. To use it, + simply import the \c {QtDeviceUtilities.NetworkSettings} module. + + \l{Qt Device Utilities WiFi Tutorial} demonstrates how you can use + \l{NetworkSettingsManager} for connecting to WiFi. +*/ + +/*! + \qmlproperty model NetworkSettingsManager::services + \readonly + + Holds the service model. + + The services list in the model can be controlled with the + \c type property, and NetworkService items can be retrieved + with the \c {itemFromRow(int index)} method. For example, to + select the first available wired network service: + + \code + property var service: null + ... + NetworkSettingsManager.services.type = NetworkSettingsType.Wired; + service = NetworkSettingsManager.services.itemFromRow(0); + \endcode + + Available service types: + + \value NetworkSettingsType.Wired Wired network + \value NetworkSettingsType.Wifi Wifi network + \value NetworkSettingsType.Bluetooth Bluetooth network + \value NetworkSettingsType.Unknown Unknown network type + + \sa NetworkService +*/ + +/*! + \qmlproperty model NetworkSettingsManager::interfaces + \readonly + + Holds the interface model. A delegate in a view that uses + the \e interfaces model can access the NetworkInterface + item with the \e dataModel role. + + \sa NetworkInterface +*/ + +/*! + \qmlmethod NetworkService NetworkSettingsManager::service(string name, int type) + + Returns the service with name \a name and type \a type. + + \sa services +*/ + +/*! + \qmlmethod NetworkInterface NetworkSettingsManager::interface(int type, int instance) + + Returns the interface with type \a type and order number of \a instance + + \sa NetworkInterface +*/ + +/*! + \qmlmethod NetworkSettingsManager::userAgent.setPassphrase(string passphrase) + + Sets the \a passphrase for connecting to a Wifi network. + + This method needs to be called in response to receiving a showUserCredentialsInput() signal. + + \sa userAgent.showUserCredentialsInput() +*/ + +/*! + \qmlsignal NetworkSettingsManager::userAgent.showUserCredentialsInput() + + This signal is emitted when user credentials are required for connecting to a Wifi network. + + \sa userAgent.setPassphrase() +*/ + +/*! + \qmlmethod NetworkSettingsManager::userAgent.cancelInput() + + Cancels the user credentials input request. +*/ + +/*! + \qmlsignal NetworkSettingsManager::userAgent.error() + + This signal is emitted when the connection failed due to invalid user credentials. +*/ diff --git a/src/networksettings/networksettingsqml/qnetworksettingsforeign.h b/src/networksettings/networksettingsqml/qnetworksettingsforeign.h new file mode 100644 index 0000000..b979397 --- /dev/null +++ b/src/networksettings/networksettingsqml/qnetworksettingsforeign.h @@ -0,0 +1,121 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Device Utilities module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:GPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 or (at your option) any later version +** approved by the KDE Free Qt Foundation. The licenses are as published by +** the Free Software Foundation and appearing in the file LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#ifndef NETWORKSETTINGSPLUGIN_PLUGIN_H +#define NETWORKSETTINGSPLUGIN_PLUGIN_H + +#include <QtQml/qqml.h> +#include <QtNetworkSettings/qnetworksettings.h> +#include <QtNetworkSettings/qnetworksettingsmanager.h> +#include <QtNetworkSettings/qnetworksettingsservice.h> +#include <QtNetworkSettings/qnetworksettingsuseragent.h> +#include <QtNetworkSettings/qnetworksettingsservicemodel.h> +#include <QtNetworkSettings/qnetworksettingsinterface.h> +#include <QtNetworkSettings/qnetworksettingsinterfacemodel.h> + +Q_DECLARE_METATYPE(QNetworkSettingsUserAgent) +Q_DECLARE_METATYPE(QNetworkSettingsServiceFilter) +Q_DECLARE_METATYPE(QNetworkSettingsInterfaceModel) + +QT_BEGIN_NAMESPACE + +struct NetworkSettingsServiceForeign +{ + Q_GADGET + QML_FOREIGN(QNetworkSettingsService) + QML_NAMED_ELEMENT(NetworkSettingsService) + QML_UNCREATABLE("Cannot be instantiated directly.") + QML_ADDED_IN_VERSION(1, 0) +}; + +struct NetworkSettingsInterfaceForeign +{ + Q_GADGET + QML_FOREIGN(QNetworkSettingsInterface) + QML_NAMED_ELEMENT(NetworkSettingsInterface) + QML_UNCREATABLE("Cannot be instantiated directly.") + QML_ADDED_IN_VERSION(1, 0) +}; + +struct NetworkSettingsIPv4Foreign +{ + Q_GADGET + QML_FOREIGN(QNetworkSettingsIPv4) + QML_NAMED_ELEMENT(NetworkSettingsIPv4) + QML_UNCREATABLE("Cannot be instantiated directly.") + QML_ADDED_IN_VERSION(1, 0) +}; + +struct NetworkSettingsIPv6Foreign +{ + Q_GADGET + QML_FOREIGN(QNetworkSettingsIPv6) + QML_NAMED_ELEMENT(NetworkSettingsIPv6) + QML_UNCREATABLE("Cannot be instantiated directly.") + QML_ADDED_IN_VERSION(1, 0) +}; + +struct NetworkSettingsProxyForeign +{ + Q_GADGET + QML_FOREIGN(QNetworkSettingsProxy) + QML_NAMED_ELEMENT(NetworkSettingsProxy) + QML_UNCREATABLE("Cannot be instantiated directly.") + QML_ADDED_IN_VERSION(1, 0) +}; + +struct NetworkSettingsTypeForeign +{ + Q_GADGET + QML_FOREIGN(QNetworkSettingsType) + QML_NAMED_ELEMENT(NetworkSettingsType) + QML_UNCREATABLE("Cannot be instantiated directly.") + QML_ADDED_IN_VERSION(1, 0) +}; + +struct NetworkSettingsStateForeign +{ + Q_GADGET + QML_FOREIGN(QNetworkSettingsState) + QML_NAMED_ELEMENT(NetworkSettingsState) + QML_UNCREATABLE("Cannot be instantiated directly.") + QML_ADDED_IN_VERSION(1, 0) +}; + +class QNetworkSettingsManagerForeign +{ + Q_GADGET + QML_NAMED_ELEMENT(NetworkSettingsManager) + QML_SINGLETON + QML_ADDED_IN_VERSION(2, 0) +}; + +QT_END_NAMESPACE + +#endif // NETWORKSETTINGSPLUGIN_PLUGIN_H + diff --git a/src/networksettings/qnetworksettingsmanager.h b/src/networksettings/qnetworksettingsmanager.h index 8526324..01159dd 100644 --- a/src/networksettings/qnetworksettingsmanager.h +++ b/src/networksettings/qnetworksettingsmanager.h @@ -32,10 +32,10 @@ #include <QtNetworkSettings/qnetworksettings.h> #include <QObject> #include <QStringListModel> -#include "qnetworksettingsservicemodel.h" -#include "qnetworksettingsinterfacemodel.h" -#include "qnetworksettingsuseragent.h" -#include "qnetworksettingsservice.h" +#include <QtNetworkSettings/qnetworksettingsservicemodel.h> +#include <QtNetworkSettings/qnetworksettingsinterfacemodel.h> +#include <QtNetworkSettings/qnetworksettingsuseragent.h> +#include <QtNetworkSettings/qnetworksettingsservice.h> QT_FORWARD_DECLARE_CLASS(QNetworkSettingsManagerPrivate) QT_FORWARD_DECLARE_CLASS(QNetworkSettingsInterface) |