aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/Values.qml6
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/BrandBar.qml115
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/CheckButton.ui.qml153
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/CustomGrid.ui.qml350
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/CustomScrollBar.qml (renamed from src/plugins/studiowelcome/qml/welcomepage/CustomScrollBar.qml)19
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/CustomScrollView.qml (renamed from src/plugins/studiowelcome/qml/welcomepage/CustomScrollView.qml)2
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/DownloadButton.qml101
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/ExamplesModel.qml (renamed from src/plugins/studiowelcome/qml/welcomepage/ExamplesModel.qml)44
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/ExpandToggle.ui.qml149
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/FavoriteToggle.qml136
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/MainGridStack.qml182
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/MainScreen.qml416
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/MyExampleThumbnailDelegate.qml191
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/MyRecentProjectListDelegate.ui.qml179
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/MyRecentSessionListDelegate.ui.qml385
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/MyRecentThumbnailDelegate.qml196
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/PushButton.ui.qml151
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/Search.qml213
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/SocialButton.qml157
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/Tag.qml (renamed from src/plugins/studiowelcome/qml/welcomepage/SaturationEffect.qml)30
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/TagArea.qml (renamed from src/plugins/studiowelcome/qml/welcomepage/welcomepage.qmlproject)64
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/TagButton.ui.qml119
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/TagPageButton.qml (renamed from src/plugins/studiowelcome/qml/welcomepage/ProjectsGrid.qml)88
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/TestControlPanel.qml242
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/TextButton.ui.qml (renamed from src/plugins/studiowelcome/qml/welcomepage/AccountImage.qml)58
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/ThumbnailDelegate.qml341
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/TutorialsModel.qml (renamed from src/plugins/studiowelcome/qml/welcomepage/TutorialsModel.qml)2
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/TwitterButton.qml169
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/ViewToggle.qml381
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/WelcomePage.qml58
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/WelcomeScreen.qmlproject48
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/YoutubeButton.qml256
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/fonts/fonts.txt1
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/Qt_QT_animatedImage.png (renamed from src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_animatedImage.png)bin30763 -> 30763 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/Qt_QT_bindings.png (renamed from src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_bindings.png)bin30389 -> 30389 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/Qt_QT_interactive3d.png (renamed from src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_interactive3d.png)bin26175 -> 26175 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/Qt_QT_nav.png (renamed from src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_nav.png)bin30386 -> 30386 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/Qt_QT_sliderControl.png (renamed from src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_sliderControl.png)bin22870 -> 22870 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/Qt_QT_textElement.png (renamed from src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_textElement.png)bin24688 -> 24688 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/bridging_the_gap.png (renamed from src/plugins/studiowelcome/qml/welcomepage/images/bridging_the_gap.png)bin53060 -> 53060 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/coffeemachinedemo_thumbnail.png (renamed from src/plugins/studiowelcome/qml/welcomepage/images/coffeemachinedemo_thumbnail.png)bin38787 -> 38787 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/cppdemo_thumbnail.png (renamed from src/plugins/studiowelcome/qml/welcomepage/images/cppdemo_thumbnail.png)bin18072 -> 18072 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/designer_and_developers.png (renamed from src/plugins/studiowelcome/qml/welcomepage/images/designer_and_developers.png)bin92433 -> 92433 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/digital_cluster_thumbnail.png (renamed from src/plugins/studiowelcome/qml/welcomepage/images/digital_cluster_thumbnail.png)bin55043 -> 55043 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/ds.pngbin0 -> 54819 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/ebike_demo_thumbnail.png (renamed from src/plugins/studiowelcome/qml/welcomepage/images/ebike_demo_thumbnail.png)bin17612 -> 17612 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/effectdemo_thumbnail.png (renamed from src/plugins/studiowelcome/qml/welcomepage/images/effectdemo_thumbnail.png)bin16220 -> 16220 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/gettingStarted_3dComponents.png (renamed from src/plugins/studiowelcome/qml/welcomepage/images/gettingStarted_3dComponents.png)bin38800 -> 38800 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/gettingStarted_newProject.png (renamed from src/plugins/studiowelcome/qml/welcomepage/images/gettingStarted_newProject.png)bin23423 -> 23423 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/gettingStarted_shaders.png (renamed from src/plugins/studiowelcome/qml/welcomepage/images/gettingStarted_shaders.png)bin35140 -> 35140 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/highendivi_thumbnail.png (renamed from src/plugins/studiowelcome/qml/welcomepage/images/highendivi_thumbnail.png)bin48336 -> 48336 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/newThumbnail.pngbin0 -> 1849 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/particles_thumbnail.pngbin0 -> 37463 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/place_holder.pngbin0 -> 1841 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/progressbar_demo.png (renamed from src/plugins/studiowelcome/qml/welcomepage/images/progressbar_demo.png)bin6012 -> 6012 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/qtws_video_thumbnail.png (renamed from src/plugins/studiowelcome/qml/welcomepage/images/qtws_video_thumbnail.png)bin60216 -> 60216 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/sidemenu_demo.png (renamed from src/plugins/studiowelcome/qml/welcomepage/images/sidemenu_demo.png)bin45862 -> 45862 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/sketchTutorial_1.png (renamed from src/plugins/studiowelcome/qml/welcomepage/images/sketchTutorial_1.png)bin15964 -> 15964 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/sketchTutorial_2.png (renamed from src/plugins/studiowelcome/qml/welcomepage/images/sketchTutorial_2.png)bin18609 -> 18609 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/thermo_thumbnail.pngbin0 -> 15961 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/thumbnailImage.pngbin0 -> 14889 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/thumbnail_test.png (renamed from src/plugins/studiowelcome/qml/welcomepage/images/thumbnail_test.png)bin32580 -> 32580 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/tutorialclusterdemo_thumbnail.png (renamed from src/plugins/studiowelcome/qml/welcomepage/images/tutorialclusterdemo_thumbnail.png)bin50213 -> 50213 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/twitterDarkNormal.pngbin0 -> 1350 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/twitterHover.pngbin0 -> 1485 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/twitterLightNormal.pngbin0 -> 1149 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/virtualkeyboard_thumbnail.png (renamed from src/plugins/studiowelcome/qml/welcomepage/images/virtualkeyboard_thumbnail.png)bin6889 -> 6889 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/washingmachinedemo_thumbnail.png (renamed from src/plugins/studiowelcome/qml/welcomepage/images/washingmachinedemo_thumbnail.png)bin24163 -> 24163 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/webinar1.png (renamed from src/plugins/studiowelcome/qml/welcomepage/images/webinar1.png)bin54944 -> 54944 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/webinar2.png (renamed from src/plugins/studiowelcome/qml/welcomepage/images/webinar2.png)bin32635 -> 32635 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/webinardemo_thumbnail.png (renamed from src/plugins/studiowelcome/qml/welcomepage/images/webinardemo_thumbnail.png)bin52855 -> 52855 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/what_is_new_15.png (renamed from src/plugins/studiowelcome/qml/welcomepage/images/what_is_new_15.png)bin16071 -> 16071 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/youtubeDarkHover.pngbin0 -> 2669 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/youtubeDarkNormal.pngbin0 -> 2876 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/youtubeLightHover.pngbin0 -> 3977 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/images/youtubeLightNormal.pngbin0 -> 2991 bytes
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/imports/WelcomeScreen/Constants.qml212
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/imports/WelcomeScreen/DirectoryFontLoader.qml (renamed from src/plugins/studiowelcome/qml/welcomepage/MyButton.qml)53
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/imports/WelcomeScreen/EventListModel.qml (renamed from src/plugins/studiowelcome/qml/welcomepage/MyTabButton.qml)18
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/imports/WelcomeScreen/EventListSimulator.qml (renamed from src/plugins/studiowelcome/qml/welcomepage/imports/welcome/Constants.qml)26
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/imports/WelcomeScreen/designer/plugin.metainfo13
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/imports/WelcomeScreen/qmldir2
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/main.qml (renamed from src/plugins/studiowelcome/qml/welcomepage/mockData/usagestatistics/UsageStatisticModel.qml)8
-rw-r--r--share/qtcreator/qmldesigner/welcomepage/qtquickcontrols2.conf2
-rw-r--r--share/qtcreator/themes/dark.creatortheme5
-rw-r--r--share/qtcreator/themes/default.creatortheme4
-rw-r--r--share/qtcreator/themes/design-light.creatortheme5
-rw-r--r--share/qtcreator/themes/design.creatortheme5
-rw-r--r--share/qtcreator/themes/flat.creatortheme5
-rw-r--r--src/libs/utils/theme/theme.h7
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/HoverOverDesaturate.qml215
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/images/downloadCloud.svg29
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/images/icon_default.pngbin289 -> 0 bytes
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/images/icon_hover.pngbin289 -> 0 bytes
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/imports/welcome/qmldir1
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/main.qml204
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/mockData/projectmodel/ProjectModel.qml138
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/mockData/projectmodel/qmldir1
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/mockData/usagestatistics/qmldir1
-rw-r--r--src/plugins/studiowelcome/studiowelcomeplugin.cpp28
100 files changed, 5234 insertions, 750 deletions
diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/Values.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/Values.qml
index 031921c8ba..e932e8e496 100644
--- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/Values.qml
+++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/Values.qml
@@ -309,4 +309,10 @@ QtObject {
property string themeListItemText: Theme.color(Theme.DSnavigatorText)
property string themeListItemTextHover: Theme.color(Theme.DSnavigatorTextHover)
property string themeListItemTextPress: Theme.color(Theme.DSnavigatorTextSelected)
+
+ //Welcome Page
+ property string welcomeScreenBackground: Theme.color(Theme.DSwelcomeScreenBackground)
+ property string themeSubPanelBackground: Theme.color(Theme.DSsubPanelBackground)
+ property string themeThumbnailBackground: Theme.color(Theme.DSthumbnailBackground)
+ property string themeThumbnailLabelBackground: Theme.color(Theme.DSthumbnailLabelBackground)
}
diff --git a/share/qtcreator/qmldesigner/welcomepage/BrandBar.qml b/share/qtcreator/qmldesigner/welcomepage/BrandBar.qml
new file mode 100644
index 0000000000..1adac841fc
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/BrandBar.qml
@@ -0,0 +1,115 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** 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 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** 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.
+**
+****************************************************************************/
+
+import QtQuick
+import QtQuick.Controls
+import WelcomeScreen 1.0
+import QtQuick.Layouts 1.0
+
+Item {
+ id: brandBar
+ width: 850
+ height: 150
+ state: "brandQds"
+
+ Image {
+ id: brandIcon
+ width: 100
+ height: 100
+ anchors.verticalCenter: parent.verticalCenter
+ source: "images/place_holder.png"
+ fillMode: Image.PreserveAspectFit
+ }
+
+ Text {
+ id: welcomeTool
+ color: Constants.currentGlobalText
+ text: qsTr("Welcome to")
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: brandIcon.right
+ font.pixelSize: 36
+ verticalAlignment: Text.AlignVCenter
+ anchors.leftMargin: 5
+ font.family: "titillium web"
+ }
+
+ Text {
+ id: brandLabel
+ color: Constants.currentBrand
+ text: qsTr("Qt Design Studio")
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: welcomeTool.right
+ font.pixelSize: 36
+ verticalAlignment: Text.AlignVCenter
+ anchors.leftMargin: 8
+ font.family: "titillium web"
+ }
+
+ Text {
+ id: communityEdition
+ width: 291
+ height: 55
+ visible: Constants.communityEdition
+ color: Constants.currentGlobalText
+ text: qsTr("Community Edition")
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: brandLabel.right
+ font.pixelSize: 36
+ verticalAlignment: Text.AlignVCenter
+ anchors.leftMargin: 8
+ font.family: "titillium web"
+ }
+ states: [
+ State {
+ name: "brandQds"
+ when: Constants.defaultBrand
+
+ PropertyChanges {
+ target: brandIcon
+ source: "images/ds.png"
+ }
+ },
+ State {
+ name: "brandCreator"
+ when: !Constants.defaultBrand
+
+ PropertyChanges {
+ target: brandLabel
+ text: qsTr("Qt Creator")
+ }
+
+ PropertyChanges {
+ target: brandIcon
+ source: "images/qc-1.png"
+ }
+ }
+ ]
+}
+
+/*##^##
+Designer {
+ D{i:0;height:150;width:719}D{i:4}
+}
+##^##*/
diff --git a/share/qtcreator/qmldesigner/welcomepage/CheckButton.ui.qml b/share/qtcreator/qmldesigner/welcomepage/CheckButton.ui.qml
new file mode 100644
index 0000000000..fd9c88c8df
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/CheckButton.ui.qml
@@ -0,0 +1,153 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** 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 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** 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.
+**
+****************************************************************************/
+
+import QtQuick 2.15
+import QtQuick.Templates 2.5
+import WelcomeScreen 1.0
+
+Button {
+ id: control
+
+ implicitWidth: Math.max(
+ buttonBackground ? buttonBackground.implicitWidth : 0,
+ textItem.implicitWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(
+ buttonBackground ? buttonBackground.implicitHeight : 0,
+ textItem.implicitHeight + topPadding + bottomPadding)
+ leftPadding: 4
+ rightPadding: 4
+
+ text: "My Button"
+ checkable: true
+
+ property bool decorated: false
+ state: "normal"
+
+ background: buttonBackground
+ Rectangle {
+ id: buttonBackground
+ color: "#00000000"
+ implicitWidth: 100
+ implicitHeight: 40
+ opacity: enabled ? 1 : 0.3
+ radius: 2
+ border.color: "#047eff"
+ anchors.fill: parent
+ }
+
+ contentItem: textItem
+ Rectangle {
+ id: decoration
+ width: 10
+ visible: control.decorated
+ color: Constants.currentBrand
+ border.color: Constants.currentBrand
+ anchors.right: parent.right
+ anchors.top: parent.top
+ anchors.bottom: parent.bottom
+ anchors.rightMargin: 1
+ anchors.bottomMargin: 1
+ anchors.topMargin: 1
+ }
+
+ Text {
+ id: textItem
+ text: control.text
+ font.pixelSize: 18
+
+ opacity: enabled ? 1.0 : 0.3
+ color: "#047eff"
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ font.weight: Font.Light
+ }
+
+ states: [
+ State {
+ name: "normal"
+ when: !control.down && !control.hovered && !control.checked
+
+ PropertyChanges {
+ target: buttonBackground
+ color: Constants.currentPushButtonNormalBackground
+ border.color: Constants.currentPushButtonNormalOutline
+ }
+
+ PropertyChanges {
+ target: textItem
+ color: Constants.currentGlobalText
+ }
+ },
+ State {
+ name: "hover"
+ when: control.hovered && !control.checked && !control.down
+ PropertyChanges {
+ target: textItem
+ color: Constants.currentGlobalText
+ }
+
+ PropertyChanges {
+ target: buttonBackground
+ color: Constants.currentPushButtonHoverBackground
+ border.color: Constants.currentPushButtonHoverOutline
+ }
+ },
+ State {
+ name: "activeQds"
+ when: Constants.defaultBrand && (control.checked || control.down)
+ PropertyChanges {
+ target: textItem
+ color: Constants.currentActiveGlobalText
+ }
+
+ PropertyChanges {
+ target: buttonBackground
+ color: Constants.currentBrand
+ border.color: "#00000000"
+ }
+ },
+ State {
+ name: "activeCreator"
+ when: !Constants.defaultBrand && (control.checked || control.down)
+ PropertyChanges {
+ target: textItem
+ color: Constants.currentActiveGlobalText
+ }
+
+ PropertyChanges {
+ target: buttonBackground
+ color: Constants.currentBrand
+ border.color: "#00000000"
+ }
+ }
+ ]
+}
+
+/*##^##
+Designer {
+ D{i:0;height:40;width:266}
+}
+##^##*/
+
diff --git a/share/qtcreator/qmldesigner/welcomepage/CustomGrid.ui.qml b/share/qtcreator/qmldesigner/welcomepage/CustomGrid.ui.qml
new file mode 100644
index 0000000000..6fb08767d8
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/CustomGrid.ui.qml
@@ -0,0 +1,350 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** 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 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** 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.
+**
+****************************************************************************/
+
+import QtQuick
+import WelcomeScreen
+import QtQuick.Layouts 6.0
+
+Item {
+ id: gridContainer
+ width: 1460
+ height: 760
+ state: "qds"
+ property alias mymodel: mainThumbnails.model
+ property alias myDelegate: mainThumbnails.delegate
+
+ CustomScrollView {
+ anchors.fill: parent
+ anchors.leftMargin: 20
+ id: mainThumbnailsView
+ GridView {
+ id: mainThumbnails
+ boundsBehavior: Flickable.StopAtBounds
+
+ contentHeight: 220
+ contentWidth: 220
+
+ cellWidth: 240
+ cellHeight: 240
+
+ delegate: ThumbnailDelegate {
+ tagged: true
+ likable: true
+ downloadable: true
+ }
+ }
+ }
+
+ Column {
+ id: sessionsColumn
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.top: parent.top
+ spacing: 5
+ anchors.rightMargin: 985
+ anchors.topMargin: 72
+ anchors.leftMargin: 0
+
+ MyRecentSessionListDelegate {
+ id: recentSessionListDelegate
+ Layout.alignment: Qt.AlignLeft | Qt.AlignTop
+ Layout.fillHeight: false
+ Layout.minimumHeight: 58
+ Layout.preferredHeight: 58
+ Layout.fillWidth: true
+ Layout.maximumWidth: 475
+ Layout.minimumWidth: 250
+ Layout.preferredWidth: 475
+ anchors.rightMargin: 0
+ anchors.leftMargin: 0
+ }
+
+ MyRecentSessionListDelegate {
+ id: recentSessionListDelegate1
+ Layout.alignment: Qt.AlignLeft | Qt.AlignTop
+ Layout.fillHeight: false
+ Layout.minimumHeight: 58
+ Layout.preferredHeight: 58
+ Layout.fillWidth: true
+ Layout.minimumWidth: 250
+ Layout.maximumWidth: 475
+ anchors.leftMargin: 0
+ anchors.rightMargin: 0
+ Layout.preferredWidth: 475
+ }
+
+ MyRecentSessionListDelegate {
+ id: recentSessionListDelegate2
+ Layout.alignment: Qt.AlignLeft | Qt.AlignTop
+ Layout.fillHeight: false
+ Layout.minimumHeight: 58
+ Layout.preferredHeight: 58
+ Layout.fillWidth: true
+ Layout.minimumWidth: 250
+ Layout.maximumWidth: 475
+ anchors.leftMargin: 0
+ anchors.rightMargin: 0
+ Layout.preferredWidth: 475
+ }
+ }
+
+ PushButton {
+ id: manangeSessionsButton
+ x: 306
+ y: 0
+ width: 169
+ height: 58
+ text: "Manage Sessions"
+ }
+
+ Text {
+ id: sessionsLabel
+ x: 0
+ y: 0
+ width: 327
+ height: 61
+ color: Constants.currentGlobalText
+ text: qsTr("Sessions")
+ font.pixelSize: 22
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ GridView {
+ id: listView
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.top: parent.top
+ anchors.bottom: parent.bottom
+ flow: GridView.FlowTopToBottom
+ anchors.bottomMargin: 0
+ anchors.topMargin: 0
+ anchors.rightMargin: 0
+ anchors.leftMargin: 503
+ cellHeight: 500
+ cellWidth: 495
+
+ MyRecentProjectListDelegate {
+ id: myRecentProjectListDelegate
+ y: 0
+ anchors.left: parent.left
+ anchors.right: parent.right
+ }
+ }
+
+ states: [
+ State {
+ name: "qds"
+ when: Constants.defaultBrand && !Constants.isListView
+
+ PropertyChanges {
+ target: manangeSessionsButton
+ visible: false
+ }
+
+ PropertyChanges {
+ target: sessionsLabel
+ visible: false
+ }
+
+ PropertyChanges {
+ target: listView
+ x: 503
+ y: 0
+ visible: false
+ }
+
+ PropertyChanges {
+ target: mainThumbnails
+ visible: true
+ }
+
+ PropertyChanges {
+ target: myRecentProjectListDelegate
+ x: 503
+ y: 0
+ width: 957
+ height: 58
+ visible: false
+ }
+
+ PropertyChanges {
+ target: sessionsColumn
+ visible: false
+ }
+ },
+ State {
+ name: "creator"
+ when: !Constants.defaultBrand && !Constants.isListView
+
+ PropertyChanges {
+ target: mainThumbnailsView
+ visible: true
+ anchors.leftMargin: 500
+ }
+
+ PropertyChanges {
+ target: gridContainer
+ clip: true
+ }
+
+ PropertyChanges {
+ target: listView
+ visible: false
+ }
+
+ PropertyChanges {
+ target: sessionsLabel
+ visible: true
+ }
+
+ PropertyChanges {
+ target: manangeSessionsButton
+ visible: true
+ }
+
+ PropertyChanges {
+ target: myRecentProjectListDelegate
+ visible: false
+ }
+
+ PropertyChanges {
+ target: sessionsColumn
+ visible: true
+ }
+ },
+ State {
+ name: "qdsList"
+ when: Constants.defaultBrand && Constants.isListView
+
+ PropertyChanges {
+ target: manangeSessionsButton
+ visible: false
+ }
+
+ PropertyChanges {
+ target: sessionsLabel
+ visible: false
+ }
+
+ PropertyChanges {
+ target: mainThumbnails
+ visible: false
+ }
+
+ PropertyChanges {
+ target: listView
+ x: 20
+ y: 0
+ width: 1440
+ height: 760
+ visible: true
+ anchors.leftMargin: 0
+ }
+
+ PropertyChanges {
+ target: myRecentProjectListDelegate
+ x: 20
+ y: 0
+ width: 1440
+ height: 58
+ visible: true
+ }
+
+ PropertyChanges {
+ target: sessionsColumn
+ visible: false
+ }
+ },
+ State {
+ name: "creatorList"
+ when: !Constants.defaultBrand && Constants.isListView
+ PropertyChanges {
+ target: mainThumbnails
+ visible: false
+ anchors.leftMargin: 500
+ }
+
+ PropertyChanges {
+ target: gridContainer
+ clip: true
+ }
+
+ PropertyChanges {
+ target: sessionsLabel
+ visible: true
+ }
+
+ PropertyChanges {
+ target: manangeSessionsButton
+ visible: true
+ }
+
+ PropertyChanges {
+ target: myRecentProjectListDelegate
+ x: 503
+ y: 0
+ width: 957
+ height: 58
+ visible: true
+ }
+
+ PropertyChanges {
+ target: listView
+ visible: true
+ anchors.leftMargin: 503
+ }
+
+ PropertyChanges {
+ target: sessionsColumn
+ visible: true
+ }
+
+ PropertyChanges {
+ target: recentSessionListDelegate
+ Layout.preferredHeight: 58
+ Layout.minimumHeight: 58
+ Layout.fillWidth: true
+ }
+
+ PropertyChanges {
+ target: recentSessionListDelegate1
+ Layout.preferredHeight: 58
+ }
+
+ PropertyChanges {
+ target: recentSessionListDelegate2
+ Layout.minimumHeight: 58
+ Layout.preferredHeight: 58
+ }
+ }
+ ]
+}
+
+/*##^##
+Designer {
+ D{i:0;height:760;width:1460}
+}
+##^##*/
+
diff --git a/src/plugins/studiowelcome/qml/welcomepage/CustomScrollBar.qml b/share/qtcreator/qmldesigner/welcomepage/CustomScrollBar.qml
index a6042e24cc..6076c12a29 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/CustomScrollBar.qml
+++ b/share/qtcreator/qmldesigner/welcomepage/CustomScrollBar.qml
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2020 The Qt Company Ltd.
+** Copyright (C) 2021 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qt Creator.
@@ -25,7 +25,8 @@
import QtQuick 2.15
import QtQuick.Templates 2.15 as Controls
-import welcome 1.0
+import WelcomeScreen 1.0
+import StudioTheme 1.0
Controls.ScrollBar {
id: scrollBar
@@ -40,15 +41,15 @@ Controls.ScrollBar {
minimumSize: orientation === Qt.Horizontal ? height / width : width / height
contentItem: Rectangle {
- implicitWidth: 13
- implicitHeight: 13
- color: active ? Constants.textHoverColor : Constants.textDefaultColor
+ implicitWidth: 6
+ implicitHeight: 6
+ color: Values.themeScrollBarHandle
}
background: Rectangle {
- implicitWidth: 16
- implicitHeight: 16
- color: "#3b3c3d"
- visible: active
+ implicitWidth: 11
+ implicitHeight: 11
+ color: active ? Values.themeSliderActiveTrack : Values.themeSliderActiveTrack
+ //visible: active
}
}
diff --git a/src/plugins/studiowelcome/qml/welcomepage/CustomScrollView.qml b/share/qtcreator/qmldesigner/welcomepage/CustomScrollView.qml
index 0fbdfa9f00..b4200628ae 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/CustomScrollView.qml
+++ b/share/qtcreator/qmldesigner/welcomepage/CustomScrollView.qml
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2020 The Qt Company Ltd.
+** Copyright (C) 2021 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qt Creator.
diff --git a/share/qtcreator/qmldesigner/welcomepage/DownloadButton.qml b/share/qtcreator/qmldesigner/welcomepage/DownloadButton.qml
new file mode 100644
index 0000000000..a56533b4e6
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/DownloadButton.qml
@@ -0,0 +1,101 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** 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 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** 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.
+**
+****************************************************************************/
+
+import QtQuick
+import QtQuick.Controls
+import WelcomeScreen 1.0
+import QtQuick.Layouts 1.0
+import StudioTheme 1.0 as StudioTheme
+
+Item {
+ id: favoriteToggle
+ width: 30
+ height: 30
+ property bool isHovered: false
+ state: "normal"
+
+ Text {
+ id: downloadableIcon
+ color: "#de7de1"
+ font.family: StudioTheme.Constants.iconFont.family
+ text: StudioTheme.Constants.download
+ anchors.fill: parent
+ font.pixelSize: 22
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ anchors.bottomMargin: 0
+ }
+
+ MouseArea {
+ id: mouseArea
+ anchors.fill: parent
+ hoverEnabled: true
+ propagateComposedEvents: true
+ }
+ states: [
+ State {
+ name: "normal"
+ when: !mouseArea.pressed && !mouseArea.containsMouse
+
+ PropertyChanges {
+ target: downloadableIcon
+ color: Constants.currentGlobalText
+ }
+ },
+ State {
+ name: "pressed"
+ when: mouseArea.pressed && mouseArea.containsMouse
+
+ PropertyChanges {
+ target: downloadableIcon
+ color: Constants.currentBrand
+ scale: 1.2
+ }
+ PropertyChanges {
+ target: favoriteToggle
+ isHovered: true
+ }
+ },
+ State {
+ name: "hover"
+ when: mouseArea.containsMouse && !mouseArea.pressed
+ PropertyChanges {
+ target: downloadableIcon
+ color: Constants.currentGlobalText
+ scale: 1.2
+ }
+ PropertyChanges {
+ target: favoriteToggle
+ isHovered: true
+ }
+ }
+ ]
+}
+
+/*##^##
+Designer {
+ D{i:0;formeditorZoom:1.33;height:30;width:30}
+}
+##^##*/
diff --git a/src/plugins/studiowelcome/qml/welcomepage/ExamplesModel.qml b/share/qtcreator/qmldesigner/welcomepage/ExamplesModel.qml
index 5cb254f4f5..c13ef5b1b3 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/ExamplesModel.qml
+++ b/share/qtcreator/qmldesigner/welcomepage/ExamplesModel.qml
@@ -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 Creator.
@@ -28,44 +28,50 @@ import QtQuick 2.0
ListModel {
ListElement {
projectName: "ClusterTutorial"
- qmlFileName: "ClusterTutorial.qml"
+ qmlFileName: "content/Cluster_Art.ui.qml"
thumbnail: "images/tutorialclusterdemo_thumbnail.png"
displayName: "Cluster Tutorial"
+ showDownload: false
}
ListElement {
projectName: "CoffeeMachine"
- qmlFileName: "CoffeeMachine.qml"
+ qmlFileName: "content/ApplicationFlowForm.ui.qml"
thumbnail: "images/coffeemachinedemo_thumbnail.png"
displayName: "Coffee Machine"
+ showDownload: false
}
ListElement {
projectName: "SideMenu"
- qmlFileName: "SideMenu.qml"
+ qmlFileName: "content/MainForm.ui.qml"
thumbnail: "images/sidemenu_demo.png"
displayName: "Side Menu"
+ showDownload: false
}
ListElement {
projectName: "WebinarDemo"
- qmlFileName: "DesignStudioWebinar.qml"
+ qmlFileName: "content/MainApp.ui.qml"
thumbnail: "images/webinardemo_thumbnail.png"
displayName: "Webinar Demo"
+ showDownload: false
}
ListElement {
projectName: "EBikeDesign"
- qmlFileName: "EBikeDesign.qml"
+ qmlFileName: "content/Screen01.ui.qml"
thumbnail: "images/ebike_demo_thumbnail.png"
displayName: "E-Bike Design"
+ showDownload: false
}
ListElement {
projectName: "ProgressBar"
- qmlFileName: "ProgressBar.ui.qml"
+ qmlFileName: "content/ProgressBar.ui.qml"
thumbnail: "images/progressbar_demo.png"
displayName: "Progress Bar"
+ showDownload: false
}
ListElement {
@@ -73,6 +79,7 @@ ListModel {
qmlFileName: "washingMachineUI.qml"
thumbnail: "images/washingmachinedemo_thumbnail.png"
displayName: "Washing Machine"
+ showDownload: false
}
ListElement {
@@ -80,13 +87,14 @@ ListModel {
qmlFileName: "SimpleKeyboard.qml"
thumbnail: "images/virtualkeyboard_thumbnail.png"
displayName: "Virtual Keyboard"
+ showDownload: false
}
ListElement {
projectName: "highendivisystem"
qmlFileName: "Screen01.ui.qml"
thumbnail: "images/highendivi_thumbnail.png"
- displayName: "Highend IVI System"
+ displayName: "IVI System"
url: "https://download.qt.io/learning/examples/qtdesignstudio/highendivisystem.zip"
showDownload: true
}
@@ -113,10 +121,28 @@ ListModel {
ListElement {
projectName: "cppdemoproject"
explicitQmlproject: "qml/qdsproject.qmlproject"
- qmlFileName: "Screen01.ui.qml"
+ qmlFileName: "WashingMachineHome/MainFile.ui.qml"
thumbnail: "images/cppdemo_thumbnail.png"
displayName: "C++ Demo Project"
url: "https://download.qt.io/learning/examples/qtdesignstudio/cppdemoproject.zip"
showDownload: true
}
+
+ ListElement {
+ projectName: "particles"
+ qmlFileName: "Screen01.ui.qml"
+ thumbnail: "images/particles_thumbnail.png"
+ displayName: "Particle Demo"
+ url: "https://download.qt.io/learning/examples/qtdesignstudio/particles.zip"
+ showDownload: true
+ }
+
+ ListElement {
+ projectName: "thermo"
+ qmlFileName: "thermo.ui.qml"
+ thumbnail: "images/thermo_thumbnail.png"
+ displayName: "Thermostat Demo"
+ url: "https://download.qt.io/learning/examples/qtdesignstudio/thermo.zip"
+ showDownload: true
+ }
}
diff --git a/share/qtcreator/qmldesigner/welcomepage/ExpandToggle.ui.qml b/share/qtcreator/qmldesigner/welcomepage/ExpandToggle.ui.qml
new file mode 100644
index 0000000000..02f8be6803
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/ExpandToggle.ui.qml
@@ -0,0 +1,149 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** 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 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** 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.
+**
+****************************************************************************/
+
+import QtQuick 2.15
+import WelcomeScreen 1.0
+import StudioTheme 1.0 as StudioTheme
+
+Item {
+ id: expandToggle
+ width: 36
+ height: 38
+ property bool collapsed: true
+ property bool isHovered: false
+
+ Text {
+ id: expandSessionButton
+ y: 8
+ color: "#efafaf"
+ font.family: StudioTheme.Constants.iconFont.family
+ text: StudioTheme.Constants.adsDropDown
+ anchors.fill: parent
+ font.pixelSize: 18
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ MouseArea {
+ id: mouseAreaToggle
+ anchors.fill: parent
+ hoverEnabled: true
+
+ Connections {
+ target: mouseAreaToggle
+ function onReleased(mouse) { expandToggle.collapsed = !expandToggle.collapsed }
+ }
+ }
+ states: [
+ State {
+ name: "collapseNormal"
+ when: expandToggle.collapsed && !mouseAreaToggle.containsMouse
+ && !mouseAreaToggle.pressed
+
+ PropertyChanges {
+ target: expandSessionButton
+ color: Constants.currentGlobalText
+ }
+ },
+
+ State {
+ name: "collapseHover"
+ when: expandToggle.collapsed && mouseAreaToggle.containsMouse
+ && !mouseAreaToggle.pressed
+ PropertyChanges {
+ target: expandSessionButton
+ color: Constants.currentGlobalText
+ scale: 1.1
+ }
+ PropertyChanges {
+ target: expandToggle
+ isHovered: true
+ }
+ },
+ State {
+ name: "CollapsePress"
+ when: expandToggle.collapsed && mouseAreaToggle.containsMouse
+ && mouseAreaToggle.pressed
+
+ PropertyChanges {
+ target: expandSessionButton
+ color: Constants.currentBrand
+ scale: 1.2
+ }
+ PropertyChanges {
+ target: expandToggle
+ isHovered: true
+ }
+ },
+ State {
+ name: "expandNormal"
+ when: !expandToggle.collapsed && !mouseAreaToggle.containsMouse
+ && !mouseAreaToggle.pressed
+
+ PropertyChanges {
+ target: expandSessionButton
+ color: Constants.currentGlobalText
+ rotation: 180
+ }
+ },
+ State {
+ name: "expandHover"
+ when: !expandToggle.collapsed && mouseAreaToggle.containsMouse
+ && !mouseAreaToggle.pressed
+ PropertyChanges {
+ target: expandSessionButton
+ color: Constants.currentGlobalText
+ scale: 1.1
+ rotation: 180
+ }
+ PropertyChanges {
+ target: expandToggle
+ isHovered: true
+ }
+ },
+ State {
+ name: "expandPress"
+ when: !expandToggle.collapsed && mouseAreaToggle.containsMouse
+ && mouseAreaToggle.pressed
+ PropertyChanges {
+ target: expandSessionButton
+ color: Constants.currentBrand
+ scale: 1.2
+ rotation: 180
+ }
+ PropertyChanges {
+ target: expandToggle
+ isHovered: true
+ }
+ }
+ ]
+}
+
+/*##^##
+Designer {
+ D{i:0;height:30;width:36}D{i:1}
+}
+##^##*/
+
diff --git a/share/qtcreator/qmldesigner/welcomepage/FavoriteToggle.qml b/share/qtcreator/qmldesigner/welcomepage/FavoriteToggle.qml
new file mode 100644
index 0000000000..f8a58c941f
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/FavoriteToggle.qml
@@ -0,0 +1,136 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** 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 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** 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.
+**
+****************************************************************************/
+
+import QtQuick
+import QtQuick.Controls
+import WelcomeScreen 1.0
+import QtQuick.Layouts
+import StudioTheme 1.0 as StudioTheme
+
+
+Item {
+ id: favoriteToggle
+ width: 30
+ height: 30
+ property bool isFavorite: false
+ property bool isHovered: false
+ state: "normal"
+
+ Text {
+ id: star
+ color: Constants.currentGlobalText
+ font.family: StudioTheme.Constants.iconFont.family
+ text: StudioTheme.Constants.favorite
+ anchors.fill: parent
+ font.pixelSize: 18
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ anchors.topMargin: 0
+ }
+
+ MouseArea {
+ id: mouseArea
+ anchors.fill: parent
+ hoverEnabled: true
+ propagateComposedEvents: true
+
+ Connections {
+ target: mouseArea
+ function onReleased(mouse) { favoriteToggle.isFavorite = !favoriteToggle.isFavorite }
+ }
+ }
+ states: [
+ State {
+ name: "normal"
+ when: !favoriteToggle.isFavorite && !mouseArea.containsMouse && !mouseArea.pressed
+ },
+ State {
+ name: "favorite"
+ when: favoriteToggle.isFavorite && !mouseArea.containsMouse && !mouseArea.pressed
+
+ PropertyChanges {
+ target: star
+ color: "#eee626"
+ }
+ },
+ State {
+ name: "hoverNotFavorite"
+ when: mouseArea.containsMouse && !mouseArea.pressed && !favoriteToggle.isFavorite
+ PropertyChanges {
+ target: star
+ scale: 1.1
+ }
+ PropertyChanges {
+ target: favoriteToggle
+ isHovered: true
+ }
+ },
+ State {
+ name: "hoverFavorite"
+ when: mouseArea.containsMouse && !mouseArea.pressed && favoriteToggle.isFavorite
+ PropertyChanges {
+ target: star
+ color: "#eee626"
+ scale: 1.1
+ }
+ PropertyChanges {
+ target: favoriteToggle
+ isHovered: true
+ }
+ },
+ State {
+ name: "pressedNotFavorite"
+ when: mouseArea.containsMouse && mouseArea.pressed && !favoriteToggle.isFavorite
+ PropertyChanges {
+ target: star
+ scale: 1.2
+ }
+ PropertyChanges {
+ target: favoriteToggle
+ isHovered: true
+ }
+ },
+ State {
+ name: "pressedFavorite"
+ when: mouseArea.containsMouse && mouseArea.pressed && favoriteToggle.isFavorite
+ PropertyChanges {
+ target: star
+ color: "#eee626"
+ font.pixelSize: 18
+ scale: 1.2
+ }
+ PropertyChanges {
+ target: favoriteToggle
+ isHovered: true
+ }
+ }
+ ]
+}
+
+/*##^##
+Designer {
+ D{i:0;height:30;width:30}
+}
+##^##*/
diff --git a/share/qtcreator/qmldesigner/welcomepage/MainGridStack.qml b/share/qtcreator/qmldesigner/welcomepage/MainGridStack.qml
new file mode 100644
index 0000000000..11258ca5b2
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/MainGridStack.qml
@@ -0,0 +1,182 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** 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 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** 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.
+**
+****************************************************************************/
+
+import QtQuick
+import QtQuick.Controls
+import WelcomeScreen 1.0
+import QtQuick.Layouts
+import projectmodel 1.0
+
+Item {
+ id: thumbnails
+ width: 1500
+ height: 800
+ clip: true
+ property alias listStackLayoutCurrentIndex: listStackLayout.currentIndex
+ property alias stackLayoutCurrentIndex: gridStackLayout.currentIndex
+
+ property var projectModel: Constants.projectModel
+
+ Rectangle {
+ id: thumbnailGridBack
+ color: Constants.currentThumbnailGridBackground
+ anchors.fill: parent
+
+ StackLayout {
+ id: gridStackLayout
+ visible: !Constants.isListView
+ anchors.fill: parent
+ currentIndex: 0
+
+ CustomGrid {
+ id: myRecentGrid
+ x: 20
+ y: 20
+ anchors.fill: parent
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ anchors.rightMargin: 20
+ anchors.leftMargin: 20
+ anchors.bottomMargin: 20
+ anchors.topMargin: 45
+ mymodel: thumbnails.projectModel
+ myDelegate: ThumbnailDelegate {
+ tagged: false
+ likable: false
+ downloadable: false
+ hasPath: true
+ hasDescription: false
+ hasPrice: false
+ thumbnailPlaceholderSource: "images/newThumbnail.png"
+ onClicked: projectModel.openProjectAt(index)
+ }
+ }
+
+ CustomGrid {
+ id: myExamplesGrid
+ x: 20
+ y: 20
+ anchors.fill: parent
+ anchors.rightMargin: 20
+ anchors.leftMargin: 20
+ anchors.bottomMargin: 20
+ anchors.topMargin: 45
+ mymodel: ExamplesModel {}
+ myDelegate: ThumbnailDelegate {
+ tagged: false
+ likable: false
+ downloadable: showDownload
+ hasPath: false
+ hasDescription: false
+ hasPrice: false
+ onClicked: projectModel.openExample(projectName,
+ qmlFileName, url,
+ explicitQmlproject)
+ }
+ }
+
+ CustomGrid {
+ id: myTutorialsGrid
+ x: 20
+ y: 20
+ anchors.fill: parent
+ anchors.rightMargin: 20
+ anchors.leftMargin: 20
+ anchors.bottomMargin: 20
+ anchors.topMargin: 45
+ mymodel: TutorialsModel {}
+ myDelegate: ThumbnailDelegate {
+ tagged: false
+ likable: false
+ downloadable: false
+ hasPath: false
+ hasDescription: false
+ hasPrice: false
+ onClicked: Qt.openUrlExternally(url)
+ }
+ }
+
+ CustomGrid {
+ id: myMarketplaceGrid
+ x: 20
+ y: 20
+ anchors.fill: parent
+ anchors.rightMargin: 20
+ anchors.leftMargin: 20
+ anchors.bottomMargin: 20
+ anchors.topMargin: 45
+ mymodel: thumbnails.projectModel
+ myDelegate: ThumbnailDelegate {
+ tagged: true
+ likable: false
+ downloadable: false
+ hasDescription: true
+ hasPath: false
+ hasPrice: true
+ }
+ }
+ }
+
+ StackLayout {
+ id: listStackLayout
+ visible: Constants.isListView
+ anchors.fill: parent
+ currentIndex: 0
+
+ CustomGrid {
+ id: myRecentList
+ anchors.fill: parent
+ mymodel: thumbnails.projectModel
+ anchors.topMargin: 45
+ myDelegate: MyRecentThumbnailDelegate {}
+ anchors.leftMargin: 20
+ Layout.fillWidth: true
+ anchors.rightMargin: 20
+ Layout.fillHeight: true
+ anchors.bottomMargin: 20
+ }
+
+ CustomGrid {
+ id: myExamplesList
+ x: 20
+ y: 20
+ anchors.fill: parent
+ anchors.bottomMargin: 20
+ mymodel: ExamplesModel {}
+ anchors.topMargin: 45
+ myDelegate: MyExampleThumbnailDelegate {}
+ anchors.leftMargin: 20
+ anchors.rightMargin: 20
+ }
+ }
+ }
+}
+
+/*##^##
+Designer {
+ D{i:0;formeditorZoom:0.66;height:838;width:1509}
+}
+##^##*/
+
diff --git a/share/qtcreator/qmldesigner/welcomepage/MainScreen.qml b/share/qtcreator/qmldesigner/welcomepage/MainScreen.qml
new file mode 100644
index 0000000000..ff47815a8f
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/MainScreen.qml
@@ -0,0 +1,416 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** 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 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** 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.
+**
+****************************************************************************/
+
+import QtQuick 2.15
+import QtQuick.Controls
+import WelcomeScreen 1.0
+import QtQuick.Layouts
+import StudioControls 1.0 as StudioControls
+import projectmodel 1.0
+
+Rectangle {
+ id: appBackground
+ width: Constants.width
+ height: Constants.height
+ //anchors.fill: parent //this is required to make it responsive but commented out to force minimum size to work
+ color: Constants.currentThemeBackground
+ property int pageIndex: 0
+
+ property bool designMode: !(typeof (Constants.projectModel.designMode) === "undefined")
+
+ Rectangle {
+ id: modeBar
+ width: designMode ? 45 : 0
+ color: Constants.modeBarCurrent
+ border.color: "#00000000"
+ anchors.left: parent.left
+ anchors.top: parent.top
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: 0
+ anchors.leftMargin: 0
+ anchors.topMargin: 0
+ }
+
+ TestControlPanel {
+ id: controlPanel
+ x: 1644
+ width: 220
+ height: 167
+ visible: appBackground.designMode
+ anchors.right: parent.right
+ anchors.top: parent.top
+ anchors.topMargin: 15
+ anchors.rightMargin: 56
+ }
+
+ ColumnLayout {
+ id: openCreatelayout
+ y: 188
+ width: 250
+ anchors.left: parent.left
+ spacing: 15
+ anchors.leftMargin: 70
+
+ PushButton {
+ id: createProject
+ height: 50
+ text: qsTr("Create Project ...")
+
+ Layout.maximumHeight: 75
+ Layout.minimumHeight: 25
+ Layout.fillWidth: true
+ Layout.preferredHeight: 50
+ decorated: true
+ onClicked: Constants.projectModel.createProject()
+ }
+
+ PushButton {
+ id: openProject
+ height: 50
+ text: qsTr("Open Project ...")
+
+ Layout.maximumHeight: 75
+ Layout.minimumHeight: 25
+ Layout.fillWidth: true
+ Layout.preferredHeight: 50
+ decorated: true
+ onClicked: Constants.projectModel.openProject()
+ }
+
+ Text {
+ id: newQtLabel
+ width: 266
+ height: 40
+ color: Constants.currentGlobalText
+ text: qsTr("New to Qt?")
+ font.pixelSize: 24
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ Layout.fillWidth: true
+ }
+
+ PushButton {
+ id: getStarted
+ height: 50
+ text: qsTr("Get Started")
+ Layout.maximumHeight: 75
+ Layout.minimumHeight: 25
+ Layout.preferredHeight: 50
+ Layout.fillWidth: true
+ onClicked: Constants.projectModel.showHelp()
+ }
+ }
+
+ ColumnLayout {
+ id: currentPageMenuLayout
+ y: 470
+ width: 250
+ anchors.left: parent.left
+ anchors.leftMargin: 70
+ spacing: 15
+
+ CheckButton {
+ id: recentProjects
+ text: qsTr("Recent Projects")
+ autoExclusive: true
+ checked: true
+ Layout.fillWidth: true
+
+ Connections {
+ target: recentProjects
+ function onClicked(mouse) { appBackground.pageIndex = 0 }
+ }
+ }
+
+ CheckButton {
+ id: examples
+ text: qsTr("Examples")
+ autoExclusive: true
+ Layout.fillWidth: true
+
+ Connections {
+ target: examples
+ function onClicked(mouse) { appBackground.pageIndex = 1 }
+ }
+ }
+
+ CheckButton {
+ id: tutorials
+ text: qsTr("Tutorials")
+ autoExclusive: true
+ Layout.fillWidth: true
+
+ Connections {
+ target: tutorials
+ function onClicked(moise) { appBackground.pageIndex = 2 }
+ }
+ }
+
+ CheckButton {
+ id: marketplace
+ visible: !Constants.basic
+ text: qsTr("Marketplace")
+ autoExclusive: true
+ Layout.fillWidth: true
+
+ Connections {
+ target: marketplace
+ function onClicked() { appBackground.pageIndex = 3 }
+ }
+ }
+ }
+
+ BrandBar {
+ id: brandBar
+ y: 0
+ anchors.left: parent.left
+ anchors.leftMargin: 70
+ }
+
+ MainGridStack {
+ id: thumbnails
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.top: parent.top
+ anchors.bottom: parent.bottom
+ anchors.topMargin: Constants.basic ? 188 : 226
+ anchors.rightMargin: 56
+ anchors.bottomMargin: 54
+ anchors.leftMargin: 355
+ listStackLayoutCurrentIndex: appBackground.pageIndex
+ stackLayoutCurrentIndex: appBackground.pageIndex
+ }
+
+ RowLayout {
+ id: linkRow
+ y: 1041
+ height: 25
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.bottom: parent.bottom
+ anchors.leftMargin: 355
+ anchors.rightMargin: 55
+ anchors.bottomMargin: 14
+ spacing: 0
+
+ PushButton {
+ id: userGuide
+ text: qsTr("User Guide")
+ fontpixelSize: 12
+ Layout.minimumWidth: 100
+ Layout.fillWidth: true
+ Layout.preferredHeight: 25
+ Layout.preferredWidth: 200
+ decorated: true
+ onClicked: Qt.openUrlExternally("https://doc.qt.io/qtdesignstudio/")
+ }
+
+ Item {
+ id: spacer1
+ width: 200
+ height: 200
+ Layout.fillWidth: true
+ Layout.preferredWidth: 50
+ Layout.preferredHeight: 25
+ }
+
+ PushButton {
+ id: blog
+ text: qsTr("Blog")
+ fontpixelSize: 12
+ Layout.minimumWidth: 100
+ Layout.fillWidth: true
+ Layout.preferredHeight: 25
+ Layout.preferredWidth: 200
+ decorated: true
+ onClicked: Qt.openUrlExternally("https://blog.qt.io/")
+ }
+
+ Item {
+ id: spacer2
+ width: 200
+ height: 200
+ Layout.fillWidth: true
+ Layout.preferredWidth: 50
+ Layout.preferredHeight: 25
+ }
+
+ PushButton {
+ id: forums
+ text: qsTr("Forums")
+ fontpixelSize: 12
+ Layout.minimumWidth: 100
+ Layout.fillWidth: true
+ Layout.preferredHeight: 25
+ Layout.preferredWidth: 200
+ decorated: true
+ onClicked: Qt.openUrlExternally("https://forum.qt.io/")
+ }
+
+ Item {
+ id: spacer3
+ width: 200
+ height: 200
+ Layout.fillWidth: true
+ Layout.preferredWidth: 50
+ Layout.preferredHeight: 25
+ }
+
+ PushButton {
+ id: account
+ text: qsTr("Account")
+ fontpixelSize: 12
+ Layout.minimumWidth: 100
+ Layout.fillWidth: true
+ Layout.preferredHeight: 25
+ Layout.preferredWidth: 200
+ decorated: true
+ onClicked: Qt.openUrlExternally("https://login.qt.io/login")
+ }
+
+ Item {
+ id: spacer4
+ width: 200
+ height: 200
+ Layout.fillWidth: true
+ Layout.preferredWidth: 50
+ Layout.preferredHeight: 25
+ }
+
+ PushButton {
+ id: getQt
+ text: qsTr("Get Qt")
+ fontpixelSize: 12
+ Layout.minimumWidth: 100
+ Layout.fillWidth: true
+ Layout.preferredHeight: 25
+ Layout.preferredWidth: 200
+ decorated: true
+ onClicked: Qt.openUrlExternally("https://www.qt.io/pricing")
+ }
+
+ Item {
+ id: spacer5
+ width: 200
+ height: 200
+ Layout.fillWidth: true
+ Layout.preferredWidth: 50
+ Layout.preferredHeight: 25
+ }
+
+ SocialButton {
+ id: social
+ text: ""
+ Layout.minimumWidth: 100
+ Layout.fillWidth: true
+ Layout.preferredHeight: 25
+ Layout.preferredWidth: 200
+ decorated: true
+ }
+ }
+
+ ViewToggle {
+ id: listGridToggle
+ x: 1803
+ y: 188
+ visible: !Constants.basic
+ anchors.right: parent.right
+ anchors.rightMargin: 56
+
+ Connections {
+ target: listGridToggle
+ function onViewDefaultChanged() { Constants.isListView = !Constants.isListView }
+ }
+ }
+
+ RowLayout {
+ y: 188
+ height: 25
+ visible: !Constants.basic
+ anchors.left: parent.left
+ anchors.right: listGridToggle.left
+ layoutDirection: Qt.LeftToRight
+ spacing: 0
+ anchors.leftMargin: 355
+
+ Search {
+ id: searchBar
+ Layout.maximumHeight: 25
+ Layout.maximumWidth: 500
+ Layout.minimumHeight: 25
+ Layout.minimumWidth: 100
+ Layout.preferredHeight: 25
+ Layout.preferredWidth: 500
+ Layout.fillWidth: true
+ }
+
+ StudioControls.ComboBox {
+ id: tagsComboBox
+ Layout.maximumHeight: 25
+ Layout.maximumWidth: 100
+ Layout.minimumHeight: 25
+ Layout.minimumWidth: 25
+ Layout.fillWidth: true
+ Layout.preferredHeight: 25
+ Layout.preferredWidth: 100
+ hoverEnabled: false
+ enabled: true
+ model: ["Tags", "Favorite", "3D", "Cluster", "Medical"]
+ }
+
+ Item {
+ id: spacer
+ width: 200
+ height: 200
+ Layout.maximumHeight: 25
+ Layout.minimumHeight: 25
+ Layout.preferredHeight: 25
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ }
+
+ StudioControls.ComboBox {
+ id: catagoriesComboBox
+ Layout.minimumHeight: 25
+ Layout.minimumWidth: 75
+ Layout.maximumHeight: 25
+ Layout.maximumWidth: 250
+ Layout.fillWidth: true
+ Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
+ Layout.preferredHeight: 25
+ Layout.preferredWidth: 250
+ hoverEnabled: false
+ enabled: true
+ model: ["Catagories", "Qt 6", "Qt 5", "MCU", "Automotive"]
+ }
+ }
+}
+
+/*##^##
+Designer {
+ D{i:0;height:1080;width:1920}
+}
+##^##*/
+
diff --git a/share/qtcreator/qmldesigner/welcomepage/MyExampleThumbnailDelegate.qml b/share/qtcreator/qmldesigner/welcomepage/MyExampleThumbnailDelegate.qml
new file mode 100644
index 0000000000..47c525b9e4
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/MyExampleThumbnailDelegate.qml
@@ -0,0 +1,191 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** 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 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** 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.
+**
+****************************************************************************/
+
+import QtQuick
+import QtQuick.Controls
+import WelcomeScreen 1.0
+import QtQuick.Layouts 1.0
+
+Item {
+ id: exampleThumbnailDelegate
+ width: 220
+ height: 220
+ property alias projectNameLabelText: projectNameLabel.text
+ property alias projectPathLabelText: projectPathLabel.text
+ property alias thumbnailPlaceholderSource: thumbnailPlaceholder.source
+ state: "normal"
+
+ Rectangle {
+ id: recentThumbBackground
+ x: 0
+ y: 0
+ width: 220
+ height: 220
+ color: "#d0cfcf"
+ border.color: "#00000000"
+
+ Image {
+ id: thumbnailPlaceholder
+ height: 126
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.top: parent.top
+ source: thumbnail
+ anchors.rightMargin: 8
+ anchors.leftMargin: 10
+ anchors.topMargin: 8
+ fillMode: Image.PreserveAspectFit
+ }
+ }
+
+ Rectangle {
+ id: projectNameBackground
+ x: 10
+ y: 144
+ width: 202
+ height: 30
+ color: "#ffffff"
+
+ Text {
+ id: projectNameLabel
+ color: Constants.currentGlobalText
+ text: displayName
+ elide: Text.ElideLeft
+ anchors.fill: parent
+ font.pixelSize: 12
+ verticalAlignment: Text.AlignVCenter
+ clip: true
+ leftPadding: 5
+ anchors.rightMargin: 35
+ }
+ }
+
+ Text {
+ id: projectPathLabel
+ x: 10
+ y: 178
+ width: 177
+ height: 15
+ color: Constants.currentBrand
+ text: typeof(prettyFilePath) === "undefined" ? "" : prettyFilePath
+ elide: Text.ElideLeft
+ font.pixelSize: 12
+ leftPadding: 5
+ renderType: Text.NativeRendering
+ }
+
+ MouseArea {
+ id: mouseArea
+ anchors.fill: parent
+ hoverEnabled: true
+ }
+
+ /*
+ WelcomeScreen {
+ id: welcomeScreen
+ }*/
+
+ Rectangle {
+ id: tagBackground
+ x: 10
+ y: 199
+ width: 84
+ height: 15
+ color: Constants.currentBrand
+
+ Text {
+ id: tagLabel
+ color: Constants.brandGlobalText
+ text: qsTr("tag name")
+ anchors.fill: parent
+ font.pixelSize: 10
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ font.weight: Font.ExtraLight
+ }
+ }
+ states: [
+ State {
+ name: "normal"
+ when: !mouseArea.containsMouse && !mouseArea.pressed
+
+ PropertyChanges {
+ target: recentThumbBackground
+ color: Constants.currentNormalThumbnailBackground
+ border.color: "#002f779f"
+ }
+
+ PropertyChanges {
+ target: projectNameBackground
+ color: Constants.currentNormalThumbnailLabelBackground
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: thumbnailPlaceholder
+ opacity: 0.528
+ }
+ },
+ State {
+ name: "hover"
+ when: mouseArea.containsMouse && !mouseArea.pressed
+
+ PropertyChanges {
+ target: recentThumbBackground
+ color: Constants.currentHoverThumbnailBackground
+ border.color: "#002f779f"
+ }
+
+ PropertyChanges {
+ target: projectNameBackground
+ color: Constants.currentHoverThumbnailLabelBackground
+ border.color: "#00000000"
+ }
+ },
+ State {
+ name: "press"
+ when: mouseArea.containsMouse && mouseArea.pressed
+
+ PropertyChanges {
+ target: recentThumbBackground
+ color: Constants.currentHoverThumbnailBackground
+ border.color: Constants.currentBrand
+ border.width: 2
+ }
+
+ PropertyChanges {
+ target: projectNameBackground
+ color: Constants.currentHoverThumbnailLabelBackground
+ border.color: "#00000000"
+ }
+ }
+ ]
+}
+
+/*##^##
+Designer {
+ D{i:0;formeditorZoom:0.5;height:760;width:1460}
+}
+##^##*/
diff --git a/share/qtcreator/qmldesigner/welcomepage/MyRecentProjectListDelegate.ui.qml b/share/qtcreator/qmldesigner/welcomepage/MyRecentProjectListDelegate.ui.qml
new file mode 100644
index 0000000000..9277716a2b
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/MyRecentProjectListDelegate.ui.qml
@@ -0,0 +1,179 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** 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 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** 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.
+**
+****************************************************************************/
+
+import QtQuick 2.15
+import WelcomeScreen 1.0
+
+Item {
+ id: recentProjectListDelegate
+ width: 700
+ height: 58
+ state: "normal"
+
+ Rectangle {
+ id: listItemBackground
+ color: Constants.currentNormalThumbnailBackground
+ border.color: "#00000000"
+ anchors.fill: parent
+ }
+
+ Rectangle {
+ id: listItemSquare
+ x: 142
+ width: 58
+ color: Constants.currentNormalThumbnailLabelBackground
+ border.color: "#00000000"
+ anchors.right: parent.right
+ anchors.top: parent.top
+ anchors.bottom: parent.bottom
+ anchors.rightMargin: 2
+ anchors.bottomMargin: 2
+ anchors.topMargin: 2
+ }
+
+ Rectangle {
+ id: listItemTitleBack
+ height: 25
+ color: Constants.currentNormalThumbnailLabelBackground
+ border.color: "#00000000"
+ anchors.left: parent.left
+ anchors.right: listItemSquare.left
+ anchors.top: parent.top
+ anchors.leftMargin: 2
+ anchors.topMargin: 2
+ anchors.rightMargin: 0
+ }
+
+ Text {
+ id: projectNameLabel
+ x: 57
+ y: 0
+ width: 585
+ height: 25
+ color: Constants.currentGlobalText
+ text: qsTr("My Project Name")
+ font.pixelSize: 12
+ horizontalAlignment: Text.AlignLeft
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ Text {
+ id: projectTypeLabel
+ x: 9
+ y: 0
+ width: 23
+ height: 25
+ color: Constants.currentGlobalText
+ text: qsTr("C++")
+ font.pixelSize: 12
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ Text {
+ id: projectPathLabel
+ x: 57
+ y: 25
+ width: 585
+ height: 33
+ color: Constants.currentBrand
+ text: qsTr("path/to/my/project")
+ font.pixelSize: 12
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ MouseArea {
+ id: mouseArea
+ anchors.fill: parent
+ propagateComposedEvents: true
+ hoverEnabled: true
+ }
+ states: [
+ State {
+ name: "normal"
+ when: !mouseArea.containsMouse && !mouseArea.pressed
+ && !myFavoriteToggle.isHovered
+
+ PropertyChanges {
+ target: listItemBackground
+ border.color: "#002f779f"
+ }
+ },
+ State {
+ name: "hover"
+ when: ((mouseArea.containsMouse || myFavoriteToggle.isHovered)
+ && !mouseArea.pressed)
+
+ PropertyChanges {
+ target: listItemTitleBack
+ color: Constants.currentHoverThumbnailLabelBackground
+ }
+
+ PropertyChanges {
+ target: listItemSquare
+ color: Constants.currentHoverThumbnailLabelBackground
+ }
+
+ PropertyChanges {
+ target: listItemBackground
+ color: Constants.currentHoverThumbnailBackground
+ border.color: "#002f779f"
+ }
+ },
+ State {
+ name: "pressed"
+ when: mouseArea.containsMouse && mouseArea.pressed
+ PropertyChanges {
+ target: listItemTitleBack
+ color: Constants.currentHoverThumbnailLabelBackground
+ }
+
+ PropertyChanges {
+ target: listItemSquare
+ color: Constants.currentHoverThumbnailLabelBackground
+ }
+
+ PropertyChanges {
+ target: listItemBackground
+ color: Constants.currentHoverThumbnailBackground
+ border.color: Constants.currentBrand
+ border.width: 2
+ }
+ }
+ ]
+ FavoriteToggle {
+ id: myFavoriteToggle
+ x: 658
+ y: 14
+ anchors.right: parent.right
+ anchors.rightMargin: 13
+ }
+}
+
+/*##^##
+Designer {
+ D{i:0;height:58;width:957}
+}
+##^##*/
+
diff --git a/share/qtcreator/qmldesigner/welcomepage/MyRecentSessionListDelegate.ui.qml b/share/qtcreator/qmldesigner/welcomepage/MyRecentSessionListDelegate.ui.qml
new file mode 100644
index 0000000000..c068219f1a
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/MyRecentSessionListDelegate.ui.qml
@@ -0,0 +1,385 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** 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 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** 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.
+**
+****************************************************************************/
+
+import QtQuick 2.15
+import WelcomeScreen 1.0
+import StudioTheme 1.0 as StudioTheme
+
+Item {
+ id: recentSessionListDelegate
+ width: 475
+ height: 58
+ state: "collapsedNormal"
+ property bool toggled: !expandToggle.collapsed
+
+ Rectangle {
+ id: actionsMenu
+ x: 0
+ y: 120
+ width: 194
+ height: 24
+ color: Constants.currentNormalThumbnailLabelBackground
+ border.color: "#00000000"
+
+ Text {
+ id: div1
+ width: 5
+ height: 15
+ color: Constants.currentGlobalText
+ text: qsTr("|")
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: cloneButton.right
+ font.pixelSize: 12
+ verticalAlignment: Text.AlignVCenter
+ anchors.verticalCenterOffset: -1
+ }
+
+ Text {
+ id: div2
+ width: 5
+ height: 15
+ color: Constants.currentGlobalText
+ text: qsTr("|")
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: renameButton.right
+ font.pixelSize: 12
+ verticalAlignment: Text.AlignVCenter
+ anchors.leftMargin: 5
+ anchors.verticalCenterOffset: -1
+ }
+
+ TextButton {
+ id: cloneButton
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ anchors.leftMargin: 27
+ }
+
+ TextButton {
+ id: renameButton
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: div1.right
+ anchors.leftMargin: 5
+ textButtonLabelText: "Rename"
+ }
+
+ TextButton {
+ id: deleteButton
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: div2.right
+ textButtonLabelText: "Delete"
+ }
+ }
+
+ Rectangle {
+ id: listsAndPath
+ y: 58
+ height: 58
+ color: Constants.currentNormalThumbnailBackground
+ border.color: "#00000000"
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.leftMargin: 0
+
+ Text {
+ id: cmake
+ y: 8
+ color: Constants.currentGlobalText
+ text: qsTr("CMakeLists")
+ anchors.left: parent.left
+ font.pixelSize: 12
+ verticalAlignment: Text.AlignVCenter
+ anchors.leftMargin: 29
+ }
+
+ Text {
+ id: path
+ y: 29
+ color: Constants.currentBrand
+ text: qsTr("C://Users/user/pathtolist/CmakeLists.txt")
+ anchors.left: parent.left
+ font.pixelSize: 12
+ verticalAlignment: Text.AlignVCenter
+ anchors.leftMargin: 29
+ }
+ }
+
+ Rectangle {
+ id: recentSessionListDelegateBackground
+ y: 0
+ height: 58
+ color: Constants.currentNormalThumbnailLabelBackground
+ border.color: "#00000000"
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.leftMargin: 0
+
+ Text {
+ id: sessionNumber
+ color: Constants.currentGlobalText
+ text: qsTr("1.")
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ font.pixelSize: 12
+ verticalAlignment: Text.AlignVCenter
+ anchors.leftMargin: 10
+ }
+
+ Text {
+ id: sessionName
+ color: Constants.currentGlobalText
+ text: qsTr("Default Session")
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: sessionNumber.right
+ font.pixelSize: 12
+ verticalAlignment: Text.AlignVCenter
+ anchors.leftMargin: 10
+ anchors.verticalCenterOffset: 0
+ }
+ }
+
+ MouseArea {
+ id: mouseAreaPressed
+ anchors.fill: parent
+ hoverEnabled: true
+ }
+
+ states: [
+ State {
+ name: "collapsedNormal"
+ when: !recentSessionListDelegate.toggled
+ && !mouseAreaPressed.containsMouse
+ && !mouseAreaPressed.pressed && !myFavoriteToggle.isHovered
+ && !expandToggle.isHovered
+
+ PropertyChanges {
+ target: actionsMenu
+ visible: false
+ }
+
+ PropertyChanges {
+ target: listsAndPath
+ visible: false
+ }
+
+ PropertyChanges {
+ target: recentSessionListDelegateBackground
+ visible: true
+ border.color: "#002f779f"
+ }
+ },
+ State {
+ name: "expandedNormal"
+ when: recentSessionListDelegate.toggled
+ && !mouseAreaPressed.containsMouse
+ && !mouseAreaPressed.pressed && !myFavoriteToggle.isHovered
+ && !expandToggle.isHovered
+
+ PropertyChanges {
+ target: recentSessionListDelegateBackground
+ visible: true
+ border.color: "#002f779f"
+ }
+
+ PropertyChanges {
+ target: listsAndPath
+ visible: true
+ }
+
+ PropertyChanges {
+ target: actionsMenu
+ visible: true
+ }
+
+ PropertyChanges {
+ target: recentSessionListDelegate
+ height: 144
+ }
+
+ PropertyChanges {
+ target: myFavoriteToggle
+ anchors.verticalCenterOffset: -43
+ }
+
+ PropertyChanges {
+ target: mouseAreaPressed
+ anchors.bottomMargin: 86
+ }
+ },
+ State {
+ name: "collapsedHover"
+ when: !recentSessionListDelegate.toggled
+ && ((mouseAreaPressed.containsMouse
+ || myFavoriteToggle.isHovered || expandToggle.isHovered)
+ && !mouseAreaPressed.pressed)
+ PropertyChanges {
+ target: actionsMenu
+ visible: false
+ }
+
+ PropertyChanges {
+ target: listsAndPath
+ visible: false
+ }
+
+ PropertyChanges {
+ target: recentSessionListDelegateBackground
+ visible: true
+ color: Constants.currentHoverThumbnailLabelBackground
+ border.color: "#002f779f"
+ }
+ },
+ State {
+ name: "expandedHover"
+ when: recentSessionListDelegate.toggled
+ && ((mouseAreaPressed.containsMouse
+ || myFavoriteToggle.isHovered || expandToggle.isHovered)
+ && !mouseAreaPressed.pressed)
+ PropertyChanges {
+ target: recentSessionListDelegateBackground
+ visible: true
+ color: Constants.currentHoverThumbnailLabelBackground
+ border.color: "#002f779f"
+ }
+
+ PropertyChanges {
+ target: listsAndPath
+ visible: true
+ }
+
+ PropertyChanges {
+ target: actionsMenu
+ visible: true
+ }
+
+ PropertyChanges {
+ target: recentSessionListDelegate
+ height: 144
+ }
+
+ PropertyChanges {
+ target: myFavoriteToggle
+ anchors.verticalCenterOffset: -43
+ }
+
+ PropertyChanges {
+ target: mouseAreaPressed
+ anchors.bottomMargin: 86
+ }
+ },
+ State {
+ name: "collapsedPressed"
+ when: !recentSessionListDelegate.toggled
+ && ((mouseAreaPressed.containsMouse
+ || myFavoriteToggle.isHovered || expandToggle.isHovered)
+ && mouseAreaPressed.pressed)
+ PropertyChanges {
+ target: actionsMenu
+ visible: false
+ }
+
+ PropertyChanges {
+ target: listsAndPath
+ visible: false
+ }
+
+ PropertyChanges {
+ target: recentSessionListDelegateBackground
+ visible: true
+ color: Constants.currentHoverThumbnailLabelBackground
+ border.color: Constants.currentBrand
+ border.width: 2
+ }
+ },
+ State {
+ name: "expandedPressed"
+ when: recentSessionListDelegate.toggled
+ && ((mouseAreaPressed.containsMouse
+ || myFavoriteToggle.isHovered || expandToggle.isHovered)
+ && mouseAreaPressed.pressed)
+ PropertyChanges {
+ target: recentSessionListDelegateBackground
+ visible: true
+ color: Constants.currentHoverThumbnailLabelBackground
+ border.color: Constants.currentBrand
+ border.width: 2
+ }
+
+ PropertyChanges {
+ target: listsAndPath
+ visible: true
+ }
+
+ PropertyChanges {
+ target: actionsMenu
+ visible: true
+ }
+
+ PropertyChanges {
+ target: expandSessionButton
+ rotation: 180
+ }
+
+ PropertyChanges {
+ target: recentSessionListDelegate
+ height: 144
+ }
+
+ PropertyChanges {
+ target: myFavoriteToggle
+ anchors.verticalCenterOffset: -41
+ }
+
+ PropertyChanges {
+ target: mouseAreaPressed
+ anchors.bottomMargin: 86
+ }
+ }
+ ]
+
+ FavoriteToggle {
+ id: myFavoriteToggle
+ x: 411
+ y: 14
+ height: 30
+ anchors.right: expandToggle.left
+ }
+
+ ExpandToggle {
+ id: expandToggle
+ x: 439
+ y: 16
+ width: 36
+ height: 30
+ anchors.right: recentSessionListDelegateBackground.right
+ }
+}
+
+/*##^##
+Designer {
+ D{i:0;height:58;width:455}D{i:7}D{i:10}
+}
+##^##*/
+
diff --git a/share/qtcreator/qmldesigner/welcomepage/MyRecentThumbnailDelegate.qml b/share/qtcreator/qmldesigner/welcomepage/MyRecentThumbnailDelegate.qml
new file mode 100644
index 0000000000..28860b7afe
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/MyRecentThumbnailDelegate.qml
@@ -0,0 +1,196 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** 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 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** 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.
+**
+****************************************************************************/
+
+import QtQuick
+import QtQuick.Controls
+import WelcomeScreen 1.0
+import QtQuick.Layouts 1.0
+
+Item {
+ id: recentThumbnailDelegate
+ width: 220
+ height: 220
+ property alias projectNameLabelText: projectNameLabel.text
+ property alias projectPathLabelText: projectPathLabel.text
+ property alias thumbnailPlaceholderSource: thumbnailPlaceholder.source
+ state: "normal"
+
+ Rectangle {
+ id: recentThumbBackground
+ x: 0
+ y: 0
+ width: 220
+ height: 220
+ color: "#d0cfcf"
+ border.color: "#00000000"
+
+ Image {
+ id: thumbnailPlaceholder
+ height: 126
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.top: parent.top
+ source: typeof(thumbnail) === "undefined" ? "" : thumbnail
+ anchors.rightMargin: 8
+ anchors.leftMargin: 10
+ anchors.topMargin: 8
+ fillMode: Image.PreserveAspectFit
+ }
+ }
+
+ Rectangle {
+ id: projectNameBackground
+ x: 10
+ y: 144
+ width: 202
+ height: 30
+ color: "#ffffff"
+
+ Text {
+ id: projectNameLabel
+ color: Constants.currentGlobalText
+ text: displayName
+ elide: Text.ElideLeft
+ anchors.fill: parent
+ font.pixelSize: 12
+ verticalAlignment: Text.AlignVCenter
+ clip: true
+ leftPadding: 5
+ anchors.rightMargin: 35
+ }
+ }
+
+ Text {
+ id: projectPathLabel
+ x: 10
+ y: 178
+ width: 177
+ height: 15
+ color: Constants.currentBrand
+ text: typeof(prettyFilePath) === "undefined" ? "" : prettyFilePath
+ elide: Text.ElideLeft
+ font.pixelSize: 12
+ leftPadding: 5
+ renderType: Text.NativeRendering
+ }
+
+ MouseArea {
+ id: mouseArea
+ anchors.fill: parent
+ hoverEnabled: true
+ }
+
+ TagButton {
+ id: myTagButton
+ x: 15
+ y: 197
+ width: 16
+ height: 16
+ focusPolicy: Qt.NoFocus
+ }
+
+ FavoriteToggle {
+ id: favoriteToggle
+ x: 182
+ y: 144
+ }
+ states: [
+ State {
+ name: "normal"
+ when: !mouseArea.containsMouse && !mouseArea.pressed
+
+ PropertyChanges {
+ target: recentThumbBackground
+ color: Constants.currentNormalThumbnailBackground
+ border.color: "#002f779f"
+ }
+
+ PropertyChanges {
+ target: projectNameBackground
+ color: Constants.currentNormalThumbnailLabelBackground
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: thumbnailPlaceholder
+ opacity: 0.528
+ }
+
+ PropertyChanges {
+ target: myTagButton
+ visible: false
+ }
+ },
+ State {
+ name: "hover"
+ when: mouseArea.containsMouse && !mouseArea.pressed
+
+ PropertyChanges {
+ target: recentThumbBackground
+ color: Constants.currentHoverThumbnailBackground
+ border.color: "#002f779f"
+ }
+
+ PropertyChanges {
+ target: projectNameBackground
+ color: Constants.currentHoverThumbnailLabelBackground
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: myTagButton
+ visible: true
+ }
+ },
+ State {
+ name: "press"
+ when: mouseArea.containsMouse && mouseArea.pressed
+
+ PropertyChanges {
+ target: recentThumbBackground
+ color: Constants.currentHoverThumbnailBackground
+ border.color: Constants.currentBrand
+ border.width: 2
+ }
+
+ PropertyChanges {
+ target: projectNameBackground
+ color: Constants.currentHoverThumbnailLabelBackground
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: myTagButton
+ visible: true
+ }
+ }
+ ]
+}
+
+/*##^##
+Designer {
+ D{i:0;formeditorZoom:4}
+}
+##^##*/
diff --git a/share/qtcreator/qmldesigner/welcomepage/PushButton.ui.qml b/share/qtcreator/qmldesigner/welcomepage/PushButton.ui.qml
new file mode 100644
index 0000000000..32a91e5db2
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/PushButton.ui.qml
@@ -0,0 +1,151 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** 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 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** 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.
+**
+****************************************************************************/
+
+import QtQuick 2.15
+import QtQuick.Controls 2.12
+import WelcomeScreen 1.0
+
+Button {
+ id: control
+
+ implicitWidth: Math.max(
+ buttonBackground ? buttonBackground.implicitWidth : 0,
+ textItem.implicitWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(
+ buttonBackground ? buttonBackground.implicitHeight : 0,
+ textItem.implicitHeight + topPadding + bottomPadding)
+ leftPadding: 4
+ rightPadding: 4
+
+ text: "My Button"
+ property alias fontpixelSize: textItem.font.pixelSize
+ property bool decorated: false
+ state: "normal"
+
+ background: buttonBackground
+ Rectangle {
+ id: buttonBackground
+ color: "#00000000"
+ implicitWidth: 100
+ implicitHeight: 40
+ opacity: enabled ? 1 : 0.3
+ radius: 2
+ border.color: "#047eff"
+ anchors.fill: parent
+ }
+
+ contentItem: textItem
+ Rectangle {
+ id: decoration
+ width: 10
+ visible: control.decorated
+ color: Constants.currentBrand
+ border.color: Constants.currentBrand
+ anchors.right: parent.right
+ anchors.top: parent.top
+ anchors.bottom: parent.bottom
+ anchors.rightMargin: 1
+ anchors.bottomMargin: 1
+ anchors.topMargin: 1
+ }
+
+ Text {
+ id: textItem
+ text: control.text
+ font.pixelSize: 18
+
+ opacity: enabled ? 1.0 : 0.3
+ color: Constants.currentGlobalText
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ states: [
+ State {
+ name: "normal"
+ when: !control.down && !control.hovered
+
+ PropertyChanges {
+ target: buttonBackground
+ color: Constants.currentPushButtonNormalBackground
+ border.color: Constants.currentPushButtonNormalOutline
+ }
+
+ PropertyChanges {
+ target: textItem
+ color: Constants.currentGlobalText
+ }
+ },
+ State {
+ name: "hover"
+ when: control.hovered && !control.down
+ PropertyChanges {
+ target: textItem
+ color: Constants.currentGlobalText
+ }
+
+ PropertyChanges {
+ target: buttonBackground
+ color: Constants.currentPushButtonHoverBackground
+ border.color: Constants.currentPushButtonHoverOutline
+ }
+ },
+ State {
+ name: "activeQds"
+ when: Constants.defaultBrand && control.down
+ PropertyChanges {
+ target: textItem
+ color: Constants.currentActiveGlobalText
+ }
+
+ PropertyChanges {
+ target: buttonBackground
+ color: Constants.currentBrand
+ border.color: "#00000000"
+ }
+ },
+ State {
+ name: "activeCreator"
+ when: !Constants.brandDefault && control.down
+ PropertyChanges {
+ target: textItem
+ color: Constants.currentActiveGlobalText
+ }
+
+ PropertyChanges {
+ target: buttonBackground
+ color: Constants.currentBrand
+ border.color: "#00000000"
+ }
+ }
+ ]
+}
+
+/*##^##
+Designer {
+ D{i:0;height:25;width:207}
+}
+##^##*/
+
diff --git a/share/qtcreator/qmldesigner/welcomepage/Search.qml b/share/qtcreator/qmldesigner/welcomepage/Search.qml
new file mode 100644
index 0000000000..c828722bcd
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/Search.qml
@@ -0,0 +1,213 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** 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 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** 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.
+**
+****************************************************************************/
+
+import QtQuick
+import QtQuick.Controls
+import WelcomeScreen 1.0
+import QtQuick.Layouts 1.0
+import StudioTheme 1.0 as StudioTheme
+
+Rectangle {
+ id: searchBackground
+ width: 622
+ height: 25
+ color: Constants.currentThumbnailGridBackground
+ border.color: "#00000000"
+ state: "normal"
+
+ Text {
+ id: searchLabel
+ x: 28
+ y: 0
+ width: 595
+ height: 25
+ color: Constants.currentGlobalText
+ text: qsTr("Search")
+ font.pixelSize: 12
+ horizontalAlignment: Text.AlignLeft
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ Text {
+ id: glassPlaceholder
+ width: 25
+ opacity: 1
+ color: Constants.currentGlobalText
+ font.family: StudioTheme.Constants.iconFont.family
+ text: StudioTheme.Constants.search
+ anchors.left: parent.left
+ anchors.top: parent.top
+ anchors.bottom: parent.bottom
+ font.pixelSize: 14
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ anchors.leftMargin: 0
+ anchors.topMargin: 0
+ }
+
+ MouseArea {
+ id: mouseArea
+ anchors.fill: parent
+ hoverEnabled: true
+ }
+
+ Rectangle {
+ id: searchResults
+ y: 25
+ height: 124
+ color: Constants.currentNormalThumbnailBackground
+ border.color: "#00000000"
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.rightMargin: 0
+ anchors.leftMargin: 0
+
+ Rectangle {
+ id: searchHighlight
+ y: 37
+ height: 25
+ color: Constants.currentNormalThumbnailLabelBackground
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.rightMargin: 0
+ anchors.leftMargin: 0
+ }
+
+ Text {
+ id: searchLabel1
+ x: 28
+ y: 6
+ width: 595
+ height: 25
+ color: Constants.currentGlobalText
+ text: qsTr("Result 1")
+ font.pixelSize: 12
+ horizontalAlignment: Text.AlignLeft
+ verticalAlignment: Text.AlignVCenter
+ }
+
+
+
+ Text {
+ id: searchLabel2
+ y: 37
+ height: 25
+ color: Constants.currentBrand
+ text: qsTr("Result2")
+ anchors.left: parent.left
+ anchors.right: parent.right
+ font.pixelSize: 12
+ horizontalAlignment: Text.AlignLeft
+ verticalAlignment: Text.AlignVCenter
+ anchors.rightMargin: 8
+ anchors.leftMargin: 28
+ }
+
+
+ Text {
+ id: searchLabel3
+ x: 28
+ y: 68
+ width: 595
+ height: 25
+ color: Constants.currentGlobalText
+ text: qsTr("Result3")
+ font.pixelSize: 12
+ horizontalAlignment: Text.AlignLeft
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ }
+ states: [
+ State {
+ name: "normal"
+ when: !mouseArea.containsMouse && !mouseArea.pressed
+
+ PropertyChanges {
+ target: searchLabel
+ opacity: 0.69
+ }
+
+ PropertyChanges {
+ target: glassPlaceholder
+ opacity: 0.496
+ }
+
+ PropertyChanges {
+ target: searchResults
+ visible: false
+ }
+
+ PropertyChanges {
+ target: searchBackground
+ border.color: "#002e769e"
+ }
+ },
+ State {
+ name: "hover"
+ when: mouseArea.containsMouse && !mouseArea.pressed
+
+ PropertyChanges {
+ target: searchResults
+ visible: false
+ }
+
+ PropertyChanges {
+ target: searchBackground
+ border.color: "#002e769e"
+ }
+ },
+ State {
+ name: "checked"
+ when: mouseArea.pressed
+
+ PropertyChanges {
+ target: searchResults
+ visible: true
+ }
+
+ PropertyChanges {
+ target: searchBackground
+ border.color: Constants.currentBrand
+ }
+
+ PropertyChanges {
+ target: searchHighlight
+ color: Constants.currentBrand
+ }
+
+ PropertyChanges {
+ target: searchLabel2
+ color: Constants.currentActiveGlobalText
+ }
+ }
+ ]
+}
+
+/*##^##
+Designer {
+ D{i:0;height:25;width:500}D{i:5}D{i:7}D{i:4}
+}
+##^##*/
diff --git a/share/qtcreator/qmldesigner/welcomepage/SocialButton.qml b/share/qtcreator/qmldesigner/welcomepage/SocialButton.qml
new file mode 100644
index 0000000000..9eaf22ed18
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/SocialButton.qml
@@ -0,0 +1,157 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** 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 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** 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.
+**
+****************************************************************************/
+
+import QtQuick 2.15
+import QtQuick.Controls 2.12
+import WelcomeScreen 1.0
+import QtQuick.Layouts 1.0
+
+Button {
+ id: control
+
+ implicitWidth: Math.max(
+ buttonBackground ? buttonBackground.implicitWidth : 0,
+ textItem.implicitWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(
+ buttonBackground ? buttonBackground.implicitHeight : 0,
+ textItem.implicitHeight + topPadding + bottomPadding)
+ leftPadding: 4
+ rightPadding: 4
+
+ text: ""
+ property alias fontpixelSize: textItem.font.pixelSize
+ property bool decorated: false
+ visible: true
+ state: "normal"
+
+ background: buttonBackground
+ Rectangle {
+ id: buttonBackground
+ color: "#fca4a4"
+ implicitWidth: 100
+ implicitHeight: 40
+ opacity: enabled ? 1 : 0.3
+ radius: 2
+ border.color: "#047eff"
+ anchors.fill: parent
+ }
+
+ Rectangle {
+ id: decoration
+ width: 10
+ visible: control.decorated
+ color: Constants.currentBrand
+ border.color: Constants.currentBrand
+ anchors.right: parent.right
+ anchors.top: parent.top
+ anchors.bottom: parent.bottom
+ anchors.rightMargin: 1
+ anchors.bottomMargin: 1
+ anchors.topMargin: 1
+ }
+
+ Text {
+ id: textItem
+ visible: false
+ text: qsTr("Text")
+ font.pixelSize: 12
+ }
+
+ RowLayout {
+ anchors.fill: parent
+
+ Item {
+ id: spacer
+ width: 200
+ height: 200
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ }
+
+ YoutubeButton {
+ id: youtubeButton
+ Layout.fillHeight: true
+ Layout.preferredWidth: 60
+ }
+
+ Item {
+ id: spacer1
+ width: 200
+ height: 200
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ }
+
+ TwitterButton {
+ id: twitterButton
+ Layout.maximumHeight: 15
+ Layout.minimumHeight: 15
+ Layout.preferredHeight: 15
+ Layout.fillHeight: false
+ Layout.preferredWidth: 25
+
+ }
+
+ Item {
+ id: spacer2
+ width: 200
+ height: 200
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ }
+ }
+
+ states: [
+ State {
+ name: "normal"
+ when: !youtubeButton.isHovered && !twitterButton.isHovered
+ && !control.hovered
+
+ PropertyChanges {
+ target: buttonBackground
+ color: Constants.currentPushButtonNormalBackground
+ border.color: Constants.currentPushButtonNormalOutline
+ }
+ },
+ State {
+ name: "hover"
+ when: control.hovered || youtubeButton.isHovered
+ || twitterButton.isHovered
+
+ PropertyChanges {
+ target: buttonBackground
+ color: Constants.currentPushButtonHoverBackground
+ border.color: Constants.currentPushButtonHoverOutline
+ }
+ }
+ ]
+}
+
+/*##^##
+Designer {
+ D{i:0;formeditorZoom:4;height:25;width:207}D{i:3;locked:true}D{i:7}D{i:9}
+}
+##^##*/
+
diff --git a/src/plugins/studiowelcome/qml/welcomepage/SaturationEffect.qml b/share/qtcreator/qmldesigner/welcomepage/Tag.qml
index 32d2448d6e..5183bd15b7 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/SaturationEffect.qml
+++ b/share/qtcreator/qmldesigner/welcomepage/Tag.qml
@@ -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 Creator.
@@ -23,19 +23,25 @@
**
****************************************************************************/
-import QtQuick 2.0
+import QtQuick
+import QtQuick.Controls
+import WelcomeScreen 1.0
+import QtQuick.Layouts 1.0
-Item {
- id: root
+Rectangle {
+ id: tagBackground
+ width: 84
+ height: 15
+ color: Constants.currentBrand
- property real desaturation: 1.0
-
- Rectangle {
- z: 10
+ Text {
+ id: tagLabel
+ color: Constants.brandGlobalText
+ text: qsTr("tag name")
anchors.fill: parent
- color: "#2d2e30"
- anchors.margins: -16
-
- opacity: root.desaturation * 0.6
+ font.pixelSize: 10
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ font.weight: Font.ExtraLight
}
}
diff --git a/src/plugins/studiowelcome/qml/welcomepage/welcomepage.qmlproject b/share/qtcreator/qmldesigner/welcomepage/TagArea.qml
index de393d88b0..5c5190640e 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/welcomepage.qmlproject
+++ b/share/qtcreator/qmldesigner/welcomepage/TagArea.qml
@@ -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 Creator.
@@ -23,25 +23,53 @@
**
****************************************************************************/
-import QmlProject 1.1
+import QtQuick
+import QtQuick.Controls
+import WelcomeScreen 1.0
+import QtQuick.Layouts 1.0
-Project {
- mainFile: "main.qml"
+Item {
+ id: tagArea
+ width: 200
+ height: 15
- /* Include .qml, .js, and image files from current directory and subdirectories */
- QmlFiles {
- directory: "."
- }
- JavaScriptFiles {
- directory: "."
- }
- ImageFiles {
- directory: "."
- }
- /* List of plugin directories passed to QML runtime */
- importPaths: [ "imports", "mockData", "../../../../share/3rdparty/studiofonts" ]
+ RowLayout {
+ x: 0
+ y: 0
+ width: 220
+ height: 15
+
+
+ TagPageButton {
+ id: tagPageButtonLeft
+ }
+
+ Tag {
+ id: tag1
+ Layout.preferredWidth: 50
+ }
+
+ Tag {
+ id: tag2
+ Layout.preferredWidth: 50
+ }
+
+ Tag {
+ id: tag3
+ Layout.preferredWidth: 50
+ }
+
+ TagPageButton {
+ id: tagPageButtonRight
+ rotation: 180
+ }
- Environment {
- QT_AUTO_SCREEN_SCALE_FACTOR: "1"
}
+
+}
+
+/*##^##
+Designer {
+ D{i:0;height:15;width:220}D{i:5}D{i:6}
}
+##^##*/
diff --git a/share/qtcreator/qmldesigner/welcomepage/TagButton.ui.qml b/share/qtcreator/qmldesigner/welcomepage/TagButton.ui.qml
new file mode 100644
index 0000000000..87e6de4ccc
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/TagButton.ui.qml
@@ -0,0 +1,119 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** 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 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** 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.
+**
+****************************************************************************/
+
+import QtQuick 2.15
+import QtQuick.Controls 2.12
+import WelcomeScreen 1.0
+
+Button {
+ id: control
+ width: 16
+ height: 16
+
+ implicitWidth: Math.max(
+ buttonBackground ? buttonBackground.implicitWidth : 0,
+ textItem.implicitWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(
+ buttonBackground ? buttonBackground.implicitHeight : 0,
+ textItem.implicitHeight + topPadding + bottomPadding)
+ leftPadding: 4
+ rightPadding: 4
+
+ text: "My Button"
+ hoverEnabled: false
+ state: "normal"
+
+ background: buttonBackground
+ Rectangle {
+ id: buttonBackground
+ color: "#00000000"
+ implicitWidth: 100
+ implicitHeight: 40
+ opacity: enabled ? 1 : 0.3
+ radius: 2
+ border.color: "#047eff"
+ anchors.fill: parent
+ }
+
+ contentItem: textItem
+ Text {
+ id: textItem
+ font.pixelSize: 17
+
+ opacity: enabled ? 1.0 : 0.3
+ color: "#047eff"
+ text: "+"
+ anchors.fill: parent
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ anchors.bottomMargin: 2
+ }
+
+ states: [
+ State {
+ name: "normal"
+ when: !control.down
+
+ PropertyChanges {
+ target: buttonBackground
+ color: "#00000000"
+ radius: 7.5
+ border.color: Constants.currentBrand
+ }
+
+ PropertyChanges {
+ target: textItem
+ color: Constants.currentBrand
+ }
+ },
+ State {
+ name: "down"
+ when: control.down
+ PropertyChanges {
+ target: textItem
+ color: "#ffffff"
+ }
+
+ PropertyChanges {
+ target: buttonBackground
+ color: Constants.currentBrand
+ radius: 7.5
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: control
+ hoverEnabled: false
+ }
+ }
+ ]
+}
+
+/*##^##
+Designer {
+ D{i:0;height:15;width:15}
+}
+##^##*/
+
diff --git a/src/plugins/studiowelcome/qml/welcomepage/ProjectsGrid.qml b/share/qtcreator/qmldesigner/welcomepage/TagPageButton.qml
index 099c123ecf..01e4f8e07b 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/ProjectsGrid.qml
+++ b/share/qtcreator/qmldesigner/welcomepage/TagPageButton.qml
@@ -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 Creator.
@@ -23,45 +23,65 @@
**
****************************************************************************/
-import QtQuick 2.9
-import welcome 1.0
+import QtQuick
+import QtQuick.Controls
+import WelcomeScreen 1.0
+import QtQuick.Layouts 1.0
-GridView {
- id: root
- cellHeight: 180
- cellWidth: 285
+Item {
+ id: tagPageButton
+ width: 13
+ height: 15
+ state: "normal"
- clip: true
-
- signal itemSelected(int index, variant item)
-
- delegate: HoverOverDesaturate {
- id: hoverOverDesaturate
- imageSource: typeof(thumbnail) === "undefined" ? "images/thumbnail_test.png" : thumbnail;
- labelText: displayName
- downloadIcon: typeof(showDownload) === "undefined" ? false : showDownload;
- onClicked: root.itemSelected(index, root.model.get(index))
+ Text {
+ id: tagPageIcon
+ x: 2
+ y: -1
+ width: 8
+ height: 16
+ color: Constants.currentBrand
+ text: qsTr("<")
+ font.pixelSize: 13
+ Layout.leftMargin: 3
+ }
- SequentialAnimation {
- id: animation
- running: hoverOverDesaturate.visible
+ MouseArea {
+ id: mouseArea
+ anchors.fill: parent
+ }
+ states: [
+ State {
+ name: "normal"
+ when: mouseArea.pressed
+ },
+ State {
+ name: "pressed"
+ when: mouseArea.pressed && mouseArea.containsMouse
- PropertyAction {
- target: hoverOverDesaturate
- property: "scale"
- value: 0.0
+ PropertyChanges {
+ target: tagPageIcon
+ scale: 1.1
}
- PauseAnimation {
- duration: model.index > 0 ? 100 * model.index : 0
+ },
+ State {
+ name: "hovered"
+ when: mouseArea.containsMouse && !mouseArea.pressed
+ PropertyChanges {
+ target: tagPageIcon
+ scale: 1.2
}
- NumberAnimation {
- target: hoverOverDesaturate
- property: "scale"
- from: 0.0
- to: 1.0
- duration: 200
- easing.type: Easing.InOutExpo
+
+ PropertyChanges {
+ target: mouseArea
+ hoverEnabled: true
}
}
- }
+ ]
+}
+
+/*##^##
+Designer {
+ D{i:0;formeditorZoom:16;height:15;width:13}D{i:2}
}
+##^##*/
diff --git a/share/qtcreator/qmldesigner/welcomepage/TestControlPanel.qml b/share/qtcreator/qmldesigner/welcomepage/TestControlPanel.qml
new file mode 100644
index 0000000000..40a22337f1
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/TestControlPanel.qml
@@ -0,0 +1,242 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** 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 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** 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.
+**
+****************************************************************************/
+
+import QtQuick
+import QtQuick.Controls
+import WelcomeScreen 1.0
+import QtQuick.Layouts 1.0
+import StudioTheme 1.0 as Theme
+
+Item {
+ id: controlPanel
+ width: 220
+ height: 120
+ property bool closeOpen: true
+
+ Rectangle {
+ id: controlPanBack
+ color: "#9b787878"
+ radius: 10
+ border.color: "#00000000"
+ anchors.fill: parent
+ anchors.rightMargin: 0
+ anchors.bottomMargin: 0
+ anchors.leftMargin: 0
+ anchors.topMargin: 0
+
+ CheckBox {
+ id: checkBox
+ x: 60
+ y: 119
+ text: qsTr("")
+ checked: true
+ onToggled: { Constants.basic = !Constants.basic }
+ }
+
+ CheckBox {
+ id: checkBox1
+ x: 174
+ y: 119
+ text: qsTr("")
+ checked: false
+ onToggled: { Constants.communityEdition = !Constants.communityEdition }
+ }
+ }
+
+ Slider {
+ id:themeSlider
+ x: 58
+ y: 84
+ width: 145
+ height: 28
+ snapMode: RangeSlider.SnapAlways
+ value: 0
+ from: 0
+ to: 1
+ stepSize: 1
+
+ Connections {
+ target: themeSlider
+ function onValueChanged(value) { Theme.Values.style = themeSlider.value }
+ }
+ }
+
+ Text {
+ id: themeSwitchLabel
+ x: 8
+ y: 90
+ color: "#ffffff"
+ text: qsTr("Theme")
+ font.pixelSize: 12
+ horizontalAlignment: Text.AlignRight
+ anchors.rightMargin: 6
+ }
+
+ Switch {
+ id: brandSwitch
+ x: 92
+ y: 23
+ width: 59
+ height: 31
+ display: AbstractButton.IconOnly
+ Connections {
+ target: brandSwitch
+ function onToggled(bool) { Constants.defaultBrand = !Constants.defaultBrand }
+ }
+ }
+
+ Text {
+ id: brandSwitchLabel
+ x: 11
+ y: 31
+ color: "#ffffff"
+ text: qsTr("Brand")
+ font.pixelSize: 12
+ horizontalAlignment: Text.AlignRight
+ }
+
+ Text {
+ id: qdslabel
+ x: 65
+ y: 31
+ color: "#ffffff"
+ text: qsTr("qds")
+ font.pixelSize: 12
+ horizontalAlignment: Text.AlignRight
+ }
+
+ Text {
+ id: creatorLabel
+ x: 155
+ y: 31
+ color: "#ffffff"
+ text: qsTr("Creator")
+ font.pixelSize: 12
+ horizontalAlignment: Text.AlignRight
+ }
+
+ Text {
+ id: lightLabel
+ x: 172
+ y: 66
+ color: "#ffffff"
+ text: qsTr("light")
+ font.pixelSize: 12
+ horizontalAlignment: Text.AlignRight
+ }
+
+ Text {
+ id: lightLabel1
+ x: 124
+ y: 66
+ color: "#ffffff"
+ text: qsTr("mid")
+ font.pixelSize: 12
+ horizontalAlignment: Text.AlignRight
+ }
+
+ Text {
+ id: lightLabel2
+ x: 65
+ y: 66
+ color: "#ffffff"
+ text: qsTr("dark")
+ font.pixelSize: 12
+ horizontalAlignment: Text.AlignRight
+ }
+
+ Text {
+ id: closeOpen
+ x: 203
+ color: "#ffffff"
+ text: qsTr("X")
+ anchors.right: parent.right
+ anchors.top: parent.top
+ font.pixelSize: 12
+ horizontalAlignment: Text.AlignRight
+ anchors.rightMargin: 9
+ anchors.topMargin: 6
+
+ MouseArea {
+ id: mouseArea
+ anchors.fill: parent
+
+ Connections {
+ target: mouseArea
+ function onClicked(mouse) { controlPanel.closeOpen = !controlPanel.closeOpen }
+ }
+ }
+ }
+
+ Text {
+ id: themeSwitchLabel1
+ x: 8
+ y: 132
+ color: "#ffffff"
+ text: qsTr("Basic")
+ font.pixelSize: 12
+ horizontalAlignment: Text.AlignRight
+ anchors.rightMargin: 6
+ }
+
+ Text {
+ id: themeSwitchLabel2
+ x: 116
+ y: 132
+ color: "#ffffff"
+ text: qsTr("Community")
+ font.pixelSize: 12
+ horizontalAlignment: Text.AlignRight
+ anchors.rightMargin: 6
+ }
+ states: [
+ State {
+ name: "open"
+ when: controlPanel.closeOpen
+ },
+ State {
+ name: "close"
+ when: !controlPanel.closeOpen
+
+ PropertyChanges {
+ target: closeOpen
+ text: qsTr("<")
+ }
+
+ PropertyChanges {
+ target: controlPanel
+ width: 28
+ height: 26
+ clip: true
+ }
+ }
+ ]
+}
+
+/*##^##
+Designer {
+ D{i:0;formeditorZoom:4}D{i:3}D{i:19}
+}
+##^##*/
diff --git a/src/plugins/studiowelcome/qml/welcomepage/AccountImage.qml b/share/qtcreator/qmldesigner/welcomepage/TextButton.ui.qml
index 719ff05546..243f27a687 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/AccountImage.qml
+++ b/share/qtcreator/qmldesigner/welcomepage/TextButton.ui.qml
@@ -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 Creator.
@@ -23,33 +23,51 @@
**
****************************************************************************/
-import QtQuick 2.9
-import welcome 1.0
-import StudioFonts 1.0
+import QtQuick 2.15
+import WelcomeScreen 1.0
-Image {
- id: account_icon
-
- source: "images/" + (mouseArea.containsMouse ? "icon_hover.png" : "icon_default.png")
+Item {
+ id: textButton
+ width: 41
+ height: 22
+ property alias textButtonLabelText: textButtonLabel.text
+ state: "normal"
Text {
- id: account
- color: mouseArea.containsMouse ? Constants.textHoverColor
- : Constants.textDefaultColor
- text: qsTr("Account")
- anchors.top: parent.bottom
- anchors.horizontalCenter: parent.horizontalCenter
- font.family: StudioFonts.titilliumWeb_regular
- font.pixelSize: 16
- renderType: Text.NativeRendering
+ id: textButtonLabel
+ color: Constants.currentBrand
+ text: qsTr("Clone")
+ anchors.fill: parent
+ font.pixelSize: 12
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
}
MouseArea {
id: mouseArea
anchors.fill: parent
- anchors.margins: -25
hoverEnabled: true
-
- onClicked: Qt.openUrlExternally("https://login.qt.io/login/")
}
+ states: [
+ State {
+ name: "normal"
+ when: !mouseArea.containsMouse
+
+ PropertyChanges {
+ target: textButtonLabel
+ color: Constants.currentGlobalText
+ }
+ },
+ State {
+ name: "hover"
+ when: mouseArea.containsMouse
+ }
+ ]
}
+
+/*##^##
+Designer {
+ D{i:0;height:22;width:41}D{i:1}D{i:2}
+}
+##^##*/
+
diff --git a/share/qtcreator/qmldesigner/welcomepage/ThumbnailDelegate.qml b/share/qtcreator/qmldesigner/welcomepage/ThumbnailDelegate.qml
new file mode 100644
index 0000000000..84d1f16479
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/ThumbnailDelegate.qml
@@ -0,0 +1,341 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** 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 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** 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.
+**
+****************************************************************************/
+
+import QtQuick
+import QtQuick.Controls
+import WelcomeScreen 1.0
+import QtQuick.Layouts
+
+Item {
+ id: thumbnailDelegate
+ width: 220
+ height: 220
+ property bool hasPrice: true
+ property bool hasDescription: true
+ property bool hasPath: true
+ property bool likable: true
+ property bool downloadable: true
+ property bool tagged: true
+ property alias projectNameLabelText: projectNameLabel.text
+ property alias projectPathLabelText: projectPathLabel.text
+ property alias thumbnailPlaceholderSource: thumbnailPlaceholder.source
+ state: "normal"
+
+ signal clicked()
+
+ MouseArea {
+ id: mouseArea
+ anchors.fill: parent
+ propagateComposedEvents: true
+ hoverEnabled: true
+ onClicked: thumbnailDelegate.clicked()
+ }
+
+ Rectangle {
+ id: recentThumbBackground
+ x: 0
+ y: 0
+ width: 220
+ height: 220
+ color: "#ea8c8c"
+ border.color: "#00000000"
+
+ Image {
+ id: thumbnailPlaceholder
+ height: 126
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.top: parent.top
+ source: typeof(thumbnail) === "undefined" ? "" : thumbnail
+ anchors.rightMargin: 8
+ anchors.leftMargin: 10
+ anchors.topMargin: 8
+ fillMode: Image.PreserveAspectFit
+
+ Rectangle {
+ id: rectangle
+ x: 10
+ y: 8
+ opacity: 0.903
+ color: Constants.currentNormalThumbnailBackground
+ border.color: "#00323232"
+ anchors.fill: parent
+
+ Text {
+ id: text1
+ x: 5
+ y: 5
+ color: Constants.currentGlobalText
+ text: qsTr("Description Place Holder Text For marketplace icons")
+ anchors.fill: parent
+ font.pixelSize: 12
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ wrapMode: Text.WordWrap
+ anchors.rightMargin: 5
+ anchors.leftMargin: 5
+ anchors.bottomMargin: 5
+ anchors.topMargin: 5
+ }
+ }
+ }
+ }
+
+
+ Rectangle {
+ id: projectNameBackground
+ x: 10
+ y: 139
+ width: 202
+ height: 30
+ color: "#e5b0e4"
+
+ Text {
+ id: projectNameLabel
+ color: Constants.currentGlobalText
+ text: typeof(displayName) === "undefined" ? projectName : displayName
+ elide: Text.ElideRight
+ anchors.fill: parent
+ font.pixelSize: 12
+ verticalAlignment: Text.AlignVCenter
+ anchors.bottomMargin: 0
+ anchors.leftMargin: 0
+ anchors.topMargin: 0
+ clip: true
+ leftPadding: 5
+ anchors.rightMargin: 35
+ }
+
+ RowLayout {
+ id: downloadFavorite
+ x: 140
+ y: 0
+ width: 62
+ height: 30
+ layoutDirection: Qt.RightToLeft
+
+ DownloadButton {
+ id: downloadButton
+ visible: thumbnailDelegate.downloadable
+ }
+
+ FavoriteToggle {
+ id: myFavoriteToggle
+ visible: thumbnailDelegate.likable
+ Layout.preferredHeight: 30
+ Layout.preferredWidth: 27
+ }
+ }
+ }
+
+
+ Text {
+ id: projectPathLabel
+ x: 10
+ y: 176
+ width: 177
+ height: 15
+ visible: thumbnailDelegate.hasPath
+ color: Constants.currentBrand
+ text: typeof(prettyFilePath) === "undefined" ? "" : prettyFilePath
+ elide: Text.ElideLeft
+ font.pixelSize: 12
+ leftPadding: 5
+ renderType: Text.NativeRendering
+ }
+
+
+ TagArea {
+ id: tagArea
+ y: 197
+ height: 15
+ visible: thumbnailDelegate.tagged
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: 8
+ anchors.rightMargin: 3
+ anchors.leftMargin: 3
+ }
+
+ Text {
+ id: price
+ x: 10
+ y: 176
+ width: 202
+ height: 15
+ visible: thumbnailDelegate.hasPrice
+ color: Constants.currentGlobalText
+ text: "€249.99 - Yearly"
+ font.pixelSize: 12
+ horizontalAlignment: Text.AlignRight
+ }
+
+
+ states: [
+ State {
+ name: "normal"
+ when: !mouseArea.containsMouse && !mouseArea.pressed && !myFavoriteToggle.isHovered && !downloadButton.isHovered && (thumbnailDelegate.hasDescription || !thumbnailDelegate.hasDescription)
+
+ PropertyChanges {
+ target: recentThumbBackground
+ color: Constants.currentNormalThumbnailBackground
+ border.color: "#002f779f"
+ }
+
+ PropertyChanges {
+ target: projectNameBackground
+ color: Constants.currentNormalThumbnailLabelBackground
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: thumbnailPlaceholder
+ opacity: 0.528
+ visible: true
+ }
+
+ PropertyChanges {
+ target: rectangle
+ visible: false
+ }
+ },
+ State {
+ name: "hover"
+ when: ((mouseArea.containsMouse || myFavoriteToggle.isHovered || downloadButton.isHovered) && !mouseArea.pressed && !thumbnailDelegate.hasDescription)
+
+ PropertyChanges {
+ target: recentThumbBackground
+ color: Constants.currentHoverThumbnailBackground
+ border.color: "#002f779f"
+ }
+
+ PropertyChanges {
+ target: projectNameBackground
+ color: Constants.currentHoverThumbnailLabelBackground
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: thumbnailPlaceholder
+ visible: true
+ }
+
+ PropertyChanges {
+ target: rectangle
+ visible: false
+ }
+ },
+ State {
+ name: "press"
+ when: (mouseArea.containsMouse || !mouseArea.containsMouse) && mouseArea.pressed && !thumbnailDelegate.hasDescription && !thumbnailDelegate.hasDescription
+
+ PropertyChanges {
+ target: recentThumbBackground
+ color: Constants.currentHoverThumbnailBackground
+ border.color: Constants.currentBrand
+ border.width: 2
+ }
+
+ PropertyChanges {
+ target: projectNameBackground
+ color: Constants.currentBrand
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: thumbnailPlaceholder
+ visible: true
+ }
+
+ PropertyChanges {
+ target: rectangle
+ visible: false
+ }
+
+ PropertyChanges {
+ target: projectNameLabel
+ color: Constants.currentActiveGlobalText
+ }
+ },
+ State {
+ name: "hoverDescription"
+ when: mouseArea.containsMouse && !mouseArea.pressed && thumbnailDelegate.hasDescription
+ PropertyChanges {
+ target: recentThumbBackground
+ color: Constants.currentHoverThumbnailBackground
+ border.color: "#002f779f"
+ }
+
+ PropertyChanges {
+ target: projectNameBackground
+ color: Constants.currentHoverThumbnailLabelBackground
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: thumbnailPlaceholder
+ visible: true
+ }
+
+ PropertyChanges {
+ target: rectangle
+ visible: true
+ }
+ },
+ State {
+ name: "pressDescription"
+ when: (mouseArea.containsMouse || !mouseArea.containsMouse) && mouseArea.pressed && thumbnailDelegate.hasDescription
+ PropertyChanges {
+ target: recentThumbBackground
+ color: Constants.currentHoverThumbnailBackground
+ border.color: Constants.currentBrand
+ border.width: 2
+ }
+
+ PropertyChanges {
+ target: projectNameBackground
+ color: Constants.currentBrand
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: thumbnailPlaceholder
+ visible: true
+ }
+
+ PropertyChanges {
+ target: rectangle
+ visible: true
+ }
+ }
+ ]
+}
+
+/*##^##
+Designer {
+ D{i:0;formeditorZoom:3}
+}
+##^##*/
diff --git a/src/plugins/studiowelcome/qml/welcomepage/TutorialsModel.qml b/share/qtcreator/qmldesigner/welcomepage/TutorialsModel.qml
index efb59e5a0a..c3736041fd 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/TutorialsModel.qml
+++ b/share/qtcreator/qmldesigner/welcomepage/TutorialsModel.qml
@@ -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 Creator.
diff --git a/share/qtcreator/qmldesigner/welcomepage/TwitterButton.qml b/share/qtcreator/qmldesigner/welcomepage/TwitterButton.qml
new file mode 100644
index 0000000000..a7d9316826
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/TwitterButton.qml
@@ -0,0 +1,169 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** 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 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** 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.
+**
+****************************************************************************/
+
+import QtQuick 2.15
+import QtQuick.Controls 2.12
+import WelcomeScreen 1.0
+import StudioTheme 1.0 as StudioTheme
+
+Item {
+ id: twitterButton
+ property bool isHovered: false
+ state: "darkNormal"
+
+ Image {
+ id: twitterDarkNormal
+ anchors.fill: parent
+ source: "images/twitterDarkNormal.png"
+ fillMode: Image.PreserveAspectFit
+ }
+
+ Image {
+ id: twitterLightNormal
+ anchors.fill: parent
+ source: "images/twitterLightNormal.png"
+ fillMode: Image.PreserveAspectFit
+ }
+
+ Image {
+ id: twitterHover
+ anchors.fill: parent
+ source: "images/twitterHover.png"
+ fillMode: Image.PreserveAspectFit
+ }
+
+ MouseArea {
+ id: mouseArea
+ anchors.fill: parent
+ hoverEnabled: true
+ Connections {
+ target: mouseArea
+ function onClicked(mouse) { Qt.openUrlExternally("https://twitter.com/qtproject/") }
+ }
+ }
+ states: [
+ State {
+ name: "darkNormal"
+ when: StudioTheme.Values.style === 0 && !mouseArea.containsMouse
+ && !mouseArea.pressed
+
+ PropertyChanges {
+ target: twitterDarkNormal
+ visible: true
+ }
+
+ PropertyChanges {
+ target: twitterLightNormal
+ visible: false
+ }
+
+ PropertyChanges {
+ target: twitterHover
+ visible: false
+ }
+ },
+ State {
+ name: "lightNormal"
+ when: StudioTheme.Values.style !== 0 && !mouseArea.containsMouse
+ && !mouseArea.pressed
+
+ PropertyChanges {
+ target: twitterHover
+ visible: false
+ }
+
+ PropertyChanges {
+ target: twitterLightNormal
+ visible: true
+ }
+
+ PropertyChanges {
+ target: twitterDarkNormal
+ visible: false
+ }
+ },
+ State {
+ name: "hover"
+ when: (StudioTheme.Values.style === 0
+ || StudioTheme.Values.style !== 0) && mouseArea.containsMouse
+ && !mouseArea.pressed
+
+ PropertyChanges {
+ target: twitterHover
+ visible: true
+ }
+
+ PropertyChanges {
+ target: twitterLightNormal
+ visible: false
+ }
+
+ PropertyChanges {
+ target: twitterDarkNormal
+ visible: false
+ }
+
+ PropertyChanges {
+ target: twitterButton
+ isHovered: true
+ }
+ },
+ State {
+ name: "pressed"
+ when: (StudioTheme.Values.style === 0
+ || StudioTheme.Values.style !== 0)
+ && (mouseArea.containsMouse || !mouseArea.containsMouse)
+ && mouseArea.pressed
+
+ PropertyChanges {
+ target: twitterHover
+ visible: true
+ scale: 1.1
+ }
+
+ PropertyChanges {
+ target: twitterLightNormal
+ visible: false
+ }
+
+ PropertyChanges {
+ target: twitterDarkNormal
+ visible: false
+ }
+
+ PropertyChanges {
+ target: twitterButton
+ isHovered: true
+ }
+ }
+ ]
+}
+
+/*##^##
+Designer {
+ D{i:0;formeditorZoom:16;height:15;width:25}
+}
+##^##*/
+
diff --git a/share/qtcreator/qmldesigner/welcomepage/ViewToggle.qml b/share/qtcreator/qmldesigner/welcomepage/ViewToggle.qml
new file mode 100644
index 0000000000..58e210ec55
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/ViewToggle.qml
@@ -0,0 +1,381 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** 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 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** 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.
+**
+****************************************************************************/
+
+import QtQuick
+import QtQuick.Controls
+import WelcomeScreen 1.0
+import QtQuick.Layouts 1.0
+
+Rectangle {
+ id: listGrid
+ width: 61
+ height: 25
+ color: Constants.currentNormalThumbnailBackground
+ border.color: "#00000000"
+ property bool viewDefault: true
+ state: "grid"
+
+ Rectangle {
+ id: divider
+ width: 1
+ height: 21
+ color: "#ffffff"
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+
+ Item {
+ id: listIcon
+ x: 40
+ y: 5
+
+ Rectangle {
+ id: l1
+ x: 0
+ y: 0
+ width: 14
+ height: 2
+ color: "#ffffff"
+ }
+
+ Rectangle {
+ id: l2
+ x: 0
+ y: 4
+ width: 14
+ height: 2
+ color: "#ffffff"
+ }
+
+ Rectangle {
+ id: l3
+ x: 0
+ y: 8
+ width: 14
+ height: 2
+ color: "#ffffff"
+ }
+
+ Rectangle {
+ id: l4
+ x: 0
+ y: 12
+ width: 14
+ height: 2
+ color: "#ffffff"
+ }
+ }
+
+ Item {
+ id: gridIcon
+ x: 7
+ y: 5
+ Rectangle {
+ id: l5
+ x: 0
+ y: 0
+ width: 6
+ height: 6
+ color: "#ffffff"
+ }
+
+ Rectangle {
+ id: l6
+ x: 8
+ y: 0
+ width: 6
+ height: 6
+ color: "#ffffff"
+ }
+
+ Rectangle {
+ id: l7
+ x: 8
+ y: 8
+ width: 6
+ height: 6
+ color: "#ffffff"
+ }
+
+ Rectangle {
+ id: l8
+ x: 0
+ y: 8
+ width: 6
+ height: 6
+ color: "#ffffff"
+ }
+ }
+
+ MouseArea {
+ id: mouseArea
+ anchors.fill: parent
+ hoverEnabled: true
+
+ Connections {
+ target: mouseArea
+ function onClicked(mouse) { listGrid.viewDefault = !listGrid.viewDefault }
+ }
+ }
+ states: [
+ State {
+ name: "grid"
+ when: listGrid.viewDefault && !mouseArea.containsMouse
+
+ PropertyChanges {
+ target: l5
+ color: Constants.currentBrand
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: l6
+ color: Constants.currentBrand
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: l8
+ color: Constants.currentBrand
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: l7
+ color: Constants.currentBrand
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: divider
+ color: Constants.currentGlobalText
+ }
+
+ PropertyChanges {
+ target: l1
+ color: Constants.currentGlobalText
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: l2
+ color: Constants.currentGlobalText
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: l3
+ color: Constants.currentGlobalText
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: l4
+ color: Constants.currentGlobalText
+ border.color: "#00000000"
+ }
+ },
+ State {
+ name: "list"
+ when: !listGrid.viewDefault && !mouseArea.containsMouse
+
+ PropertyChanges {
+ target: l5
+ color: Constants.currentGlobalText
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: l8
+ color: Constants.currentGlobalText
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: l6
+ color: Constants.currentGlobalText
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: l7
+ color: Constants.currentGlobalText
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: l1
+ color: Constants.currentBrand
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: l2
+ color: Constants.currentBrand
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: l3
+ color: Constants.currentBrand
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: l4
+ color: Constants.currentBrand
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: listGrid
+ color: Constants.currentNormalThumbnailBackground
+ }
+ },
+ State {
+ name: "gridHover"
+ when: mouseArea.containsMouse && listGrid.viewDefault
+ PropertyChanges {
+ target: l5
+ color: Constants.currentBrand
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: l6
+ color: Constants.currentBrand
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: l8
+ color: Constants.currentBrand
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: l7
+ color: Constants.currentBrand
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: divider
+ color: Constants.currentGlobalText
+ }
+
+ PropertyChanges {
+ target: l1
+ color: Constants.currentGlobalText
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: l2
+ color: Constants.currentGlobalText
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: l3
+ color: Constants.currentGlobalText
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: l4
+ color: Constants.currentGlobalText
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: listGrid
+ color: Constants.currentHoverThumbnailBackground
+ }
+ },
+ State {
+ name: "listHover"
+ when: mouseArea.containsMouse && !listGrid.viewDefault
+ PropertyChanges {
+ target: l5
+ color: Constants.currentGlobalText
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: l8
+ color: Constants.currentGlobalText
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: l6
+ color: Constants.currentGlobalText
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: l7
+ color: Constants.currentGlobalText
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: l1
+ color: Constants.currentBrand
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: l2
+ color: Constants.currentBrand
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: l3
+ color: Constants.currentBrand
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: l4
+ color: Constants.currentBrand
+ border.color: "#00000000"
+ }
+
+ PropertyChanges {
+ target: listGrid
+ color: Constants.currentHoverThumbnailBackground
+ }
+ }
+ ]
+}
+
+/*##^##
+Designer {
+ D{i:0;height:25;width:61}
+}
+##^##*/
diff --git a/share/qtcreator/qmldesigner/welcomepage/WelcomePage.qml b/share/qtcreator/qmldesigner/welcomepage/WelcomePage.qml
new file mode 100644
index 0000000000..a259f80f5e
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/WelcomePage.qml
@@ -0,0 +1,58 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** 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 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** 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.
+**
+****************************************************************************/
+
+import QtQuick 2.15
+import QtQuick.Controls
+import WelcomeScreen 1.0
+import QtQuick.Layouts
+import StudioControls 1.0 as StudioControls
+import projectmodel 1.0
+
+Item {
+ id: appFrame
+ clip: true
+ width: Constants.width
+ height: Constants.height
+ MainScreen {
+ id: screen
+ anchors.fill: parent
+ anchors.leftMargin: screen.designMode ? 0 : -45 //hide sidebar
+ }
+
+ property int pageIndex: 0
+ property int minimumWidth: 1200
+ property int minimumHeight: 720
+
+ onHeightChanged: {
+ if (appFrame.height > appFrame.minimumHeight) anchors.fill = parent
+ else if (appFrame.height < appBackground.minimumHeight) appFrame.height = appFrame.minimumHeight
+ console.log ("checked min height " + appFrame.height)
+ }
+ onWidthChanged: {
+ if (appFrame.width > appFrame.minimumWidth) anchors.fill = parent
+ else if (appFrame.width < appFrame.minimumWidth) appFrame.width = appFrame.minimumWidth
+ console.log ("checked min width " + appFrame.width)
+ }
+}
diff --git a/share/qtcreator/qmldesigner/welcomepage/WelcomeScreen.qmlproject b/share/qtcreator/qmldesigner/welcomepage/WelcomeScreen.qmlproject
new file mode 100644
index 0000000000..518f398760
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/WelcomeScreen.qmlproject
@@ -0,0 +1,48 @@
+/* File generated by Qt Creator */
+
+import QmlProject 1.1
+
+Project {
+ mainFile: "WelcomePage.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"
+ QT_LOGGING_RULES: "qt.qml.connections=false"
+ }
+
+ qt6Project: true
+
+ /* List of plugin directories passed to QML runtime */
+ importPaths: [ "imports", "studioImports", "asset_imports", "mockData" ]
+
+ /* Required for deployment */
+ targetDirectory: "/opt/WelcomeScreen"
+}
diff --git a/share/qtcreator/qmldesigner/welcomepage/YoutubeButton.qml b/share/qtcreator/qmldesigner/welcomepage/YoutubeButton.qml
new file mode 100644
index 0000000000..062ea10407
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/YoutubeButton.qml
@@ -0,0 +1,256 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** 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 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** 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.
+**
+****************************************************************************/
+
+import QtQuick 2.15
+import QtQuick.Controls 2.12
+import WelcomeScreen 1.0
+import StudioTheme 1.0 as StudioTheme
+
+Item {
+ id: youtubeButton
+ property bool isHovered: false
+ state: "darkNormal"
+
+ Image {
+ id: youtubeDarkNormal
+ anchors.fill: parent
+ source: "images/youtubeDarkNormal.png"
+ fillMode: Image.PreserveAspectFit
+ }
+
+ Image {
+ id: youtubeLightNormal
+ anchors.fill: parent
+ source: "images/youtubeLightNormal.png"
+ fillMode: Image.PreserveAspectFit
+ }
+
+ Image {
+ id: youtubeLightHover
+ anchors.fill: parent
+ source: "images/youtubeLightHover.png"
+ fillMode: Image.PreserveAspectFit
+ }
+
+ Image {
+ id: youtubeDarkHover
+ anchors.fill: parent
+ source: "images/youtubeDarkHover.png"
+ fillMode: Image.PreserveAspectFit
+ }
+
+ MouseArea {
+ id: mouseArea
+ anchors.fill: parent
+ hoverEnabled: true
+
+ Connections {
+ target: mouseArea
+ function onClicked(mouse) { Qt.openUrlExternally("https://www.youtube.com/user/QtStudios/") }
+ }
+ }
+ states: [
+ State {
+ name: "darkNormal"
+ when: StudioTheme.Values.style === 0 && !mouseArea.containsMouse
+ && !mouseArea.pressed
+
+ PropertyChanges {
+ target: youtubeDarkNormal
+ visible: true
+ }
+
+ PropertyChanges {
+ target: youtubeLightNormal
+ visible: false
+ }
+
+ PropertyChanges {
+ target: youtubeLightHover
+ visible: false
+ }
+
+ PropertyChanges {
+ target: youtubeDarkHover
+ visible: false
+ }
+ },
+ State {
+ name: "lightNormal"
+ when: StudioTheme.Values.style !== 0 && !mouseArea.containsMouse
+ && !mouseArea.pressed
+
+ PropertyChanges {
+ target: youtubeDarkHover
+ visible: false
+ }
+
+ PropertyChanges {
+ target: youtubeLightHover
+ visible: false
+ }
+
+ PropertyChanges {
+ target: youtubeLightNormal
+ visible: true
+ }
+
+ PropertyChanges {
+ target: youtubeDarkNormal
+ visible: false
+ }
+ },
+ State {
+ name: "darkHover"
+ when: StudioTheme.Values.style === 0 && mouseArea.containsMouse
+ && !mouseArea.pressed
+
+ PropertyChanges {
+ target: youtubeDarkNormal
+ visible: false
+ }
+
+ PropertyChanges {
+ target: youtubeLightNormal
+ visible: false
+ }
+
+ PropertyChanges {
+ target: youtubeLightHover
+ visible: false
+ }
+
+ PropertyChanges {
+ target: youtubeDarkHover
+ visible: true
+ }
+ PropertyChanges {
+ target: youtubeButton
+ isHovered: true
+ }
+ },
+ State {
+ name: "lightHover"
+ when: StudioTheme.Values.style !== 0 && mouseArea.containsMouse
+ && !mouseArea.pressed
+
+ PropertyChanges {
+ target: youtubeDarkHover
+ visible: false
+ }
+
+ PropertyChanges {
+ target: youtubeLightHover
+ visible: true
+ }
+
+ PropertyChanges {
+ target: youtubeLightNormal
+ visible: false
+ }
+
+ PropertyChanges {
+ target: youtubeDarkNormal
+ visible: false
+ }
+
+ PropertyChanges {
+ target: youtubeButton
+ isHovered: true
+ }
+ },
+ State {
+ name: "darkPressed"
+ when: StudioTheme.Values.style === 0
+ && (mouseArea.containsMouse || !mouseArea.containsMouse)
+ && mouseArea.pressed
+
+ PropertyChanges {
+ target: youtubeDarkHover
+ visible: true
+ scale: 1.1
+ }
+
+ PropertyChanges {
+ target: youtubeLightHover
+ visible: false
+ }
+
+ PropertyChanges {
+ target: youtubeLightNormal
+ visible: false
+ }
+
+ PropertyChanges {
+ target: youtubeDarkNormal
+ visible: false
+ }
+
+ PropertyChanges {
+ target: youtubeButton
+ isHovered: true
+ }
+ },
+ State {
+ name: "lightPressed"
+ when: StudioTheme.Values.style !== 0
+ && (mouseArea.containsMouse || !mouseArea.containsMouse)
+ && mouseArea.pressed
+
+ PropertyChanges {
+ target: youtubeDarkHover
+ visible: false
+ }
+
+ PropertyChanges {
+ target: youtubeLightHover
+ visible: true
+ scale: 1.1
+ }
+
+ PropertyChanges {
+ target: youtubeLightNormal
+ visible: false
+ }
+
+ PropertyChanges {
+ target: youtubeDarkNormal
+ visible: false
+ }
+
+ PropertyChanges {
+ target: youtubeButton
+ isHovered: true
+ }
+ }
+ ]
+}
+
+/*##^##
+Designer {
+ D{i:0;autoSize:true;formeditorColor:"#000000";formeditorZoom:1.5;height:480;width:640}
+}
+##^##*/
+
diff --git a/share/qtcreator/qmldesigner/welcomepage/fonts/fonts.txt b/share/qtcreator/qmldesigner/welcomepage/fonts/fonts.txt
new file mode 100644
index 0000000000..ab96122067
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/fonts/fonts.txt
@@ -0,0 +1 @@
+Fonts in this folder are loaded automatically.
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_animatedImage.png b/share/qtcreator/qmldesigner/welcomepage/images/Qt_QT_animatedImage.png
index b374319a3e..b374319a3e 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_animatedImage.png
+++ b/share/qtcreator/qmldesigner/welcomepage/images/Qt_QT_animatedImage.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_bindings.png b/share/qtcreator/qmldesigner/welcomepage/images/Qt_QT_bindings.png
index a750dce19a..a750dce19a 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_bindings.png
+++ b/share/qtcreator/qmldesigner/welcomepage/images/Qt_QT_bindings.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_interactive3d.png b/share/qtcreator/qmldesigner/welcomepage/images/Qt_QT_interactive3d.png
index 28c05655ce..28c05655ce 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_interactive3d.png
+++ b/share/qtcreator/qmldesigner/welcomepage/images/Qt_QT_interactive3d.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_nav.png b/share/qtcreator/qmldesigner/welcomepage/images/Qt_QT_nav.png
index 50cc98b56b..50cc98b56b 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_nav.png
+++ b/share/qtcreator/qmldesigner/welcomepage/images/Qt_QT_nav.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_sliderControl.png b/share/qtcreator/qmldesigner/welcomepage/images/Qt_QT_sliderControl.png
index 158dfa7dd7..158dfa7dd7 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_sliderControl.png
+++ b/share/qtcreator/qmldesigner/welcomepage/images/Qt_QT_sliderControl.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_textElement.png b/share/qtcreator/qmldesigner/welcomepage/images/Qt_QT_textElement.png
index 784a3c57ba..784a3c57ba 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_textElement.png
+++ b/share/qtcreator/qmldesigner/welcomepage/images/Qt_QT_textElement.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/bridging_the_gap.png b/share/qtcreator/qmldesigner/welcomepage/images/bridging_the_gap.png
index 2702abf417..2702abf417 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/images/bridging_the_gap.png
+++ b/share/qtcreator/qmldesigner/welcomepage/images/bridging_the_gap.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/coffeemachinedemo_thumbnail.png b/share/qtcreator/qmldesigner/welcomepage/images/coffeemachinedemo_thumbnail.png
index ced7ae80d1..ced7ae80d1 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/images/coffeemachinedemo_thumbnail.png
+++ b/share/qtcreator/qmldesigner/welcomepage/images/coffeemachinedemo_thumbnail.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/cppdemo_thumbnail.png b/share/qtcreator/qmldesigner/welcomepage/images/cppdemo_thumbnail.png
index f92be7f50f..f92be7f50f 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/images/cppdemo_thumbnail.png
+++ b/share/qtcreator/qmldesigner/welcomepage/images/cppdemo_thumbnail.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/designer_and_developers.png b/share/qtcreator/qmldesigner/welcomepage/images/designer_and_developers.png
index 870a597282..870a597282 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/images/designer_and_developers.png
+++ b/share/qtcreator/qmldesigner/welcomepage/images/designer_and_developers.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/digital_cluster_thumbnail.png b/share/qtcreator/qmldesigner/welcomepage/images/digital_cluster_thumbnail.png
index afad8c8c7b..afad8c8c7b 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/images/digital_cluster_thumbnail.png
+++ b/share/qtcreator/qmldesigner/welcomepage/images/digital_cluster_thumbnail.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/welcomepage/images/ds.png b/share/qtcreator/qmldesigner/welcomepage/images/ds.png
new file mode 100644
index 0000000000..7609c09ae5
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/images/ds.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/ebike_demo_thumbnail.png b/share/qtcreator/qmldesigner/welcomepage/images/ebike_demo_thumbnail.png
index 67cf3b9bff..67cf3b9bff 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/images/ebike_demo_thumbnail.png
+++ b/share/qtcreator/qmldesigner/welcomepage/images/ebike_demo_thumbnail.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/effectdemo_thumbnail.png b/share/qtcreator/qmldesigner/welcomepage/images/effectdemo_thumbnail.png
index 505c02e88e..505c02e88e 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/images/effectdemo_thumbnail.png
+++ b/share/qtcreator/qmldesigner/welcomepage/images/effectdemo_thumbnail.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/gettingStarted_3dComponents.png b/share/qtcreator/qmldesigner/welcomepage/images/gettingStarted_3dComponents.png
index 9708bff083..9708bff083 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/images/gettingStarted_3dComponents.png
+++ b/share/qtcreator/qmldesigner/welcomepage/images/gettingStarted_3dComponents.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/gettingStarted_newProject.png b/share/qtcreator/qmldesigner/welcomepage/images/gettingStarted_newProject.png
index 812b412b0a..812b412b0a 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/images/gettingStarted_newProject.png
+++ b/share/qtcreator/qmldesigner/welcomepage/images/gettingStarted_newProject.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/gettingStarted_shaders.png b/share/qtcreator/qmldesigner/welcomepage/images/gettingStarted_shaders.png
index 70e1774704..70e1774704 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/images/gettingStarted_shaders.png
+++ b/share/qtcreator/qmldesigner/welcomepage/images/gettingStarted_shaders.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/highendivi_thumbnail.png b/share/qtcreator/qmldesigner/welcomepage/images/highendivi_thumbnail.png
index 5428c80776..5428c80776 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/images/highendivi_thumbnail.png
+++ b/share/qtcreator/qmldesigner/welcomepage/images/highendivi_thumbnail.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/welcomepage/images/newThumbnail.png b/share/qtcreator/qmldesigner/welcomepage/images/newThumbnail.png
new file mode 100644
index 0000000000..bcc2dccdd2
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/images/newThumbnail.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/welcomepage/images/particles_thumbnail.png b/share/qtcreator/qmldesigner/welcomepage/images/particles_thumbnail.png
new file mode 100644
index 0000000000..f3014ab054
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/images/particles_thumbnail.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/welcomepage/images/place_holder.png b/share/qtcreator/qmldesigner/welcomepage/images/place_holder.png
new file mode 100644
index 0000000000..96e7e63796
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/images/place_holder.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/progressbar_demo.png b/share/qtcreator/qmldesigner/welcomepage/images/progressbar_demo.png
index b1af2d8f41..b1af2d8f41 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/images/progressbar_demo.png
+++ b/share/qtcreator/qmldesigner/welcomepage/images/progressbar_demo.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/qtws_video_thumbnail.png b/share/qtcreator/qmldesigner/welcomepage/images/qtws_video_thumbnail.png
index e24783aee0..e24783aee0 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/images/qtws_video_thumbnail.png
+++ b/share/qtcreator/qmldesigner/welcomepage/images/qtws_video_thumbnail.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/sidemenu_demo.png b/share/qtcreator/qmldesigner/welcomepage/images/sidemenu_demo.png
index b577ed4a0d..b577ed4a0d 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/images/sidemenu_demo.png
+++ b/share/qtcreator/qmldesigner/welcomepage/images/sidemenu_demo.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/sketchTutorial_1.png b/share/qtcreator/qmldesigner/welcomepage/images/sketchTutorial_1.png
index 2285b93d64..2285b93d64 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/images/sketchTutorial_1.png
+++ b/share/qtcreator/qmldesigner/welcomepage/images/sketchTutorial_1.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/sketchTutorial_2.png b/share/qtcreator/qmldesigner/welcomepage/images/sketchTutorial_2.png
index fec8c65ea3..fec8c65ea3 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/images/sketchTutorial_2.png
+++ b/share/qtcreator/qmldesigner/welcomepage/images/sketchTutorial_2.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/welcomepage/images/thermo_thumbnail.png b/share/qtcreator/qmldesigner/welcomepage/images/thermo_thumbnail.png
new file mode 100644
index 0000000000..48bd48b8ce
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/images/thermo_thumbnail.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/welcomepage/images/thumbnailImage.png b/share/qtcreator/qmldesigner/welcomepage/images/thumbnailImage.png
new file mode 100644
index 0000000000..247a839261
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/images/thumbnailImage.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/thumbnail_test.png b/share/qtcreator/qmldesigner/welcomepage/images/thumbnail_test.png
index 3c4834e644..3c4834e644 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/images/thumbnail_test.png
+++ b/share/qtcreator/qmldesigner/welcomepage/images/thumbnail_test.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/tutorialclusterdemo_thumbnail.png b/share/qtcreator/qmldesigner/welcomepage/images/tutorialclusterdemo_thumbnail.png
index 925a1247ca..925a1247ca 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/images/tutorialclusterdemo_thumbnail.png
+++ b/share/qtcreator/qmldesigner/welcomepage/images/tutorialclusterdemo_thumbnail.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/welcomepage/images/twitterDarkNormal.png b/share/qtcreator/qmldesigner/welcomepage/images/twitterDarkNormal.png
new file mode 100644
index 0000000000..43ffc01d68
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/images/twitterDarkNormal.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/welcomepage/images/twitterHover.png b/share/qtcreator/qmldesigner/welcomepage/images/twitterHover.png
new file mode 100644
index 0000000000..1e3af5d602
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/images/twitterHover.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/welcomepage/images/twitterLightNormal.png b/share/qtcreator/qmldesigner/welcomepage/images/twitterLightNormal.png
new file mode 100644
index 0000000000..9061e201c7
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/images/twitterLightNormal.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/virtualkeyboard_thumbnail.png b/share/qtcreator/qmldesigner/welcomepage/images/virtualkeyboard_thumbnail.png
index 20471299a9..20471299a9 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/images/virtualkeyboard_thumbnail.png
+++ b/share/qtcreator/qmldesigner/welcomepage/images/virtualkeyboard_thumbnail.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/washingmachinedemo_thumbnail.png b/share/qtcreator/qmldesigner/welcomepage/images/washingmachinedemo_thumbnail.png
index b5246626c5..b5246626c5 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/images/washingmachinedemo_thumbnail.png
+++ b/share/qtcreator/qmldesigner/welcomepage/images/washingmachinedemo_thumbnail.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/webinar1.png b/share/qtcreator/qmldesigner/welcomepage/images/webinar1.png
index ba24ffc3bf..ba24ffc3bf 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/images/webinar1.png
+++ b/share/qtcreator/qmldesigner/welcomepage/images/webinar1.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/webinar2.png b/share/qtcreator/qmldesigner/welcomepage/images/webinar2.png
index 325c7cdc33..325c7cdc33 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/images/webinar2.png
+++ b/share/qtcreator/qmldesigner/welcomepage/images/webinar2.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/webinardemo_thumbnail.png b/share/qtcreator/qmldesigner/welcomepage/images/webinardemo_thumbnail.png
index 3cd777ab3f..3cd777ab3f 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/images/webinardemo_thumbnail.png
+++ b/share/qtcreator/qmldesigner/welcomepage/images/webinardemo_thumbnail.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/what_is_new_15.png b/share/qtcreator/qmldesigner/welcomepage/images/what_is_new_15.png
index 8fb3f07287..8fb3f07287 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/images/what_is_new_15.png
+++ b/share/qtcreator/qmldesigner/welcomepage/images/what_is_new_15.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/welcomepage/images/youtubeDarkHover.png b/share/qtcreator/qmldesigner/welcomepage/images/youtubeDarkHover.png
new file mode 100644
index 0000000000..4ccb6ae7da
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/images/youtubeDarkHover.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/welcomepage/images/youtubeDarkNormal.png b/share/qtcreator/qmldesigner/welcomepage/images/youtubeDarkNormal.png
new file mode 100644
index 0000000000..b1cad2bbd7
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/images/youtubeDarkNormal.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/welcomepage/images/youtubeLightHover.png b/share/qtcreator/qmldesigner/welcomepage/images/youtubeLightHover.png
new file mode 100644
index 0000000000..7f1ad3eeb1
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/images/youtubeLightHover.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/welcomepage/images/youtubeLightNormal.png b/share/qtcreator/qmldesigner/welcomepage/images/youtubeLightNormal.png
new file mode 100644
index 0000000000..1110770d33
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/images/youtubeLightNormal.png
Binary files differ
diff --git a/share/qtcreator/qmldesigner/welcomepage/imports/WelcomeScreen/Constants.qml b/share/qtcreator/qmldesigner/welcomepage/imports/WelcomeScreen/Constants.qml
new file mode 100644
index 0000000000..c7b947817a
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/imports/WelcomeScreen/Constants.qml
@@ -0,0 +1,212 @@
+
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of Qt Creator.
+**
+** 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 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** 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.
+**
+****************************************************************************/
+pragma Singleton
+
+import QtQuick
+import StudioTheme 1.0
+import projectmodel 1.0
+
+QtObject {
+ readonly property int width: 1920
+ readonly property int height: 1080
+ property bool communityEdition: false
+
+ 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
+ }
+
+ property var projectModel: ProjectModel {}
+
+ ///THEME
+
+ /// theme selector
+ property int currentTheme: 0
+ property bool defaultBrand: true
+ property bool basic: true
+ /// theme selector
+
+ /// list view
+ property bool isListView: false
+
+ /// Current theme - USE THESE IN YOUR PROPERTY BINGINGS!
+
+ ////BRAND
+ property string currentBrand: if (defaultBrand) {
+ //console.log ("qds brand" + currentBrand)
+ currentBrand: qdsBrand
+ } else if (!defaultBrand) {
+ //console.log ("creatorBrand" + currentBrand)
+ currentBrand: creatorBrand
+ }
+ ////BRAND
+
+ ////TEXT
+ property color currentGlobalText: Values.themeTextColor
+
+ property color currentActiveGlobalText: "#ffffff"
+
+ property string brandGlobalText: if (defaultBrand) {
+ //console.log ("dark theme" + brandGlobalText)
+ brandGlobalText: qdsGlobalText
+ } else if (!defaultBrand) {
+ //console.log ("light theme" + brandGlobalText)
+ brandGlobalText: creatorGlobalText
+ }
+ ////TEXT
+
+ ////BACKGROUND
+ property color currentThemeBackground: Values.welcomeScreenBackground
+
+ property string modeBarCurrent: if (currentTheme === 0) {
+ //console.log ("dark theme" + modeBarCurrent)
+ modeBarCurrent: modeBarDark
+ } else if (currentTheme == 1) {
+ //console.log ("light theme" + modeBarCurrent)
+ modeBarCurrent: modeBarMid
+ } else if (currentTheme == 2) {
+ //console.log ("light theme" + modeBarCurrent)
+ modeBarCurrent: modeBarLight
+ }
+ ////BACKGROUND
+
+ ////BUTTONS
+ property color currentPushButtonNormalBackground: Values.themeControlBackground
+
+ property color currentPushButtonHoverBackground: Values.themeControlBackgroundHover
+
+ property string currentPushButtonNormalOutline: Values.themeControlOutline
+
+ property string currentPushButtonHoverOutline: Values.themeControlOutline
+
+ ////THUMBNAILS
+ property color currentThumbnailGridBackground: Values.themeSubPanelBackground
+
+ property color currentNormalThumbnailBackground: Values.themeThumbnailBackground
+
+ property color currentNormalThumbnailLabelBackground: Values.themeThumbnailLabelBackground
+
+ property color currentHoverThumbnailLabelBackground: Values.themeControlBackgroundInteraction
+
+ property color currentHoverThumbnailBackground: Values.themeControlBackgroundGlobalHover
+
+ ////THUMBNAILS
+
+ ///GLOBAL COLORS///
+
+ ///brand
+ property string creatorBrand: "#54D263"
+ property string qdsBrand: "#2e769e"
+ ///brand
+
+ /// DARK THEME COLORS ///
+ property string darkBackground: "#242424"
+ property string modeBarDark: "#414141"
+
+ ///globalText
+ property string darkGlobalText: "#ffffff"
+ property string darkActiveGlobalText: "#111111"
+ property string qdsGlobalText: "#ffffff"
+ property string creatorGlobalText: "#111111"
+ ///globalText
+
+ ///button
+ property string darkPushButtonNormalBackground: "#323232"
+ property string darkPushButtonNormalOutline: "#000000"
+ property string darkPushButtonHoverBackground: "#474747"
+ property string darkPushButtonHoverOutline: "#000000"
+ ///button
+
+ ///thumbnails
+ property string darkThumbnailGridBackground: "#040404"
+ property string darkNormalThumbnailBackground: "#292929"
+ property string darkNormalThumbnailLabelBackground: "#3D3D3D"
+ property string darkHoverThumbnailBackground: "#323232"
+ property string darkHoverThumbnailLabelBackground: "#474747"
+ ///thumbnails
+
+ /// MID THEME COLORS ///
+ property string midBackground: "#514e48"
+ property string modeBarMid: "#737068"
+
+ ///globalText
+ property string midGlobalText: "#ffffff"
+ property string midActiveGlobalText: "#111111"
+ ///globalText
+
+ ///button
+ property string midPushButtonNormalBackground: "#43413c"
+ property string midPushButtonNormalOutline: "#636058"
+ property string midPushButtonHoverBackground: "#504D47"
+ property string midPushButtonHoverOutline: "#737068"
+ ///button
+
+ ///thumbnails
+ property string midThumbnailGridBackground: "#383732"
+ property string midNormalThumbnailBackground: "#514e48"
+ property string midNormalThumbnailLabelBackground: "#43413c"
+ property string midHoverThumbnailBackground: "#5B5851"
+ property string midHoverThumbnailLabelBackground: "#43413c"
+ ///thumbnails
+
+ /// LIGHT THEME COLORS ///
+ property string lightBackground: "#EAEAEA"
+ property string modeBarLight: "#D1CFCF"
+
+ ///globalText
+ property string lightGlobalText: "#111111"
+ property string lightActiveGlobalText: "#ffffff"
+ ///globalText
+
+ ///button
+ property string lightPushButtonNormalBackground: "#eaeaea"
+ property string lightPushButtonNormalOutline: "#CACECE"
+ property string lightPushButtonHoverBackground: "#E5E5E5"
+ property string lightPushButtonHoverOutline: "#CACECE"
+ ///button
+
+ ///thumbnails
+ property string lightThumbnailGridBackground: "#EFEFEF"
+ property string lightNormalThumbnailBackground: "#F2F2F2"
+ property string lightNormalThumbnailLabelBackground: "#EBEBEB"
+ property string lightHoverThumbnailBackground: "#EAEAEA"
+ property string lightHoverThumbnailLabelBackground: "#E1E1E1"
+ ///thumbnails
+}
diff --git a/src/plugins/studiowelcome/qml/welcomepage/MyButton.qml b/share/qtcreator/qmldesigner/welcomepage/imports/WelcomeScreen/DirectoryFontLoader.qml
index a73191350e..16a3058a83 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/MyButton.qml
+++ b/share/qtcreator/qmldesigner/welcomepage/imports/WelcomeScreen/DirectoryFontLoader.qml
@@ -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 Creator.
@@ -23,37 +23,34 @@
**
****************************************************************************/
-import QtQuick 2.9
-import QtQuick.Templates 2.3
-import welcome 1.0
-import StudioFonts 1.0
+import QtQuick
+import Qt.labs.folderlistmodel
-Button {
- id: button
+QtObject {
+ id: loader
- property color hoverColor: Constants.textHoverColor
- property color defaultColor: Constants.textDefaultColor
- property color checkedColor: Constants.textDefaultColor
+ property url fontDirectory: Qt.resolvedUrl("../../" + relativeFontDirectory)
+ property string relativeFontDirectory: "fonts"
- text: "test"
-
- implicitWidth: background.width
- implicitHeight: background.height
-
- contentItem: Text {
- id: textButton
- text: button.text
-
- color: checked ? button.checkedColor :
- button.hovered ? button.hoverColor :
- button.defaultColor
- font.family: StudioFonts.titilliumWeb_regular
- renderType: Text.NativeRendering
- font.pixelSize: 18
+ function loadFont(url) {
+ var fontLoader = Qt.createQmlObject('import QtQuick 2.15; FontLoader { source: "' + url + '"; }',
+ loader,
+ "dynamicFontLoader");
}
- background: Item {
- width: textButton.implicitWidth
- height: textButton.implicitHeight
+ property FolderListModel folderModel: FolderListModel {
+ id: folderModel
+ folder: loader.fontDirectory
+ nameFilters: [ "*.ttf", "*.otf" ]
+ showDirs: false
+
+ onStatusChanged: {
+ if (folderModel.status == FolderListModel.Ready) {
+ var i
+ for (i = 0; i < count; i++) {
+ loadFont(folderModel.get(i, "fileURL"))
+ }
+ }
+ }
}
}
diff --git a/src/plugins/studiowelcome/qml/welcomepage/MyTabButton.qml b/share/qtcreator/qmldesigner/welcomepage/imports/WelcomeScreen/EventListModel.qml
index 420b3a2b67..bc6953c63d 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/MyTabButton.qml
+++ b/share/qtcreator/qmldesigner/welcomepage/imports/WelcomeScreen/EventListModel.qml
@@ -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 Creator.
@@ -23,11 +23,15 @@
**
****************************************************************************/
-import QtQuick 2.9
+import QtQuick
-MyButton {
- checkable: true
- autoExclusive: true
- defaultColor: "#686868"
- hoverColor: "#79797C"
+ListModel {
+ id: eventListModel
+
+ ListElement {
+ eventId: "enterPressed"
+ eventDescription: "Emitted when pressing the enter button"
+ shortcut: "Return"
+ parameters: "Enter"
+ }
}
diff --git a/src/plugins/studiowelcome/qml/welcomepage/imports/welcome/Constants.qml b/share/qtcreator/qmldesigner/welcomepage/imports/WelcomeScreen/EventListSimulator.qml
index 84f8da8d10..a9b8578c7f 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/imports/welcome/Constants.qml
+++ b/share/qtcreator/qmldesigner/welcomepage/imports/WelcomeScreen/EventListSimulator.qml
@@ -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 Creator.
@@ -23,15 +23,25 @@
**
****************************************************************************/
-pragma Singleton
-
-import QtQuick 2.6
-import StudioFonts 1.0
+import QtQuick
+import QtQuick.Studio.EventSimulator 1.0
+import QtQuick.Studio.EventSystem 1.0
QtObject {
- readonly property color backgroundColor: "#443224"
+ id: simulator
+ property bool active: true
- readonly property color textDefaultColor: "#b9b9ba"
+ property Timer __timer: Timer {
+ id: timer
+ interval: 100
+ onTriggered: {
+ EventSimulator.show()
+ }
+ }
- readonly property color textHoverColor: "#ffffff"
+ Component.onCompleted: {
+ EventSystem.init(Qt.resolvedUrl("EventListModel.qml"))
+ if (simulator.active)
+ timer.start()
+ }
}
diff --git a/share/qtcreator/qmldesigner/welcomepage/imports/WelcomeScreen/designer/plugin.metainfo b/share/qtcreator/qmldesigner/welcomepage/imports/WelcomeScreen/designer/plugin.metainfo
new file mode 100644
index 0000000000..680b425c54
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/imports/WelcomeScreen/designer/plugin.metainfo
@@ -0,0 +1,13 @@
+MetaInfo {
+ Type {
+ name: "WelcomeScreen.EventListSimulator"
+ icon: ":/qtquickplugin/images/item-icon16.png"
+
+ Hints {
+ visibleInNavigator: true
+ canBeDroppedInNavigator: true
+ canBeDroppedInFormEditor: false
+ canBeDroppedInView3D: false
+ }
+ }
+}
diff --git a/share/qtcreator/qmldesigner/welcomepage/imports/WelcomeScreen/qmldir b/share/qtcreator/qmldesigner/welcomepage/imports/WelcomeScreen/qmldir
new file mode 100644
index 0000000000..6984623730
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/imports/WelcomeScreen/qmldir
@@ -0,0 +1,2 @@
+singleton Constants 1.0 Constants.qml
+EventListSimulator 1.0 EventListSimulator.qml
diff --git a/src/plugins/studiowelcome/qml/welcomepage/mockData/usagestatistics/UsageStatisticModel.qml b/share/qtcreator/qmldesigner/welcomepage/main.qml
index c19250f214..c358ebe797 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/mockData/usagestatistics/UsageStatisticModel.qml
+++ b/share/qtcreator/qmldesigner/welcomepage/main.qml
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2020 The Qt Company Ltd.
+** Copyright (C) 2021 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qt Creator.
@@ -23,8 +23,8 @@
**
****************************************************************************/
-import QtQuick 2.0
+import QtQuick
+
+MainScreen {
-QtObject {
- property bool usageStatisticEnabled: false
}
diff --git a/share/qtcreator/qmldesigner/welcomepage/qtquickcontrols2.conf b/share/qtcreator/qmldesigner/welcomepage/qtquickcontrols2.conf
new file mode 100644
index 0000000000..db9486764e
--- /dev/null
+++ b/share/qtcreator/qmldesigner/welcomepage/qtquickcontrols2.conf
@@ -0,0 +1,2 @@
+[Controls]
+Style=Basic
diff --git a/share/qtcreator/themes/dark.creatortheme b/share/qtcreator/themes/dark.creatortheme
index 7771dd876b..5d62a28a00 100644
--- a/share/qtcreator/themes/dark.creatortheme
+++ b/share/qtcreator/themes/dark.creatortheme
@@ -25,6 +25,11 @@ qmlDesignerButtonColor=ff3c3e40
;DS controls theme START
DSpanelBackground=ff323232
+DSwelcomeScreenBackground=ff242424
+DSsubPanelBackground=ff040404
+DSthumbnailBackground=ff292929
+DSthumbnailLabelBackground=ff3D3D3D
+
DSinteraction=ff2aafd3
DSerrorColor=ffdf3a3a
DSwarningColor=warning
diff --git a/share/qtcreator/themes/default.creatortheme b/share/qtcreator/themes/default.creatortheme
index 63146feb88..1fe39754d3 100644
--- a/share/qtcreator/themes/default.creatortheme
+++ b/share/qtcreator/themes/default.creatortheme
@@ -16,6 +16,10 @@ qmlDesignerButtonColor=ff4c4e50
;DS controls theme START
DSpanelBackground=ffeaeaea
+DSwelcomeScreenBackground=ffEAEAEA
+DSsubPanelBackground=ffEFEFEF
+DSthumbnailBackground=ffF2F2F2
+DSthumbnailLabelBackground=ffEBEBEB
DSinteraction=ff2aafd3
DSerrorColor=ffdf3a3a
DSwarningColor=warning
diff --git a/share/qtcreator/themes/design-light.creatortheme b/share/qtcreator/themes/design-light.creatortheme
index 4ee6c5166f..25b83f151d 100644
--- a/share/qtcreator/themes/design-light.creatortheme
+++ b/share/qtcreator/themes/design-light.creatortheme
@@ -30,6 +30,11 @@ backgroundColorDisabled=ff8e8e8e
;DS controls theme START
DSpanelBackground=ffeaeaea
+DSwelcomeScreenBackground=ffEAEAEA
+DSsubPanelBackground=ffEFEFEF
+DSthumbnailBackground=ffF2F2F2
+DSthumbnailLabelBackground=ffEBEBEB
+
DSinteraction=ff2aafd3
DSerrorColor=ffdf3a3a
DSwarningColor=warning
diff --git a/share/qtcreator/themes/design.creatortheme b/share/qtcreator/themes/design.creatortheme
index 54b8bd0ad0..882b69fd36 100644
--- a/share/qtcreator/themes/design.creatortheme
+++ b/share/qtcreator/themes/design.creatortheme
@@ -27,6 +27,11 @@ backgroundColorDisabled=ff444444
;DS controls theme START
DSpanelBackground=ff323232
+DSwelcomeScreenBackground=ff242424
+DSsubPanelBackground=ff040404
+DSthumbnailBackground=ff292929
+DSthumbnailLabelBackground=ff3D3D3D
+
DSinteraction=ff2aafd3
DSerrorColor=ffdf3a3a
DSwarningColor=warning
diff --git a/share/qtcreator/themes/flat.creatortheme b/share/qtcreator/themes/flat.creatortheme
index b4769cbe74..59c21dd705 100644
--- a/share/qtcreator/themes/flat.creatortheme
+++ b/share/qtcreator/themes/flat.creatortheme
@@ -23,6 +23,11 @@ qmlDesignerButtonColor=ff4c4e50
;DS controls theme START
DSpanelBackground=ff323232
+DSwelcomeScreenBackground=ff242424
+DSsubPanelBackground=ff040404
+DSthumbnailBackground=ff292929
+DSthumbnailLabelBackground=ff3D3D3D
+
DSinteraction=ff2aafd3
DSerrorColor=ffdf3a3a
DSwarningColor=warning
diff --git a/src/libs/utils/theme/theme.h b/src/libs/utils/theme/theme.h
index 3f3249d71e..f971a384b9 100644
--- a/src/libs/utils/theme/theme.h
+++ b/src/libs/utils/theme/theme.h
@@ -426,7 +426,12 @@ public:
DSBackgroundColorNormal,
DSBackgroundColorAlternate,
- DSUnimportedModuleColor
+ DSUnimportedModuleColor,
+
+ DSwelcomeScreenBackground,
+ DSsubPanelBackground,
+ DSthumbnailBackground,
+ DSthumbnailLabelBackground,
};
enum Gradient {
diff --git a/src/plugins/studiowelcome/qml/welcomepage/HoverOverDesaturate.qml b/src/plugins/studiowelcome/qml/welcomepage/HoverOverDesaturate.qml
deleted file mode 100644
index 18e645c324..0000000000
--- a/src/plugins/studiowelcome/qml/welcomepage/HoverOverDesaturate.qml
+++ /dev/null
@@ -1,215 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt Creator.
-**
-** 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 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** 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.
-**
-****************************************************************************/
-
-import QtQuick 2.9
-import QtQuick.Timeline 1.0
-import welcome 1.0
-import StudioFonts 1.0
-
-Item {
- id: root
- visible: true
- width: 270
- height: 175
- property alias imageSource: image.source
- property alias labelText: label.text
-
- property alias downloadIcon: downloadCloud.visible
-
- signal clicked()
-
- onVisibleChanged: {
- animateOpacity.start()
- animateScale.start()
- }
-
- NumberAnimation {
- id: animateOpacity
- property: "opacity"
- from: 0
- to: 1.0
- duration: 400
- }
- NumberAnimation {
- id: animateScale
- property: "scale"
- from: 0
- to: 1.0
- duration: 400
- }
-
- Rectangle {
- id: rectangle
- x: 0
- y: 0
- width: 270
- height: 146
-
- MouseArea {
- x: 17
- y: 12
- height: 125
- anchors.bottomMargin: -label.height
- anchors.fill: parent
- hoverEnabled: true
- onHoveredChanged: {
- if (saturationEffect.desaturation === 1)
- saturationEffect.desaturation = 0
- if (saturationEffect.desaturation === 0)
- saturationEffect.desaturation = 1
- if (saturationEffect.desaturation === 0)
- rectangle.color = "#262728"
- if (saturationEffect.desaturation === 1)
- rectangle.color = "#404244"
- if (saturationEffect.desaturation === 0)
- label.color = "#686868"
- if (saturationEffect.desaturation === 1)
- label.color = Constants.textDefaultColor
- }
-
- onExited: {
- saturationEffect.desaturation = 1
- rectangle.color = "#262728"
- label.color = "#686868"
- }
-
- onClicked: root.clicked()
- }
- }
-
- SaturationEffect {
- id: saturationEffect
- x: 15
- y: 10
- width: 240
- height: 125
- desaturation: 0
- antialiasing: true
- Behavior on desaturation {
- PropertyAnimation {
- }
- }
-
- Image {
- id: image
- width: 240
- height: 125
- fillMode: Image.PreserveAspectFit
- }
- }
-
- Timeline {
- id: animation
- startFrame: 0
- enabled: true
- endFrame: 1000
-
- KeyframeGroup {
- target: saturationEffect
- property: "desaturation"
-
- Keyframe {
- frame: 0
- value: 1
- }
-
- Keyframe {
- frame: 1000
- value: 0
- }
- }
-
- KeyframeGroup {
- target: label
- property: "color"
-
- Keyframe {
- value: "#686868"
- frame: 0
- }
-
- Keyframe {
- value: Constants.textDefaultColor
- frame: 1000
- }
- }
-
- KeyframeGroup {
- target: rectangle
- property: "color"
-
- Keyframe {
- value: "#262728"
- frame: 0
- }
-
- Keyframe {
- value: "#404244"
- frame: 1000
- }
- }
- }
-
- PropertyAnimation {
- id: propertyAnimation
- target: animation
- property: "currentFrame"
- running: false
- duration: 1000
- to: animation.endFrame
- from: animation.startFrame
- loops: 1
- }
-
- Text {
- id: label
- x: 1
- y: 145
- color: "#686868"
-
- renderType: Text.NativeRendering
- font.pixelSize: 14
- font.family: StudioFonts.titilliumWeb_regular
- }
-
- Image {
- id: downloadCloud
- x: 210
- y: 118
- width: 60
- height: 60
- source: "images/downloadCloud.svg"
- sourceSize.height: 60
- sourceSize.width: 60
- fillMode: Image.PreserveAspectFit
- visible: false
- }
-}
-
-/*##^##
-Designer {
- D{i:0;formeditorZoom:1.3300000429153442}D{i:8}
-}
-##^##*/
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/downloadCloud.svg b/src/plugins/studiowelcome/qml/welcomepage/images/downloadCloud.svg
deleted file mode 100644
index 3a527c3e54..0000000000
--- a/src/plugins/studiowelcome/qml/welcomepage/images/downloadCloud.svg
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg version="1.1" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
- x="0px" y="0px" viewBox="0 0 128 128" overflow="visible" xml:space="preserve">
-<g transform="translate(0.000000,2000.000000) scale(0.100000,-0.100000)">
- <path fill="#686868" d="M764,19815.1c-12.5-0.6-28.9-2.1-38.4-3.5c-30-4.3-73-22.5-107.4-45.4c-19.9-13.2-34.6-25.2-51.1-41.6
- c-18.6-18.6-30.1-33.4-43.2-55.8l-5.8-9.9l-6.7,3.2c-44.8,21.1-105.6,27.1-154.5,15.3c-35.4-8.5-75.1-30-104.5-56.5
- c-3.4-3.1-6.8-6-7.5-6.5c-2.2-1.6-17.1-17.9-22.3-24.5c-7.4-9.3-16.5-23.4-21.7-33.8c-13.5-26.7-25.2-66.5-26.7-91l-0.4-7
- l-15.9-7.9c-26.7-13.3-44.8-26.6-66.8-49.2c-18.9-19.3-31.4-36.4-41.9-57c-22.4-44.3-29.9-95.3-20.8-142.8
- c8.4-44.1,29.1-83.5,61.5-117.1c35.2-36.5,62.1-52.4,108.2-64c24-6,47.3-7.8,115.4-8.9c12.4-0.2,29.7-0.4,38.4-0.6
- c78.9-1.6,573.8-2.5,615.8-1.1c54,1.7,79,3.6,101.9,7.4c21.4,3.6,36.6,8.4,59.7,18.8c31.7,14.3,49.3,26.2,71,48
- c22.6,22.7,38,46.4,49.6,76.8c14.6,38.2,19.8,83.7,13.7,121.3c-5.2,31.9-19.8,67.7-38.7,94.4c-10.5,14.7-28.8,34.7-42.7,46.2
- c-28.8,24.1-58.1,39.7-90.8,48.4c-7.5,2-9.1,2.7-9.1,3.6c0,0.6,0.8,6.8,1.7,13.7c1.6,11.5,1.7,14.2,1.7,32.8
- c0,21.9-0.9,31.7-4.4,49.8c-9.2,46.3-30,91.8-59.8,130.6c-21.3,27.8-49.5,53.4-77,69.9c-31.4,18.8-83.2,39.1-108.8,42.6
- C819.9,19815.7,790.2,19816.3,764,19815.1z M828,19778.4c13-1.8,27.2-6.1,48.6-14.6c24-9.6,42.8-19,56.8-28.3
- c57.9-38.7,101.4-106.8,113.6-178c3.9-22.6,4.1-43.6,0.6-69.7c-1.1-8.4-2.2-19-2.3-23.5c-0.3-7.6-0.3-8.5,1.1-11.6
- c0.9-2.1,2.6-4.4,4.6-6.1c3.6-3.2,4.9-3.7,23.6-8.6c19.7-5.2,28.8-8.4,42.2-15.2c32.3-16.2,62.4-42.8,82-72.5
- c14.5-22,26.1-52.4,29.9-78.6c0.8-5.6,1.1-11.6,1.1-22.8c-0.1-55-19.5-104.3-55.1-140.1c-18.5-18.6-39.9-32.1-71-44.9
- c-32.4-13.4-63.1-16.9-162.9-18.8c-36.3-0.7-402.6-0.4-440.8,0.4c-8.2,0.2-43.7,0.4-78.9,0.6c-93.9,0.5-151.4,1.6-178.1,3.5
- c-14.9,1.1-24.2,2.5-36.8,5.7c-39,9.9-59.1,21.9-89.9,53.6c-26,26.7-44.1,60-51.4,94.6c-8.9,42.1-3.2,84.4,16.8,124.7
- c11.5,23.2,33.3,48.7,58.8,69c10.2,8.2,20.3,14.4,34.3,21.2c21.2,10.4,27.7,15.3,32,24.5c2.4,5,3.5,10.5,3.5,17.2
- c0,12.4,5.9,37,14,59.1c4.4,11.9,12.1,27.5,18.3,36.7c18.9,28.3,49.9,55,83.7,71.9c29.5,14.8,54.5,20.2,89.4,19.4
- c15-0.3,24.8-1.4,38-4c18.7-3.7,30.7-8,51.1-18.1c17-8.6,19.2-9.1,25.8-7.2c6.1,1.8,8.7,4.9,18.6,22.2c10.8,19,14.4,24.8,20.7,33.2
- c28.7,38.1,74.9,72.8,121.8,91.3c23.8,9.4,36.1,12.1,62.8,13.9c5.6,0.4,11.6,0.8,13.3,0.9C774.9,19779.8,823.3,19779.1,828,19778.4
- z"/>
-</g>
-<path fill="#686868" d="M82.4,65.7L70.2,78.7c0,0-0.1,0-0.1,0l0-33.5c0-1.6-1.2-3.1-2.9-3.2c-1.7-0.1-3.1,1.3-3.1,3v33.7c0,0,0,0-0.1,0L52,65.7
- c-0.9-1-2.5-1.1-3.6-0.1h0c-1,0.9-1.1,2.5-0.1,3.6l16.7,18c1.2,1.3,3.2,1.3,4.3,0l16.7-18c0.9-1,0.9-2.6-0.1-3.6h0
- C84.9,64.6,83.3,64.6,82.4,65.7z"/>
-</svg>
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/icon_default.png b/src/plugins/studiowelcome/qml/welcomepage/images/icon_default.png
deleted file mode 100644
index 82b852a408..0000000000
--- a/src/plugins/studiowelcome/qml/welcomepage/images/icon_default.png
+++ /dev/null
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/icon_hover.png b/src/plugins/studiowelcome/qml/welcomepage/images/icon_hover.png
deleted file mode 100644
index 693fdaf7b5..0000000000
--- a/src/plugins/studiowelcome/qml/welcomepage/images/icon_hover.png
+++ /dev/null
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/imports/welcome/qmldir b/src/plugins/studiowelcome/qml/welcomepage/imports/welcome/qmldir
deleted file mode 100644
index 616ac20353..0000000000
--- a/src/plugins/studiowelcome/qml/welcomepage/imports/welcome/qmldir
+++ /dev/null
@@ -1 +0,0 @@
-singleton Constants 1.0 Constants.qml
diff --git a/src/plugins/studiowelcome/qml/welcomepage/main.qml b/src/plugins/studiowelcome/qml/welcomepage/main.qml
deleted file mode 100644
index ca09aa07a5..0000000000
--- a/src/plugins/studiowelcome/qml/welcomepage/main.qml
+++ /dev/null
@@ -1,204 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt Creator.
-**
-** 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 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** 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.
-**
-****************************************************************************/
-
-import QtQuick 2.10
-import QtQuick.Controls 2.4
-import QtQuick.Layouts 1.3
-import welcome 1.0
-import projectmodel 1.0
-import StudioFonts 1.0
-
-Item {
- width: 1024
- height: 786
-
- Rectangle {
- id: rectangle
- anchors.fill: parent
- visible: true
- color: "#2d2e30"
-
- StackLayout {
- id: stackLayout
- anchors.margins: 10
- anchors.top: topLine.bottom
- anchors.bottom: bottomLine.top
- anchors.right: parent.right
- anchors.left: parent.left
-
- CustomScrollView {
- ProjectsGrid {
- model: ProjectModel {
- id: projectModel
- }
- onItemSelected: function(index, item) { projectModel.openProjectAt(index) }
- }
- }
-
- CustomScrollView {
- ProjectsGrid {
- model: ExamplesModel {}
- onItemSelected: function(index, item) {
- projectModel.openExample(item.projectName, item.qmlFileName, item.url, item.explicitQmlproject)
- }
- }
- }
-
- CustomScrollView{
- ProjectsGrid {
- model: TutorialsModel {}
- onItemSelected: function(index, item) { Qt.openUrlExternally(item.url) }
- }
- }
- }
- Rectangle {
- id: topLine
- height: 1
- color: "#bababa"
- anchors.right: parent.right
- anchors.rightMargin: 10
- anchors.left: parent.left
- anchors.leftMargin: 10
- anchors.top: parent.top
- anchors.topMargin: 200
- }
-
- Rectangle {
- id: bottomLine
- height: 1
- color: "#bababa"
- anchors.left: topLine.left
- anchors.right: topLine.right
- anchors.bottom: parent.bottom
- anchors.bottomMargin: 60
- }
-
- Row {
- x: 8
- y: 160
- spacing: 26
-
- MyTabButton {
- text: qsTr("Recent Projects")
- checked: true
- onClicked: stackLayout.currentIndex = 0
- }
-
- MyTabButton {
- text: qsTr("Examples")
- onClicked: stackLayout.currentIndex = 1
- }
-
- MyTabButton {
- text: qsTr("Tutorials")
- onClicked: stackLayout.currentIndex = 2
- }
- }
-
- AccountImage {
- id: account
- x: 946
- y: 29
- anchors.right: parent.right
- anchors.rightMargin: 40
- }
-
- GridLayout {
- y: 78
- anchors.horizontalCenter: parent.horizontalCenter
- columnSpacing: 10
- rows: 2
- columns: 2
-
- Text {
- id: welcomeTo
- color: Constants.textDefaultColor
- text: qsTr("Welcome to")
- renderType: Text.NativeRendering
- font.pixelSize: 22
- font.family: StudioFonts.titilliumWeb_regular
- }
-
- Text {
- id: qtDesignStudio
- color: "#4cd265"
- text: qsTr("Qt Design Studio")
- renderType: Text.NativeRendering
- font.family: StudioFonts.titilliumWeb_regular
- font.pixelSize: 22
- }
-
- MyButton {
- text: qsTr("Create New")
- onClicked: projectModel.createProject()
- }
-
- MyButton {
- text: qsTr("Open Project")
- onClicked: projectModel.openProject()
- Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
- }
- }
-
- RowLayout {
- y: 732
- height: 28
- anchors.horizontalCenter: parent.horizontalCenter
- anchors.bottom: parent.bottom
- anchors.bottomMargin: 26
- spacing: 50
-
- MyButton {
- text: qsTr("Help")
- onClicked: projectModel.showHelp()
- }
-
- MyButton {
- text: qsTr("Community")
- onClicked: Qt.openUrlExternally("https://forum.qt.io/")
- }
-
- MyButton {
- text: qsTr("Blog")
- onClicked: Qt.openUrlExternally("http://blog.qt.io/")
- }
- }
-
- Text {
- id: qtDesignStudio1
- x: 891
- y: 171
- color: "#ffffff"
- text: qsTr("Community Edition")
- anchors.right: parent.right
- anchors.rightMargin: 23
- font.weight: Font.Light
- font.pixelSize: 14
- font.family: StudioFonts.titilliumWeb_regular
- renderType: Text.NativeRendering
- visible: projectModel.communityVersion
- }
- }
-}
diff --git a/src/plugins/studiowelcome/qml/welcomepage/mockData/projectmodel/ProjectModel.qml b/src/plugins/studiowelcome/qml/welcomepage/mockData/projectmodel/ProjectModel.qml
deleted file mode 100644
index bca1783d42..0000000000
--- a/src/plugins/studiowelcome/qml/welcomepage/mockData/projectmodel/ProjectModel.qml
+++ /dev/null
@@ -1,138 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2019 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt Creator.
-**
-** 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 as published by the Free Software
-** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
-** 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.
-**
-****************************************************************************/
-
-import QtQuick 2.0
-
-ListModel {
-
- property bool communityVersion: true
- ListElement {
- displayName: "Project 01"
- prettyFilePath: "my_file_1"
- thumbnail: "images/thumbnail_test.png"
- }
-
- ListElement {
- displayName: "Project 02"
- prettyFilePath: "my_file_2"
- thumbnail: "images/thumbnail_test.png"
- }
-
- ListElement {
- displayName: "Project 03"
- prettyFilePath: "my_file_3"
- thumbnail: "images/thumbnail_test.png"
- }
-
- ListElement {
- displayName: "Project 04"
- prettyFilePath: "my_file_4"
- thumbnail: "images/thumbnail_test.png"
- }
-
- ListElement {
- displayName: "Project 05"
- prettyFilePath: "my_file_5"
- thumbnail: "images/thumbnail_test.png"
- }
-
- ListElement {
- displayName: "Project 06"
- prettyFilePath: "my_file_6"
- thumbnail: "images/thumbnail_test.png"
- }
-
- ListElement {
- displayName: "Project 07"
- prettyFilePath: "my_file_7"
- thumbnail: "images/thumbnail_test.png"
- }
-
- ListElement {
- displayName: "Project 08"
- filename: "my_file_8"
- thumbnail: "images/thumbnail_test.png"
- }
-
- ListElement {
- displayName: "Project 09"
- filename: "my_file_9"
- thumbnail: "images/thumbnail_test.png"
- }
-
- ListElement {
- displayName: "Project 10"
- prettyFilePath: "my_file_10"
- thumbnail: "images/thumbnail_test.png"
- }
-
- ListElement {
- displayName: "Project 11"
- filename: "my_file_11"
- thumbnail: "images/thumbnail_test.png"
- }
-
- ListElement {
- displayName: "Project 12"
- prettyFilePath: "my_file_12"
- thumbnail: "images/thumbnail_test.png"
- }
-
- ListElement {
- displayName: "Project 13"
- filename: "my_file_13"
- thumbnail: "images/thumbnail_test.png"
- }
-
- ListElement {
- displayName: "Project 14"
- prettyFilePath: "my_file_14"
- thumbnail: "images/thumbnail_test.png"
- }
-
- ListElement {
- displayName: "Project 15"
- filename: "my_file_15"
- thumbnail: "images/thumbnail_test.png"
- }
-
- ListElement {
- displayName: "Project 16"
- filename: "my_file_16"
- thumbnail: "images/thumbnail_test.png"
- }
-
- ListElement {
- displayName: "Project 17"
- filename: "my_file_17"
- thumbnail: "images/thumbnail_test.png"
- }
-
- ListElement {
- displayName: "Project 18"
- prettyFilePath: "my_file_18"
- thumbnail: "images/thumbnail_test.png"
- }
-}
diff --git a/src/plugins/studiowelcome/qml/welcomepage/mockData/projectmodel/qmldir b/src/plugins/studiowelcome/qml/welcomepage/mockData/projectmodel/qmldir
deleted file mode 100644
index 0d7bc345c2..0000000000
--- a/src/plugins/studiowelcome/qml/welcomepage/mockData/projectmodel/qmldir
+++ /dev/null
@@ -1 +0,0 @@
-ProjectModel 1.0 ProjectModel.qml
diff --git a/src/plugins/studiowelcome/qml/welcomepage/mockData/usagestatistics/qmldir b/src/plugins/studiowelcome/qml/welcomepage/mockData/usagestatistics/qmldir
deleted file mode 100644
index c83a43a8ae..0000000000
--- a/src/plugins/studiowelcome/qml/welcomepage/mockData/usagestatistics/qmldir
+++ /dev/null
@@ -1 +0,0 @@
-UsageStatisticModel 1.0 UsageStatisticModel.qml
diff --git a/src/plugins/studiowelcome/studiowelcomeplugin.cpp b/src/plugins/studiowelcome/studiowelcomeplugin.cpp
index eab1a67d49..2ea431b012 100644
--- a/src/plugins/studiowelcome/studiowelcomeplugin.cpp
+++ b/src/plugins/studiowelcome/studiowelcomeplugin.cpp
@@ -42,6 +42,8 @@
#include <projectexplorer/projectexplorer.h>
#include <projectexplorer/projectmanager.h>
+#include <qmldesigner/components/componentcore/theme.h>
+
#include <utils/checkablemessagebox.h>
#include <utils/icon.h>
#include <utils/infobar.h>
@@ -55,6 +57,7 @@
#include <QFileInfo>
#include <QFontDatabase>
#include <QPointer>
+#include <QShortcut>
#include <QQmlContext>
#include <QQmlEngine>
#include <QQuickItem>
@@ -375,6 +378,7 @@ void StudioWelcomePlugin::extensionsInitialized()
#endif
+
QTC_ASSERT(s_view->rootObject(),
qWarning() << "The StudioWelcomePlugin has a runtime depdendency on "
"qt/qtquicktimeline.";
@@ -446,16 +450,22 @@ WelcomeMode::WelcomeMode()
m_modeWidget = new QQuickWidget;
m_modeWidget->setResizeMode(QQuickWidget::SizeRootObjectToView);
+ QmlDesigner::Theme::setupTheme(m_modeWidget->engine());
m_modeWidget->engine()->addImportPath("qrc:/studiofonts");
-#ifdef QT_DEBUG
- m_modeWidget->engine()->addImportPath(QLatin1String(STUDIO_QML_PATH)
- + "welcomepage/imports");
- m_modeWidget->setSource(QUrl::fromLocalFile(QLatin1String(STUDIO_QML_PATH)
- + "welcomepage/main.qml"));
-#else
- m_modeWidget->engine()->addImportPath("qrc:/qml/welcomepage/imports");
- m_modeWidget->setSource(QUrl("qrc:/qml/welcomepage/main.qml"));
-#endif
+ m_modeWidget->engine()->addImportPath(Core::ICore::resourcePath("qmldesigner/propertyEditorQmlSources/imports").toString());
+
+ const QString welcomePagePath = Core::ICore::resourcePath("qmldesigner/welcomepage").toString();
+ m_modeWidget->engine()->addImportPath(welcomePagePath + "/imports");
+ m_modeWidget->setSource(QUrl::fromLocalFile(welcomePagePath + "/main.qml"));
+
+ QShortcut *updateShortcut = nullptr;
+ if (Utils::HostOsInfo::isMacHost())
+ updateShortcut = new QShortcut(QKeySequence(Qt::ALT + Qt::Key_F5), m_modeWidget);
+ else
+ updateShortcut = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_F5), m_modeWidget);
+ connect(updateShortcut, &QShortcut::activated, this, [this, welcomePagePath](){
+ m_modeWidget->setSource(QUrl::fromLocalFile(welcomePagePath + "/main.qml"));
+ });
setWidget(m_modeWidget);