diff options
100 files changed, 930 insertions, 1126 deletions
diff --git a/.cmake.conf b/.cmake.conf index aae2a68..146dd2b 100644 --- a/.cmake.conf +++ b/.cmake.conf @@ -1 +1 @@ -set(QT_REPO_MODULE_VERSION "6.3.0") +set(QT_REPO_MODULE_VERSION "6.6.0") diff --git a/CMakeLists.txt b/CMakeLists.txt index 5fd523a..090928a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,8 +8,8 @@ project(QtDeviceUtilities LANGUAGES CXX C ) -find_package(Qt6 ${PROJECT_VERSION} CONFIG REQUIRED COMPONENTS BuildInternals) -find_package(Qt6 ${PROJECT_VERSION} CONFIG OPTIONAL_COMPONENTS Quick DBus) +find_package(Qt6 ${PROJECT_VERSION} CONFIG REQUIRED COMPONENTS BuildInternals Core) +find_package(Qt6 ${PROJECT_VERSION} QUIET CONFIG OPTIONAL_COMPONENTS Gui Network Quick Qml QuickControls2 DBus) macro(assertTargets) foreach(qtTarget IN ITEMS ${ARGN}) diff --git a/coin/module_config.yaml b/coin/module_config.yaml index 15841e7..cf4c0ce 100644 --- a/coin/module_config.yaml +++ b/coin/module_config.yaml @@ -1,4 +1,5 @@ version: 2 +tags: ["documentation"] accept_configuration: condition: or conditions: diff --git a/conanfile.py b/conanfile.py index 2c69770..6bd0644 100644 --- a/conanfile.py +++ b/conanfile.py @@ -37,7 +37,7 @@ class QtConanError(Exception): class QtDeviceUtilities(ConanFile): name = "qtdeviceutilities" - version = "6.3.0" + version = "6.4.0" license = "GPL-3.0, Commercial Qt License Agreement" author = "The Qt Company <https://www.qt.io/contact-us>" url = "https://code.qt.io/cgit/qt/qtdeviceutilities.git/" diff --git a/dependencies.yaml b/dependencies.yaml index f7cdf13..08e033a 100644 --- a/dependencies.yaml +++ b/dependencies.yaml @@ -1,7 +1,7 @@ dependencies: ../../qt/qtdeclarative: - ref: 6eeacee7ac506a8a0d583ff278a55312b49ab21d + ref: f69633197176a96fb44d5f13b67ffdb752eedf65 required: true ../qttools: - ref: 874753036b26c3de283528a51657d9a4f1b87141 + ref: 7ece380fbb8b8a1357e19e7abb6718ae9b186ba4 required: false diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt new file mode 100644 index 0000000..dcb8cf0 --- /dev/null +++ b/examples/CMakeLists.txt @@ -0,0 +1,5 @@ +qt_examples_build_begin(EXTERNAL_BUILD) + +add_subdirectory(deviceutilities) + +qt_examples_build_end() diff --git a/examples/deviceutilities/CMakeLists.txt b/examples/deviceutilities/CMakeLists.txt new file mode 100644 index 0000000..1a67f53 --- /dev/null +++ b/examples/deviceutilities/CMakeLists.txt @@ -0,0 +1,3 @@ +if(TARGET Qt::Quick) + qt_internal_add_example(settingsuiapp) +endif() diff --git a/src/settingsui/AutoScroller.qml b/examples/deviceutilities/settingsuiapp/AutoScroller.qml index e1d5c27..e1d5c27 100644 --- a/src/settingsui/AutoScroller.qml +++ b/examples/deviceutilities/settingsuiapp/AutoScroller.qml diff --git a/examples/deviceutilities/settingsuiapp/CMakeLists.txt b/examples/deviceutilities/settingsuiapp/CMakeLists.txt new file mode 100644 index 0000000..976ad9b --- /dev/null +++ b/examples/deviceutilities/settingsuiapp/CMakeLists.txt @@ -0,0 +1,56 @@ +cmake_minimum_required(VERSION 3.16) + +project(settingsapp VERSION 1.0 LANGUAGES CXX) + +if(NOT DEFINED INSTALL_EXAMPLESDIR) + set(INSTALL_EXAMPLESDIR "${CMAKE_INSTALL_PREFIX}/share/examples") +endif() +set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/deviceutilities/settingsapp") + +set(CMAKE_AUTOMOC ON) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +find_package(Qt6 COMPONENTS Core Qml Quick) + +add_subdirectory(DeviceUtilities/SettingsUI) +add_subdirectory(DeviceUtilities/QtButtonImageProvider) + +set(qml_files + "main.qml" + "AutoScroller.qml" + "HandwritingModeButton.qml" +) + +set(images + "images/FloatingButton_Active.png" + "images/FloatingButton_Available.png" + "images/FloatingButton_Unavailable.png" +) + +qt_add_executable(settingsapp + main.cpp +) + +qt_add_qml_module(settingsapp + URI DeviceUtilities + VERSION 1.0 + QML_FILES + ${qml_files} + SOURCES + applicationsettings.cpp + applicationsettings.h + RESOURCES + ${images} +) + +target_link_libraries(settingsapp PRIVATE + Qt::Core + Qt::Gui +) + +install(TARGETS settingsapp + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) diff --git a/examples/deviceutilities/settingsuiapp/DeviceUtilities/QtButtonImageProvider/CMakeLists.txt b/examples/deviceutilities/settingsuiapp/DeviceUtilities/QtButtonImageProvider/CMakeLists.txt new file mode 100644 index 0000000..9e62cda --- /dev/null +++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/QtButtonImageProvider/CMakeLists.txt @@ -0,0 +1,32 @@ +# There are a number of options to qt_add_qml_module that start with capital NO. +# The most prominent NO option is probably NO_GENERATE_PLUGIN_SOURCE. +# Unfortunately image providers still need to be configured per QML engine. +# Therefore, if you bundle an image provider in your QML module, you need to implement +# the QQmlEngineExtensionPlugin::initializeEngine() method. +# This, in turn, makes it necessary to write your own plugin. +# In this example the plugin is in the QtButtonImageProvider class. + +qt_add_qml_module(qtbuttonimageproviderplugin + URI "DeviceUtilities.QtButtonImageProvider" + VERSION 1.0 + PLUGIN_TARGET qtbuttonimageproviderplugin + NO_PLUGIN_OPTIONAL + NO_GENERATE_PLUGIN_SOURCE + CLASS_NAME QtButtonImageProviderPlugin + SOURCES + plugin.cpp plugin_p.h + qtbuttonimageprovider.cpp qtbuttonimageprovider.h + QML_FILES + "QtButton.qml" +) + +target_link_libraries(qtbuttonimageproviderplugin PRIVATE + Qt::Quick +) + +install(TARGETS qtbuttonimageproviderplugin + DESTINATION "${INSTALL_EXAMPLEDIR}/DeviceUtilities/QtButtonImageProvider" +) +install(FILES $<TARGET_FILE_DIR:qtbuttonimageproviderplugin>/qmldir + DESTINATION "${INSTALL_EXAMPLEDIR}/DeviceUtilities/QtButtonImageProvider" +) diff --git a/src/settingsui/qtbuttonimageproviderplugin/QtButton.qml b/examples/deviceutilities/settingsuiapp/DeviceUtilities/QtButtonImageProvider/QtButton.qml index d65ae23..60e16ff 100644 --- a/src/settingsui/qtbuttonimageproviderplugin/QtButton.qml +++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/QtButtonImageProvider/QtButton.qml @@ -27,6 +27,7 @@ ** ****************************************************************************/ import QtQuick +import DeviceUtilities.SettingsUI Image { id: root @@ -34,9 +35,10 @@ Image { sourceSize: Qt.size(width, height) property string state: "enabled" property int cutSize: 10 - property color fillColor: viewSettings.buttonGreenColor - property color borderColor: mouseArea.pressed ? viewSettings.buttonActiveColor : viewSettings.buttonGreenColor + property color fillColor: Globals.buttonGreenColor + property color borderColor: mouseArea.pressed ? Globals.buttonActiveColor : Globals.buttonGreenColor property alias text: buttonText.text + property alias fontFamily: buttonText.font.family signal clicked() width: buttonText.contentWidth + cutSize * 4 @@ -52,7 +54,7 @@ Image { verticalAlignment: Text.AlignVCenter horizontalAlignment: Text.AlignHCenter font.pixelSize: parent.height * 0.65 - font.family: appFont + //font.family: Globals.appFont color: "white" } } diff --git a/src/settingsui/qtbuttonimageproviderplugin/plugin.cpp b/examples/deviceutilities/settingsuiapp/DeviceUtilities/QtButtonImageProvider/plugin.cpp index 30ede2a..30ede2a 100644 --- a/src/settingsui/qtbuttonimageproviderplugin/plugin.cpp +++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/QtButtonImageProvider/plugin.cpp diff --git a/src/settingsui/settingsuiplugin/plugin_p.h b/examples/deviceutilities/settingsuiapp/DeviceUtilities/QtButtonImageProvider/plugin_p.h index 46f2119..96f64ad 100644 --- a/src/settingsui/settingsuiplugin/plugin_p.h +++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/QtButtonImageProvider/plugin_p.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2019 The Qt Company Ltd. +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Device Utilities module of the Qt Toolkit. @@ -26,10 +26,11 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -#ifndef SETTINGSUIPLUGIN_H -#define SETTINGSUIPLUGIN_H +#ifndef QTBUTTONIMAGEPROVIDERQMLPLUGIN_H +#define QTBUTTONIMAGEPROVIDERQMLPLUGIN_H + +#include "qtbuttonimageprovider.h" #include <qqmlextensionplugin.h> -#include <qqmlengine.h> // // W A R N I N G @@ -44,13 +45,18 @@ QT_BEGIN_NAMESPACE -struct SettingsUiComponent +class QtButtonImageProviderQmlPlugin : public QQmlEngineExtensionPlugin { - Q_GADGET - QML_NAMED_ELEMENT(SettingsUI) - QML_ADDED_IN_VERSION(2, 0) + Q_OBJECT + Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid) + +public: + void initializeEngine(QQmlEngine *engine, const char *uri) final + { + Q_UNUSED(uri); + engine->addImageProvider("QtButton", new QtButtonImageProvider); + } }; QT_END_NAMESPACE - -#endif //SETTINGSUIPLUGIN_H +#endif //QTBUTTONIMAGEPROVIDERQMLPLUGIN_H diff --git a/src/settingsui/qtbuttonimageproviderplugin/qtbuttonimageprovider.cpp b/examples/deviceutilities/settingsuiapp/DeviceUtilities/QtButtonImageProvider/qtbuttonimageprovider.cpp index 5bf162b..65566a5 100644 --- a/src/settingsui/qtbuttonimageproviderplugin/qtbuttonimageprovider.cpp +++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/QtButtonImageProvider/qtbuttonimageprovider.cpp @@ -26,7 +26,6 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -#include <QQuickImageProvider> #include <QImage> #include <QPainter> #include <QPainterPath> diff --git a/src/settingsui/qtbuttonimageproviderplugin/qtbuttonimageprovider.h b/examples/deviceutilities/settingsuiapp/DeviceUtilities/QtButtonImageProvider/qtbuttonimageprovider.h index 94f410e..94f410e 100644 --- a/src/settingsui/qtbuttonimageproviderplugin/qtbuttonimageprovider.h +++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/QtButtonImageProvider/qtbuttonimageprovider.h diff --git a/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/CMakeLists.txt b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/CMakeLists.txt new file mode 100644 index 0000000..61791e5 --- /dev/null +++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/CMakeLists.txt @@ -0,0 +1,50 @@ +set(qml_files + "Globals.qml" + "SettingsUI.qml" +) + +# Resources: +set(images + "icons/back.svg" + "icons/network.svg" +) + +set_source_files_properties(Globals.qml + PROPERTIES + QT_QML_SINGLETON_TYPE true +) + +find_package(Qt6 COMPONENTS NetworkSettings QuickControls2) + +add_subdirectory(Network) + +qt_add_qml_module(settingsui + URI "DeviceUtilities.SettingsUI" + VERSION 1.0 + QML_FILES + ${qml_files} + RESOURCES + ${images} +) + +target_link_libraries(settingsui PRIVATE + Qt::NetworkSettings + Qt::QuickControls2 +) + +set_target_properties(settingsuiplugin PROPERTIES + INSTALL_RPATH $ORIGIN/../..:$ORIGIN/../../${CMAKE_INSTALL_LIBDIR} +) + +install(TARGETS settingsui + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) + +install(TARGETS settingsuiplugin + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}/DeviceUtilities/SettingsUI" +) +install(FILES $<TARGET_FILE_DIR:settingsuiplugin>/qmldir + DESTINATION "${INSTALL_EXAMPLEDIR}/DeviceUtilities/SettingsUI" +) diff --git a/src/settingsui/settingsuiplugin/SettingsTitleItem.qml b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Globals.qml index 6156091..de31b89 100644 --- a/src/settingsui/settingsuiplugin/SettingsTitleItem.qml +++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Globals.qml @@ -1,9 +1,9 @@ /**************************************************************************** ** -** Copyright (C) 2017 The Qt Company Ltd. +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** -** This file is part of the Device Utilities module of the Qt Toolkit. +** This file is part of Qt for Device Creation. ** ** $QT_BEGIN_LICENSE:GPL$ ** Commercial License Usage @@ -26,32 +26,29 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ +pragma Singleton import QtQuick +import QtDeviceUtilities.NetworkSettings -Column { - id: page - spacing: pluginMain.spacing +QtObject { + id: globals + readonly property string appFont: "TitilliumWeb" + readonly property color backgroundColor: "#09102b" + readonly property color borderColor: "#9d9faa" + readonly property color buttonGreenColor: "#41cd52" + readonly property color buttonGrayColor: "#9d9faa" + readonly property color buttonActiveColor: "#216729" + readonly property color scrollBarColor: "#41cd52" - property alias title: displayText.text + readonly property real spacing: 0.5 + readonly property real titleFontSize: 0.04 + readonly property real subTitleFontSize: 0.035 + readonly property real valueFontSize: 0.025 + readonly property real fieldHeight: 0.07 + readonly property real fieldTextHeight: 0.05 + readonly property real buttonHeight: 0.05 - Text { - id: displayText - font.pixelSize: pluginMain.titleFontSize - color: "white" - fontSizeMode: Text.Fit - minimumPixelSize: 1 - font.family: appFont - font.styleName: "Bold" - } - - Rectangle { - id: btmLine - width: page.parent.width * 0.3 - height: 3 - } - - Item { - height: pluginMain.margin - width: 1 + function margin(width) { + return (width / 3 * 2) * 0.05; } } diff --git a/src/settingsui/network/AddressListEntry.qml b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/AddressListEntry.qml index 9701587..9701587 100644 --- a/src/settingsui/network/AddressListEntry.qml +++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/AddressListEntry.qml diff --git a/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/CMakeLists.txt b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/CMakeLists.txt new file mode 100644 index 0000000..ea3dc22 --- /dev/null +++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/CMakeLists.txt @@ -0,0 +1,55 @@ +set(qml_files + "CustomSwitch.qml" + "CustomTableView.qml" + "AddressListEntry.qml" + "ComboBoxEntry.qml" + "EditWiredSettings.qml" + "IpAddressTextField.qml" + "NetworkListView.qml" + "NetworkSettings.qml" + "PassphraseEnter.qml" + "WifiSelectorDelegate.qml" + "WifiSettings.qml" + "WifiSignalMonitor.qml" + "WiredSettings.qml" +) + +# Resources: +set(images + "icons/Alert_yellow_1x.png" + "icons/WifiAnim_black_2x.png" + "icons/Wifi_lightgray_2x.png" +) + +find_package(Qt6 COMPONENTS NetworkSettings QuickControls2) + +qt_add_qml_module(settingsuinetwork + URI "DeviceUtilities.SettingsUI.Network" + VERSION 1.0 + QML_FILES + ${qml_files} + RESOURCES + ${images} +) + +target_link_libraries(settingsuinetwork PRIVATE + Qt::NetworkSettings + Qt::QuickControls2 +) + +set_target_properties(settingsuinetworkplugin PROPERTIES + INSTALL_RPATH $ORIGIN/../../..:$ORIGIN/../../../${CMAKE_INSTALL_LIBDIR} +) + +install(TARGETS settingsuinetwork + RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" + BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" + LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" +) + +install(TARGETS settingsuinetworkplugin + DESTINATION "${INSTALL_EXAMPLEDIR}/DeviceUtilities/SettingsUI/Network" +) +install(FILES $<TARGET_FILE_DIR:settingsuinetworkplugin>/qmldir + DESTINATION "${INSTALL_EXAMPLEDIR}/DeviceUtilities/SettingsUI/Network" +) diff --git a/src/settingsui/network/ComboBoxEntry.qml b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/ComboBoxEntry.qml index ce88964..c7e91b1 100644 --- a/src/settingsui/network/ComboBoxEntry.qml +++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/ComboBoxEntry.qml @@ -42,8 +42,8 @@ RowLayout { property alias model: cb.model property alias count: cb.count property int titleWidth: -1 - signal activated(var index) - signal highlighted(var index) + signal activated(int index) + signal highlighted(int index) Label { id: label diff --git a/src/settingsui/common/CustomSwitch.qml b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/CustomSwitch.qml index c552127..394629b 100644 --- a/src/settingsui/common/CustomSwitch.qml +++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/CustomSwitch.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2017 The Qt Company Ltd. +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Device Utilities module of the Qt Toolkit. @@ -27,8 +27,9 @@ ** ****************************************************************************/ import QtQuick -import QtDeviceUtilities.QtButtonImageProvider import QtQuick.Controls +import DeviceUtilities.SettingsUI +import DeviceUtilities.QtButtonImageProvider Switch { id: control @@ -56,7 +57,7 @@ Switch { font.pixelSize: parent.height * 0.55 color: "#3b4155" text: "OFF" - font.family: appFont + font.family: Globals.appFont } Text { id: onText @@ -70,7 +71,7 @@ Switch { font.pixelSize: parent.height * 0.55 color: "#3b4155" text: "ON" - font.family: appFont + font.family: Globals.appFont } Binding { @@ -80,17 +81,12 @@ Switch { when: !mousearea.drag.active } - MouseArea { - anchors.fill: parent - onClicked: control.checked = !control.checked - } - QtButton { id: qtHandle anchors.verticalCenter: parent.verticalCenter width: parent.width * 0.475 height: parent.height * 0.9 - fillColor: control.checked ? viewSettings.buttonGreenColor : viewSettings.buttonGrayColor + fillColor: control.checked ? Globals.buttonGreenColor : Globals.buttonGrayColor text: control.checked ? "ON" : "OFF" borderColor: "transparent" Behavior on x { @@ -105,8 +101,6 @@ Switch { drag.minimumX: indicatorImg.width * 0.005 drag.maximumX: indicatorImg.width - width - indicatorImg.width * 0.005 - onClicked: control.checked = !control.checked - onReleased: { if (qtHandle.x > indicatorImg.width / 5 ) { control.checked = true diff --git a/src/settingsui/common/CustomTableView.qml b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/CustomTableView.qml index a5a7fe8..059795c 100644 --- a/src/settingsui/common/CustomTableView.qml +++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/CustomTableView.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Device Utilities module of the Qt Toolkit. @@ -29,6 +29,7 @@ import QtQuick import QtQuick.Layouts import QtQuick.Controls +import DeviceUtilities.SettingsUI ColumnLayout { id: root @@ -64,7 +65,7 @@ ColumnLayout { contentItem: Rectangle { implicitWidth: listView.width * 0.0175 implicitHeight: listView.height * 0.5 - color: viewSettings.scrollBarColor + color: Globals.scrollBarColor } } @@ -91,8 +92,8 @@ ColumnLayout { antialiasing: false smooth: false renderType: listView.moving ? Text.NativeRendering : Text.QtRendering - color: listView.currentIndex == delegateRectangle.index ? viewSettings.buttonGreenColor : "white" - font.family: appFont + color: listView.currentIndex == delegateRectangle.index ? Globals.buttonGreenColor : "white" + font.family: Globals.appFont } } } diff --git a/src/settingsui/network/EditWiredSettings.qml b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/EditWiredSettings.qml index a59da20..a59da20 100644 --- a/src/settingsui/network/EditWiredSettings.qml +++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/EditWiredSettings.qml diff --git a/src/settingsui/network/IpAddressTextField.qml b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/IpAddressTextField.qml index 748e402..a328775 100644 --- a/src/settingsui/network/IpAddressTextField.qml +++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/IpAddressTextField.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Device Utilities module of the Qt Toolkit. @@ -27,7 +27,6 @@ ** ****************************************************************************/ import QtQuick -import QtQuick.Layouts import QtQuick.Controls TextField { diff --git a/src/settingsui/network/NetworkListView.qml b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/NetworkListView.qml index 7c35433..b4f3d0e 100644 --- a/src/settingsui/network/NetworkListView.qml +++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/NetworkListView.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2017 The Qt Company Ltd. +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Device Utilities module of the Qt Toolkit. @@ -27,26 +27,25 @@ ** ****************************************************************************/ import QtQuick -import QtQml import QtDeviceUtilities.NetworkSettings -import QtDeviceUtilities.QtButtonImageProvider -import QtQuick.Controls +import DeviceUtilities.SettingsUI +import DeviceUtilities.QtButtonImageProvider ListView { id: list clip: true property var connectingService: null property bool retryConnectAfterIdle: false + + focus: true + boundsBehavior: Flickable.DragOverBounds + model: NetworkSettingsManager.services + function connectBySsid() { passphraseEnter.showSsid = true passphraseEnter.visible = true } - Component.onCompleted: { - NetworkSettingsManager.services.type = NetworkSettingsType.Unknown; - } - model: NetworkSettingsManager.services - delegate: Item { id: networkDelegate width: list.width @@ -59,17 +58,17 @@ ListView { id: networkName horizontalAlignment: Text.AlignLeft verticalAlignment: Text.AlignVCenter - font.pixelSize: pluginMain.subTitleFontSize - font.family: appFont - color: connected ? viewSettings.buttonGreenColor : "white" - text: name + font.pixelSize: Globals.subTitleFontSize + font.family: Globals.appFont + color: connected ? Globals.buttonGreenColor : "white" + text: (modelData.type === NetworkSettingsType.Wired) ? modelData["name"] + " (" + modelData["id"] + ")" : name } Row { id: ipRow height: networkDelegate.height * 0.275 * opacity spacing: networkDelegate.width * 0.0075 Item { - width: pluginMain.margin + width: Globals.margin(list.width) height: 1 } Text { @@ -77,9 +76,9 @@ ListView { height: parent.height anchors.verticalCenter: parent.verticalCenter text: qsTr("IP Address:") - color: connected ? viewSettings.buttonGreenColor : "white" - font.pixelSize: pluginMain.valueFontSize - font.family: appFont + color: connected ? Globals.buttonGreenColor : "white" + font.pixelSize: Globals.valueFontSize + font.family: Globals.appFont verticalAlignment: Text.AlignVCenter horizontalAlignment: Text.AlignLeft } @@ -90,24 +89,25 @@ ListView { anchors.verticalCenter: parent.verticalCenter verticalAlignment: Text.AlignVCenter horizontalAlignment: Text.AlignLeft - color: connected ? viewSettings.buttonGreenColor : "white" + color: connected ? Globals.buttonGreenColor : "white" text: connected ? NetworkSettingsManager.services.itemFromRow(index).ipv4.address : (NetworkSettingsManager.services.itemFromRow(index).state === NetworkSettingsState.Idle) ? qsTr("Not connected") : qsTr("Connecting") - font.pixelSize: pluginMain.valueFontSize - font.family: appFont + font.pixelSize: Globals.valueFontSize + font.family: Globals.appFont font.styleName: connected ? "SemiBold" : "Regular" } } } QtButton { id: connectButton + fontFamily: Globals.appFont anchors.right: parent.right anchors.verticalCenter: parent.verticalCenter - fillColor: connected ? viewSettings.buttonGrayColor : viewSettings.buttonGreenColor + fillColor: connected ? Globals.buttonGrayColor : Globals.buttonGreenColor borderColor: "transparent" text: connected ? qsTr("DISCONNECT") : qsTr("CONNECT") - height: pluginMain.buttonHeight + enabled: true onClicked: { if (connected) { NetworkSettingsManager.services.itemFromRow(index).disconnectService(); @@ -124,13 +124,12 @@ ListView { Rectangle { id: delegateBottom width: networkDelegate.width - color: viewSettings.borderColor + color: Globals.borderColor height: 2 anchors.bottom: networkDelegate.bottom anchors.horizontalCenter: networkDelegate.horizontalCenter } Behavior on height { NumberAnimation { duration: 200} } - } Connections { @@ -143,7 +142,7 @@ ListView { // Popup for entering passphrase PassphraseEnter { id: passphraseEnter - parent: root + parent: list.parent visible: false } @@ -166,6 +165,4 @@ ListView { } } } - - focus: true } diff --git a/src/settingsui/network/NetworkSettings.qml b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/NetworkSettings.qml index a0555f4..6c486f6 100644 --- a/src/settingsui/network/NetworkSettings.qml +++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/NetworkSettings.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Device Utilities module of the Qt Toolkit. @@ -27,36 +27,47 @@ ** ****************************************************************************/ import QtQuick -import QtQuick.Layouts -import QtQuick.Controls import QtDeviceUtilities.NetworkSettings -import QtDeviceUtilities.QtButtonImageProvider -import "../common" +import DeviceUtilities.QtButtonImageProvider +import DeviceUtilities.SettingsUI Item { id: networkSettingsRoot - property string title: qsTr("Network Settings") anchors.fill: parent + Connections { + target: NetworkSettingsManager + function onInterfacesChanged() { + if (NetworkSettingsManager.interface(NetworkSettingsType.Wifi, 0) !== null) { + wifiSwitch.visible = true + wifiSwitch.checked = Qt.binding(function() { return NetworkSettingsManager.interface(NetworkSettingsType.Wifi, 0).powered }) + } else { + wifiSwitch.visible = false + } + } + } + Text { id: wlanText - text: qsTr("WLAN") - font.pixelSize: pluginMain.subTitleFontSize - font.family: appFont + visible: wifiSwitch.visible + text: qsTr("WiFi") + font.pixelSize: networkSettingsRoot.height * Globals.subTitleFontSize + font.family: Globals.appFont font.styleName: "SemiBold" color: "white" anchors.top: networkSettingsRoot.top - anchors.left: parent.left + anchors.left: networkSettingsRoot.left } + CustomSwitch { id: wifiSwitch anchors.top: wlanText.bottom anchors.left: wlanText.left - height: pluginMain.buttonHeight - indicatorWidth: pluginMain.buttonWidth - indicatorHeight: pluginMain.buttonHeight - property bool wiFiAvailable: NetworkSettingsManager.interface(NetworkSettingsType.Wifi, 0) !== null - enabled: wiFiAvailable && !wifiSwitchTimer.running + height: networkSettingsRoot.height * Globals.buttonHeight + indicatorWidth: networkSettingsRoot.height * Globals.buttonWidth + indicatorHeight: networkSettingsRoot.height * Globals.buttonHeight + checkable: visible && !wifiSwitchTimer.running + onCheckedChanged: { // Power on/off all WiFi interfaces for (var i = 0; NetworkSettingsManager.interface(NetworkSettingsType.Wifi, i) !== null; i++) { @@ -64,17 +75,6 @@ Item { wifiSwitchTimer.start() } } - Component.onCompleted: { - // If any of the WiFi interfaces is powered on, switch is checked - var checkedStatus = false; - for (var i = 0; NetworkSettingsManager.interface(NetworkSettingsType.Wifi, i) !== null; i++) { - if (NetworkSettingsManager.interface(NetworkSettingsType.Wifi, i).powered) { - checkedStatus = true; - break; - } - } - checked = checkedStatus; - } // At least 1s between switching on/off Timer { @@ -89,23 +89,26 @@ Item { anchors.left: wifiSwitch.right anchors.right: manualDisconnect.left anchors.rightMargin: 10 + visible: wifiSwitch.visible enabled: wifiSwitch.checked - fillColor: enabled ? viewSettings.buttonGreenColor : viewSettings.buttonGrayColor + fillColor: enabled ? Globals.buttonGreenColor : Globals.buttonGrayColor borderColor: "transparent" - height: pluginMain.buttonHeight + height: networkSettingsRoot.height * Globals.buttonHeight text: qsTr("MANUAL CONNECT") onClicked: { networkList.connectBySsid() } } + QtButton { id: manualDisconnect anchors.top: wlanText.bottom - anchors.right: parent.right + anchors.right: networkSettingsRoot.right + visible: wifiSwitch.visible enabled: NetworkSettingsManager.currentWifiConnection - fillColor: enabled ? viewSettings.buttonGreenColor : viewSettings.buttonGrayColor + fillColor: enabled ? Globals.buttonGreenColor : Globals.buttonGrayColor borderColor: "transparent" - height: pluginMain.buttonHeight + height: networkSettingsRoot.height * Globals.buttonHeight text: qsTr("DISCONNECT") onClicked: { if (NetworkSettingsManager.currentWifiConnection) { @@ -113,16 +116,18 @@ Item { } } } + Text { id: networkListTextItem - text: qsTr("Network list:") - font.pixelSize: pluginMain.subTitleFontSize - font.family: appFont + text: qsTr("Available networks:") + font.pixelSize: networkSettingsRoot.height * Globals.subTitleFontSize + font.family: Globals.appFont font.styleName: "SemiBold" color: "white" - anchors.top: wifiSwitch.bottom + anchors.top: (wifiSwitch.visible === true) ? wifiSwitch.bottom : networkSettingsRoot.top anchors.topMargin: 10 } + NetworkListView { id: networkList anchors.top: networkListTextItem.bottom diff --git a/src/settingsui/network/PassphraseEnter.qml b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/PassphraseEnter.qml index 5d3167c..ab85201 100644 --- a/src/settingsui/network/PassphraseEnter.qml +++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/PassphraseEnter.qml @@ -28,22 +28,26 @@ ****************************************************************************/ import QtQuick import QtQuick.Controls -import QtDeviceUtilities.QtButtonImageProvider import QtDeviceUtilities.NetworkSettings +import DeviceUtilities.SettingsUI +import DeviceUtilities.QtButtonImageProvider Rectangle { id: passphrasePopup - width: root.width - height: root.height - color: viewSettings.backgroundColor + width: parent.width + height: parent.height + color: Globals.backgroundColor opacity: 0.9 property string extraInfo: "" property bool showSsid: false + property int margin: (width / 3 * 2) * 0.05 + property int spacing: margin * 0.5 + Rectangle { id: frame - color: viewSettings.backgroundColor - border.color: viewSettings.borderColor + color: Globals.backgroundColor + border.color: Globals.borderColor border.width: 3 anchors.centerIn: parent width: passphraseColumn.width * 1.1 @@ -52,12 +56,12 @@ Rectangle { Column { id: passphraseColumn anchors.centerIn: parent - spacing: viewSettings.spacing + spacing: spacing Text { visible: showSsid - font.pixelSize: pluginMain.subTitleFontSize - font.family: appFont + font.pixelSize: passphrasePopup.height * Globals.subTitleFontSize + font.family: Globals.appFont color: "white" text: qsTr("Enter SSID") } @@ -65,26 +69,26 @@ Rectangle { TextField { id: ssidField visible: showSsid - width: root.width * 0.4 - height: root.height * 0.075 + width: passphrasePopup.width * 0.4 + height: passphrasePopup.height * 0.075 color: "white" background: Rectangle{ color: "transparent" - border.color: ssidField.focus ? viewSettings.buttonGreenColor : viewSettings.buttonGrayColor + border.color: ssidField.focus ? Globals.buttonGreenColor : Globals.buttonGrayColor border.width: ssidField.focus ? width * 0.01 : 2 } } Text { - font.pixelSize: pluginMain.subTitleFontSize - font.family: appFont + font.pixelSize: passphrasePopup.height * Globals.subTitleFontSize + font.family: Globals.appFont color: "white" text: qsTr("Enter Passphrase") } Text { - font.pixelSize: pluginMain.valueFontSize - font.family: appFont + font.pixelSize: passphrasePopup.height * Globals.valueFontSize + font.family: Globals.appFont color: "red" text: extraInfo visible: (extraInfo !== "") @@ -92,13 +96,13 @@ Rectangle { TextField { id: passField - width: root.width * 0.4 - height: root.height * 0.075 + width: passphrasePopup.width * 0.4 + height: passphrasePopup.height * 0.075 color: "white" echoMode: TextInput.Password background: Rectangle{ color: "transparent" - border.color: passField.focus ? viewSettings.buttonGreenColor : viewSettings.buttonGrayColor + border.color: passField.focus ? Globals.buttonGreenColor : Globals.buttonGrayColor border.width: passField.focus ? width * 0.01 : 2 } } @@ -122,7 +126,7 @@ Rectangle { id: cancelButton text: qsTr("CANCEL") borderColor: "transparent" - fillColor: viewSettings.buttonGrayColor + fillColor: Globals.buttonGrayColor onClicked: { if (!showSsid) { NetworkSettingsManager.userAgent.cancelInput() diff --git a/src/settingsui/network/WifiSelectorDelegate.qml b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/WifiSelectorDelegate.qml index 3c462c5..9c2ad11 100644 --- a/src/settingsui/network/WifiSelectorDelegate.qml +++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/WifiSelectorDelegate.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Device Utilities module of the Qt Toolkit. @@ -29,7 +29,6 @@ import QtQuick import QtQuick.Layouts import QtQuick.Controls -import QtDeviceUtilities.NetworkSettings ItemDelegate { id: root diff --git a/src/settingsui/network/WifiSettings.qml b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/WifiSettings.qml index 0286483..7b4f246 100644 --- a/src/settingsui/network/WifiSettings.qml +++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/WifiSettings.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Device Utilities module of the Qt Toolkit. @@ -36,6 +36,7 @@ Item { anchors.fill: parent Component.onCompleted: NetworkSettingsManager.services.type = NetworkSettingsType.Wifi; property bool connecting: false + property var selectedInterface: undefined Flickable { anchors.fill: parent @@ -89,7 +90,7 @@ Item { textRole: "name" Layout.fillWidth: true - onActivated: { + onActivated: function(index) { if (index >= 0) { connectView.visible = false @@ -160,7 +161,7 @@ Item { property alias text: text.text Image { - source: "../icons/Alert_yellow_1x.png" + source: "icons/Alert_yellow_1x.png" Layout.alignment: Qt.AlignVCenter } Text { diff --git a/src/settingsui/network/WifiSignalMonitor.qml b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/WifiSignalMonitor.qml index 25e4aa4..bfbcb1d 100644 --- a/src/settingsui/network/WifiSignalMonitor.qml +++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/WifiSignalMonitor.qml @@ -58,7 +58,7 @@ Item { id: sprite property int currentFrame: 0 anchors.fill: parent - source: "../icons/Wifi_lightgray_2x.png" + source: "icons/Wifi_lightgray_2x.png" clip: true Timer { @@ -77,7 +77,7 @@ Item { Image { height: parent.height width: parent.width * 4 - source: "../icons/WifiAnim_black_2x.png" + source: "icons/WifiAnim_black_2x.png" x: -parent.currentFrame * width / 4 } } diff --git a/src/settingsui/network/WiredSettings.qml b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/WiredSettings.qml index f5d3a8f..f5d3a8f 100644 --- a/src/settingsui/network/WiredSettings.qml +++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/WiredSettings.qml diff --git a/src/settingsui/settingsuiplugin/icons/Alert_yellow_1x.png b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/icons/Alert_yellow_1x.png Binary files differindex 6fd25cb..6fd25cb 100644 --- a/src/settingsui/settingsuiplugin/icons/Alert_yellow_1x.png +++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/icons/Alert_yellow_1x.png diff --git a/src/settingsui/settingsuiplugin/icons/WifiAnim_black_2x.png b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/icons/WifiAnim_black_2x.png Binary files differindex c2dc8c5..c2dc8c5 100644 --- a/src/settingsui/settingsuiplugin/icons/WifiAnim_black_2x.png +++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/icons/WifiAnim_black_2x.png diff --git a/src/settingsui/settingsuiplugin/icons/Wifi_lightgray_2x.png b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/icons/Wifi_lightgray_2x.png Binary files differindex b71b22e..b71b22e 100644 --- a/src/settingsui/settingsuiplugin/icons/Wifi_lightgray_2x.png +++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/icons/Wifi_lightgray_2x.png diff --git a/src/settingsui/settingsuiplugin/icons/generate_icons.sh b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/icons/generate_icons.sh index 7218df0..7218df0 100755 --- a/src/settingsui/settingsuiplugin/icons/generate_icons.sh +++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/icons/generate_icons.sh diff --git a/src/settingsui/settingsuiplugin/icons/ref/extra/Alert.png b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/icons/ref/extra/Alert.png Binary files differindex 80914fc..80914fc 100644 --- a/src/settingsui/settingsuiplugin/icons/ref/extra/Alert.png +++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/icons/ref/extra/Alert.png diff --git a/src/settingsui/settingsuiplugin/icons/scripts/cimage.sh b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/icons/scripts/cimage.sh index adbbb7f..adbbb7f 100755 --- a/src/settingsui/settingsuiplugin/icons/scripts/cimage.sh +++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/icons/scripts/cimage.sh diff --git a/src/settingsui/settingsuiplugin/icons/scripts/cimages.sh b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/icons/scripts/cimages.sh index db1ad04..db1ad04 100755 --- a/src/settingsui/settingsuiplugin/icons/scripts/cimages.sh +++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/icons/scripts/cimages.sh diff --git a/src/settingsui/settingsuiplugin/icons/scripts/rimage.sh b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/icons/scripts/rimage.sh index 69b65a3..69b65a3 100755 --- a/src/settingsui/settingsuiplugin/icons/scripts/rimage.sh +++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/icons/scripts/rimage.sh diff --git a/src/settingsui/settingsuiplugin/icons/scripts/rimages.sh b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/icons/scripts/rimages.sh index e9e01b0..e9e01b0 100755 --- a/src/settingsui/settingsuiplugin/icons/scripts/rimages.sh +++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/icons/scripts/rimages.sh diff --git a/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/SettingsUI.qml b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/SettingsUI.qml new file mode 100644 index 0000000..5fad0ed --- /dev/null +++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/SettingsUI.qml @@ -0,0 +1,43 @@ +/**************************************************************************** +** +** Copyright (C) 2021 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$ +** +****************************************************************************/ +import QtQuick +import DeviceUtilities.SettingsUI.Network + +Rectangle { + id: main + anchors.fill: parent + color: Globals.backgroundColor + opacity: 0.97 + property int margin: Globals.margin(main.width) + signal closed() + + NetworkSettings { + anchors.margins: margin + } +} diff --git a/src/settingsui/settingsuiplugin/newIcons/back_icon.svg b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/icons/back.svg index 6034bd7..6034bd7 100644 --- a/src/settingsui/settingsuiplugin/newIcons/back_icon.svg +++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/icons/back.svg diff --git a/src/settingsui/settingsuiplugin/newIcons/network_icon.svg b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/icons/network.svg index 157fb52..157fb52 100644 --- a/src/settingsui/settingsuiplugin/newIcons/network_icon.svg +++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/icons/network.svg diff --git a/src/settingsui/common/HandwritingModeButton.qml b/examples/deviceutilities/settingsuiapp/HandwritingModeButton.qml index 8b47d2e..adbb262 100644 --- a/src/settingsui/common/HandwritingModeButton.qml +++ b/examples/deviceutilities/settingsuiapp/HandwritingModeButton.qml @@ -48,7 +48,7 @@ Item { sourceSize.width: handwritingModeButton.__minWidthHeight sourceSize.height: handwritingModeButton.__minWidthHeight smooth: false - source: "qrc:/icons/FloatingButton_Unavailable.png" + source: "images/FloatingButton_Unavailable.png" } back: Image { @@ -56,7 +56,7 @@ Item { sourceSize.width: handwritingModeButton.__minWidthHeight sourceSize.height: handwritingModeButton.__minWidthHeight smooth: false - source: "qrc:/icons/FloatingButton_Available.png" + source: "images/FloatingButton_Available.png" } states: State { @@ -86,7 +86,7 @@ Item { State { name: "active" PropertyChanges { target: flipableImage; flipped: true } - PropertyChanges { target: buttonImage; source: "qrc:/icons/FloatingButton_Active.png" } + PropertyChanges { target: buttonImage; source: "images/FloatingButton_Active.png" } } ] diff --git a/examples/deviceutilities/settingsuiapp/applicationsettings.cpp b/examples/deviceutilities/settingsuiapp/applicationsettings.cpp new file mode 100644 index 0000000..937a0ce --- /dev/null +++ b/examples/deviceutilities/settingsuiapp/applicationsettings.cpp @@ -0,0 +1,61 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of Qt for Device Creation. +** +** $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 "applicationsettings.h" +#include <QGuiApplication> +#include <QScreen> + +ApplicationSettings::ApplicationSettings(QObject *parent) + : QObject(parent) +{ + m_screen = qobject_cast<QGuiApplication *>(QCoreApplication::instance())->primaryScreen(); + + if (m_screen->orientation() == Qt::PortraitOrientation) { + m_width = m_screen->availableGeometry().height(); + m_height = m_screen->availableGeometry().width(); + } else { + m_width = m_screen->availableGeometry().width(); + m_height = m_screen->availableGeometry().height(); + } +} + +bool ApplicationSettings::isHighDpi() +{ + return (m_screen->devicePixelRatio() >= 2.0); +} + +int ApplicationSettings::width() +{ + return m_width; +} + +int ApplicationSettings::height() +{ + return m_height; +} + diff --git a/src/settingsui/ViewSettings.qml b/examples/deviceutilities/settingsuiapp/applicationsettings.h index 4f326cf..7b450e1 100644 --- a/src/settingsui/ViewSettings.qml +++ b/examples/deviceutilities/settingsuiapp/applicationsettings.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2019 The Qt Company Ltd. +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qt for Device Creation. @@ -26,18 +26,39 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -import QtQuick - -Item { - id: viewSettings - - property real pageMargin: 0.03 * Math.min(window.width, window.height) - property real spacing: pageMargin * 0.5 - property string appFont: "TitilliumWeb" - property string backgroundColor: "#09102b" - property string borderColor: "#9d9faa" - property string buttonGreenColor: "#41cd52" - property string buttonGrayColor: "#9d9faa" - property string buttonActiveColor: "#216729" - property string scrollBarColor: "#41cd52" -} + +#ifndef APPLICATIONSETTINGS_H +#define APPLICATIONSETTINGS_H + +#include <QObject> +#include <QQmlEngine> + +QT_FORWARD_DECLARE_CLASS(QScreen) + +class ApplicationSettings : public QObject +{ + Q_OBJECT + Q_PROPERTY(int width READ width CONSTANT FINAL) + Q_PROPERTY(int height READ height CONSTANT FINAL) + Q_PROPERTY(bool isHighDpi READ isHighDpi NOTIFY isHighDpiChanged FINAL) + + QML_ELEMENT + QML_SINGLETON + +public: + explicit ApplicationSettings(QObject *parent = nullptr); + + int width(); + int height(); + bool isHighDpi(); + +signals: + void isHighDpiChanged(bool isHighDpi); + +private: + QScreen *m_screen = nullptr; + int m_width = 1280; + int m_height = 720; +}; + +#endif // APPLICATIONSETTINGS_H diff --git a/src/settingsui/settingsuiplugin/icons/FloatingButton_Active.png b/examples/deviceutilities/settingsuiapp/images/FloatingButton_Active.png Binary files differindex 9b55146..9b55146 100755 --- a/src/settingsui/settingsuiplugin/icons/FloatingButton_Active.png +++ b/examples/deviceutilities/settingsuiapp/images/FloatingButton_Active.png diff --git a/src/settingsui/settingsuiplugin/icons/FloatingButton_Available.png b/examples/deviceutilities/settingsuiapp/images/FloatingButton_Available.png Binary files differindex 1479881..1479881 100755 --- a/src/settingsui/settingsuiplugin/icons/FloatingButton_Available.png +++ b/examples/deviceutilities/settingsuiapp/images/FloatingButton_Available.png diff --git a/src/settingsui/settingsuiplugin/icons/FloatingButton_Unavailable.png b/examples/deviceutilities/settingsuiapp/images/FloatingButton_Unavailable.png Binary files differindex 33aa87d..33aa87d 100755 --- a/src/settingsui/settingsuiplugin/icons/FloatingButton_Unavailable.png +++ b/examples/deviceutilities/settingsuiapp/images/FloatingButton_Unavailable.png diff --git a/src/settingsui/main.cpp b/examples/deviceutilities/settingsuiapp/main.cpp index 8ebe695..f2e51aa 100644 --- a/src/settingsui/main.cpp +++ b/examples/deviceutilities/settingsuiapp/main.cpp @@ -29,6 +29,8 @@ #include <QGuiApplication> #include <QQmlApplicationEngine> +#include "applicationsettings.h" + int main(int argc, char *argv[]) { qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard")); @@ -36,7 +38,7 @@ int main(int argc, char *argv[]) QGuiApplication app(argc, argv); QQmlApplicationEngine engine; - engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); + engine.load(QUrl(QStringLiteral("qrc:///DeviceUtilities/main.qml"))); return app.exec(); } diff --git a/src/settingsui/main.qml b/examples/deviceutilities/settingsuiapp/main.qml index c014923..0c755df 100644 --- a/src/settingsui/main.qml +++ b/examples/deviceutilities/settingsuiapp/main.qml @@ -28,23 +28,20 @@ ****************************************************************************/ import QtQuick import QtQuick.Window -import QtDeviceUtilities.SettingsUI import QtQuick.VirtualKeyboard -import "common" +import DeviceUtilities +import DeviceUtilities.SettingsUI Window { id: window visible: true - - property alias appFont: viewSettings.appFont - - ViewSettings { - id: viewSettings - } + width: ApplicationSettings.width + height: ApplicationSettings.height Item { id: root - anchors.fill: parent + width: window.width + height: window.height SettingsUI { id: settingsUI diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 25640ce..0e91047 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,6 +1,6 @@ add_subdirectory(networksettings) -add_subdirectory(networksettings/networksettingsqml) -add_subdirectory(settingsui/settingsuiplugin) -add_subdirectory(settingsui/qtbuttonimageproviderplugin) -add_subdirectory(settingsui) add_subdirectory(doc) + +if(TARGET Qt::Qml) + add_subdirectory(networksettingsqml) +endif() diff --git a/src/doc/CMakeLists.txt b/src/doc/CMakeLists.txt index 20feded..e4a4b7f 100644 --- a/src/doc/CMakeLists.txt +++ b/src/doc/CMakeLists.txt @@ -1,5 +1,12 @@ add_library(DeviceUtilities INTERFACE) target_link_libraries(DeviceUtilities INTERFACE Qt::Core) + +if(QT_BUILD_ONLINE_DOCS) + set(DOC_CONF "online/qtdeviceutilities.qdocconf") +else() + set(DOC_CONF "qtdeviceutilities.qdocconf") +endif() + qt_internal_add_docs(DeviceUtilities - qtdeviceutilities.qdocconf + ${DOC_CONF} ) diff --git a/src/doc/config/style/qt5-sidebar.html b/src/doc/config/style/qt5-sidebar.html deleted file mode 100644 index 3879827..0000000 --- a/src/doc/config/style/qt5-sidebar.html +++ /dev/null @@ -1,16 +0,0 @@ -<div class="sectionlist normallist"> - <div class="heading"> - <h2>Qt Device Utilities</h2> - </div> - <ul> - <li><a href="qtee-module-reference.html">Home</a></li> - </ul> -</div> -<div class="sectionlist normallist"> - <div class="heading"> - <h2>See Also</h2> - </div> - <ul> - <li><a href="https://doc.qt.io/QtForDeviceCreation">Qt for Device Creation</a></li> - </ul> -</div> diff --git a/src/doc/online/qtdeviceutilities.qdocconf b/src/doc/online/qtdeviceutilities.qdocconf new file mode 100644 index 0000000..c8e4c21 --- /dev/null +++ b/src/doc/online/qtdeviceutilities.qdocconf @@ -0,0 +1,9 @@ +include($QT_INSTALL_DOCS/global/qt-module-defaults-online.qdocconf) +include(../qtdeviceutilities-project.qdocconf) + +# Sidebar used for online template +HTML.stylesheets += style/qt5-sidebar.html + +# Turn off single-directory output mode +HTML.nosubdirs = "false" +HTML.outputsubdir = qtdeviceutilities diff --git a/src/doc/online/style/qt5-sidebar.html b/src/doc/online/style/qt5-sidebar.html new file mode 100644 index 0000000..d402ad0 --- /dev/null +++ b/src/doc/online/style/qt5-sidebar.html @@ -0,0 +1,11 @@ +<div class="sectionlist normallist"> + <div class="heading"> + <h2>Qt Device Utilities</h2> + </div> + <ul> + <li><a href="index.html">Home</a></li> + <li><a href="qtdeviceutilities-cpp-classes.html">C++ Classes</a></li> + <li><a href="qtdeviceutilities-qml-types.html">QML Types</a></li> + <li><a href="qtdeviceutilities-examples.html">Examples</a></li> + </ul> +</div> diff --git a/src/doc/qtdeviceutilities-project.qdocconf b/src/doc/qtdeviceutilities-project.qdocconf index cfd5d5a..3a3bfdb 100644 --- a/src/doc/qtdeviceutilities-project.qdocconf +++ b/src/doc/qtdeviceutilities-project.qdocconf @@ -1,9 +1,8 @@ -include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf) - project = QtDeviceUtilities description = Qt Device Utilities $QT_VERSION version = $QT_VERSION -macro.maintitle = "\\title Qt Device Utilities $QT_VERSION" +projectname = "Qt Device Utilities" +macro.maintitle = "\\title $projectname $QT_VERSION\n\\keyword $projectname" includepaths += -I . \ -I ../networksettings @@ -12,7 +11,7 @@ includepaths += -I . \ moduleheader = QtDeviceUtilitiesDoc sourcedirs += src \ - ../networksettings/networksettingsqml \ + ../networksettingsqml \ ../networksettings headerdirs += ../networksettings @@ -55,8 +54,8 @@ macro.B2QA = "\\e {Boot to Qt for embedded Android}" macro.B2QL = "\\e {Boot to Qt for embedded Linux}" macro.QtDU = "Qt Device Utilities" -# Keep Device Creation as the landing page -navigation.landingpage = "Qt for Device Creation" +# Qt Device Utilities as the landing page +navigation.landingpage = "Qt Device Utilities" navigation.qmltypespage = "Qt Device Utilities QML Types" navigation.cppclassespage = "Qt Device Utilities C++ Classes" diff --git a/src/doc/qtdeviceutilities.qdocconf b/src/doc/qtdeviceutilities.qdocconf index 5b56cf1..bd38e0f 100644 --- a/src/doc/qtdeviceutilities.qdocconf +++ b/src/doc/qtdeviceutilities.qdocconf @@ -1,3 +1,4 @@ +include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf) include(qtdeviceutilities-project.qdocconf) # Turn off single-directory output mode diff --git a/src/doc/src/external-resources.qdoc b/src/doc/src/external-resources.qdoc index 38e9654..12da259 100644 --- a/src/doc/src/external-resources.qdoc +++ b/src/doc/src/external-resources.qdoc @@ -24,10 +24,6 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -/*! - \externalpage https://doc.qt.io/QtForDeviceCreation - \title Qt for Device Creation -*/ /*! \externalpage http://code.qt.io/cgit/qt/qtdeviceutilities.git/ @@ -35,6 +31,7 @@ */ /*! - \externalpage http://code.qt.io/cgit/qt/qtdeviceutilities.git/tree/src/settingsui + \externalpage https://code.qt.io/cgit/qt/qtdeviceutilities.git/tree/examples/deviceutilities/settingsuiapp/ + \title Settings UI */ diff --git a/src/doc/src/qtdeviceutilities-index.qdoc b/src/doc/src/qtdeviceutilities-index.qdoc index 3e4467e..c7e0d96 100644 --- a/src/doc/src/qtdeviceutilities-index.qdoc +++ b/src/doc/src/qtdeviceutilities-index.qdoc @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2019 The Qt Company Ltd. +** Copyright (C) 2021 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the documentation of the Qt Toolkit. @@ -57,20 +57,11 @@ target_link_libraries(mytarget Qt6::NetworkSettings) \endcode - \section2 Building with qmake - - If you're using qmake to build your application, add this line to your qmake .pro file: - - \badcode - QT += networksettings - \endcode - To import the QML types into your application, use the following import statements in your .qml file: \code import QtDeviceUtilities.NetworkSettings - import QtDeviceUtilities.SettingsUI \endcode \section1 Examples diff --git a/src/doc/src/qtdeviceutilities-module-qml.qdoc b/src/doc/src/qtdeviceutilities-module-qml.qdoc index 2c8fef5..510fc01 100644 --- a/src/doc/src/qtdeviceutilities-module-qml.qdoc +++ b/src/doc/src/qtdeviceutilities-module-qml.qdoc @@ -35,15 +35,11 @@ \badcode import QtDeviceUtilities.NetworkSettings - import QtDeviceUtilities.SettingsUI \endcode \section1 QML Types \section2 Qt Network Settings Module \generatelist qmltypesbymodule QtDeviceUtilities.NetworkSettings - - \section2 Qt Settings UI Module - \generatelist qmltypesbymodule QtDeviceUtilities.SettingsUI */ diff --git a/src/networksettings/CMakeLists.txt b/src/networksettings/CMakeLists.txt index daf0b30..03e43f4 100644 --- a/src/networksettings/CMakeLists.txt +++ b/src/networksettings/CMakeLists.txt @@ -19,6 +19,7 @@ qt_internal_add_module(NetworkSettings qnetworksettingsservice.cpp qnetworksettingsservice.h qnetworksettingsservicemodel.cpp qnetworksettingsservicemodel.h qnetworksettingsuseragent.cpp qnetworksettingsuseragent.h + qnetworksettingsglobal.h DBUS_INTERFACE_SOURCES connman/connman_manager.xml connman/connman_service.xml @@ -27,10 +28,11 @@ qt_internal_add_module(NetworkSettings -iconnmancommon.h # special case INCLUDE_DIRECTORIES connman - LIBRARIES + PUBLIC_LIBRARIES Qt::Core Qt::DBus Qt::Network + GENERATE_CPP_EXPORTS ) file(MAKE_DIRECTORY header_connman) diff --git a/src/networksettings/connman/connman_manager.xml b/src/networksettings/connman/connman_manager.xml index 95bc0cb..ba95e8b 100644 --- a/src/networksettings/connman/connman_manager.xml +++ b/src/networksettings/connman/connman_manager.xml @@ -80,7 +80,7 @@ <signal name="TechnologyAdded" tp:name-for-bindings="Technology_Added"> <arg name="technology" type="o"/> <arg name="properties" type="a{sv}"/> - <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap"/> + <annotation name="org.qtproject.QtDBus.QtTypeName.Out1" value="QVariantMap"/> </signal> <signal name="TechnologyRemoved" tp:name-for-bindings="Technology_Removed"> diff --git a/src/networksettings/connman/connmancommon.cpp b/src/networksettings/connman/connmancommon.cpp index 887af48..a77bb1d 100644 --- a/src/networksettings/connman/connmancommon.cpp +++ b/src/networksettings/connman/connmancommon.cpp @@ -28,6 +28,8 @@ ****************************************************************************/ #include "connmancommon.h" +#include <QtNetworkSettings/qnetworksettings.h> + QT_BEGIN_NAMESPACE //Conversion operations for datatypes diff --git a/src/networksettings/connman/connmancommon.h b/src/networksettings/connman/connmancommon.h index 6b9dd31..3b3cb79 100644 --- a/src/networksettings/connman/connmancommon.h +++ b/src/networksettings/connman/connmancommon.h @@ -31,7 +31,6 @@ #include <QtCore/QMetaType> #include <QtDBus/QtDBus> -#include <QtNetworkSettings/qnetworksettings.h> #define PropertyAgentPath QStringLiteral("/ConnmanAgent") #define PropertyState QStringLiteral("State") @@ -54,6 +53,9 @@ QT_BEGIN_NAMESPACE +class QNetworkSettingsType; +class QNetworkSettingsState; + struct ConnmanMapStruct { QDBusObjectPath objectPath; QVariantMap propertyMap; diff --git a/src/networksettings/connman/qnetworksettingsinterface_p.cpp b/src/networksettings/connman/qnetworksettingsinterface_p.cpp index 5f008ff..eeb2abc 100644 --- a/src/networksettings/connman/qnetworksettingsinterface_p.cpp +++ b/src/networksettings/connman/qnetworksettingsinterface_p.cpp @@ -27,7 +27,6 @@ ** ****************************************************************************/ #include "qnetworksettingsinterface_p.h" -#include "qnetworksettingsinterface.h" #include "connman_technology_interface.h" #include "connmancommon.h" @@ -35,10 +34,9 @@ QT_BEGIN_NAMESPACE QNetworkSettingsInterfacePrivate::QNetworkSettingsInterfacePrivate(QNetworkSettingsInterface* parent) : QObject(parent) - , m_technology(Q_NULLPTR) + , m_technology(nullptr) ,q_ptr(parent) { - } void QNetworkSettingsInterfacePrivate::initialize(const QString& path, const QVariantMap& properties) @@ -83,7 +81,7 @@ void QNetworkSettingsInterfacePrivate::updateProperty(const QString &name, const } } -void QNetworkSettingsInterfacePrivate::setState(QNetworkSettingsState::States aState) +void QNetworkSettingsInterfacePrivate::setState(QNetworkSettingsState::State aState) { Q_Q(QNetworkSettingsInterface); m_state.setState(aState); diff --git a/src/networksettings/connman/qnetworksettingsinterface_p.h b/src/networksettings/connman/qnetworksettingsinterface_p.h index d85712a..25fbd2d 100644 --- a/src/networksettings/connman/qnetworksettingsinterface_p.h +++ b/src/networksettings/connman/qnetworksettingsinterface_p.h @@ -41,10 +41,11 @@ // #include <QObject> -#include <QtDBus> +#include <QtDBus/QDBusVariant> #include "qnetworksettings.h" #include "qnetworksettingsinterface.h" +// Automatically generated class in global namespace class NetConnmanTechnologyInterface; QT_BEGIN_NAMESPACE @@ -57,11 +58,11 @@ public: explicit QNetworkSettingsInterfacePrivate(QNetworkSettingsInterface* parent); void initialize(const QString& path, const QVariantMap& properties); void setPowered(const bool power); - void setState(QNetworkSettingsState::States aState); + void setState(QNetworkSettingsState::State aState); void scan(); QString name() const {return m_name;} - QNetworkSettingsType::Types type() const {return m_type.type();} - QNetworkSettingsState::States state() const {return m_state.state();} + QNetworkSettingsType::Type type() const {return m_type.type();} + QNetworkSettingsState::State state() const {return m_state.state();} bool powered() const {return m_powered;} QString path() const; @@ -84,21 +85,19 @@ class ConnmanSettingsInterface : public QNetworkSettingsInterface { Q_OBJECT public: - ConnmanSettingsInterface(const QString& path, const QVariantMap& properties, QObject *parent = Q_NULLPTR) + ConnmanSettingsInterface(const QString& path, const QVariantMap& properties, QObject *parent = nullptr) :QNetworkSettingsInterface(parent) { if (d_ptr) d_ptr->initialize(path, properties); } - void setState(QNetworkSettingsState::States aState) { + void setState(QNetworkSettingsState::State aState) { Q_D(QNetworkSettingsInterface); d->setState(aState); } - virtual ~ConnmanSettingsInterface() { - - } + virtual ~ConnmanSettingsInterface() {} QString path() const { if (d_ptr) diff --git a/src/networksettings/connman/qnetworksettingsmanager_p.cpp b/src/networksettings/connman/qnetworksettingsmanager_p.cpp index 3f594bd..77bf66f 100644 --- a/src/networksettings/connman/qnetworksettingsmanager_p.cpp +++ b/src/networksettings/connman/qnetworksettingsmanager_p.cpp @@ -26,10 +26,8 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -#include <QFile> -#include <QNetworkInterface> +#include "qnetworksettingsservice.h" #include "qnetworksettingsmanager_p.h" -#include "qnetworksettingsinterface.h" #include "qnetworksettingsinterface_p.h" #include "qnetworksettingsservicemodel.h" #include "qnetworksettingsuseragent.h" @@ -42,14 +40,14 @@ const QString ConnManServiceName(QStringLiteral("net.connman")); QNetworkSettingsManagerPrivate::QNetworkSettingsManagerPrivate(QNetworkSettingsManager *parent) :QObject(parent) ,q_ptr(parent) - , m_interfaceModel(Q_NULLPTR) - , m_serviceModel(Q_NULLPTR) - , m_serviceFilter(Q_NULLPTR) - , m_manager(Q_NULLPTR) - , m_agent(Q_NULLPTR) - , m_serviceWatcher(Q_NULLPTR) - , m_currentWifiConnection(Q_NULLPTR) - , m_currentWiredConnection(Q_NULLPTR) + , m_interfaceModel(nullptr) + , m_serviceModel(nullptr) + , m_serviceFilter(nullptr) + , m_manager(nullptr) + , m_agent(nullptr) + , m_serviceWatcher(nullptr) + , m_currentWifiConnection(nullptr) + , m_currentWiredConnection(nullptr) , m_initialized(false) { qRegisterMetaType<ConnmanMapStruct>("ConnmanMapStruct"); @@ -140,8 +138,7 @@ void QNetworkSettingsManagerPrivate::tryNextConnection() } if (!service) { if (!m_unnamedServicesForSsidConnection.isEmpty()) { - service = *m_unnamedServicesForSsidConnection.begin(); - m_unnamedServicesForSsidConnection.erase(m_unnamedServicesForSsidConnection.begin()); + service = m_unnamedServicesForSsidConnection.take(m_unnamedServicesForSsidConnection.firstKey()); } else { q->clearConnectionState(); } @@ -151,6 +148,26 @@ void QNetworkSettingsManagerPrivate::tryNextConnection() } } +void QNetworkSettingsManagerPrivate::setCurrentWifiConnection(QNetworkSettingsService *connection) +{ + m_currentWifiConnection = connection; +} + +QNetworkSettingsService *QNetworkSettingsManagerPrivate::currentWifiConnection() const +{ + return m_currentWifiConnection.data(); +} + +void QNetworkSettingsManagerPrivate::setCurrentWiredConnection(QNetworkSettingsService *connection) +{ + m_currentWiredConnection = connection; +} + +QNetworkSettingsService *QNetworkSettingsManagerPrivate::currentWiredConnection() const +{ + return m_currentWiredConnection.data(); +} + void QNetworkSettingsManagerPrivate::onConnmanServiceRegistered(const QString &serviceName) { if (serviceName == ConnManServiceName) { @@ -164,20 +181,23 @@ void QNetworkSettingsManagerPrivate::onTechnologyAdded(const QDBusObjectPath &te Q_Q(QNetworkSettingsManager); foreach (QNetworkSettingsInterface* item, m_interfaceModel.getModel()) { - ConnmanSettingsInterface* tech = qobject_cast<ConnmanSettingsInterface*>(item); - if (tech->path() != technology.path()) { - ConnmanSettingsInterface *interface = new ConnmanSettingsInterface(technology.path(), properties, this); - interface->scanServices(); - - if (interface->type() == QNetworkSettingsType::Wired) { - m_interfaceModel.insert(0, interface); - } - else if (interface->type() == QNetworkSettingsType::Wifi) { - m_interfaceModel.append(interface); - } - emit q->interfacesChanged(); + ConnmanSettingsInterface* interface = qobject_cast<ConnmanSettingsInterface*>(item); + if (interface->path() == technology.path()) { + return; // we already know the interface/technology } } + + ConnmanSettingsInterface *interface = new ConnmanSettingsInterface(technology.path(), properties, this); + interface->scanServices(); + + if (interface->type() == QNetworkSettingsType::Wired) { + m_interfaceModel.insert(0, interface); + } + else if (interface->type() == QNetworkSettingsType::Wifi) { + m_interfaceModel.append(interface); + } + + emit q->interfacesChanged(); } void QNetworkSettingsManagerPrivate::onTechnologyRemoved(const QDBusObjectPath &technology) @@ -187,7 +207,7 @@ void QNetworkSettingsManagerPrivate::onTechnologyRemoved(const QDBusObjectPath & foreach (QNetworkSettingsInterface* item, m_interfaceModel.getModel()) { ConnmanSettingsInterface* tech = qobject_cast<ConnmanSettingsInterface*>(item); if (tech->path() == technology.path()) { - m_interfaceModel.removeInterface(technology.path()); + m_interfaceModel.removeInterface(tech->name()); emit q->interfacesChanged(); } } @@ -232,21 +252,43 @@ void QNetworkSettingsManagerPrivate::getTechnologiesFinished(QDBusPendingCallWat void QNetworkSettingsManagerPrivate::onServicesChanged(ConnmanMapStructList changed, const QList<QDBusObjectPath> &removed) { - foreach (QDBusObjectPath path, removed) { - m_serviceModel->removeService(path.path()); - auto serviceIter = m_unnamedServices.find(path.path()); - if (serviceIter != m_unnamedServices.end()) { - serviceIter.value()->deleteLater(); - m_unnamedServices.erase(serviceIter); - } + Q_Q(QNetworkSettingsManager); + foreach (const QDBusObjectPath &dpath, removed) { + QString path = dpath.path(); + + if (m_serviceModel->removeService(path)) + emit q->servicesChanged(); + + if (auto service = m_unnamedServices.take(path)) + if (!service->placeholderState()) { + disconnect(service, &QNetworkSettingsService::nameChanged, + this, &QNetworkSettingsManagerPrivate::serviceReady); + disconnect(service, &QNetworkSettingsService::typeChanged, + this, &QNetworkSettingsManagerPrivate::serviceReady); + service->deleteLater(); + } + if (auto service = m_unknownServices.take(path)) + if (!service->placeholderState()) { + disconnect(service, &QNetworkSettingsService::nameChanged, + this, &QNetworkSettingsManagerPrivate::serviceReady); + disconnect(service, &QNetworkSettingsService::typeChanged, + this, &QNetworkSettingsManagerPrivate::serviceReady); + service->deleteLater(); + } + m_unnamedServicesForSsidConnection.remove(path); // do not delete here } QStringList newServices; - foreach (ConnmanMapStruct map, changed) { + foreach (const ConnmanMapStruct &map, changed) { + QString path = map.objectPath.path(); + + if (m_unknownServices.contains(path) || m_unnamedServices.contains(path)) + continue; + bool found = false; foreach (QNetworkSettingsService* service, m_serviceModel->getModel()) { - if (service->id() == map.objectPath.path() && service->placeholderState() == false) { - found =true; + if (service->id() == path && service->placeholderState() == false) { + found = true; break; } } @@ -282,9 +324,20 @@ void QNetworkSettingsManagerPrivate::handleNewService(const QString &servicePath } } else { + bool isUnnamedWifi = false; + //Service name or type not set, wait for update - connect(service, &QNetworkSettingsService::nameChanged, this, &QNetworkSettingsManagerPrivate::serviceReady); - connect(service, &QNetworkSettingsService::typeChanged, this, &QNetworkSettingsManagerPrivate::serviceReady); + if (service->name().isEmpty()) { + connect(service, &QNetworkSettingsService::nameChanged, this, &QNetworkSettingsManagerPrivate::serviceReady); + isUnnamedWifi = (service->type() == QNetworkSettingsType::Wifi); + } + if (service->type() == QNetworkSettingsType::Unknown) + connect(service, &QNetworkSettingsService::typeChanged, this, &QNetworkSettingsManagerPrivate::serviceReady); + + if (isUnnamedWifi) + m_unnamedServices.insert(service->id(), service); + else + m_unknownServices.insert(service->id(), service); } } @@ -299,11 +352,14 @@ void QNetworkSettingsManagerPrivate::serviceReady() QNetworkSettingsService* service = qobject_cast<QNetworkSettingsService*>(sender()); - if (service->type() != QNetworkSettingsType::Unknown - && service->type() == QNetworkSettingsType::Wifi) { + // the type changed from Unknown to Wifi + if ((service->type() == QNetworkSettingsType::Wifi) + && m_unknownServices.contains(service->id())) { + m_unknownServices.remove(service->id()); m_unnamedServices.insert(service->id(), service); } + // we have a name and a length now if (service->name().length() > 0 && service->type() != QNetworkSettingsType::Unknown) { service->disconnect(this); m_unnamedServices.remove(service->id()); diff --git a/src/networksettings/connman/qnetworksettingsmanager_p.h b/src/networksettings/connman/qnetworksettingsmanager_p.h index c696cdd..0b0c39b 100644 --- a/src/networksettings/connman/qnetworksettingsmanager_p.h +++ b/src/networksettings/connman/qnetworksettingsmanager_p.h @@ -41,19 +41,22 @@ // #include <QObject> -#include <QtDBus> #include <QMap> +#include <QPointer> +#include <QtDBus/QDBusServiceWatcher> #include "connmancommon.h" #include "qnetworksettingsmanager.h" #include "qnetworksettingsinterfacemodel.h" #include "connman_manager_interface.h" -QT_FORWARD_DECLARE_CLASS(QNetworkSettingsServiceModel) -QT_FORWARD_DECLARE_CLASS(QNetworkSettingsServiceFilter) -QT_FORWARD_DECLARE_CLASS(QNetworkSettingsService) - QT_BEGIN_NAMESPACE +class QDBusObjectPath; +class QDBusPendingCallWatcher; +class QNetworkSettingsService; +class QNetworkSettingsServiceModel; +class QNetworkSettingsServiceFilter; + class QNetworkSettingsManagerPrivate : public QObject { Q_OBJECT @@ -69,10 +72,10 @@ public: void connectBySsid(const QString &name); void clearConnectionState(); void tryNextConnection(); - void setCurrentWifiConnection(QNetworkSettingsService *connection) {m_currentWifiConnection = connection;} - QNetworkSettingsService* currentWifiConnection() const {return m_currentWifiConnection;} - void setCurrentWiredConnection(QNetworkSettingsService *connection) {m_currentWiredConnection = connection;} - QNetworkSettingsService* currentWiredConnection() const {return m_currentWiredConnection;} + void setCurrentWifiConnection(QNetworkSettingsService *connection); + QNetworkSettingsService* currentWifiConnection() const; + void setCurrentWiredConnection(QNetworkSettingsService *connection); + QNetworkSettingsService* currentWiredConnection() const; public slots: void getServicesFinished(QDBusPendingCallWatcher *watcher); @@ -91,6 +94,7 @@ private: protected: QNetworkSettingsInterfaceModel m_interfaceModel; QNetworkSettingsServiceModel *m_serviceModel; + QMap<QString, QNetworkSettingsService*> m_unknownServices; QMap<QString, QNetworkSettingsService*> m_unnamedServices; QMap<QString, QNetworkSettingsService*> m_unnamedServicesForSsidConnection; QNetworkSettingsServiceFilter *m_serviceFilter; @@ -99,8 +103,8 @@ private: QNetworkSettingsUserAgent *m_agent; QDBusServiceWatcher *m_serviceWatcher; QString m_currentSsid; - QNetworkSettingsService *m_currentWifiConnection; - QNetworkSettingsService *m_currentWiredConnection; + QPointer<QNetworkSettingsService> m_currentWifiConnection; + QPointer<QNetworkSettingsService> m_currentWiredConnection; bool m_initialized; }; diff --git a/src/networksettings/connman/qnetworksettingsservice_p.cpp b/src/networksettings/connman/qnetworksettingsservice_p.cpp index 2523e81..dce48d9 100644 --- a/src/networksettings/connman/qnetworksettingsservice_p.cpp +++ b/src/networksettings/connman/qnetworksettingsservice_p.cpp @@ -438,20 +438,22 @@ void QNetworkSettingsServicePrivate::updateProperty(const QString& key, const QV } else if (key == PropertySecurity) { QStringList value = qdbus_cast<QStringList>(val); + QNetworkSettingsWireless::Securities securities; foreach (const QString str, value) { if (str == AttributeNone || str == AttributeWps) { - m_wifiConfig.setSecurity(QNetworkSettingsWireless::None); + securities |= QNetworkSettingsWireless::Security::None; } else if (str == AttributeWep) { - m_wifiConfig.setSecurity(QNetworkSettingsWireless::WEP); + securities |= QNetworkSettingsWireless::Security::WEP; } else if (str == AttributePsk) { - m_wifiConfig.setSecurity(QNetworkSettingsWireless::WPA); + securities |=QNetworkSettingsWireless::Security::WPA; } else if (str == AttributeIeee) { - m_wifiConfig.setSecurity(QNetworkSettingsWireless::WPA2); + securities |=QNetworkSettingsWireless::Security::WPA2; } } + m_wifiConfig.setSecurity(securities); } else if (key == PropertyAutoConnect) { m_autoConnect = qdbus_cast<bool>(val); diff --git a/src/networksettings/connman/qnetworksettingsservice_p.h b/src/networksettings/connman/qnetworksettingsservice_p.h index 9190e2d..8c798c3 100644 --- a/src/networksettings/connman/qnetworksettingsservice_p.h +++ b/src/networksettings/connman/qnetworksettingsservice_p.h @@ -43,20 +43,19 @@ #include "qnetworksettingsservice.h" #include "qnetworksettings.h" -QT_FORWARD_DECLARE_CLASS(QDBusPendingCallWatcher) -QT_FORWARD_DECLARE_CLASS(QDBusVariant) - // Automatically generated class in global namespace class NetConnmanServiceInterface; QT_BEGIN_NAMESPACE +class QDBusVariant; +class QDBusPendingCallWatcher; class QNetworkSettingsServicePrivate : public QObject { Q_OBJECT Q_DECLARE_PUBLIC(QNetworkSettingsService) public: - QNetworkSettingsServicePrivate(const QString& aPath, QNetworkSettingsService *parent = Q_NULLPTR); + QNetworkSettingsServicePrivate(const QString& aPath, QNetworkSettingsService *parent = nullptr); QNetworkSettingsService *q_ptr; private slots: diff --git a/src/networksettings/connman/qnetworksettingsuseragent_p.cpp b/src/networksettings/connman/qnetworksettingsuseragent_p.cpp index 2c1e399..6ba8be7 100644 --- a/src/networksettings/connman/qnetworksettingsuseragent_p.cpp +++ b/src/networksettings/connman/qnetworksettingsuseragent_p.cpp @@ -26,6 +26,9 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ +#include <QtDBus/QDBusConnection> + +#include "qnetworksettingsuseragent.h" #include "qnetworksettingsuseragent_p.h" #include "connmancommon.h" diff --git a/src/networksettings/connman/qnetworksettingsuseragent_p.h b/src/networksettings/connman/qnetworksettingsuseragent_p.h index b85ddd2..8f356d9 100644 --- a/src/networksettings/connman/qnetworksettingsuseragent_p.h +++ b/src/networksettings/connman/qnetworksettingsuseragent_p.h @@ -41,25 +41,20 @@ // #include <QtCore/QObject> -#include <QtDBus/QtDBus> -#include "qnetworksettingsuseragent.h" +#include <QtDBus/QDBusMessage> +#include <QtDBus/QDBusObjectPath> +#include <QtDBus/QDBusAbstractAdaptor> QT_BEGIN_NAMESPACE -class QByteArray; -template<class T> class QList; -template<class Key, class Value> class QMap; -class QString; -class QVariant; - -const QString AgentPath(QStringLiteral("/ConnmanAgent")); +class QNetworkSettingsUserAgent; class QNetworkSettingsUserAgentPrivate : public QDBusAbstractAdaptor { Q_OBJECT Q_CLASSINFO("D-Bus Interface", "net.connman.Agent") Q_DECLARE_PUBLIC(QNetworkSettingsUserAgent) public: - QNetworkSettingsUserAgentPrivate(QNetworkSettingsUserAgent *parent = Q_NULLPTR); + QNetworkSettingsUserAgentPrivate(QNetworkSettingsUserAgent *parent = nullptr); void setPassphrase(const QString &passphrase); QString passphrase() const {return m_passphrase;} void cancel(); @@ -82,3 +77,4 @@ private: QT_END_NAMESPACE #endif // QNETWORKSETTINGSUSERAGENTPRIVATE_H + diff --git a/src/networksettings/qnetworksettings.cpp b/src/networksettings/qnetworksettings.cpp index 79ec2d4..b984835 100644 --- a/src/networksettings/qnetworksettings.cpp +++ b/src/networksettings/qnetworksettings.cpp @@ -70,7 +70,7 @@ QT_BEGIN_NAMESPACE */ /*! - \enum QNetworkSettingsState::States + \enum QNetworkSettingsState::State This enum type holds the state of the network interface. @@ -95,21 +95,21 @@ QT_BEGIN_NAMESPACE \property QNetworkSettingsState::state \brief The state of the network interface. - \sa QNetworkSettingsState::States + \sa QNetworkSettingsState::State */ /*! \fn QNetworkSettingsState::stateChanged() This signal is emitted when the state of the network interface changes. - \sa QNetworkSettingsState::States + \sa QNetworkSettingsState::State */ /*! Creates a new network interface state object with the state \a state and the parent \a parent. */ -QNetworkSettingsState::QNetworkSettingsState(States state, QObject *parent) +QNetworkSettingsState::QNetworkSettingsState(State state, QObject *parent) : QObject(parent) , m_state(state) { @@ -127,14 +127,14 @@ QNetworkSettingsState::QNetworkSettingsState(QObject *parent) /*! Returns the network interface state. */ -QNetworkSettingsState::States QNetworkSettingsState::state() const { +QNetworkSettingsState::State QNetworkSettingsState::state() const { return m_state; } /*! Sets the network interface state to \a state. */ -void QNetworkSettingsState::setState(const States state) { +void QNetworkSettingsState::setState(const State state) { m_state = state; emit stateChanged(); } @@ -150,7 +150,7 @@ void QNetworkSettingsState::setState(const States state) { */ /*! - \enum QNetworkSettingsType::Types + \enum QNetworkSettingsType::Type This enum type holds the type of the network interface. @@ -168,21 +168,21 @@ void QNetworkSettingsState::setState(const States state) { \property QNetworkSettingsType::type \brief The type of the network interface. - \sa QNetworkSettingsType::Types + \sa QNetworkSettingsType::Type */ /*! \fn QNetworkSettingsType::typeChanged() This signal is emitted when the type of the network interface changes. - \sa QNetworkSettingsType::Types + \sa QNetworkSettingsType::Type */ /*! Creates a new network interface type object with the type \a type and parent \a parent. */ -QNetworkSettingsType::QNetworkSettingsType(Types type, QObject *parent) +QNetworkSettingsType::QNetworkSettingsType(Type type, QObject *parent) : QObject(parent) , m_type(type) { @@ -201,14 +201,14 @@ QNetworkSettingsType::QNetworkSettingsType(QObject *parent) /*! Returns the network interface type. */ -QNetworkSettingsType::Types QNetworkSettingsType::type() const { +QNetworkSettingsType::Type QNetworkSettingsType::type() const { return m_type; } /*! Sets the network interface type to \a type. */ -void QNetworkSettingsType::setType(const Types type) { +void QNetworkSettingsType::setType(const Type type) { m_type = type; emit typeChanged(); } @@ -222,7 +222,7 @@ void QNetworkSettingsType::setType(const Types type) { */ /*! - \enum QNetworkSettingsIPv4::MethodType + \enum QNetworkSettingsIPv4::Method This enum type holds the method used for IPv4 configuration. @@ -248,7 +248,7 @@ void QNetworkSettingsType::setType(const Types type) { \property QNetworkSettingsIPv4::method \brief Holds the method of IPv4 configuration. - \sa QNetworkSettingsIPv4::MethodType + \sa QNetworkSettingsIPv4::Method */ /*! @@ -282,11 +282,11 @@ void QNetworkSettingsIPv4::setGateway(const QString& gateway) { emit gatewayChanged(); } -QNetworkSettingsIPv4::MethodType QNetworkSettingsIPv4::method() const { +QNetworkSettingsIPv4::Method QNetworkSettingsIPv4::method() const { return m_method; } -void QNetworkSettingsIPv4::setMethod(const MethodType method) { +void QNetworkSettingsIPv4::setMethod(const Method method) { m_method = method; emit methodChanged(); } @@ -309,7 +309,7 @@ void QNetworkSettingsIPv4::setMask(const QString& mask) { */ /*! - \enum QNetworkSettingsIPv6::MethodType + \enum QNetworkSettingsIPv6::Method This enum type holds the method used for IPv6 configuration. @@ -322,7 +322,7 @@ void QNetworkSettingsIPv4::setMask(const QString& mask) { */ /*! - \enum QNetworkSettingsIPv6::PrivacyType + \enum QNetworkSettingsIPv6::Privacy \brief Holds the method of applying the privacy extensions in IPv6. \value Disabled @@ -349,14 +349,14 @@ void QNetworkSettingsIPv4::setMask(const QString& mask) { \property QNetworkSettingsIPv6::method \brief Holds the method of IPv6 configuration. - \sa QNetworkSettingsIPv6::MethodType + \sa QNetworkSettingsIPv6::Method */ /*! \property QNetworkSettingsIPv6::privacy \brief Holds the method of applying privacy extensions for IPv6. - \sa QNetworkSettingsIPv6::PrivacyType + \sa QNetworkSettingsIPv6::Privacy */ /*! @@ -391,20 +391,20 @@ void QNetworkSettingsIPv6::setGateway(const QString& gateway) { emit gatewayChanged(); } -QNetworkSettingsIPv6::MethodType QNetworkSettingsIPv6::method() const { +QNetworkSettingsIPv6::Method QNetworkSettingsIPv6::method() const { return m_method; } -void QNetworkSettingsIPv6::setMethod(const MethodType method) { +void QNetworkSettingsIPv6::setMethod(const Method method) { m_method = method; emit methodChanged(); } -QNetworkSettingsIPv6::PrivacyType QNetworkSettingsIPv6::privacy() const { +QNetworkSettingsIPv6::Privacy QNetworkSettingsIPv6::privacy() const { return m_privacy; } -void QNetworkSettingsIPv6::setPrivacy(const PrivacyType privacy) { +void QNetworkSettingsIPv6::setPrivacy(const Privacy privacy) { m_privacy = privacy; emit privacyChanged(); } @@ -427,7 +427,7 @@ void QNetworkSettingsIPv6::setPrefixLength(const int& prefixLength) { */ /*! - \enum QNetworkSettingsProxy::MethodType + \enum QNetworkSettingsProxy::Method \brief Holds the network proxy configuration method. \value Direct @@ -444,7 +444,7 @@ void QNetworkSettingsIPv6::setPrefixLength(const int& prefixLength) { \property QNetworkSettingsProxy::method \brief Holds the network proxy configuration method. - \sa MethodType + \sa QNetworkSettingsProxy::Method */ /*! @@ -454,7 +454,7 @@ void QNetworkSettingsIPv6::setPrefixLength(const int& prefixLength) { For manual proxy configuration, this property holds the proxy server address. For automatic configuration, it holds the proxy auto-config URL. - \sa MethodType + \sa QNetworkSettingsProxy::Method */ /*! @@ -537,11 +537,11 @@ void QNetworkSettingsProxy::setExcludes(const QStringList& excludes) { emit excludesChanged(); } -QNetworkSettingsProxy::MethodType QNetworkSettingsProxy::method(void) const { +QNetworkSettingsProxy::Method QNetworkSettingsProxy::method(void) const { return m_method; } -void QNetworkSettingsProxy::setMethod(const MethodType& method) { +void QNetworkSettingsProxy::setMethod(const Method& method) { m_method = method; emit methodChanged(); } @@ -554,7 +554,7 @@ void QNetworkSettingsProxy::setMethod(const MethodType& method) { */ /*! - \enum QNetworkSettingsWireless::SecurityFlags + \enum QNetworkSettingsWireless::Security \brief This enum type holds the wireless security protocol used to protect the connection. @@ -599,15 +599,12 @@ QNetworkSettingsWireless::QNetworkSettingsWireless(QObject* parent) /*! Returns whether the Wifi network supports the wireless security - protocols specified in \a security. + protocol specified in \a security. - \sa QNetworkSettingsWireless::SecurityFlags + \sa QNetworkSettingsWireless::Security */ -bool QNetworkSettingsWireless::supportsSecurity(SecurityFlags security) { - if (m_securityFlags & security) { - return true; - } - return false; +bool QNetworkSettingsWireless::supportsSecurity(Security security) { + return m_supportedSecurites.testFlag(security); } bool QNetworkSettingsWireless::hidden() const { @@ -635,14 +632,10 @@ void QNetworkSettingsWireless::setSignalStrength(const int signalStrength) { } /*! - Sets \a security flags. + Sets \a securities flags. */ -void QNetworkSettingsWireless::setSecurity(const SecurityFlags security) { - if (security == None) { - m_securityFlags = None; - } else { - m_securityFlags |= security; - } +void QNetworkSettingsWireless::setSecurity(const Securities securities) { + m_supportedSecurites = securities; } void QNetworkSettingsWireless::setOutOfRange(const bool aOutOfRange) { diff --git a/src/networksettings/qnetworksettings.h b/src/networksettings/qnetworksettings.h index 84f5899..6006149 100644 --- a/src/networksettings/qnetworksettings.h +++ b/src/networksettings/qnetworksettings.h @@ -29,82 +29,96 @@ #ifndef QNETWORKSETTINGS_H #define QNETWORKSETTINGS_H -#include <QObject> -#include <QUrl> -#include <QVariantMap> +#include <QtNetworkSettings/qnetworksettingsglobal.h> + +#include <QtCore/qobject.h> +#include <QtCore/qurl.h> #include <QtNetworkSettings/qnetworksettingsaddressmodel.h> QT_BEGIN_NAMESPACE -class Q_DECL_EXPORT QNetworkSettingsState : public QObject +class Q_NETWORKSETTINGS_EXPORT QNetworkSettingsState : public QObject { Q_OBJECT - Q_ENUMS(States) - Q_PROPERTY(States state READ state WRITE setState NOTIFY stateChanged) + Q_PROPERTY(State state READ state WRITE setState NOTIFY stateChanged) public: - enum States {Idle, Failure, Association, Configuration, Ready, Disconnect, Online, Undefined}; + enum State { + Idle = 0, + Failure, + Association, + Configuration, + Ready, + Disconnect, + Online, + Undefined + }; + Q_ENUM(State) - explicit QNetworkSettingsState(States state, QObject *parent = Q_NULLPTR); - explicit QNetworkSettingsState(QObject *parent = Q_NULLPTR); + explicit QNetworkSettingsState(State state, QObject *parent = nullptr); + explicit QNetworkSettingsState(QObject *parent = nullptr); - States state() const; - void setState(const States state); + State state() const; + void setState(const State state); Q_SIGNALS: void stateChanged(); private: - States m_state; + State m_state; }; -class Q_DECL_EXPORT QNetworkSettingsType : public QObject +class Q_NETWORKSETTINGS_EXPORT QNetworkSettingsType : public QObject { Q_OBJECT - Q_ENUMS(Types) - Q_PROPERTY(Types type READ type WRITE setType NOTIFY typeChanged) + Q_PROPERTY(Type type READ type WRITE setType NOTIFY typeChanged) public: - enum Types { - Wired, + enum Type { + Wired = 0, Wifi, Bluetooth, Unknown }; + Q_ENUM(Type) - explicit QNetworkSettingsType(Types type, QObject *parent = Q_NULLPTR); - explicit QNetworkSettingsType(QObject *parent = Q_NULLPTR); + explicit QNetworkSettingsType(Type type, QObject *parent = nullptr); + explicit QNetworkSettingsType(QObject *parent = nullptr); - Types type() const; - void setType(const Types type); + Type type() const; + void setType(const Type type); Q_SIGNALS: void typeChanged(); private: - Types m_type; + Type m_type; }; -class Q_DECL_EXPORT QNetworkSettingsIPv4 : public QObject +class Q_NETWORKSETTINGS_EXPORT QNetworkSettingsIPv4 : public QObject { Q_OBJECT - Q_ENUMS(MethodType) Q_PROPERTY(QString address READ address WRITE setAddress NOTIFY addressChanged) Q_PROPERTY(QString gateway READ gateway WRITE setGateway NOTIFY gatewayChanged) - Q_PROPERTY(MethodType method READ method WRITE setMethod NOTIFY methodChanged) + Q_PROPERTY(Method method READ method WRITE setMethod NOTIFY methodChanged) Q_PROPERTY(QString mask READ mask WRITE setMask NOTIFY maskChanged) public: - explicit QNetworkSettingsIPv4(QObject *parent = Q_NULLPTR); + explicit QNetworkSettingsIPv4(QObject *parent = nullptr); - enum MethodType {Dhcp, Manual, Off}; + enum Method { + Dhcp = 0, + Manual, + Off + }; + Q_ENUM(Method) QString address() const; void setAddress(const QString& address); QString gateway() const; void setGateway(const QString& gateway); - MethodType method() const; - void setMethod(const MethodType method); + Method method() const; + void setMethod(const Method method); QString mask() const; void setMask(const QString& mask); @@ -117,35 +131,44 @@ Q_SIGNALS: private: QString m_address; QString m_gateway; - MethodType m_method; + Method m_method; QString m_mask; }; - -class Q_DECL_EXPORT QNetworkSettingsIPv6 : public QObject +class Q_NETWORKSETTINGS_EXPORT QNetworkSettingsIPv6 : public QObject { Q_OBJECT - Q_ENUMS(MethodType PrivacyType) Q_PROPERTY(QString address READ address WRITE setAddress NOTIFY addressChanged) Q_PROPERTY(QString gateway READ gateway WRITE setGateway NOTIFY gatewayChanged) - Q_PROPERTY(MethodType method READ method WRITE setMethod NOTIFY methodChanged) - Q_PROPERTY(PrivacyType privacy READ privacy WRITE setPrivacy NOTIFY privacyChanged) + Q_PROPERTY(Method method READ method WRITE setMethod NOTIFY methodChanged) + Q_PROPERTY(Privacy privacy READ privacy WRITE setPrivacy NOTIFY privacyChanged) Q_PROPERTY(int prefixLength READ prefixLength WRITE setPrefixLength NOTIFY prefixLengthChanged) public: - explicit QNetworkSettingsIPv6(QObject *parent = Q_NULLPTR); + explicit QNetworkSettingsIPv6(QObject *parent = nullptr); - enum MethodType {Auto, Manual, Off}; - enum PrivacyType {Disabled, Enabled, Preferred}; + enum Method { + Auto = 0, + Manual, + Off + }; + Q_ENUM(Method) + + enum Privacy { + Disabled = 0, + Enabled, + Preferred + }; + Q_ENUM(Privacy) QString address() const; void setAddress(const QString& address); QString gateway() const; void setGateway(const QString& gateway); - MethodType method() const; - void setMethod(const MethodType method); - PrivacyType privacy() const; - void setPrivacy(const PrivacyType privacy); + Method method() const; + void setMethod(const Method method); + Privacy privacy() const; + void setPrivacy(const Privacy privacy); int prefixLength() const; void setPrefixLength(const int& prefixLength); @@ -159,23 +182,27 @@ Q_SIGNALS: private: QString m_address; QString m_gateway; - MethodType m_method; - PrivacyType m_privacy; + Method m_method; + Privacy m_privacy; int m_prefixLength; }; -class Q_DECL_EXPORT QNetworkSettingsProxy : public QObject +class Q_NETWORKSETTINGS_EXPORT QNetworkSettingsProxy : public QObject { Q_OBJECT - Q_ENUMS(MethodType) Q_PROPERTY(QUrl url READ url WRITE setUrl NOTIFY urlChanged) Q_PROPERTY(QAbstractItemModel* servers READ servers NOTIFY serversChanged) Q_PROPERTY(QAbstractItemModel* excludes READ excludes NOTIFY excludesChanged) - Q_PROPERTY(MethodType method READ method WRITE setMethod NOTIFY methodChanged) + Q_PROPERTY(Method method READ method WRITE setMethod NOTIFY methodChanged) public: - explicit QNetworkSettingsProxy(QObject *parent = Q_NULLPTR); + explicit QNetworkSettingsProxy(QObject *parent = nullptr); - enum MethodType {Direct, Auto, Manual}; + enum Method { + Direct = 0, + Auto, + Manual + }; + Q_ENUM(Method) QUrl url() const; void setUrl(const QUrl& url); @@ -185,8 +212,8 @@ public: QAbstractItemModel* excludes(); QStringList excludes() const; void setExcludes(const QStringList& excludes); - MethodType method() const; - void setMethod(const MethodType& method); + Method method() const; + void setMethod(const Method& method); Q_SIGNALS: void urlChanged(); @@ -197,27 +224,32 @@ private: QUrl m_url; QNetworkSettingsAddressModel m_servers; QNetworkSettingsAddressModel m_excludes; - MethodType m_method; + Method m_method; }; -class Q_DECL_EXPORT QNetworkSettingsWireless : public QObject +class Q_NETWORKSETTINGS_EXPORT QNetworkSettingsWireless : public QObject { Q_OBJECT - Q_ENUMS(SecurityFlags) Q_PROPERTY(int signalStrength READ signalStrength WRITE setSignalStrength NOTIFY signalStrengthChanged) Q_PROPERTY(bool hidden READ hidden NOTIFY hiddenChanged) Q_PROPERTY(bool isOutOfRange READ outOfRange WRITE setOutOfRange NOTIFY outOfRangeChanged) public: - explicit QNetworkSettingsWireless(QObject* parent = Q_NULLPTR); + explicit QNetworkSettingsWireless(QObject* parent = nullptr); - enum SecurityFlags {None=1, WEP=2, WPA=4, WPA2=8}; + enum class Security { + None = 0x0000, + WEP = 0x0002, + WPA = 0x0004, + WPA2 = 0x0008 + }; + Q_DECLARE_FLAGS(Securities, Security) - Q_INVOKABLE bool supportsSecurity(SecurityFlags security); + Q_INVOKABLE bool supportsSecurity(Security security); bool hidden() const; void setHidden(const bool hidden); int signalStrength() const; void setSignalStrength(const int signalStrength); - void setSecurity(const SecurityFlags security); + void setSecurity(const Securities securities); void setOutOfRange(const bool aOutOfRange); bool outOfRange() const; @@ -227,11 +259,12 @@ Q_SIGNALS: void passwordChanged(); void outOfRangeChanged(); private: - quint16 m_securityFlags; + Securities m_supportedSecurites; bool m_hidden; int m_signalStrength; bool m_isOutOfRange; }; +Q_DECLARE_OPERATORS_FOR_FLAGS(QNetworkSettingsWireless::Securities) QT_END_NAMESPACE diff --git a/src/networksettings/qnetworksettingsaddressmodel.h b/src/networksettings/qnetworksettingsaddressmodel.h index 3b0ed8d..b08f381 100644 --- a/src/networksettings/qnetworksettingsaddressmodel.h +++ b/src/networksettings/qnetworksettingsaddressmodel.h @@ -29,17 +29,18 @@ #ifndef QNETWORKSETTINGSADDRESSMODEL_H #define QNETWORKSETTINGSADDRESSMODEL_H -#include <QStringListModel> +#include <QtCore/qstringlistmodel.h> +#include <QtNetworkSettings/qnetworksettingsglobal.h> QT_BEGIN_NAMESPACE -class Q_DECL_EXPORT QNetworkSettingsAddressModel : public QStringListModel +class Q_NETWORKSETTINGS_EXPORT QNetworkSettingsAddressModel : public QStringListModel { Q_OBJECT Q_PROPERTY(int count READ count NOTIFY countChanged) public: - explicit QNetworkSettingsAddressModel(QObject *parent = Q_NULLPTR); - explicit QNetworkSettingsAddressModel(const QStringList &strings, QObject *parent = Q_NULLPTR); + explicit QNetworkSettingsAddressModel(QObject *parent = nullptr); + explicit QNetworkSettingsAddressModel(const QStringList &strings, QObject *parent = nullptr); Q_INVOKABLE void append(const QString& address); Q_INVOKABLE void remove(int index); Q_INVOKABLE void resetChanges(); diff --git a/src/settingsui/network/NetworkDetails.qml b/src/networksettings/qnetworksettingsglobal.h index 88b0946..c9af207 100644 --- a/src/settingsui/network/NetworkDetails.qml +++ b/src/networksettings/qnetworksettingsglobal.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Device Utilities module of the Qt Toolkit. @@ -26,10 +26,9 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -import QtQuick +#ifndef QNETWORKSETTINGSGLOBAL_H +#define QNETWORKSETTINGSGLOBAL_H -Loader { - id: root - property var selectedInterface:undefined - anchors.fill: parent -} +#include <QtNetworkSettings/qtnetworksettingsexports.h> + +#endif // QNETWORKSETTINGSGLOBAL_H diff --git a/src/networksettings/qnetworksettingsinterface.cpp b/src/networksettings/qnetworksettingsinterface.cpp index d885394..9907867 100644 --- a/src/networksettings/qnetworksettingsinterface.cpp +++ b/src/networksettings/qnetworksettingsinterface.cpp @@ -28,7 +28,6 @@ ****************************************************************************/ #include "qnetworksettingsinterface.h" #include "qnetworksettingsinterface_p.h" -#include "qnetworksettings.h" QT_BEGIN_NAMESPACE @@ -49,7 +48,7 @@ QT_BEGIN_NAMESPACE \readonly \brief Holds the state of the network interface. - \sa QNetworkSettingsState::States + \sa QNetworkSettingsState::State */ /*! @@ -68,7 +67,7 @@ QT_BEGIN_NAMESPACE \readonly \brief Holds the type of the network interface. - \sa QNetworkSettingsType::Types + \sa QNetworkSettingsType::Type */ /*! @@ -146,7 +145,7 @@ QString QNetworkSettingsInterface::name() const /*! Returns the state of the network interface. */ -QNetworkSettingsState::States QNetworkSettingsInterface::state() +QNetworkSettingsState::State QNetworkSettingsInterface::state() { Q_D(QNetworkSettingsInterface); return d->state(); @@ -168,7 +167,7 @@ QNetworkSettingsState::States QNetworkSettingsInterface::state() /*! Returns the type of the network interface. */ -QNetworkSettingsType::Types QNetworkSettingsInterface::type() +QNetworkSettingsType::Type QNetworkSettingsInterface::type() { Q_D(QNetworkSettingsInterface); return d->type(); diff --git a/src/networksettings/qnetworksettingsinterface.h b/src/networksettings/qnetworksettingsinterface.h index 20c1187..5fb9636 100644 --- a/src/networksettings/qnetworksettingsinterface.h +++ b/src/networksettings/qnetworksettingsinterface.h @@ -29,25 +29,25 @@ #ifndef QNETWORKSETTINGSINTERFACE_H #define QNETWORKSETTINGSINTERFACE_H -#include <QObject> +#include <QtCore/qobject.h> #include <QtNetworkSettings/qnetworksettings.h> -QT_FORWARD_DECLARE_CLASS(QNetworkSettingsInterfacePrivate) - QT_BEGIN_NAMESPACE -class Q_DECL_EXPORT QNetworkSettingsInterface : public QObject { +class QNetworkSettingsInterfacePrivate; +class Q_NETWORKSETTINGS_EXPORT QNetworkSettingsInterface : public QObject +{ Q_OBJECT Q_PROPERTY(QString name READ name NOTIFY nameChanged) - Q_PROPERTY(QNetworkSettingsState::States state READ state NOTIFY stateChanged) - Q_PROPERTY(QNetworkSettingsType::Types type READ type NOTIFY typeChanged) + Q_PROPERTY(QNetworkSettingsState::State state READ state NOTIFY stateChanged) + Q_PROPERTY(QNetworkSettingsType::Type type READ type NOTIFY typeChanged) Q_PROPERTY(bool powered READ powered WRITE setPowered NOTIFY poweredChanged) public: - explicit QNetworkSettingsInterface(QObject* parent = Q_NULLPTR); + explicit QNetworkSettingsInterface(QObject* parent = nullptr); QString name() const; - QNetworkSettingsState::States state(); - QNetworkSettingsType::Types type(); + QNetworkSettingsState::State state(); + QNetworkSettingsType::Type type(); bool powered() const; void setPowered(const bool powered); Q_INVOKABLE void scanServices(); diff --git a/src/networksettings/qnetworksettingsinterfacemodel.cpp b/src/networksettings/qnetworksettingsinterfacemodel.cpp index 045d3ff..da428b1 100644 --- a/src/networksettings/qnetworksettingsinterfacemodel.cpp +++ b/src/networksettings/qnetworksettingsinterfacemodel.cpp @@ -46,9 +46,9 @@ QT_BEGIN_NAMESPACE \brief This enum type holds information about a network interface. \value Type - Network interface \l{QNetworkSettingsType::Types}{type}. + Network interface \l{QNetworkSettingsType::Type}{type}. \value Status - Network interface \l{QNetworkSettingsState::States}{state}. + Network interface \l{QNetworkSettingsState::State}{state}. \value Name Network interface name. \value Powered @@ -122,12 +122,7 @@ QVariant QNetworkSettingsInterfaceModel::data(const QModelIndex & index, int rol */ void QNetworkSettingsInterfaceModel::append(QNetworkSettingsInterface* item) { - item->setParent(this); - connectStateChanges(item); - - beginInsertRows(QModelIndex(), rowCount(), rowCount()); - m_items.append(item); - endInsertRows(); + insert(rowCount(), item); } /*! @@ -155,7 +150,7 @@ void QNetworkSettingsInterfaceModel::connectStateChanges(QNetworkSettingsInterfa void QNetworkSettingsInterfaceModel::remove(int row) { beginRemoveRows(QModelIndex(), row, row); - m_items.removeFirst(); + m_items.takeAt(row)->deleteLater(); endRemoveRows(); } diff --git a/src/networksettings/qnetworksettingsinterfacemodel.h b/src/networksettings/qnetworksettingsinterfacemodel.h index 42d40b6..aa6aa69 100644 --- a/src/networksettings/qnetworksettingsinterfacemodel.h +++ b/src/networksettings/qnetworksettingsinterfacemodel.h @@ -29,19 +29,18 @@ #ifndef QNETWORKSETTINGSINTERFACEMODEL_H #define QNETWORKSETTINGSINTERFACEMODEL_H -#include <QAbstractListModel> -#include <QtNetworkSettings/qnetworksettings.h> +#include <QtCore/QAbstractListModel> +#include <QtNetworkSettings/qnetworksettingsglobal.h> QT_BEGIN_NAMESPACE class QNetworkSettingsInterface; - -class Q_DECL_EXPORT QNetworkSettingsInterfaceModel : public QAbstractListModel +class Q_NETWORKSETTINGS_EXPORT QNetworkSettingsInterfaceModel : public QAbstractListModel { Q_OBJECT public: - explicit QNetworkSettingsInterfaceModel(QObject *parent = Q_NULLPTR); + explicit QNetworkSettingsInterfaceModel(QObject *parent = nullptr); // from QAbstractItemModel int rowCount(const QModelIndex & parent = QModelIndex()) const override; QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const override; diff --git a/src/networksettings/qnetworksettingsmanager.cpp b/src/networksettings/qnetworksettingsmanager.cpp index 667004f..32df2de 100644 --- a/src/networksettings/qnetworksettingsmanager.cpp +++ b/src/networksettings/qnetworksettingsmanager.cpp @@ -26,6 +26,7 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ +#include "qnetworksettings.h" #include "qnetworksettingsmanager.h" #include "qnetworksettingsservice.h" #include "qnetworksettingsservicemodel.h" @@ -33,7 +34,6 @@ #include "qnetworksettingsinterfacemodel.h" #include "qnetworksettingsmanager_p.h" #include "qnetworksettingsuseragent.h" -#include <QStringListModel> QT_BEGIN_NAMESPACE @@ -82,7 +82,7 @@ QT_BEGIN_NAMESPACE { QList<QNetworkSettingsInterface*> interfaces = manager->interfaces()->getModel(); for (const auto &interface : interfaces) { - if (interface->type() == QNetworkSettingsType::Types::Wifi) { + if (interface->type() == QNetworkSettingsType::Type::Wifi) { if (interface->powered()) { interface->scanServices(); } else { @@ -167,7 +167,7 @@ QNetworkSettingsManager::QNetworkSettingsManager(QObject *parent) : /*! Returns the service model. - \l QNetworkSettingsType::Types + \l QNetworkSettingsType::Type */ QNetworkSettingsServiceFilter *QNetworkSettingsManager::services() { diff --git a/src/networksettings/qnetworksettingsmanager.h b/src/networksettings/qnetworksettingsmanager.h index 01159dd..9f562d3 100644 --- a/src/networksettings/qnetworksettingsmanager.h +++ b/src/networksettings/qnetworksettingsmanager.h @@ -29,31 +29,30 @@ #ifndef QNETWORKSETTINGSMANAGER_H #define QNETWORKSETTINGSMANAGER_H -#include <QtNetworkSettings/qnetworksettings.h> -#include <QObject> -#include <QStringListModel> -#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) +#include <QtCore/qobject.h> +#include <QtNetworkSettings/qnetworksettingsglobal.h> QT_BEGIN_NAMESPACE -class Q_DECL_EXPORT QNetworkSettingsManager : public QObject +class QNetworkSettingsService; +class QNetworkSettingsInterface; +class QNetworkSettingsUserAgent; +class QNetworkSettingsServiceFilter; +class QNetworkSettingsInterfaceModel; +class QNetworkSettingsManagerPrivate; +class Q_NETWORKSETTINGS_EXPORT QNetworkSettingsManager : public QObject { Q_OBJECT - Q_ENUMS(StateTypes NetworkTypeTypes) Q_PROPERTY(QNetworkSettingsServiceFilter* services READ services NOTIFY servicesChanged) Q_PROPERTY(QNetworkSettingsInterfaceModel* interfaces READ interfaces NOTIFY interfacesChanged) Q_PROPERTY(QNetworkSettingsUserAgent* userAgent READ userAgent CONSTANT) Q_PROPERTY(QNetworkSettingsService* currentWifiConnection READ currentWifiConnection NOTIFY currentWifiConnectionChanged) Q_PROPERTY(QNetworkSettingsService* currentWiredConnection READ currentWiredConnection NOTIFY currentWiredConnectionChanged) + Q_MOC_INCLUDE("qnetworksettingsservicemodel.h") + Q_MOC_INCLUDE("qnetworksettingsuseragent.h") public: - explicit QNetworkSettingsManager(QObject* parent = Q_NULLPTR); + explicit QNetworkSettingsManager(QObject* parent = nullptr); QNetworkSettingsServiceFilter* services(); QNetworkSettingsInterfaceModel* interfaces(); void setUserAgent(QNetworkSettingsUserAgent *agent); @@ -81,7 +80,6 @@ protected: private: Q_DISABLE_COPY(QNetworkSettingsManager) Q_DECLARE_PRIVATE(QNetworkSettingsManager) - }; QT_END_NAMESPACE diff --git a/src/networksettings/qnetworksettingsservice.cpp b/src/networksettings/qnetworksettingsservice.cpp index 0983c0d..ef0773c 100644 --- a/src/networksettings/qnetworksettingsservice.cpp +++ b/src/networksettings/qnetworksettingsservice.cpp @@ -58,7 +58,7 @@ QT_BEGIN_NAMESPACE \readonly \brief Holds the state of this service. - \sa QNetworkSettingsState::States + \sa QNetworkSettingsState::State */ /*! @@ -66,7 +66,7 @@ QT_BEGIN_NAMESPACE \readonly \brief Holds the type of this service. - \sa QNetworkSettingsType::Types + \sa QNetworkSettingsType::Type */ /*! @@ -195,6 +195,8 @@ QString QNetworkSettingsService::name() const } /*! + \fn void QNetworkSettingsService::setAutoConnect(bool autoconnect) + Sets automatic connections to the network service to \a autoconnect. */ void QNetworkSettingsService::setAutoConnect(const bool autoconnect) @@ -224,9 +226,9 @@ bool QNetworkSettingsService::autoConnect() const /*! Returns the network service state. - \sa QNetworkSettingsState::States + \sa QNetworkSettingsState::State */ -QNetworkSettingsState::States QNetworkSettingsService::state() +QNetworkSettingsState::State QNetworkSettingsService::state() { Q_D(QNetworkSettingsService); return d->m_state.state(); @@ -244,9 +246,9 @@ QNetworkSettingsState::States QNetworkSettingsService::state() /*! Returns the network service type. - \sa QNetworkSettingsType::Types + \sa QNetworkSettingsType::Type */ -QNetworkSettingsType::Types QNetworkSettingsService::type() +QNetworkSettingsType::Type QNetworkSettingsService::type() { Q_D(QNetworkSettingsService); return d->m_type.type(); diff --git a/src/networksettings/qnetworksettingsservice.h b/src/networksettings/qnetworksettingsservice.h index dd9d52a..0b71d50 100644 --- a/src/networksettings/qnetworksettingsservice.h +++ b/src/networksettings/qnetworksettingsservice.h @@ -29,21 +29,19 @@ #ifndef QNETWORKSETTINGSSERVICE_H #define QNETWORKSETTINGSSERVICE_H -#include <QObject> +#include <QtCore/qobject.h> #include <QtNetworkSettings/qnetworksettings.h> -QT_FORWARD_DECLARE_CLASS(QNetworkSettingsServicePrivate) - QT_BEGIN_NAMESPACE -class Q_DECL_EXPORT QNetworkSettingsService : public QObject +class QNetworkSettingsServicePrivate; +class Q_NETWORKSETTINGS_EXPORT QNetworkSettingsService : public QObject { Q_OBJECT - Q_ENUMS(StateTypes) Q_PROPERTY(QString id READ id CONSTANT) Q_PROPERTY(QString name READ name NOTIFY nameChanged) - Q_PROPERTY(QNetworkSettingsState::States state READ state NOTIFY stateChanged) - Q_PROPERTY(QNetworkSettingsType::Types type READ type NOTIFY typeChanged) + Q_PROPERTY(QNetworkSettingsState::State state READ state NOTIFY stateChanged) + Q_PROPERTY(QNetworkSettingsType::Type type READ type NOTIFY typeChanged) Q_PROPERTY(QNetworkSettingsIPv4* ipv4 READ ipv4 NOTIFY ipv4Changed) Q_PROPERTY(QNetworkSettingsIPv6* ipv6 READ ipv6 NOTIFY ipv6Changed) Q_PROPERTY(QNetworkSettingsProxy* proxy READ proxy NOTIFY proxyChanged) @@ -52,12 +50,12 @@ class Q_DECL_EXPORT QNetworkSettingsService : public QObject Q_PROPERTY(QAbstractItemModel* nameservers READ nameservers NOTIFY nameserversChanged) Q_PROPERTY(bool autoConnect READ autoConnect WRITE setAutoConnect NOTIFY autoConnectChanged) public: - explicit QNetworkSettingsService(const QString& aServiceId, QObject* parent = Q_NULLPTR); + explicit QNetworkSettingsService(const QString& aServiceId, QObject* parent = nullptr); QString id() const; QString name() const; - QNetworkSettingsState::States state(); - QNetworkSettingsType::Types type(); + QNetworkSettingsState::State state(); + QNetworkSettingsType::Type type(); QNetworkSettingsIPv4* ipv4(); QNetworkSettingsIPv6* ipv6(); QNetworkSettingsProxy* proxy(); diff --git a/src/networksettings/qnetworksettingsservicemodel.cpp b/src/networksettings/qnetworksettingsservicemodel.cpp index 115fe35..b069277 100644 --- a/src/networksettings/qnetworksettingsservicemodel.cpp +++ b/src/networksettings/qnetworksettingsservicemodel.cpp @@ -27,6 +27,7 @@ ** ****************************************************************************/ #include "qnetworksettingsservicemodel.h" +#include "qnetworksettingsservice.h" #include "qnetworksettings.h" QT_BEGIN_NAMESPACE @@ -49,7 +50,7 @@ QT_BEGIN_NAMESPACE This enum type holds information about the network connection. \value Type - Network \l{QNetworkSettingsType::Types}{type}. + Network \l{QNetworkSettingsType::Type}{type}. \value Name The service set identifier (SSID) of the network. \value SignalStrength @@ -296,7 +297,7 @@ void QNetworkSettingsServiceModel::signalStrengthChanged() \property QNetworkSettingsServiceFilter::type \brief The type of the network. - \l QNetworkSettingsType::Types + \l QNetworkSettingsType::Type */ /*! @@ -318,7 +319,7 @@ void QNetworkSettingsServiceModel::signalStrengthChanged() /*! \qmltype NetworkSettingsServiceFilter - \inqmlmodule QtDeviceutilities.NetworkSettings + \inqmlmodule QtDeviceUtilities.NetworkSettings \abstract */ @@ -351,19 +352,19 @@ QNetworkSettingsServiceFilter::~QNetworkSettingsServiceFilter() /*! Returns the service model. - \l QNetworkSettingsType::Types + \l QNetworkSettingsType::Type */ -QNetworkSettingsType::Types QNetworkSettingsServiceFilter::type() const +QNetworkSettingsType::Type QNetworkSettingsServiceFilter::type() const { return m_type; } /*! - \fn void QNetworkSettingsServiceFilter::setType(QNetworkSettingsType::Types type) + \fn void QNetworkSettingsServiceFilter::setType(QNetworkSettingsType::Type type) Sets the service model to \a type. */ -void QNetworkSettingsServiceFilter::setType(const QNetworkSettingsType::Types type) +void QNetworkSettingsServiceFilter::setType(const QNetworkSettingsType::Type type) { m_type = type; emit typeChanged(); diff --git a/src/networksettings/qnetworksettingsservicemodel.h b/src/networksettings/qnetworksettingsservicemodel.h index 01447f6..b4392d2 100644 --- a/src/networksettings/qnetworksettingsservicemodel.h +++ b/src/networksettings/qnetworksettingsservicemodel.h @@ -29,17 +29,17 @@ #ifndef QNETWORKSETTINGSSERVICEMODEL_H #define QNETWORKSETTINGSSERVICEMODEL_H -#include <QSortFilterProxyModel> +#include <QtCore/qsortfilterproxymodel.h> #include <QtNetworkSettings/qnetworksettings.h> -#include <QtNetworkSettings/qnetworksettingsservice.h> QT_BEGIN_NAMESPACE -class Q_DECL_EXPORT QNetworkSettingsServiceModel : public QAbstractListModel +class QNetworkSettingsService; +class Q_NETWORKSETTINGS_EXPORT QNetworkSettingsServiceModel : public QAbstractListModel { Q_OBJECT public: - explicit QNetworkSettingsServiceModel(QObject *parent = Q_NULLPTR); + explicit QNetworkSettingsServiceModel(QObject *parent = nullptr); virtual ~QNetworkSettingsServiceModel(); // from QAbstractItemModel int rowCount(const QModelIndex & parent = QModelIndex()) const override; @@ -74,17 +74,17 @@ private: QHash<int, QByteArray> m_roleNames; }; -class Q_DECL_EXPORT QNetworkSettingsServiceFilter : public QSortFilterProxyModel +class Q_NETWORKSETTINGS_EXPORT QNetworkSettingsServiceFilter : public QSortFilterProxyModel { Q_OBJECT - Q_PROPERTY(QNetworkSettingsType::Types type READ type WRITE setType NOTIFY typeChanged) + Q_PROPERTY(QNetworkSettingsType::Type type READ type WRITE setType NOTIFY typeChanged) Q_PROPERTY(bool wiredNetworksAvailable MEMBER m_wiredNetworksAvailable WRITE setWiredNetworksAvailable NOTIFY wiredNetworksAvailableChanged) public: - explicit QNetworkSettingsServiceFilter(QObject* parent = Q_NULLPTR); + explicit QNetworkSettingsServiceFilter(QObject* parent = nullptr); virtual ~QNetworkSettingsServiceFilter(); bool filterAcceptsRow( int source_row, const QModelIndex& source_parent ) const override; - QNetworkSettingsType::Types type() const; - void setType(QNetworkSettingsType::Types type); + QNetworkSettingsType::Type type() const; + void setType(QNetworkSettingsType::Type type); Q_INVOKABLE QVariant itemFromRow(const int row) const; Q_INVOKABLE int activeRow() const; void setWiredNetworksAvailable(bool); @@ -92,7 +92,7 @@ Q_SIGNALS: void typeChanged(); void wiredNetworksAvailableChanged(); private: - QNetworkSettingsType::Types m_type; + QNetworkSettingsType::Type m_type; bool m_wiredNetworksAvailable; }; diff --git a/src/networksettings/qnetworksettingsuseragent.h b/src/networksettings/qnetworksettingsuseragent.h index 7b76c15..63964b6 100644 --- a/src/networksettings/qnetworksettingsuseragent.h +++ b/src/networksettings/qnetworksettingsuseragent.h @@ -29,17 +29,17 @@ #ifndef QNETWORKSETTINGSUSERAGENT_H #define QNETWORKSETTINGSUSERAGENT_H -#include <QObject> - -QT_FORWARD_DECLARE_CLASS(QNetworkSettingsUserAgentPrivate) +#include <QtCore/qobject.h> +#include <QtNetworkSettings/qnetworksettingsglobal.h> QT_BEGIN_NAMESPACE -class Q_DECL_EXPORT QNetworkSettingsUserAgent : public QObject +class QNetworkSettingsUserAgentPrivate; +class Q_NETWORKSETTINGS_EXPORT QNetworkSettingsUserAgent : public QObject { Q_OBJECT public: - explicit QNetworkSettingsUserAgent(QObject *parent = Q_NULLPTR); + explicit QNetworkSettingsUserAgent(QObject *parent = nullptr); Q_INVOKABLE void setPassphrase(const QString &passphrase); Q_INVOKABLE void cancelInput(); QString passphrase() const; diff --git a/src/networksettings/networksettingsqml/CMakeLists.txt b/src/networksettingsqml/CMakeLists.txt index db3f58c..db3f58c 100644 --- a/src/networksettings/networksettingsqml/CMakeLists.txt +++ b/src/networksettingsqml/CMakeLists.txt diff --git a/src/networksettings/networksettingsqml/qnetworksettingsforeign.cpp b/src/networksettingsqml/qnetworksettingsforeign.cpp index e3d1414..e3d1414 100644 --- a/src/networksettings/networksettingsqml/qnetworksettingsforeign.cpp +++ b/src/networksettingsqml/qnetworksettingsforeign.cpp diff --git a/src/networksettings/networksettingsqml/qnetworksettingsforeign.h b/src/networksettingsqml/qnetworksettingsforeign.h index b979397..ff9ec57 100644 --- a/src/networksettings/networksettingsqml/qnetworksettingsforeign.h +++ b/src/networksettingsqml/qnetworksettingsforeign.h @@ -30,17 +30,7 @@ #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) +#include <QtNetworkSettings/QtNetworkSettings> QT_BEGIN_NAMESPACE @@ -48,7 +38,7 @@ struct NetworkSettingsServiceForeign { Q_GADGET QML_FOREIGN(QNetworkSettingsService) - QML_NAMED_ELEMENT(NetworkSettingsService) + QML_NAMED_ELEMENT(NetworkService) QML_UNCREATABLE("Cannot be instantiated directly.") QML_ADDED_IN_VERSION(1, 0) }; @@ -57,7 +47,7 @@ struct NetworkSettingsInterfaceForeign { Q_GADGET QML_FOREIGN(QNetworkSettingsInterface) - QML_NAMED_ELEMENT(NetworkSettingsInterface) + QML_NAMED_ELEMENT(NetworkInterface) QML_UNCREATABLE("Cannot be instantiated directly.") QML_ADDED_IN_VERSION(1, 0) }; @@ -89,6 +79,15 @@ struct NetworkSettingsProxyForeign QML_ADDED_IN_VERSION(1, 0) }; +struct NetworkSettingsWirelessForeign +{ + Q_GADGET + QML_FOREIGN(QNetworkSettingsWireless) + QML_NAMED_ELEMENT(NetworkSettingsWireless) + QML_UNCREATABLE("Cannot be instantiated directly.") + QML_ADDED_IN_VERSION(1, 0) +}; + struct NetworkSettingsTypeForeign { Q_GADGET @@ -110,6 +109,7 @@ struct NetworkSettingsStateForeign class QNetworkSettingsManagerForeign { Q_GADGET + QML_FOREIGN(QNetworkSettingsManager) QML_NAMED_ELEMENT(NetworkSettingsManager) QML_SINGLETON QML_ADDED_IN_VERSION(2, 0) diff --git a/src/settingsui/CMakeLists.txt b/src/settingsui/CMakeLists.txt deleted file mode 100644 index 5bec7ee..0000000 --- a/src/settingsui/CMakeLists.txt +++ /dev/null @@ -1,50 +0,0 @@ -##################################################################### -## settingsui Binary: -##################################################################### - -qt_internal_add_executable(settingsui - GUI - SOURCES - main.cpp - PUBLIC_LIBRARIES - Qt::Gui - Qt::Qml - Qt::Quick -) - -# Resources: -set(settingsuiapp_resource_files - "AutoScroller.qml" - "ViewSettings.qml" - "common/CustomSwitch.qml" - "common/HandwritingModeButton.qml" - "main.qml" - "network/AddressListEntry.qml" - "network/ComboBoxEntry.qml" - "network/EditWiredSettings.qml" - "network/IpAddressTextField.qml" - "network/NetworkDetails.qml" - "network/NetworkListView.qml" - "network/NetworkSettings.qml" - "network/PassphraseEnter.qml" - "network/WifiSelectorDelegate.qml" - "network/WifiSettings.qml" - "network/WifiSignalMonitor.qml" - "network/WiredSettings.qml" - "settingsuiplugin/SettingsDelegate.qml" - "settingsuiplugin/SettingsHeader.qml" - "settingsuiplugin/SettingsTitleItem.qml" - "settingsuiplugin/pluginMain.qml" -) - -qt_internal_add_resource(settingsui "settingsuiapp" - PREFIX - "/" - FILES - ${settingsuiapp_resource_files} -) - -qt_internal_extend_target(settingsui CONDITION static - PUBLIC_LIBRARIES - Qt::Svg -) diff --git a/src/settingsui/qtbuttonimageproviderplugin/CMakeLists.txt b/src/settingsui/qtbuttonimageproviderplugin/CMakeLists.txt deleted file mode 100644 index d799013..0000000 --- a/src/settingsui/qtbuttonimageproviderplugin/CMakeLists.txt +++ /dev/null @@ -1,26 +0,0 @@ -##################################################################### -## qtbuttonimageproviderplugin Plugin: -##################################################################### - -qt_internal_add_qml_module(qtbuttonimageproviderplugin - URI "QtDeviceUtilities.QtButtonImageProvider" - VERSION "${CMAKE_PROJECT_VERSION}" - CLASS_NAME QtButtonImageProviderQmlPlugin - PLUGIN_TARGET qtbuttonimageproviderplugin - NO_PLUGIN_OPTIONAL - NO_GENERATE_PLUGIN_SOURCE - CLASS_NAME QtButtonImageProviderPlugin - PAST_MAJOR_VERSIONS 1 - DEPENDENCIES - QtQml - SOURCES - plugin.cpp plugin_p.h - qtbuttonimageprovider.cpp qtbuttonimageprovider.h - LIBRARIES - Qt::Core - Qt::Gui - Qt::Qml - Qt::Quick - QML_FILES - "QtButton.qml" -) diff --git a/src/settingsui/qtbuttonimageproviderplugin/plugin_p.h b/src/settingsui/qtbuttonimageproviderplugin/plugin_p.h deleted file mode 100644 index 9fa479d..0000000 --- a/src/settingsui/qtbuttonimageproviderplugin/plugin_p.h +++ /dev/null @@ -1,79 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2018 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 QTBUTTONIMAGEPROVIDERQMLPLUGIN_H -#define QTBUTTONIMAGEPROVIDERQMLPLUGIN_H - -#include <qqmlextensionplugin.h> -#include <qqmlengine.h> - -#include "qtbuttonimageprovider.h" - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists for the convenience -// of other Qt classes. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -extern void qml_register_types_QtDeviceUtilities_QtButtonImageProvider(); - -QT_BEGIN_NAMESPACE - -struct QtButtonForeign -{ - Q_GADGET - QML_NAMED_ELEMENT(QtButton) - QML_ADDED_IN_VERSION(1, 0) -}; - -class QtButtonImageProviderQmlPlugin : public QQmlEngineExtensionPlugin -{ - Q_OBJECT - Q_PLUGIN_METADATA(IID QQmlExtensionInterface_iid) - -public: - QtButtonImageProviderQmlPlugin(QObject *parent = nullptr) : QQmlEngineExtensionPlugin(parent) { - volatile auto registration = &qml_register_types_QtDeviceUtilities_QtButtonImageProvider; - Q_UNUSED(registration); - } - - void initializeEngine(QQmlEngine *engine, const char *uri) override - { - Q_UNUSED(uri); - QtButtonImageProvider *provider = new QtButtonImageProvider(); - engine->addImageProvider("QtButton", provider); - } -}; - -QT_END_NAMESPACE -#endif //QTBUTTONIMAGEPROVIDERQMLPLUGIN_H diff --git a/src/settingsui/settingsuiapp.qrc b/src/settingsui/settingsuiapp.qrc deleted file mode 100644 index 844ba29..0000000 --- a/src/settingsui/settingsuiapp.qrc +++ /dev/null @@ -1,25 +0,0 @@ -<RCC> - <qresource prefix="/"> - <file>main.qml</file> - <file>common/HandwritingModeButton.qml</file> - <file>AutoScroller.qml</file> - <file>common/CustomSwitch.qml</file> - <file>network/PassphraseEnter.qml</file> - <file>network/AddressListEntry.qml</file> - <file>network/ComboBoxEntry.qml</file> - <file>network/EditWiredSettings.qml</file> - <file>network/IpAddressTextField.qml</file> - <file>network/NetworkDetails.qml</file> - <file>network/NetworkListView.qml</file> - <file>network/NetworkSettings.qml</file> - <file>network/WifiSelectorDelegate.qml</file> - <file>network/WifiSettings.qml</file> - <file>network/WifiSignalMonitor.qml</file> - <file>network/WiredSettings.qml</file> - <file>settingsuiplugin/pluginMain.qml</file> - <file>settingsuiplugin/SettingsDelegate.qml</file> - <file>settingsuiplugin/SettingsHeader.qml</file> - <file>settingsuiplugin/SettingsTitleItem.qml</file> - <file>ViewSettings.qml</file> - </qresource> -</RCC> diff --git a/src/settingsui/settingsuiplugin/CMakeLists.txt b/src/settingsui/settingsuiplugin/CMakeLists.txt deleted file mode 100644 index 6ab5bf7..0000000 --- a/src/settingsui/settingsuiplugin/CMakeLists.txt +++ /dev/null @@ -1,60 +0,0 @@ -##################################################################### -## settingsuiplugin Plugin: -##################################################################### -set(settingsui_qml_files - "../common/CustomSwitch.qml" - "../common/CustomTableView.qml" - "../common/HandwritingModeButton.qml" - "../network/AddressListEntry.qml" - "../network/ComboBoxEntry.qml" - "../network/EditWiredSettings.qml" - "../network/IpAddressTextField.qml" - "../network/NetworkDetails.qml" - "../network/NetworkListView.qml" - "../network/NetworkSettings.qml" - "../network/PassphraseEnter.qml" - "../network/WifiSelectorDelegate.qml" - "../network/WifiSettings.qml" - "../network/WifiSignalMonitor.qml" - "../network/WiredSettings.qml" - "SettingsDelegate.qml" - "SettingsHeader.qml" - "SettingsTitleItem.qml" - "pluginMain.qml" -) - -qt_internal_add_qml_module(settingsuiplugin - URI "QtDeviceUtilities.SettingsUI" - VERSION "${CMAKE_PROJECT_VERSION}" - PLUGIN_TARGET settingsuiplugin - PAST_MAJOR_VERSIONS 2 - SOURCES - plugin.cpp - plugin_p.h - PUBLIC_LIBRARIES - Qt::Core - Qt::Gui - Qt::Qml - Qt::Quick - QML_FILES - ${settingsui_qml_files} -) - -# Resources: -set(settingsui_resource_files - "icons/Alert_yellow_1x.png" - "icons/FloatingButton_Active.png" - "icons/FloatingButton_Available.png" - "icons/FloatingButton_Unavailable.png" - "icons/WifiAnim_black_2x.png" - "icons/Wifi_lightgray_2x.png" - "newIcons/back_icon.svg" - "newIcons/network_icon.svg" -) - -qt_internal_add_resource(settingsuiplugin "settingsui" - PREFIX - "/" - FILES - ${settingsui_resource_files} -) diff --git a/src/settingsui/settingsuiplugin/SettingsDelegate.qml b/src/settingsui/settingsuiplugin/SettingsDelegate.qml deleted file mode 100644 index cf7696a..0000000 --- a/src/settingsui/settingsuiplugin/SettingsDelegate.qml +++ /dev/null @@ -1,76 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 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$ -** -****************************************************************************/ -import QtQuick - -Item { - width: settingsList.width - height: settingsList.height * 0.08 - - property bool isSelected: settingsList.currentIndex == index - - Image { - id: img - sourceSize.width: parent.width - sourceSize.height: parent.height - source: icon - anchors.verticalCenter: parent.verticalCenter - anchors.left: parent.left - anchors.leftMargin: parent.width * 0.075 - height: Math.min(parent.width * 0.5, parent.height * 0.6) - width: height - fillMode: Image.PreserveAspectFit - } - - Text { - text: title - height: parent.height * 0.75 - anchors.right: parent.right - anchors.left: img.right - anchors.leftMargin: parent.width * 0.025 - anchors.verticalCenter: parent.verticalCenter - fontSizeMode: Text.Fit - minimumPixelSize: 1 - font.pixelSize: Math.min(parent.width * 0.25, parent.height) - color: parent.isSelected ? viewSettings.buttonGreenColor : "white" - wrapMode: Text.WordWrap - verticalAlignment: Text.AlignVCenter - font.family: appFont - font.styleName: parent.isSelected ? "Bold" : "Regular" - } - - MouseArea { - id: mouseArea - anchors.fill: parent - onClicked: { - settingsList.currentIndex = index - settingsLoader.source = path + '/' + view + '.qml' - titleItem.title = title - } - } -} diff --git a/src/settingsui/settingsuiplugin/SettingsHeader.qml b/src/settingsui/settingsuiplugin/SettingsHeader.qml deleted file mode 100644 index 1d2f737..0000000 --- a/src/settingsui/settingsuiplugin/SettingsHeader.qml +++ /dev/null @@ -1,108 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 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$ -** -****************************************************************************/ -import QtQuick -import QtDeviceUtilities.NetworkSettings - -Item { - id: header - anchors.left: parent.left - anchors.right: parent.right - anchors.top: parent.top - anchors.margins: pluginMain.margin - height: pluginMain.margin * 4 - - signal clicked() - - Image { - id: backButton - objectName: "settingsBackButton" - anchors.left: parent.left - anchors.top: parent.top - source: "../newIcons/back_icon.svg" - height: parent.height * 0.5 - width: height / sourceSize.height * sourceSize.width - MouseArea { - anchors.fill: parent - anchors.margins: -parent.height * 0.2 - onClicked: header.clicked() - } - } - - Text { - id: settingsText - anchors.left: backButton.right - anchors.verticalCenter: backButton.verticalCenter - font.pixelSize: parent.height * 0.45 - text: qsTr("Settings") - color: "white" - font.family: appFont - font.styleName: "SemiBold" - MouseArea { - anchors.fill: parent - anchors.margins: -parent.height * 0.2 - onClicked: header.clicked() - } - } - - Text { - id: ipItem - width: parent.width * 0.25 - height: parent.height/2 - anchors.top: settingsText.top - anchors.right: parent.right - anchors.rightMargin: pluginMain.margin - horizontalAlignment: Text.AlignRight - verticalAlignment: Text.AlignVCenter - font.pixelSize: parent.height * 0.3 - color: "white" - font.family: appFont - font.styleName: "SemiBold" - text: NetworkSettingsManager.currentWiredConnection ? - qsTr("Wired IP: ") + - NetworkSettingsManager.currentWiredConnection.ipv4.address : "" - } - - Text { - id: wifiIpItem - width: parent.width * 0.25 - height: parent.height/2 - anchors.top: ipItem.bottom - anchors.right: parent.right - anchors.rightMargin: pluginMain.margin - horizontalAlignment: Text.AlignRight - verticalAlignment: Text.AlignVCenter - font.pixelSize: parent.height * 0.3 - color: "white" - font.family: appFont - font.styleName: "SemiBold" - text: NetworkSettingsManager.currentWifiConnection ? - qsTr("Wireless IP: ") + - NetworkSettingsManager.currentWifiConnection.ipv4.address : "" - } -} diff --git a/src/settingsui/settingsuiplugin/plugin.cpp b/src/settingsui/settingsuiplugin/plugin.cpp deleted file mode 100644 index 8ac64e1..0000000 --- a/src/settingsui/settingsuiplugin/plugin.cpp +++ /dev/null @@ -1,72 +0,0 @@ -/**************************************************************************** -** -** 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 "plugin_p.h" -/*! - \qmlmodule QtDeviceUtilities.SettingsUI - \title Qt Device Utilities: Settings UI - \ingroup qtdevice-utilities-qml-modules - \ingroup qmlmodules - \brief Provides a system-wide settings UI. - - The \c DeviceUtilities.SettingsUI module provides a single QML type, - SettingsUI, that allows applications to integrate a standard, system-wide - settings view into their user interface. - - To import and use the module's QML types, use the following statement: - - \badcode - import QtDeviceUtilities.SettingsUI - \endcode - - \section1 QML Types -*/ - -/*! - \qmltype SettingsUI - \inqmlmodule QtDeviceUtilities.SettingsUI - \brief Provides a QML type for displaying a system-wide settings UI. - - With the SettingsUI type, applications can easily integrate a standard, - system-wide settings view into their user interface. - - For example: - - \qml - import QtQuick - import QtDeviceUtilities.SettingsUI - - SettingsUI { - id: settingsUI - anchors.fill: parent - } - \endqml - - There is no need to import the various \c {DeviceUtilities.*} modules and - to declare a custom settings UI, unless specifically required. -*/ diff --git a/src/settingsui/settingsuiplugin/pluginMain.qml b/src/settingsui/settingsuiplugin/pluginMain.qml deleted file mode 100644 index 76a6ced..0000000 --- a/src/settingsui/settingsuiplugin/pluginMain.qml +++ /dev/null @@ -1,106 +0,0 @@ -/**************************************************************************** -** -** 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$ -** -****************************************************************************/ -import QtQuick -import QtQuick.Layouts -import QtQuick.Controls -import Qt.labs.settings -import QtDeviceUtilities.NetworkSettings - -Rectangle { - id: pluginMain - anchors.fill: parent - visible: true - color: "#09102b" - opacity: 0.97 - - property var service - property int margin: (pluginMain.width / 3 * 2) * 0.05 - property int spacing: margin * 0.5 - property int titleFontSize: height * 0.04 - property int subTitleFontSize: height * 0.035 - property int valueFontSize: height * 0.025 - property int fieldHeight: height * 0.07 - property int fieldTextHeight: height * 0.05 - property int buttonHeight: height * 0.05 - - signal closed() - - Component.onCompleted: { - settingsList.currentIndex = 0 - settingsLoader.source = settingsListModel.get(0).path + '/' + - settingsListModel.get(0).view + '.qml' - titleItem.title = settingsListModel.get(0).title - } - - SettingsHeader { - id: settingsHeader - onClicked: pluginMain.closed() - } - - ListModel { - id: settingsListModel - - ListElement { - title: "Network" - view: "NetworkSettings" - path: "network" - icon: "newIcons/network_icon.svg" - } - } - - ListView { - id: settingsList - objectName: "settingsList" - anchors.top: settingsHeader.bottom - anchors.left: parent.left - anchors.bottom: parent.bottom - width: parent.width / 3.33 - model: settingsListModel - - delegate: SettingsDelegate {} - } - - SettingsTitleItem { - id: titleItem - anchors.left: settingsList.right - anchors.right: parent.right - anchors.top: settingsHeader.bottom - anchors.leftMargin: pluginMain.margin * 2 - } - - Loader { - id: settingsLoader - anchors.top: titleItem.bottom - anchors.left: settingsList.right - anchors.right: parent.right - anchors.bottom: parent.bottom - anchors.leftMargin: pluginMain.margin * 2 - anchors.rightMargin: pluginMain.margin * 2 - } -} |