From 3ecfb5739cc3e9572578f7040e29928a9b9f25f4 Mon Sep 17 00:00:00 2001 From: Mats Honkamaa Date: Mon, 24 Jan 2022 15:13:59 +0200 Subject: [PATCH] Doc: Update all LoginUI tutorials Update all LoginUI tutorials and the documentation for them. Task-number: QDS-5915 Change-Id: I5a2665ca08ae3d167dfb5e937ee36c96f42ccd9a Reviewed-by: Leena Miettinen --- .../doc/images/loginui1-project-files.png | Bin 9602 -> 14664 bytes .../doc/images/loginui3-visibility.png | Bin 5281 -> 4079 bytes doc/qtdesignstudio/examples/doc/loginui1.qdoc | 53 ++++---- doc/qtdesignstudio/examples/doc/loginui2.qdoc | 12 +- doc/qtdesignstudio/examples/doc/loginui3.qdoc | 10 +- doc/qtdesignstudio/examples/doc/loginui4.qdoc | 22 ++-- .../loginui1/{ => content}/EntryField.ui.qml | 22 ++-- .../loginui1/{ => content}/PushButton.ui.qml | 29 +++-- .../loginui1/{ => content}/Screen01.ui.qml | 32 +++-- .../{ => content}/images/adventurePage.jpg | Bin .../images/qt_logo_green_128x128px.png | Bin 0 -> 1800 bytes .../images/qt_logo_green_128x128px.png | Bin 3517 -> 0 bytes .../imports/loginui1/EventListModel.qml | 41 +++++++ .../imports/loginui1/EventListSimulator.qml | 51 ++++++++ .../examples/loginui1/imports/loginui1/qmldir | 4 + .../examples/loginui1/loginui1.qml | 61 ---------- .../examples/loginui1/loginui1.qmlproject | 92 ++++++++++++-- .../examples/loginui1/qtquickcontrols2.conf | 6 - .../src/app_environment.h} | 23 ++-- .../loginui1/src/import_qml_plugins.h | 9 ++ .../examples/loginui1/src/main.cpp | 62 ++++++++++ .../examples/loginui2/Loginui2.qmlproject | 75 ++++++++++++ .../loginui2/{ => content}/Screen01.ui.qml | 23 ++-- .../loginui2/imports/loginui2/Constants.qml | 26 ---- .../examples/loginui2/imports/loginui2/qmldir | 2 - .../examples/loginui2/loginui2.qml | 61 ---------- .../examples/loginui2/loginui2.qmlproject | 47 -------- .../examples/loginui2/qtquickcontrols2.conf | 6 - .../examples/loginui3/Loginui3.qmlproject | 75 ++++++++++++ .../loginui3/{ => content}/Screen01.ui.qml | 24 ++-- .../loginui3/imports/loginui3/Constants.qml | 26 ---- .../examples/loginui3/imports/loginui3/qmldir | 2 - .../examples/loginui3/loginui3.qml | 61 ---------- .../examples/loginui3/loginui3.qmlproject | 47 -------- .../examples/loginui3/qtquickcontrols2.conf | 2 - .../examples/loginui4/Loginui4.qmlproject | 75 ++++++++++++ .../loginui4/{ => content}/Screen01.ui.qml | 114 +++++------------- .../loginui4/imports/loginui4/Constants.qml | 26 ---- .../examples/loginui4/imports/loginui4/qmldir | 2 - .../examples/loginui4/loginui4.qmlproject | 47 -------- .../examples/loginui4/qtquickcontrols2.conf | 2 - 41 files changed, 636 insertions(+), 636 deletions(-) rename doc/qtdesignstudio/examples/loginui1/{ => content}/EntryField.ui.qml (93%) rename doc/qtdesignstudio/examples/loginui1/{ => content}/PushButton.ui.qml (88%) rename doc/qtdesignstudio/examples/loginui1/{ => content}/Screen01.ui.qml (89%) rename doc/qtdesignstudio/examples/loginui1/{ => content}/images/adventurePage.jpg (100%) create mode 100644 doc/qtdesignstudio/examples/loginui1/content/images/qt_logo_green_128x128px.png delete mode 100644 doc/qtdesignstudio/examples/loginui1/images/qt_logo_green_128x128px.png create mode 100644 doc/qtdesignstudio/examples/loginui1/imports/loginui1/EventListModel.qml create mode 100644 doc/qtdesignstudio/examples/loginui1/imports/loginui1/EventListSimulator.qml delete mode 100644 doc/qtdesignstudio/examples/loginui1/loginui1.qml delete mode 100644 doc/qtdesignstudio/examples/loginui1/qtquickcontrols2.conf rename doc/qtdesignstudio/examples/{loginui4/loginui4.qml => loginui1/src/app_environment.h} (85%) create mode 100644 doc/qtdesignstudio/examples/loginui1/src/import_qml_plugins.h create mode 100644 doc/qtdesignstudio/examples/loginui1/src/main.cpp create mode 100644 doc/qtdesignstudio/examples/loginui2/Loginui2.qmlproject rename doc/qtdesignstudio/examples/loginui2/{ => content}/Screen01.ui.qml (92%) delete mode 100644 doc/qtdesignstudio/examples/loginui2/imports/loginui2/Constants.qml delete mode 100644 doc/qtdesignstudio/examples/loginui2/imports/loginui2/qmldir delete mode 100644 doc/qtdesignstudio/examples/loginui2/loginui2.qml delete mode 100644 doc/qtdesignstudio/examples/loginui2/loginui2.qmlproject delete mode 100644 doc/qtdesignstudio/examples/loginui2/qtquickcontrols2.conf create mode 100644 doc/qtdesignstudio/examples/loginui3/Loginui3.qmlproject rename doc/qtdesignstudio/examples/loginui3/{ => content}/Screen01.ui.qml (93%) delete mode 100644 doc/qtdesignstudio/examples/loginui3/imports/loginui3/Constants.qml delete mode 100644 doc/qtdesignstudio/examples/loginui3/imports/loginui3/qmldir delete mode 100644 doc/qtdesignstudio/examples/loginui3/loginui3.qml delete mode 100644 doc/qtdesignstudio/examples/loginui3/loginui3.qmlproject delete mode 100644 doc/qtdesignstudio/examples/loginui3/qtquickcontrols2.conf create mode 100644 doc/qtdesignstudio/examples/loginui4/Loginui4.qmlproject rename doc/qtdesignstudio/examples/loginui4/{ => content}/Screen01.ui.qml (53%) delete mode 100644 doc/qtdesignstudio/examples/loginui4/imports/loginui4/Constants.qml delete mode 100644 doc/qtdesignstudio/examples/loginui4/imports/loginui4/qmldir delete mode 100644 doc/qtdesignstudio/examples/loginui4/loginui4.qmlproject delete mode 100644 doc/qtdesignstudio/examples/loginui4/qtquickcontrols2.conf diff --git a/doc/qtdesignstudio/examples/doc/images/loginui1-project-files.png b/doc/qtdesignstudio/examples/doc/images/loginui1-project-files.png index 47ff9b4303234c50cc49d69d6249b558bbf925b7..7b7edd8fe1b2165fdb3f60168b7e127c3e91d42a 100644 GIT binary patch literal 14664 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 Q1_lNOPgg&ebxsLQ0GCteR{#J2 diff --git a/doc/qtdesignstudio/examples/doc/images/loginui3-visibility.png b/doc/qtdesignstudio/examples/doc/images/loginui3-visibility.png index 48bedc6a485146db3d57d906fe81366d7628211c..d43dbb61075d5192f9ebadb1443c207ec200f3ae 100644 GIT binary patch delta 4003 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 literal 5281 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 \uicontrol {New Project} > - \uicontrol General > \uicontrol {Qt Quick Application - Empty} > - \uicontrol Choose. - \li In the \uicontrol Name field, enter the project name: \e {loginui1}. - When naming your own projects, keep in mind that they cannot be - easily renamed later. - \li In the \uicontrol {Create in} field, enter the path to the folder - where you want to store the project files. You can move project - folders later without problems. - \li Select \uicontrol Next (or \uicontrol Continue on \macos) to - continue to the \uicontrol {Define Project Details} page. - \li In the \uicontrol {Screen resolution} field, select the initial - size of the UI. In this tutorial, we use the predefined size - \e {720 x 1280 (HD)} (portrait) instead of the default size - (landscape). You can easily change the screen size later in - \l Properties. - \li Select \uicontrol Finish (or \uicontrol Done on \macos) to create - the project. + \li Select \uicontrol File > \uicontrol {New Project}. + \li In the \uicontrol Presets tab, select \uicontrol General > + \uicontrol {Empty}. + \li In the \uicontrol Details tab: + \list + \li Enter \e Loginui1 as the name for the project. Keep in mind + that projects cannot be easily renamed later. + \li Select the path for the project files. You can move project + folders later. + \li Set \uicontrol Width to 720 and \uicontrol Height to 1280. + You can change the screen size later in \l Properties. + \endlist + \li Select \uicontrol Create to create the project. \endlist Your project should now look something like this in the \uicontrol Design @@ -92,7 +90,7 @@ \section2 Learn More - Projects and Files \QDS creates a set of boilerplate files and folders that you need to create - a UI. The files are listed in the \l Projects view. + a UI. The files are listed in the \l{File System} view. \image loginui1-project-files.png @@ -112,6 +110,9 @@ Specifically, if you export and import designs using \QB, your main file is most likely called something else. For more information, see \l {Exporting from Design Tools}. + \li The \e CMakeLists.txt project configuration file allowing you to + share your project as a fully working C++ application with + developers. \li The \e {qtquickcontrols2.conf} file specifies the selected \l {Styling Qt Quick Controls}{UI style} and some style-specific arguments. @@ -230,7 +231,7 @@ adds the following \e import statements to the UI files (.ui.qml) that it creates: - \quotefromfile loginui1/Screen01.ui.qml + \quotefromfile Loginui1/Content/Screen01.ui.qml \skipto import \printuntil Controls @@ -333,7 +334,7 @@ To be able to use the functionality of the Button control, the wizard template adds the following \e import statements to the \e EntryField.ui.qml file: - \quotefromfile loginui1/EntryField.ui.qml + \quotefromfile Loginui1/Content/EntryField.ui.qml \skipto import \printuntil Controls @@ -364,7 +365,7 @@ to \e 100, to match the width of the tag line. \li In the \uicontrol Control section, deselect the \uicontrol Hover check box because we don't want the hover effect for the button. - \li Select the button background in \uicontrol Navigator to display its + \li Select \e buttonBackground in \uicontrol Navigator to display its properties in \uicontrol Properties. \li In \uicontrol Rectangle > \uicontrol {Fill color}, set the color to transparent light gray (\e #28e7e7e7) in \uicontrol Hex. You can @@ -372,7 +373,7 @@ \li In \uicontrol {Border Color}, select white (\e #ffffff). \li In \uicontrol Radius, enter \e 50 to give the button rounded corners. - \li Select the text component in \uicontrol Navigator to display its + \li Select \e textItem in \uicontrol Navigator to display its properties in \uicontrol Properties. \li In \uicontrol Character > \uicontrol Font, select \e {Titillium Web ExtraLight}. @@ -382,7 +383,7 @@ (\e #ffffff). \li In \uicontrol {Alignment H}, select the \uicontrol Left button to align the text horizontally to the left. - \li In the \uicontrol Padding section > \uicontrol Horizontal > + \li In \uicontrol Padding > \uicontrol Horizontal > \uicontrol Left, set the padding in the field between background border and text to \e 50. \image loginui1-text-properties-button.png "Text properties" @@ -450,13 +451,13 @@ to \e 100. \li In the \uicontrol Control section, deselect the \uicontrol Hover check box because we don't want the hover effect for the button. - \li Select the button background in \uicontrol Navigator to display its + \li Select \e buttonBackground in \uicontrol Navigator to display its properties in \uicontrol Properties. \li In \uicontrol Rectangle > \uicontrol {Border color}, select the green used in the logo (\e #41cd52). \li In \uicontrol Radius, enter \e 50 to give the button rounded corners. - \li Select the the text component in \uicontrol Navigator to display + \li Select \e textItem in \uicontrol Navigator to display its properties in \uicontrol Properties. \li In \uicontrol Character > \uicontrol Font, select \e {Titillium Web ExtraLight}. diff --git a/doc/qtdesignstudio/examples/doc/loginui2.qdoc b/doc/qtdesignstudio/examples/doc/loginui2.qdoc index bcf557825d7..c2ca170552e 100644 --- a/doc/qtdesignstudio/examples/doc/loginui2.qdoc +++ b/doc/qtdesignstudio/examples/doc/loginui2.qdoc @@ -24,7 +24,7 @@ ****************************************************************************/ /*! - \example loginui2 + \example Loginui2 \ingroup gstutorials \previouspage {Log In UI - Components} \nextpage {Log In UI - States} @@ -45,7 +45,12 @@ their proper places when you resize the UI on the desktop or on devices with different screen sizes, you will use anchors and positioners. - These instructions build on \l {Log In UI - Components}. + The starting point for this tutorial is the completed + \l{Log In UI - Components} project. You can download the project from + \l{https://git.qt.io/public-demos/qtdesign-studio/-/tree/master/tutorial%20projects/Loginui1}{here}. + + Additionally, you can download the completed project of this tutorial from + \l{https://git.qt.io/public-demos/qtdesign-studio/-/tree/master/tutorial%20projects/Loginui2}{here}. The \e {Learn More} sections provide additional information about the task at hand. @@ -79,6 +84,9 @@ anchor button to anchor \e adventurePage to its parent in the \uicontrol Target field. This attaches the background image to the rectangle on all sides. + Note: Selecting the anchor button should automatically select the + four buttons on the left side of it. If it doesn't, refresh + \uicontrol{Form Editor}. \image loginui2-layout.png "Layout properties" \li Select \e qt_logo_green_128x128px in \l Navigator. \li In \uicontrol Properties > \uicontrol Layout, select the diff --git a/doc/qtdesignstudio/examples/doc/loginui3.qdoc b/doc/qtdesignstudio/examples/doc/loginui3.qdoc index 34730dfc425..999215d90b1 100644 --- a/doc/qtdesignstudio/examples/doc/loginui3.qdoc +++ b/doc/qtdesignstudio/examples/doc/loginui3.qdoc @@ -46,12 +46,12 @@ login page, you will use \e states to show and hide UI components as necessary when a user selects the \e {Create Account} button. - These instructions build on: + The starting point for this tutorial is the completed + \l{Log In UI - Positioning} project. You can download the project from + \l{https://git.qt.io/public-demos/qtdesign-studio/-/tree/master/tutorial%20projects/Loginui2}{here}. - \list - \li \l {Log In UI - Components} - \li \l {Log In UI - Positioning} - \endlist + Additionally, you can download the completed project of this tutorial from + \l{https://git.qt.io/public-demos/qtdesign-studio/-/tree/master/tutorial%20projects/Loginui3}{here}. The \e {Learn More} sections provide additional information relevant to the task at hand. diff --git a/doc/qtdesignstudio/examples/doc/loginui4.qdoc b/doc/qtdesignstudio/examples/doc/loginui4.qdoc index a601d8aa8ec..a6a1ad77d4a 100644 --- a/doc/qtdesignstudio/examples/doc/loginui4.qdoc +++ b/doc/qtdesignstudio/examples/doc/loginui4.qdoc @@ -46,13 +46,13 @@ \l{Creating Timeline Animations}{timeline animations} that you bind to states. - These instructions build on: + The starting point for this tutorial is the completed + \l{Log In UI - States} project. You can download the project from + \l{https://git.qt.io/public-demos/qtdesign-studio/-/tree/master/tutorial%20projects/Loginui3}{here}. + + Additionally, you can download the completed project of this tutorial from + \l{https://git.qt.io/public-demos/qtdesign-studio/-/tree/master/tutorial%20projects/Loginui4}{here}. - \list - \li \l {Log In UI - Components} - \li \l {Log In UI - Positioning} - \li \l {Log In UI - States} - \endlist The \e {Learn More} sections provide additional information relevant to the task at hand. @@ -94,7 +94,7 @@ \li Select \inlineimage icons/navigator-arrowup.png to move \e username below \e tagLine in \uicontrol Navigator to preserve the \l{Arranging Components}{component hierarchy}. - \li Repeat for \e password and \e repeatPassword. + \li Repeat step 3 and 4 for \e password and \e repeatPassword. \li Select \e fields in \uicontrol Navigator and press \key Delete to delete it. \li Select \e username in \uicontrol Navigator to display its properties @@ -196,8 +196,8 @@ to save your changes. \endlist - When you move the playhead along the timeline, you can see how the login - button fades out while the repeat password field fades in. + When you move the playhead along the timeline, you can see how the create + account button fades out while the repeat password field fades in. You will now animate the top anchor margin of the repeat password field to make it appear to slide down from the password field. @@ -219,7 +219,7 @@ frame 0, and select the record button for the \e anchors.topMargin property of \e repeatPassword. \li In the field next to the property, set a negative value for the - top anchor margin, -40, to place \e repeatPassword on top of + top anchor margin, -100, to place \e repeatPassword on top of \e password. \li Move the playhead to frame 1000 and change the top anchor margin to 20, so that, combined with the change in the \uicontrol Opacity @@ -312,7 +312,7 @@ the following \e import statement to the UI files where it uses the components: - \quotefromfile loginui4/Screen01.ui.qml + \quotefromfile Loginui4/Content/Screen01.ui.qml \skipto QtQuick.Timeline \printuntil 1.0 diff --git a/doc/qtdesignstudio/examples/loginui1/EntryField.ui.qml b/doc/qtdesignstudio/examples/loginui1/content/EntryField.ui.qml similarity index 93% rename from doc/qtdesignstudio/examples/loginui1/EntryField.ui.qml rename to doc/qtdesignstudio/examples/loginui1/content/EntryField.ui.qml index 4232d16445b..02b4ce8d183 100644 --- a/doc/qtdesignstudio/examples/loginui1/EntryField.ui.qml +++ b/doc/qtdesignstudio/examples/loginui1/content/EntryField.ui.qml @@ -1,8 +1,6 @@ - - /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. +** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the examples of the Qt Design Studio. @@ -49,6 +47,7 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ + import QtQuick 2.15 import QtQuick.Controls 2.12 @@ -100,13 +99,16 @@ Button { when: !control.down PropertyChanges { - target: textItem - font.family: "Titillium Web ExtraLight" + target: buttonBackground + color: "#00000000" + border.color: "#ffffff" } PropertyChanges { - target: buttonBackground - color: "#28e7e7e7" + target: textItem + color: "#ffffff" + font.pixelSize: 34 + font.family: "Titillium Web ExtraLight" } }, State { @@ -115,12 +117,14 @@ Button { PropertyChanges { target: textItem color: "#ffffff" + border.color: "#ffffff" + font.family: "Titillium Web ExtraLight" } PropertyChanges { target: buttonBackground - color: "#e7e7e7" - border.color: "#ffffff" + color: "#28e7e7e7" + border.color: "#00000000" } } ] diff --git a/doc/qtdesignstudio/examples/loginui1/PushButton.ui.qml b/doc/qtdesignstudio/examples/loginui1/content/PushButton.ui.qml similarity index 88% rename from doc/qtdesignstudio/examples/loginui1/PushButton.ui.qml rename to doc/qtdesignstudio/examples/loginui1/content/PushButton.ui.qml index 3a0871f4fc8..cfd617703c8 100644 --- a/doc/qtdesignstudio/examples/loginui1/PushButton.ui.qml +++ b/doc/qtdesignstudio/examples/loginui1/content/PushButton.ui.qml @@ -1,8 +1,6 @@ - - /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. +** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the examples of the Qt Design Studio. @@ -49,6 +47,7 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ + import QtQuick 2.15 import QtQuick.Controls 2.12 @@ -68,6 +67,7 @@ Button { text: "My Button" hoverEnabled: false + enabled: true background: buttonBackground Rectangle { @@ -83,6 +83,8 @@ Button { contentItem: textItem Text { id: textItem + width: 500 + height: 100 text: control.text font.pixelSize: 34 @@ -101,6 +103,14 @@ Button { PropertyChanges { target: buttonBackground color: "#00000000" + border.color: "#41cd52" + } + + PropertyChanges { + target: textItem + color: "#41cd52" + font.pixelSize: 34 + font.family: "Titillium Web ExtraLight" } }, State { @@ -108,20 +118,17 @@ Button { when: control.down PropertyChanges { target: textItem - color: "#ffffff" + color: "#41cd52" + border.color: "#41cd52" + font.pixelSize: 34 + font.family: "Titillium Web ExtraLight" } PropertyChanges { target: buttonBackground color: "#41cd52" - border.color: "#00000000" + border.color: "#41cd52" } } ] } - -/*##^## -Designer { - D{i:0;height:100;width:500} -} -##^##*/ diff --git a/doc/qtdesignstudio/examples/loginui1/Screen01.ui.qml b/doc/qtdesignstudio/examples/loginui1/content/Screen01.ui.qml similarity index 89% rename from doc/qtdesignstudio/examples/loginui1/Screen01.ui.qml rename to doc/qtdesignstudio/examples/loginui1/content/Screen01.ui.qml index 9fbbf7fb090..de16a1ba014 100644 --- a/doc/qtdesignstudio/examples/loginui1/Screen01.ui.qml +++ b/doc/qtdesignstudio/examples/loginui1/content/Screen01.ui.qml @@ -1,8 +1,6 @@ - - /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. +** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the examples of the Qt Design Studio. @@ -49,9 +47,10 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ + import QtQuick import QtQuick.Controls -import loginui1 1.0 +import Loginui1 Rectangle { width: Constants.width @@ -70,47 +69,44 @@ Rectangle { Image { id: qt_logo_green_128x128px x: 296 - y: 40 + y: 0 source: "images/qt_logo_green_128x128px.png" fillMode: Image.PreserveAspectFit } Text { - id: tagLine - width: 541 - height: 78 color: "#ffffff" text: qsTr("Are you ready to explore?") font.pixelSize: 50 font.family: "Titillium Web ExtraLight" - anchors.verticalCenterOffset: -391 - anchors.horizontalCenterOffset: 18 + anchors.verticalCenterOffset: -430 + anchors.horizontalCenterOffset: 0 anchors.centerIn: parent } EntryField { id: username - x: 128 + x: 110 y: 470 - text: "Username or Email" + text: qsTr("Username or Email") } EntryField { id: password - x: 128 + x: 110 y: 590 text: qsTr("Password") } PushButton { id: login - x: 102 - y: 966 + x: 101 + y: 944 text: qsTr("Continue") } PushButton { - id: createAccount - x: 102 + id: creteAccount + x: 101 y: 1088 text: qsTr("Create Account") } @@ -118,7 +114,7 @@ Rectangle { /*##^## Designer { - D{i:0;formeditorZoom:0.33} + D{i:0;formeditorZoom:0.5}D{i:1}D{i:2}D{i:3}D{i:4}D{i:5}D{i:6}D{i:7} } ##^##*/ diff --git a/doc/qtdesignstudio/examples/loginui1/images/adventurePage.jpg b/doc/qtdesignstudio/examples/loginui1/content/images/adventurePage.jpg similarity index 100% rename from doc/qtdesignstudio/examples/loginui1/images/adventurePage.jpg rename to doc/qtdesignstudio/examples/loginui1/content/images/adventurePage.jpg diff --git a/doc/qtdesignstudio/examples/loginui1/content/images/qt_logo_green_128x128px.png b/doc/qtdesignstudio/examples/loginui1/content/images/qt_logo_green_128x128px.png new file mode 100644 index 0000000000000000000000000000000000000000..2f3c7550774d2f13b980232cb5dfd5391e031e2f GIT binary patch literal 1800 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 +void set_qt_environment() +{ + qputenv("QT_AUTO_SCREEN_SCALE_FACTOR", "1"); + qputenv("QT_ENABLE_HIGHDPI_SCALING", "0"); + qputenv("QT_LOGGING_RULES", "qt.qml.connections=false"); + qputenv("QT_QUICK_CONTROLS_CONF", ":/qtquickcontrols2.conf"); } diff --git a/doc/qtdesignstudio/examples/loginui1/src/import_qml_plugins.h b/doc/qtdesignstudio/examples/loginui1/src/import_qml_plugins.h new file mode 100644 index 00000000000..18e0e769915 --- /dev/null +++ b/doc/qtdesignstudio/examples/loginui1/src/import_qml_plugins.h @@ -0,0 +1,9 @@ +/* + * This file is automatically generated by Qt Design Studio. + * Do not change. +*/ + +#include + +Q_IMPORT_QML_PLUGIN(contentPlugin) +Q_IMPORT_QML_PLUGIN(Loginui1Plugin) diff --git a/doc/qtdesignstudio/examples/loginui1/src/main.cpp b/doc/qtdesignstudio/examples/loginui1/src/main.cpp new file mode 100644 index 00000000000..aaf18173a1a --- /dev/null +++ b/doc/qtdesignstudio/examples/loginui1/src/main.cpp @@ -0,0 +1,62 @@ +/**************************************************************************** +** +** Copyright (C) 2021 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of Qt Quick Studio Components. +** +** $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 +#include + +#include "app_environment.h" +#include "import_qml_plugins.h" + +int main(int argc, char *argv[]) +{ + set_qt_environment(); + + QGuiApplication app(argc, argv); + + QQmlApplicationEngine engine; + const QUrl url(u"qrc:Main/main.qml"_qs); + QObject::connect( + &engine, &QQmlApplicationEngine::objectCreated, &app, + [url](QObject *obj, const QUrl &objUrl) { + if (!obj && url == objUrl) + QCoreApplication::exit(-1); + }, + Qt::QueuedConnection); + + engine.addImportPath(QCoreApplication::applicationDirPath() + "/qml"); + engine.addImportPath(":/"); + + engine.load(url); + + if (engine.rootObjects().isEmpty()) { + return -1; + } + + return app.exec(); +} diff --git a/doc/qtdesignstudio/examples/loginui2/Loginui2.qmlproject b/doc/qtdesignstudio/examples/loginui2/Loginui2.qmlproject new file mode 100644 index 00000000000..467ccd3c545 --- /dev/null +++ b/doc/qtdesignstudio/examples/loginui2/Loginui2.qmlproject @@ -0,0 +1,75 @@ +import QmlProject + +Project { + mainFile: "content/App.qml" + + /* Include .qml, .js, and image files from current directory and subdirectories */ + QmlFiles { + directory: "content" + } + + JavaScriptFiles { + directory: "content" + } + + ImageFiles { + directory: "content" + } + + Files { + filter: "*.conf" + files: ["qtquickcontrols2.conf"] + } + + Files { + filter: "qmldir" + directory: "." + } + + Files { + filter: "*.ttf;*.otf" + } + + Files { + filter: "*.wav;*.mp3" + } + + Files { + filter: "*.mp4" + } + + Files { + filter: "*.glsl;*.glslv;*.glslf;*.vsh;*.fsh;*.vert;*.frag" + } + + Files { + filter: "*.mesh" + directory: "asset_imports" + } + + Environment { + QT_QUICK_CONTROLS_CONF: "qtquickcontrols2.conf" + QT_AUTO_SCREEN_SCALE_FACTOR: "1" + QT_LOGGING_RULES: "qt.qml.connections=false" + QT_ENABLE_HIGHDPI_SCALING: "0" + /* Useful for debugging + QSG_VISUALIZE=batches + QSG_VISUALIZE=clip + QSG_VISUALIZE=changes + QSG_VISUALIZE=overdraw + */ + } + + qt6Project: true + + /* List of plugin directories passed to QML runtime */ + importPaths: [ "imports", "asset_imports" ] + + /* Required for deployment */ + targetDirectory: "/opt/Loginui1" + + qdsVersion: "3.0" + + /* If any modules the project imports require widgets (e.g. QtCharts), widgetApp must be true */ + widgetApp: true +} diff --git a/doc/qtdesignstudio/examples/loginui2/Screen01.ui.qml b/doc/qtdesignstudio/examples/loginui2/content/Screen01.ui.qml similarity index 92% rename from doc/qtdesignstudio/examples/loginui2/Screen01.ui.qml rename to doc/qtdesignstudio/examples/loginui2/content/Screen01.ui.qml index 6466b19bd06..c806c43034a 100644 --- a/doc/qtdesignstudio/examples/loginui2/Screen01.ui.qml +++ b/doc/qtdesignstudio/examples/loginui2/content/Screen01.ui.qml @@ -1,8 +1,6 @@ - - /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. +** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the examples of the Qt Design Studio. @@ -49,9 +47,10 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ + import QtQuick import QtQuick.Controls -import loginui2 1.0 +import Loginui1 Rectangle { id: rectangle @@ -69,7 +68,6 @@ Rectangle { Image { id: qt_logo_green_128x128px - x: 296 anchors.top: parent.top source: "images/qt_logo_green_128x128px.png" anchors.horizontalCenter: parent.horizontalCenter @@ -78,8 +76,6 @@ Rectangle { } Text { id: tagLine - width: 541 - height: 78 color: "#ffffff" text: qsTr("Are you ready to explore?") anchors.top: qt_logo_green_128x128px.bottom @@ -87,11 +83,11 @@ Rectangle { anchors.topMargin: 40 anchors.horizontalCenter: parent.horizontalCenter font.family: "Titillium Web ExtraLight" + anchors.horizontalCenterOffset: 0 } Column { id: fields - x: 128 anchors.top: tagLine.bottom anchors.horizontalCenter: parent.horizontalCenter anchors.topMargin: 170 @@ -99,7 +95,7 @@ Rectangle { EntryField { id: username - text: "Username or Email" + text: qsTr("Username or Email") } EntryField { @@ -110,11 +106,10 @@ Rectangle { Column { id: buttons - x: 102 - y: 966 + y: 944 anchors.bottom: parent.bottom anchors.horizontalCenter: parent.horizontalCenter - anchors.bottomMargin: 100 + anchors.bottomMargin: 50 spacing: 20 PushButton { @@ -123,7 +118,7 @@ Rectangle { } PushButton { - id: createAccount + id: creteAccount text: qsTr("Create Account") } } @@ -131,7 +126,7 @@ Rectangle { /*##^## Designer { - D{i:0;formeditorZoom:0.5}D{i:1}D{i:2}D{i:4} + D{i:0;formeditorZoom:0.66}D{i:1}D{i:2}D{i:3}D{i:5}D{i:6}D{i:4}D{i:8}D{i:9}D{i:7} } ##^##*/ diff --git a/doc/qtdesignstudio/examples/loginui2/imports/loginui2/Constants.qml b/doc/qtdesignstudio/examples/loginui2/imports/loginui2/Constants.qml deleted file mode 100644 index 6fef815fa14..00000000000 --- a/doc/qtdesignstudio/examples/loginui2/imports/loginui2/Constants.qml +++ /dev/null @@ -1,26 +0,0 @@ -pragma Singleton -import QtQuick - -QtObject { - readonly property int width: 720 - readonly property int height: 1280 - - property alias fontDirectory: directoryFontLoader.fontDirectory - property alias relativeFontDirectory: directoryFontLoader.relativeFontDirectory - - /* Edit this comment to add your custom font */ - readonly property font font: Qt.font({ - family: Qt.application.font.family, - pixelSize: Qt.application.font.pixelSize - }) - readonly property font largeFont: Qt.font({ - family: Qt.application.font.family, - pixelSize: Qt.application.font.pixelSize * 1.6 - }) - - readonly property color backgroundColor: "#c2c2c2" - - property DirectoryFontLoader directoryFontLoader: DirectoryFontLoader { - id: directoryFontLoader - } -} diff --git a/doc/qtdesignstudio/examples/loginui2/imports/loginui2/qmldir b/doc/qtdesignstudio/examples/loginui2/imports/loginui2/qmldir deleted file mode 100644 index 69846237302..00000000000 --- a/doc/qtdesignstudio/examples/loginui2/imports/loginui2/qmldir +++ /dev/null @@ -1,2 +0,0 @@ -singleton Constants 1.0 Constants.qml -EventListSimulator 1.0 EventListSimulator.qml diff --git a/doc/qtdesignstudio/examples/loginui2/loginui2.qml b/doc/qtdesignstudio/examples/loginui2/loginui2.qml deleted file mode 100644 index 127e947a1c5..00000000000 --- a/doc/qtdesignstudio/examples/loginui2/loginui2.qml +++ /dev/null @@ -1,61 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Design Studio. -** -** $QT_BEGIN_LICENSE:BSD$ -** 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. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick -import loginui2 1.0 - -Item { - width: Constants.width - height: Constants.height - - Screen01 { - } - -} diff --git a/doc/qtdesignstudio/examples/loginui2/loginui2.qmlproject b/doc/qtdesignstudio/examples/loginui2/loginui2.qmlproject deleted file mode 100644 index 7d9e775731f..00000000000 --- a/doc/qtdesignstudio/examples/loginui2/loginui2.qmlproject +++ /dev/null @@ -1,47 +0,0 @@ -/* File generated by Qt Creator */ - -import QmlProject 1.1 - -Project { - mainFile: "loginui2.qml" - - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - - JavaScriptFiles { - directory: "." - } - - ImageFiles { - directory: "." - } - - Files { - filter: "*.conf" - files: ["qtquickcontrols2.conf"] - } - - Files { - filter: "qmldir" - directory: "." - } - - Files { - filter: "*.ttf;*.otf" - } - - Environment { - QT_QUICK_CONTROLS_CONF: "qtquickcontrols2.conf" - QT_AUTO_SCREEN_SCALE_FACTOR: "1" - } - - qt6Project: true - - /* List of plugin directories passed to QML runtime */ - importPaths: [ "imports", "asset_imports" ] - - /* Required for deployment */ - targetDirectory: "/opt/loginui1" -} diff --git a/doc/qtdesignstudio/examples/loginui2/qtquickcontrols2.conf b/doc/qtdesignstudio/examples/loginui2/qtquickcontrols2.conf deleted file mode 100644 index 75b2cb8fffb..00000000000 --- a/doc/qtdesignstudio/examples/loginui2/qtquickcontrols2.conf +++ /dev/null @@ -1,6 +0,0 @@ -; This file can be edited to change the style of the application -; Read "Qt Quick Controls 2 Configuration File" for details: -; http://doc.qt.io/qt-5/qtquickcontrols2-configuration.html - -[Controls] -Style=Default diff --git a/doc/qtdesignstudio/examples/loginui3/Loginui3.qmlproject b/doc/qtdesignstudio/examples/loginui3/Loginui3.qmlproject new file mode 100644 index 00000000000..467ccd3c545 --- /dev/null +++ b/doc/qtdesignstudio/examples/loginui3/Loginui3.qmlproject @@ -0,0 +1,75 @@ +import QmlProject + +Project { + mainFile: "content/App.qml" + + /* Include .qml, .js, and image files from current directory and subdirectories */ + QmlFiles { + directory: "content" + } + + JavaScriptFiles { + directory: "content" + } + + ImageFiles { + directory: "content" + } + + Files { + filter: "*.conf" + files: ["qtquickcontrols2.conf"] + } + + Files { + filter: "qmldir" + directory: "." + } + + Files { + filter: "*.ttf;*.otf" + } + + Files { + filter: "*.wav;*.mp3" + } + + Files { + filter: "*.mp4" + } + + Files { + filter: "*.glsl;*.glslv;*.glslf;*.vsh;*.fsh;*.vert;*.frag" + } + + Files { + filter: "*.mesh" + directory: "asset_imports" + } + + Environment { + QT_QUICK_CONTROLS_CONF: "qtquickcontrols2.conf" + QT_AUTO_SCREEN_SCALE_FACTOR: "1" + QT_LOGGING_RULES: "qt.qml.connections=false" + QT_ENABLE_HIGHDPI_SCALING: "0" + /* Useful for debugging + QSG_VISUALIZE=batches + QSG_VISUALIZE=clip + QSG_VISUALIZE=changes + QSG_VISUALIZE=overdraw + */ + } + + qt6Project: true + + /* List of plugin directories passed to QML runtime */ + importPaths: [ "imports", "asset_imports" ] + + /* Required for deployment */ + targetDirectory: "/opt/Loginui1" + + qdsVersion: "3.0" + + /* If any modules the project imports require widgets (e.g. QtCharts), widgetApp must be true */ + widgetApp: true +} diff --git a/doc/qtdesignstudio/examples/loginui3/Screen01.ui.qml b/doc/qtdesignstudio/examples/loginui3/content/Screen01.ui.qml similarity index 93% rename from doc/qtdesignstudio/examples/loginui3/Screen01.ui.qml rename to doc/qtdesignstudio/examples/loginui3/content/Screen01.ui.qml index 28131577351..55bf71619d7 100644 --- a/doc/qtdesignstudio/examples/loginui3/Screen01.ui.qml +++ b/doc/qtdesignstudio/examples/loginui3/content/Screen01.ui.qml @@ -1,8 +1,6 @@ - - /**************************************************************************** ** -** Copyright (C) 2021 The Qt Company Ltd. +** Copyright (C) 2022 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the examples of the Qt Design Studio. @@ -49,9 +47,10 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ + import QtQuick import QtQuick.Controls -import loginui3 1.0 +import Loginui1 Rectangle { id: rectangle @@ -70,7 +69,6 @@ Rectangle { Image { id: qt_logo_green_128x128px - x: 296 anchors.top: parent.top source: "images/qt_logo_green_128x128px.png" anchors.horizontalCenter: parent.horizontalCenter @@ -79,8 +77,6 @@ Rectangle { } Text { id: tagLine - width: 541 - height: 78 color: "#ffffff" text: qsTr("Are you ready to explore?") anchors.top: qt_logo_green_128x128px.bottom @@ -88,11 +84,11 @@ Rectangle { anchors.topMargin: 40 anchors.horizontalCenter: parent.horizontalCenter font.family: "Titillium Web ExtraLight" + anchors.horizontalCenterOffset: 0 } Column { id: fields - x: 128 anchors.top: tagLine.bottom anchors.horizontalCenter: parent.horizontalCenter anchors.topMargin: 170 @@ -100,7 +96,7 @@ Rectangle { EntryField { id: username - text: "Username or Email" + text: qsTr("Username or Email") } EntryField { @@ -110,17 +106,16 @@ Rectangle { EntryField { id: repeatPassword - text: "Repeat Password" + text: qsTr("Repeat Password") } } Column { id: buttons - x: 102 - y: 966 + y: 944 anchors.bottom: parent.bottom anchors.horizontalCenter: parent.horizontalCenter - anchors.bottomMargin: 100 + anchors.bottomMargin: 50 spacing: 20 PushButton { @@ -160,7 +155,8 @@ Rectangle { /*##^## Designer { - D{i:0;formeditorZoom:0.5} + D{i:0;formeditorZoom:0.5}D{i:1}D{i:2}D{i:3}D{i:5}D{i:6}D{i:7}D{i:4}D{i:9}D{i:11}D{i:10} +D{i:8} } ##^##*/ diff --git a/doc/qtdesignstudio/examples/loginui3/imports/loginui3/Constants.qml b/doc/qtdesignstudio/examples/loginui3/imports/loginui3/Constants.qml deleted file mode 100644 index 6fef815fa14..00000000000 --- a/doc/qtdesignstudio/examples/loginui3/imports/loginui3/Constants.qml +++ /dev/null @@ -1,26 +0,0 @@ -pragma Singleton -import QtQuick - -QtObject { - readonly property int width: 720 - readonly property int height: 1280 - - property alias fontDirectory: directoryFontLoader.fontDirectory - property alias relativeFontDirectory: directoryFontLoader.relativeFontDirectory - - /* Edit this comment to add your custom font */ - readonly property font font: Qt.font({ - family: Qt.application.font.family, - pixelSize: Qt.application.font.pixelSize - }) - readonly property font largeFont: Qt.font({ - family: Qt.application.font.family, - pixelSize: Qt.application.font.pixelSize * 1.6 - }) - - readonly property color backgroundColor: "#c2c2c2" - - property DirectoryFontLoader directoryFontLoader: DirectoryFontLoader { - id: directoryFontLoader - } -} diff --git a/doc/qtdesignstudio/examples/loginui3/imports/loginui3/qmldir b/doc/qtdesignstudio/examples/loginui3/imports/loginui3/qmldir deleted file mode 100644 index 69846237302..00000000000 --- a/doc/qtdesignstudio/examples/loginui3/imports/loginui3/qmldir +++ /dev/null @@ -1,2 +0,0 @@ -singleton Constants 1.0 Constants.qml -EventListSimulator 1.0 EventListSimulator.qml diff --git a/doc/qtdesignstudio/examples/loginui3/loginui3.qml b/doc/qtdesignstudio/examples/loginui3/loginui3.qml deleted file mode 100644 index ea8b947d3ce..00000000000 --- a/doc/qtdesignstudio/examples/loginui3/loginui3.qml +++ /dev/null @@ -1,61 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Design Studio. -** -** $QT_BEGIN_LICENSE:BSD$ -** 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. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick -import loginui3 1.0 - -Item { - width: Constants.width - height: Constants.height - - Screen01 { - } - -} diff --git a/doc/qtdesignstudio/examples/loginui3/loginui3.qmlproject b/doc/qtdesignstudio/examples/loginui3/loginui3.qmlproject deleted file mode 100644 index 3015de6092e..00000000000 --- a/doc/qtdesignstudio/examples/loginui3/loginui3.qmlproject +++ /dev/null @@ -1,47 +0,0 @@ -/* File generated by Qt Creator */ - -import QmlProject 1.1 - -Project { - mainFile: "loginui3.qml" - - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - - JavaScriptFiles { - directory: "." - } - - ImageFiles { - directory: "." - } - - Files { - filter: "*.conf" - files: ["qtquickcontrols2.conf"] - } - - Files { - filter: "qmldir" - directory: "." - } - - Files { - filter: "*.ttf;*.otf" - } - - Environment { - QT_QUICK_CONTROLS_CONF: "qtquickcontrols2.conf" - QT_AUTO_SCREEN_SCALE_FACTOR: "1" - } - - qt6Project: true - - /* List of plugin directories passed to QML runtime */ - importPaths: [ "imports", "asset_imports" ] - - /* Required for deployment */ - targetDirectory: "/opt/loginui1" -} diff --git a/doc/qtdesignstudio/examples/loginui3/qtquickcontrols2.conf b/doc/qtdesignstudio/examples/loginui3/qtquickcontrols2.conf deleted file mode 100644 index caace6db8e4..00000000000 --- a/doc/qtdesignstudio/examples/loginui3/qtquickcontrols2.conf +++ /dev/null @@ -1,2 +0,0 @@ -[Controls] -Style=Default diff --git a/doc/qtdesignstudio/examples/loginui4/Loginui4.qmlproject b/doc/qtdesignstudio/examples/loginui4/Loginui4.qmlproject new file mode 100644 index 00000000000..467ccd3c545 --- /dev/null +++ b/doc/qtdesignstudio/examples/loginui4/Loginui4.qmlproject @@ -0,0 +1,75 @@ +import QmlProject + +Project { + mainFile: "content/App.qml" + + /* Include .qml, .js, and image files from current directory and subdirectories */ + QmlFiles { + directory: "content" + } + + JavaScriptFiles { + directory: "content" + } + + ImageFiles { + directory: "content" + } + + Files { + filter: "*.conf" + files: ["qtquickcontrols2.conf"] + } + + Files { + filter: "qmldir" + directory: "." + } + + Files { + filter: "*.ttf;*.otf" + } + + Files { + filter: "*.wav;*.mp3" + } + + Files { + filter: "*.mp4" + } + + Files { + filter: "*.glsl;*.glslv;*.glslf;*.vsh;*.fsh;*.vert;*.frag" + } + + Files { + filter: "*.mesh" + directory: "asset_imports" + } + + Environment { + QT_QUICK_CONTROLS_CONF: "qtquickcontrols2.conf" + QT_AUTO_SCREEN_SCALE_FACTOR: "1" + QT_LOGGING_RULES: "qt.qml.connections=false" + QT_ENABLE_HIGHDPI_SCALING: "0" + /* Useful for debugging + QSG_VISUALIZE=batches + QSG_VISUALIZE=clip + QSG_VISUALIZE=changes + QSG_VISUALIZE=overdraw + */ + } + + qt6Project: true + + /* List of plugin directories passed to QML runtime */ + importPaths: [ "imports", "asset_imports" ] + + /* Required for deployment */ + targetDirectory: "/opt/Loginui1" + + qdsVersion: "3.0" + + /* If any modules the project imports require widgets (e.g. QtCharts), widgetApp must be true */ + widgetApp: true +} diff --git a/doc/qtdesignstudio/examples/loginui4/Screen01.ui.qml b/doc/qtdesignstudio/examples/loginui4/content/Screen01.ui.qml similarity index 53% rename from doc/qtdesignstudio/examples/loginui4/Screen01.ui.qml rename to doc/qtdesignstudio/examples/loginui4/content/Screen01.ui.qml index e919f39d82e..fa8377b980f 100644 --- a/doc/qtdesignstudio/examples/loginui4/Screen01.ui.qml +++ b/doc/qtdesignstudio/examples/loginui4/content/Screen01.ui.qml @@ -1,57 +1,6 @@ - - -/**************************************************************************** -** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Design Studio. -** -** $QT_BEGIN_LICENSE:BSD$ -** 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. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ import QtQuick import QtQuick.Controls -import loginui4 1.0 +import Loginui1 import QtQuick.Timeline 1.0 Rectangle { @@ -71,7 +20,6 @@ Rectangle { Image { id: qt_logo_green_128x128px - x: 296 anchors.top: parent.top source: "images/qt_logo_green_128x128px.png" anchors.horizontalCenter: parent.horizontalCenter @@ -80,8 +28,6 @@ Rectangle { } Text { id: tagLine - width: 541 - height: 78 color: "#ffffff" text: qsTr("Are you ready to explore?") anchors.top: qt_logo_green_128x128px.bottom @@ -89,30 +35,29 @@ Rectangle { anchors.topMargin: 40 anchors.horizontalCenter: parent.horizontalCenter font.family: "Titillium Web ExtraLight" + anchors.horizontalCenterOffset: 0 } EntryField { id: username - x: 110 - text: "Username or Email" + text: qsTr("Username or Email") anchors.top: tagLine.bottom - anchors.topMargin: 170 anchors.horizontalCenter: parent.horizontalCenter + anchors.topMargin: 170 } EntryField { id: password - x: 110 text: qsTr("Password") anchors.top: username.bottom anchors.horizontalCenter: parent.horizontalCenter - anchors.topMargin: 20 + anchors.topMargin: 21 } EntryField { id: repeatPassword - x: 110 - text: "Repeat Password" + opacity: 0 + text: qsTr("Repeat Password") anchors.top: password.bottom anchors.horizontalCenter: parent.horizontalCenter anchors.topMargin: 20 @@ -120,11 +65,10 @@ Rectangle { Column { id: buttons - x: 102 - y: 966 + y: 944 anchors.bottom: parent.bottom anchors.horizontalCenter: parent.horizontalCenter - anchors.bottomMargin: 100 + anchors.bottomMargin: 50 spacing: 20 PushButton { @@ -148,70 +92,68 @@ Rectangle { animations: [ TimelineAnimation { id: toCreateAccountState + duration: 1000 running: false loops: 1 - duration: 1000 to: 1000 from: 0 } ] endFrame: 1000 - startFrame: 0 enabled: true + startFrame: 0 KeyframeGroup { target: repeatPassword property: "opacity" - Keyframe { - frame: 0 value: 0 + frame: 0 } Keyframe { - frame: 999 value: 1 + frame: 1000 } } KeyframeGroup { target: createAccount property: "opacity" + Keyframe { + value: 1 + frame: 0 + } Keyframe { - frame: 1000 value: 0 + frame: 1000 } } KeyframeGroup { target: repeatPassword property: "anchors.topMargin" - Keyframe { + value: -100 frame: 0 - value: -40 } Keyframe { - easing.bezierCurve: [0.39,0.575,0.565,1,1,1] - frame: 999 + value: -100 + frame: 4 + } + + Keyframe { + easing.bezierCurve: [0.39, 0.575, 0.565, 1, 1, 1] value: 20 + frame: 999 } } } states: [ State { name: "login" - - PropertyChanges { - target: timeline - enabled: true - } - - PropertyChanges { - target: toCreateAccountState - } }, State { name: "createAccount" @@ -231,6 +173,8 @@ Rectangle { /*##^## Designer { - D{i:0;formeditorZoom:0.5}D{i:6}D{i:9}D{i:11} + D{i:0;formeditorZoom:0.5}D{i:1}D{i:2}D{i:3}D{i:4}D{i:5}D{i:6}D{i:8}D{i:10}D{i:9}D{i:7} +D{i:11} } ##^##*/ + diff --git a/doc/qtdesignstudio/examples/loginui4/imports/loginui4/Constants.qml b/doc/qtdesignstudio/examples/loginui4/imports/loginui4/Constants.qml deleted file mode 100644 index 6fef815fa14..00000000000 --- a/doc/qtdesignstudio/examples/loginui4/imports/loginui4/Constants.qml +++ /dev/null @@ -1,26 +0,0 @@ -pragma Singleton -import QtQuick - -QtObject { - readonly property int width: 720 - readonly property int height: 1280 - - property alias fontDirectory: directoryFontLoader.fontDirectory - property alias relativeFontDirectory: directoryFontLoader.relativeFontDirectory - - /* Edit this comment to add your custom font */ - readonly property font font: Qt.font({ - family: Qt.application.font.family, - pixelSize: Qt.application.font.pixelSize - }) - readonly property font largeFont: Qt.font({ - family: Qt.application.font.family, - pixelSize: Qt.application.font.pixelSize * 1.6 - }) - - readonly property color backgroundColor: "#c2c2c2" - - property DirectoryFontLoader directoryFontLoader: DirectoryFontLoader { - id: directoryFontLoader - } -} diff --git a/doc/qtdesignstudio/examples/loginui4/imports/loginui4/qmldir b/doc/qtdesignstudio/examples/loginui4/imports/loginui4/qmldir deleted file mode 100644 index 69846237302..00000000000 --- a/doc/qtdesignstudio/examples/loginui4/imports/loginui4/qmldir +++ /dev/null @@ -1,2 +0,0 @@ -singleton Constants 1.0 Constants.qml -EventListSimulator 1.0 EventListSimulator.qml diff --git a/doc/qtdesignstudio/examples/loginui4/loginui4.qmlproject b/doc/qtdesignstudio/examples/loginui4/loginui4.qmlproject deleted file mode 100644 index 9bb93ec5dd2..00000000000 --- a/doc/qtdesignstudio/examples/loginui4/loginui4.qmlproject +++ /dev/null @@ -1,47 +0,0 @@ -/* File generated by Qt Creator */ - -import QmlProject 1.1 - -Project { - mainFile: "loginui4.qml" - - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - - JavaScriptFiles { - directory: "." - } - - ImageFiles { - directory: "." - } - - Files { - filter: "*.conf" - files: ["qtquickcontrols2.conf"] - } - - Files { - filter: "qmldir" - directory: "." - } - - Files { - filter: "*.ttf;*.otf" - } - - Environment { - QT_QUICK_CONTROLS_CONF: "qtquickcontrols2.conf" - QT_AUTO_SCREEN_SCALE_FACTOR: "1" - } - - qt6Project: true - - /* List of plugin directories passed to QML runtime */ - importPaths: [ "imports", "asset_imports" ] - - /* Required for deployment */ - targetDirectory: "/opt/loginui4" -} diff --git a/doc/qtdesignstudio/examples/loginui4/qtquickcontrols2.conf b/doc/qtdesignstudio/examples/loginui4/qtquickcontrols2.conf deleted file mode 100644 index caace6db8e4..00000000000 --- a/doc/qtdesignstudio/examples/loginui4/qtquickcontrols2.conf +++ /dev/null @@ -1,2 +0,0 @@ -[Controls] -Style=Default