summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPasi Petäjäjärvi <pasi.petajajarvi@qt.io>2021-11-02 19:59:44 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-12-14 17:47:03 +0000
commit8f4bb3a6a75d0396afdcc6550cc6c047e3d1bb3c (patch)
tree4e3c0d92970e49f53d2828d08a6d488efab3123e
parentf54069c20f19c79022852023ce9ab0cb763b37be (diff)
Refactor SettingsUI source code and add QML module support
Split application and plugins structure to use QML modules feature Move settingsui binary and plugins it uses under examples as those are not really documented nor production quality. Task-number: QTBUG-97737 Change-Id: I4b030a5a42b29554a45c23eab4170be980cd5dc5 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit b3e6e77de4461cbfe5f29eeda9cc00bed61ce39c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--CMakeLists.txt4
-rw-r--r--examples/CMakeLists.txt5
-rw-r--r--examples/deviceutilities/CMakeLists.txt3
-rw-r--r--examples/deviceutilities/settingsuiapp/AutoScroller.qml (renamed from src/settingsui/AutoScroller.qml)0
-rw-r--r--examples/deviceutilities/settingsuiapp/CMakeLists.txt56
-rw-r--r--examples/deviceutilities/settingsuiapp/DeviceUtilities/QtButtonImageProvider/CMakeLists.txt32
-rw-r--r--examples/deviceutilities/settingsuiapp/DeviceUtilities/QtButtonImageProvider/QtButton.qml (renamed from src/settingsui/qtbuttonimageproviderplugin/QtButton.qml)8
-rw-r--r--examples/deviceutilities/settingsuiapp/DeviceUtilities/QtButtonImageProvider/plugin.cpp (renamed from src/settingsui/qtbuttonimageproviderplugin/plugin.cpp)0
-rw-r--r--examples/deviceutilities/settingsuiapp/DeviceUtilities/QtButtonImageProvider/plugin_p.h (renamed from src/settingsui/settingsuiplugin/plugin_p.h)26
-rw-r--r--examples/deviceutilities/settingsuiapp/DeviceUtilities/QtButtonImageProvider/qtbuttonimageprovider.cpp (renamed from src/settingsui/qtbuttonimageproviderplugin/qtbuttonimageprovider.cpp)1
-rw-r--r--examples/deviceutilities/settingsuiapp/DeviceUtilities/QtButtonImageProvider/qtbuttonimageprovider.h (renamed from src/settingsui/qtbuttonimageproviderplugin/qtbuttonimageprovider.h)0
-rw-r--r--examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/CMakeLists.txt53
-rw-r--r--examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Globals.qml53
-rw-r--r--examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/AddressListEntry.qml (renamed from src/settingsui/network/AddressListEntry.qml)0
-rw-r--r--examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/CMakeLists.txt56
-rw-r--r--examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/ComboBoxEntry.qml (renamed from src/settingsui/network/ComboBoxEntry.qml)4
-rw-r--r--examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/CustomSwitch.qml (renamed from src/settingsui/common/CustomSwitch.qml)11
-rw-r--r--examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/CustomTableView.qml (renamed from src/settingsui/common/CustomTableView.qml)9
-rw-r--r--examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/EditWiredSettings.qml (renamed from src/settingsui/network/EditWiredSettings.qml)0
-rw-r--r--examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/IpAddressTextField.qml (renamed from src/settingsui/network/IpAddressTextField.qml)3
-rw-r--r--examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/NetworkDetails.qml (renamed from src/settingsui/network/NetworkDetails.qml)0
-rw-r--r--examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/NetworkListView.qml (renamed from src/settingsui/network/NetworkListView.qml)34
-rw-r--r--examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/NetworkSettings.qml (renamed from src/settingsui/network/NetworkSettings.qml)48
-rw-r--r--examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/PassphraseEnter.qml (renamed from src/settingsui/network/PassphraseEnter.qml)44
-rw-r--r--examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/WifiSelectorDelegate.qml (renamed from src/settingsui/network/WifiSelectorDelegate.qml)3
-rw-r--r--examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/WifiSettings.qml (renamed from src/settingsui/network/WifiSettings.qml)7
-rw-r--r--examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/WifiSignalMonitor.qml (renamed from src/settingsui/network/WifiSignalMonitor.qml)4
-rw-r--r--examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/WiredSettings.qml (renamed from src/settingsui/network/WiredSettings.qml)0
-rw-r--r--examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/icons/Alert_yellow_1x.png (renamed from src/settingsui/settingsuiplugin/icons/Alert_yellow_1x.png)bin631 -> 631 bytes
-rw-r--r--examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/icons/WifiAnim_black_2x.png (renamed from src/settingsui/settingsuiplugin/icons/WifiAnim_black_2x.png)bin1870 -> 1870 bytes
-rw-r--r--examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/icons/Wifi_lightgray_2x.png (renamed from src/settingsui/settingsuiplugin/icons/Wifi_lightgray_2x.png)bin939 -> 939 bytes
-rwxr-xr-xexamples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/icons/generate_icons.sh (renamed from src/settingsui/settingsuiplugin/icons/generate_icons.sh)0
-rw-r--r--examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/icons/ref/extra/Alert.png (renamed from src/settingsui/settingsuiplugin/icons/ref/extra/Alert.png)bin1502 -> 1502 bytes
-rwxr-xr-xexamples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/icons/scripts/cimage.sh (renamed from src/settingsui/settingsuiplugin/icons/scripts/cimage.sh)0
-rwxr-xr-xexamples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/icons/scripts/cimages.sh (renamed from src/settingsui/settingsuiplugin/icons/scripts/cimages.sh)0
-rwxr-xr-xexamples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/icons/scripts/rimage.sh (renamed from src/settingsui/settingsuiplugin/icons/scripts/rimage.sh)0
-rwxr-xr-xexamples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/icons/scripts/rimages.sh (renamed from src/settingsui/settingsuiplugin/icons/scripts/rimages.sh)0
-rw-r--r--examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/SettingsDelegate.qml (renamed from src/settingsui/settingsuiplugin/SettingsDelegate.qml)14
-rw-r--r--examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/SettingsHeader.qml (renamed from src/settingsui/settingsuiplugin/SettingsHeader.qml)55
-rw-r--r--examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/SettingsTitleItem.qml (renamed from src/settingsui/settingsuiplugin/SettingsTitleItem.qml)10
-rw-r--r--examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/SettingsUI.qml (renamed from src/settingsui/settingsuiplugin/pluginMain.qml)48
-rw-r--r--examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/icons/back.svg (renamed from src/settingsui/settingsuiplugin/newIcons/back_icon.svg)0
-rw-r--r--examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/icons/network.svg (renamed from src/settingsui/settingsuiplugin/newIcons/network_icon.svg)0
-rw-r--r--examples/deviceutilities/settingsuiapp/HandwritingModeButton.qml (renamed from src/settingsui/common/HandwritingModeButton.qml)6
-rw-r--r--examples/deviceutilities/settingsuiapp/applicationsettings.cpp61
-rw-r--r--examples/deviceutilities/settingsuiapp/applicationsettings.h (renamed from src/settingsui/ViewSettings.qml)53
-rwxr-xr-xexamples/deviceutilities/settingsuiapp/images/FloatingButton_Active.png (renamed from src/settingsui/settingsuiplugin/icons/FloatingButton_Active.png)bin3584 -> 3584 bytes
-rwxr-xr-xexamples/deviceutilities/settingsuiapp/images/FloatingButton_Available.png (renamed from src/settingsui/settingsuiplugin/icons/FloatingButton_Available.png)bin3554 -> 3554 bytes
-rwxr-xr-xexamples/deviceutilities/settingsuiapp/images/FloatingButton_Unavailable.png (renamed from src/settingsui/settingsuiplugin/icons/FloatingButton_Unavailable.png)bin3134 -> 3134 bytes
-rw-r--r--examples/deviceutilities/settingsuiapp/main.cpp (renamed from src/settingsui/main.cpp)4
-rw-r--r--examples/deviceutilities/settingsuiapp/main.qml (renamed from src/settingsui/main.qml)15
-rw-r--r--src/CMakeLists.txt9
-rw-r--r--src/doc/src/qtdeviceutilities-index.qdoc3
-rw-r--r--src/doc/src/qtdeviceutilities-module-qml.qdoc4
-rw-r--r--src/settingsui/CMakeLists.txt50
-rw-r--r--src/settingsui/qtbuttonimageproviderplugin/CMakeLists.txt26
-rw-r--r--src/settingsui/qtbuttonimageproviderplugin/plugin_p.h79
-rw-r--r--src/settingsui/settingsuiapp.qrc25
-rw-r--r--src/settingsui/settingsuiplugin/CMakeLists.txt60
-rw-r--r--src/settingsui/settingsuiplugin/plugin.cpp72
60 files changed, 538 insertions, 520 deletions
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/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..1704ea5
--- /dev/null
+++ b/examples/deviceutilities/CMakeLists.txt
@@ -0,0 +1,3 @@
+if(TARGET Qt::Quick)
+ add_subdirectory(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..3a5fe87
--- /dev/null
+++ b/examples/deviceutilities/settingsuiapp/CMakeLists.txt
@@ -0,0 +1,56 @@
+cmake_minimum_required(VERSION 3.19)
+
+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..c14398d
--- /dev/null
+++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/CMakeLists.txt
@@ -0,0 +1,53 @@
+set(qml_files
+ "Globals.qml"
+ "SettingsDelegate.qml"
+ "SettingsHeader.qml"
+ "SettingsTitleItem.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/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Globals.qml b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Globals.qml
new file mode 100644
index 0000000..cea47d0
--- /dev/null
+++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Globals.qml
@@ -0,0 +1,53 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 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$
+**
+****************************************************************************/
+pragma Singleton
+import QtQuick
+
+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"
+
+ 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
+
+ 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..183c9fb
--- /dev/null
+++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/CMakeLists.txt
@@ -0,0 +1,56 @@
+set(qml_files
+ "CustomSwitch.qml"
+ "CustomTableView.qml"
+ "AddressListEntry.qml"
+ "ComboBoxEntry.qml"
+ "EditWiredSettings.qml"
+ "IpAddressTextField.qml"
+ "NetworkDetails.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..34b0421 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 {
@@ -90,7 +91,7 @@ Switch {
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 {
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/NetworkDetails.qml b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/NetworkDetails.qml
index 88b0946..88b0946 100644
--- a/src/settingsui/network/NetworkDetails.qml
+++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/NetworkDetails.qml
diff --git a/src/settingsui/network/NetworkListView.qml b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/NetworkListView.qml
index 7c35433..68498b5 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,10 +27,9 @@
**
****************************************************************************/
import QtQuick
-import QtQml
import QtDeviceUtilities.NetworkSettings
-import QtDeviceUtilities.QtButtonImageProvider
-import QtQuick.Controls
+import DeviceUtilities.SettingsUI
+import DeviceUtilities.QtButtonImageProvider
ListView {
id: list
@@ -59,9 +58,9 @@ ListView {
id: networkName
horizontalAlignment: Text.AlignLeft
verticalAlignment: Text.AlignVCenter
- font.pixelSize: pluginMain.subTitleFontSize
- font.family: appFont
- color: connected ? viewSettings.buttonGreenColor : "white"
+ font.pixelSize: Globals.subTitleFontSize
+ font.family: Globals.appFont
+ color: connected ? Globals.buttonGreenColor : "white"
text: name
}
Row {
@@ -69,7 +68,7 @@ ListView {
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
+ height: Globals.buttonHeight
onClicked: {
if (connected) {
NetworkSettingsManager.services.itemFromRow(index).disconnectService();
@@ -124,7 +124,7 @@ ListView {
Rectangle {
id: delegateBottom
width: networkDelegate.width
- color: viewSettings.borderColor
+ color: Globals.borderColor
height: 2
anchors.bottom: networkDelegate.bottom
anchors.horizontalCenter: networkDelegate.horizontalCenter
diff --git a/src/settingsui/network/NetworkSettings.qml b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/NetworkSettings.qml
index a0555f4..2b59c61 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,11 +27,9 @@
**
****************************************************************************/
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
@@ -41,22 +39,23 @@ Item {
Text {
id: wlanText
text: qsTr("WLAN")
- font.pixelSize: pluginMain.subTitleFontSize
- font.family: appFont
+ 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
+ height: networkSettingsRoot.height * Globals.buttonHeight
+ indicatorWidth: networkSettingsRoot.height * Globals.buttonWidth
+ indicatorHeight: networkSettingsRoot.height * Globals.buttonHeight
property bool wiFiAvailable: NetworkSettingsManager.interface(NetworkSettingsType.Wifi, 0) !== null
- enabled: wiFiAvailable && !wifiSwitchTimer.running
+ checkable: wiFiAvailable && !wifiSwitchTimer.running
+
onCheckedChanged: {
// Power on/off all WiFi interfaces
for (var i = 0; NetworkSettingsManager.interface(NetworkSettingsType.Wifi, i) !== null; i++) {
@@ -64,17 +63,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 {
@@ -90,9 +78,9 @@ Item {
anchors.right: manualDisconnect.left
anchors.rightMargin: 10
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()
@@ -101,11 +89,11 @@ Item {
QtButton {
id: manualDisconnect
anchors.top: wlanText.bottom
- anchors.right: parent.right
+ anchors.right: networkSettingsRoot.right
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) {
@@ -116,8 +104,8 @@ Item {
Text {
id: networkListTextItem
text: qsTr("Network list:")
- font.pixelSize: pluginMain.subTitleFontSize
- font.family: appFont
+ font.pixelSize: networkSettingsRoot.height * Globals.subTitleFontSize
+ font.family: Globals.appFont
font.styleName: "SemiBold"
color: "white"
anchors.top: wifiSwitch.bottom
diff --git a/src/settingsui/network/PassphraseEnter.qml b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/PassphraseEnter.qml
index 5d3167c..f0978d2 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: parent.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: parent.height * Globals.subTitleFontSize
+ font.family: Globals.appFont
color: "white"
text: qsTr("Enter Passphrase")
}
Text {
- font.pixelSize: pluginMain.valueFontSize
- font.family: appFont
+ font.pixelSize: parent.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
index 6fd25cb..6fd25cb 100644
--- a/src/settingsui/settingsuiplugin/icons/Alert_yellow_1x.png
+++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/icons/Alert_yellow_1x.png
Binary files differ
diff --git a/src/settingsui/settingsuiplugin/icons/WifiAnim_black_2x.png b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/icons/WifiAnim_black_2x.png
index c2dc8c5..c2dc8c5 100644
--- a/src/settingsui/settingsuiplugin/icons/WifiAnim_black_2x.png
+++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/icons/WifiAnim_black_2x.png
Binary files differ
diff --git a/src/settingsui/settingsuiplugin/icons/Wifi_lightgray_2x.png b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/icons/Wifi_lightgray_2x.png
index b71b22e..b71b22e 100644
--- a/src/settingsui/settingsuiplugin/icons/Wifi_lightgray_2x.png
+++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/icons/Wifi_lightgray_2x.png
Binary files differ
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
index 80914fc..80914fc 100644
--- a/src/settingsui/settingsuiplugin/icons/ref/extra/Alert.png
+++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/Network/icons/ref/extra/Alert.png
Binary files differ
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/src/settingsui/settingsuiplugin/SettingsDelegate.qml b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/SettingsDelegate.qml
index cf7696a..b3a1193 100644
--- a/src/settingsui/settingsuiplugin/SettingsDelegate.qml
+++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/SettingsDelegate.qml
@@ -27,11 +27,14 @@
**
****************************************************************************/
import QtQuick
+import DeviceUtilities.SettingsUI
Item {
- width: settingsList.width
- height: settingsList.height * 0.08
+ id: delegate
+ width: parent.width
+ height: parent.height * 0.08
+ //TODO: Do not expect id from other qml file to work/exist
property bool isSelected: settingsList.currentIndex == index
Image {
@@ -57,13 +60,14 @@ Item {
fontSizeMode: Text.Fit
minimumPixelSize: 1
font.pixelSize: Math.min(parent.width * 0.25, parent.height)
- color: parent.isSelected ? viewSettings.buttonGreenColor : "white"
+ color: delegate.isSelected ? Globals.buttonGreenColor : "white"
wrapMode: Text.WordWrap
verticalAlignment: Text.AlignVCenter
- font.family: appFont
- font.styleName: parent.isSelected ? "Bold" : "Regular"
+ font.family: Globals.appFont
+ font.styleName: delegate.isSelected ? "Bold" : "Regular"
}
+ //TODO: Do not expect id from other qml file to work/exist
MouseArea {
id: mouseArea
anchors.fill: parent
diff --git a/src/settingsui/settingsuiplugin/SettingsHeader.qml b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/SettingsHeader.qml
index 1d2f737..5667a3c 100644
--- a/src/settingsui/settingsuiplugin/SettingsHeader.qml
+++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/SettingsHeader.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.
@@ -34,54 +34,57 @@ Item {
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
- anchors.margins: pluginMain.margin
- height: pluginMain.margin * 4
+ anchors.margins: margin
+ height: margin * 4
+
+ property int margin: Globals.margin(header.width)
+ property int spacing: margin * 0.5
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
+ id: networkButton
+ anchors.left: header.left
+ anchors.top: header.top
+ source: "icons/back.svg"
+ height: header.height * 0.5
width: height / sourceSize.height * sourceSize.width
MouseArea {
anchors.fill: parent
anchors.margins: -parent.height * 0.2
- onClicked: header.clicked()
+ onClicked: parent.clicked()
}
+ visible: false
}
Text {
id: settingsText
- anchors.left: backButton.right
- anchors.verticalCenter: backButton.verticalCenter
- font.pixelSize: parent.height * 0.45
+ anchors.left: networkButton.right
+ anchors.verticalCenter: networkButton.verticalCenter
+ font.pixelSize: header.height * 0.45
text: qsTr("Settings")
color: "white"
- font.family: appFont
+ font.family: Globals.appFont
font.styleName: "SemiBold"
MouseArea {
anchors.fill: parent
anchors.margins: -parent.height * 0.2
- onClicked: header.clicked()
+ onClicked: parent.clicked()
}
}
Text {
id: ipItem
- width: parent.width * 0.25
- height: parent.height/2
+ width: header.width * 0.25
+ height: header.height/2
anchors.top: settingsText.top
- anchors.right: parent.right
- anchors.rightMargin: pluginMain.margin
+ anchors.right: header.right
+ anchors.rightMargin: margin
horizontalAlignment: Text.AlignRight
verticalAlignment: Text.AlignVCenter
- font.pixelSize: parent.height * 0.3
+ font.pixelSize: header.height * 0.3
color: "white"
- font.family: appFont
+ font.family: Globals.appFont
font.styleName: "SemiBold"
text: NetworkSettingsManager.currentWiredConnection ?
qsTr("Wired IP: ") +
@@ -90,16 +93,16 @@ Item {
Text {
id: wifiIpItem
- width: parent.width * 0.25
- height: parent.height/2
+ width: header.width * 0.25
+ height: header.height/2
anchors.top: ipItem.bottom
anchors.right: parent.right
- anchors.rightMargin: pluginMain.margin
+ anchors.rightMargin: margin
horizontalAlignment: Text.AlignRight
verticalAlignment: Text.AlignVCenter
- font.pixelSize: parent.height * 0.3
+ font.pixelSize: header.height * 0.3
color: "white"
- font.family: appFont
+ font.family: Globals.appFont
font.styleName: "SemiBold"
text: NetworkSettingsManager.currentWifiConnection ?
qsTr("Wireless IP: ") +
diff --git a/src/settingsui/settingsuiplugin/SettingsTitleItem.qml b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/SettingsTitleItem.qml
index 6156091..d43f8e8 100644
--- a/src/settingsui/settingsuiplugin/SettingsTitleItem.qml
+++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/SettingsTitleItem.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.
@@ -30,17 +30,17 @@ import QtQuick
Column {
id: page
- spacing: pluginMain.spacing
+ spacing: Globals.margin(page.width) * Globals.spacing
property alias title: displayText.text
Text {
id: displayText
- font.pixelSize: pluginMain.titleFontSize
+ font.pixelSize: (page.parent.height * Globals.titleFontSize)
color: "white"
fontSizeMode: Text.Fit
minimumPixelSize: 1
- font.family: appFont
+ font.family: Globals.appFont
font.styleName: "Bold"
}
@@ -51,7 +51,7 @@ Column {
}
Item {
- height: pluginMain.margin
+ height: Globals.margin(page.width)
width: 1
}
}
diff --git a/src/settingsui/settingsuiplugin/pluginMain.qml b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/SettingsUI.qml
index 76a6ced..44ce51d 100644
--- a/src/settingsui/settingsuiplugin/pluginMain.qml
+++ b/examples/deviceutilities/settingsuiapp/DeviceUtilities/SettingsUI/SettingsUI.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,27 +27,15 @@
**
****************************************************************************/
import QtQuick
-import QtQuick.Layouts
-import QtQuick.Controls
-import Qt.labs.settings
-import QtDeviceUtilities.NetworkSettings
+import DeviceUtilities.SettingsUI.Network
Rectangle {
- id: pluginMain
+ id: main
anchors.fill: parent
- visible: true
- color: "#09102b"
+ color: Globals.backgroundColor
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
+ property int margin: Globals.margin(main.width)
signal closed()
@@ -60,7 +48,7 @@ Rectangle {
SettingsHeader {
id: settingsHeader
- onClicked: pluginMain.closed()
+ onClicked: main.closed()
}
ListModel {
@@ -69,8 +57,8 @@ Rectangle {
ListElement {
title: "Network"
view: "NetworkSettings"
- path: "network"
- icon: "newIcons/network_icon.svg"
+ path: "Network"
+ icon: "icons/network.svg"
}
}
@@ -78,9 +66,9 @@ Rectangle {
id: settingsList
objectName: "settingsList"
anchors.top: settingsHeader.bottom
- anchors.left: parent.left
- anchors.bottom: parent.bottom
- width: parent.width / 3.33
+ anchors.left: main.left
+ anchors.bottom: main.bottom
+ width: main.width / 3.33
model: settingsListModel
delegate: SettingsDelegate {}
@@ -89,18 +77,20 @@ Rectangle {
SettingsTitleItem {
id: titleItem
anchors.left: settingsList.right
- anchors.right: parent.right
+ anchors.right: main.right
anchors.top: settingsHeader.bottom
- anchors.leftMargin: pluginMain.margin * 2
+ anchors.leftMargin: margin * 2
}
Loader {
id: settingsLoader
+ width: main.width
+ height: main.height
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
+ anchors.right: main.right
+ anchors.bottom: main.bottom
+ anchors.leftMargin: margin * 2
+ anchors.rightMargin: margin * 2
}
}
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
index 9b55146..9b55146 100755
--- a/src/settingsui/settingsuiplugin/icons/FloatingButton_Active.png
+++ b/examples/deviceutilities/settingsuiapp/images/FloatingButton_Active.png
Binary files differ
diff --git a/src/settingsui/settingsuiplugin/icons/FloatingButton_Available.png b/examples/deviceutilities/settingsuiapp/images/FloatingButton_Available.png
index 1479881..1479881 100755
--- a/src/settingsui/settingsuiplugin/icons/FloatingButton_Available.png
+++ b/examples/deviceutilities/settingsuiapp/images/FloatingButton_Available.png
Binary files differ
diff --git a/src/settingsui/settingsuiplugin/icons/FloatingButton_Unavailable.png b/examples/deviceutilities/settingsuiapp/images/FloatingButton_Unavailable.png
index 33aa87d..33aa87d 100755
--- a/src/settingsui/settingsuiplugin/icons/FloatingButton_Unavailable.png
+++ b/examples/deviceutilities/settingsuiapp/images/FloatingButton_Unavailable.png
Binary files differ
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 9467fcf..88e2c48 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,6 +1,5 @@
add_subdirectory(networksettings)
-add_subdirectory(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/src/qtdeviceutilities-index.qdoc b/src/doc/src/qtdeviceutilities-index.qdoc
index aea43b5..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.
@@ -62,7 +62,6 @@
\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/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/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.
-*/