diff options
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 Binary files differindex b374319a3e..b374319a3e 100644 --- a/src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_animatedImage.png +++ b/share/qtcreator/qmldesigner/welcomepage/images/Qt_QT_animatedImage.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_bindings.png b/share/qtcreator/qmldesigner/welcomepage/images/Qt_QT_bindings.png Binary files differindex a750dce19a..a750dce19a 100644 --- a/src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_bindings.png +++ b/share/qtcreator/qmldesigner/welcomepage/images/Qt_QT_bindings.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_interactive3d.png b/share/qtcreator/qmldesigner/welcomepage/images/Qt_QT_interactive3d.png Binary files differindex 28c05655ce..28c05655ce 100644 --- a/src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_interactive3d.png +++ b/share/qtcreator/qmldesigner/welcomepage/images/Qt_QT_interactive3d.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_nav.png b/share/qtcreator/qmldesigner/welcomepage/images/Qt_QT_nav.png Binary files differindex 50cc98b56b..50cc98b56b 100644 --- a/src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_nav.png +++ b/share/qtcreator/qmldesigner/welcomepage/images/Qt_QT_nav.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_sliderControl.png b/share/qtcreator/qmldesigner/welcomepage/images/Qt_QT_sliderControl.png Binary files differindex 158dfa7dd7..158dfa7dd7 100644 --- a/src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_sliderControl.png +++ b/share/qtcreator/qmldesigner/welcomepage/images/Qt_QT_sliderControl.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_textElement.png b/share/qtcreator/qmldesigner/welcomepage/images/Qt_QT_textElement.png Binary files differindex 784a3c57ba..784a3c57ba 100644 --- a/src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_textElement.png +++ b/share/qtcreator/qmldesigner/welcomepage/images/Qt_QT_textElement.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/bridging_the_gap.png b/share/qtcreator/qmldesigner/welcomepage/images/bridging_the_gap.png Binary files differindex 2702abf417..2702abf417 100644 --- a/src/plugins/studiowelcome/qml/welcomepage/images/bridging_the_gap.png +++ b/share/qtcreator/qmldesigner/welcomepage/images/bridging_the_gap.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/coffeemachinedemo_thumbnail.png b/share/qtcreator/qmldesigner/welcomepage/images/coffeemachinedemo_thumbnail.png Binary files differindex ced7ae80d1..ced7ae80d1 100644 --- a/src/plugins/studiowelcome/qml/welcomepage/images/coffeemachinedemo_thumbnail.png +++ b/share/qtcreator/qmldesigner/welcomepage/images/coffeemachinedemo_thumbnail.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/cppdemo_thumbnail.png b/share/qtcreator/qmldesigner/welcomepage/images/cppdemo_thumbnail.png Binary files differindex f92be7f50f..f92be7f50f 100644 --- a/src/plugins/studiowelcome/qml/welcomepage/images/cppdemo_thumbnail.png +++ b/share/qtcreator/qmldesigner/welcomepage/images/cppdemo_thumbnail.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/designer_and_developers.png b/share/qtcreator/qmldesigner/welcomepage/images/designer_and_developers.png Binary files differindex 870a597282..870a597282 100644 --- a/src/plugins/studiowelcome/qml/welcomepage/images/designer_and_developers.png +++ b/share/qtcreator/qmldesigner/welcomepage/images/designer_and_developers.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/digital_cluster_thumbnail.png b/share/qtcreator/qmldesigner/welcomepage/images/digital_cluster_thumbnail.png Binary files differindex afad8c8c7b..afad8c8c7b 100644 --- a/src/plugins/studiowelcome/qml/welcomepage/images/digital_cluster_thumbnail.png +++ b/share/qtcreator/qmldesigner/welcomepage/images/digital_cluster_thumbnail.png diff --git a/share/qtcreator/qmldesigner/welcomepage/images/ds.png b/share/qtcreator/qmldesigner/welcomepage/images/ds.png Binary files differnew file mode 100644 index 0000000000..7609c09ae5 --- /dev/null +++ b/share/qtcreator/qmldesigner/welcomepage/images/ds.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/ebike_demo_thumbnail.png b/share/qtcreator/qmldesigner/welcomepage/images/ebike_demo_thumbnail.png Binary files differindex 67cf3b9bff..67cf3b9bff 100644 --- a/src/plugins/studiowelcome/qml/welcomepage/images/ebike_demo_thumbnail.png +++ b/share/qtcreator/qmldesigner/welcomepage/images/ebike_demo_thumbnail.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/effectdemo_thumbnail.png b/share/qtcreator/qmldesigner/welcomepage/images/effectdemo_thumbnail.png Binary files differindex 505c02e88e..505c02e88e 100644 --- a/src/plugins/studiowelcome/qml/welcomepage/images/effectdemo_thumbnail.png +++ b/share/qtcreator/qmldesigner/welcomepage/images/effectdemo_thumbnail.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/gettingStarted_3dComponents.png b/share/qtcreator/qmldesigner/welcomepage/images/gettingStarted_3dComponents.png Binary files differindex 9708bff083..9708bff083 100644 --- a/src/plugins/studiowelcome/qml/welcomepage/images/gettingStarted_3dComponents.png +++ b/share/qtcreator/qmldesigner/welcomepage/images/gettingStarted_3dComponents.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/gettingStarted_newProject.png b/share/qtcreator/qmldesigner/welcomepage/images/gettingStarted_newProject.png Binary files differindex 812b412b0a..812b412b0a 100644 --- a/src/plugins/studiowelcome/qml/welcomepage/images/gettingStarted_newProject.png +++ b/share/qtcreator/qmldesigner/welcomepage/images/gettingStarted_newProject.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/gettingStarted_shaders.png b/share/qtcreator/qmldesigner/welcomepage/images/gettingStarted_shaders.png Binary files differindex 70e1774704..70e1774704 100644 --- a/src/plugins/studiowelcome/qml/welcomepage/images/gettingStarted_shaders.png +++ b/share/qtcreator/qmldesigner/welcomepage/images/gettingStarted_shaders.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/highendivi_thumbnail.png b/share/qtcreator/qmldesigner/welcomepage/images/highendivi_thumbnail.png Binary files differindex 5428c80776..5428c80776 100644 --- a/src/plugins/studiowelcome/qml/welcomepage/images/highendivi_thumbnail.png +++ b/share/qtcreator/qmldesigner/welcomepage/images/highendivi_thumbnail.png diff --git a/share/qtcreator/qmldesigner/welcomepage/images/newThumbnail.png b/share/qtcreator/qmldesigner/welcomepage/images/newThumbnail.png Binary files differnew file mode 100644 index 0000000000..bcc2dccdd2 --- /dev/null +++ b/share/qtcreator/qmldesigner/welcomepage/images/newThumbnail.png diff --git a/share/qtcreator/qmldesigner/welcomepage/images/particles_thumbnail.png b/share/qtcreator/qmldesigner/welcomepage/images/particles_thumbnail.png Binary files differnew file mode 100644 index 0000000000..f3014ab054 --- /dev/null +++ b/share/qtcreator/qmldesigner/welcomepage/images/particles_thumbnail.png diff --git a/share/qtcreator/qmldesigner/welcomepage/images/place_holder.png b/share/qtcreator/qmldesigner/welcomepage/images/place_holder.png Binary files differnew file mode 100644 index 0000000000..96e7e63796 --- /dev/null +++ b/share/qtcreator/qmldesigner/welcomepage/images/place_holder.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/progressbar_demo.png b/share/qtcreator/qmldesigner/welcomepage/images/progressbar_demo.png Binary files differindex b1af2d8f41..b1af2d8f41 100644 --- a/src/plugins/studiowelcome/qml/welcomepage/images/progressbar_demo.png +++ b/share/qtcreator/qmldesigner/welcomepage/images/progressbar_demo.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/qtws_video_thumbnail.png b/share/qtcreator/qmldesigner/welcomepage/images/qtws_video_thumbnail.png Binary files differindex e24783aee0..e24783aee0 100644 --- a/src/plugins/studiowelcome/qml/welcomepage/images/qtws_video_thumbnail.png +++ b/share/qtcreator/qmldesigner/welcomepage/images/qtws_video_thumbnail.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/sidemenu_demo.png b/share/qtcreator/qmldesigner/welcomepage/images/sidemenu_demo.png Binary files differindex b577ed4a0d..b577ed4a0d 100644 --- a/src/plugins/studiowelcome/qml/welcomepage/images/sidemenu_demo.png +++ b/share/qtcreator/qmldesigner/welcomepage/images/sidemenu_demo.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/sketchTutorial_1.png b/share/qtcreator/qmldesigner/welcomepage/images/sketchTutorial_1.png Binary files differindex 2285b93d64..2285b93d64 100644 --- a/src/plugins/studiowelcome/qml/welcomepage/images/sketchTutorial_1.png +++ b/share/qtcreator/qmldesigner/welcomepage/images/sketchTutorial_1.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/sketchTutorial_2.png b/share/qtcreator/qmldesigner/welcomepage/images/sketchTutorial_2.png Binary files differindex fec8c65ea3..fec8c65ea3 100644 --- a/src/plugins/studiowelcome/qml/welcomepage/images/sketchTutorial_2.png +++ b/share/qtcreator/qmldesigner/welcomepage/images/sketchTutorial_2.png diff --git a/share/qtcreator/qmldesigner/welcomepage/images/thermo_thumbnail.png b/share/qtcreator/qmldesigner/welcomepage/images/thermo_thumbnail.png Binary files differnew file mode 100644 index 0000000000..48bd48b8ce --- /dev/null +++ b/share/qtcreator/qmldesigner/welcomepage/images/thermo_thumbnail.png diff --git a/share/qtcreator/qmldesigner/welcomepage/images/thumbnailImage.png b/share/qtcreator/qmldesigner/welcomepage/images/thumbnailImage.png Binary files differnew file mode 100644 index 0000000000..247a839261 --- /dev/null +++ b/share/qtcreator/qmldesigner/welcomepage/images/thumbnailImage.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/thumbnail_test.png b/share/qtcreator/qmldesigner/welcomepage/images/thumbnail_test.png Binary files differindex 3c4834e644..3c4834e644 100644 --- a/src/plugins/studiowelcome/qml/welcomepage/images/thumbnail_test.png +++ b/share/qtcreator/qmldesigner/welcomepage/images/thumbnail_test.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/tutorialclusterdemo_thumbnail.png b/share/qtcreator/qmldesigner/welcomepage/images/tutorialclusterdemo_thumbnail.png Binary files differindex 925a1247ca..925a1247ca 100644 --- a/src/plugins/studiowelcome/qml/welcomepage/images/tutorialclusterdemo_thumbnail.png +++ b/share/qtcreator/qmldesigner/welcomepage/images/tutorialclusterdemo_thumbnail.png diff --git a/share/qtcreator/qmldesigner/welcomepage/images/twitterDarkNormal.png b/share/qtcreator/qmldesigner/welcomepage/images/twitterDarkNormal.png Binary files differnew file mode 100644 index 0000000000..43ffc01d68 --- /dev/null +++ b/share/qtcreator/qmldesigner/welcomepage/images/twitterDarkNormal.png diff --git a/share/qtcreator/qmldesigner/welcomepage/images/twitterHover.png b/share/qtcreator/qmldesigner/welcomepage/images/twitterHover.png Binary files differnew file mode 100644 index 0000000000..1e3af5d602 --- /dev/null +++ b/share/qtcreator/qmldesigner/welcomepage/images/twitterHover.png diff --git a/share/qtcreator/qmldesigner/welcomepage/images/twitterLightNormal.png b/share/qtcreator/qmldesigner/welcomepage/images/twitterLightNormal.png Binary files differnew file mode 100644 index 0000000000..9061e201c7 --- /dev/null +++ b/share/qtcreator/qmldesigner/welcomepage/images/twitterLightNormal.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/virtualkeyboard_thumbnail.png b/share/qtcreator/qmldesigner/welcomepage/images/virtualkeyboard_thumbnail.png Binary files differindex 20471299a9..20471299a9 100644 --- a/src/plugins/studiowelcome/qml/welcomepage/images/virtualkeyboard_thumbnail.png +++ b/share/qtcreator/qmldesigner/welcomepage/images/virtualkeyboard_thumbnail.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/washingmachinedemo_thumbnail.png b/share/qtcreator/qmldesigner/welcomepage/images/washingmachinedemo_thumbnail.png Binary files differindex b5246626c5..b5246626c5 100644 --- a/src/plugins/studiowelcome/qml/welcomepage/images/washingmachinedemo_thumbnail.png +++ b/share/qtcreator/qmldesigner/welcomepage/images/washingmachinedemo_thumbnail.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/webinar1.png b/share/qtcreator/qmldesigner/welcomepage/images/webinar1.png Binary files differindex ba24ffc3bf..ba24ffc3bf 100644 --- a/src/plugins/studiowelcome/qml/welcomepage/images/webinar1.png +++ b/share/qtcreator/qmldesigner/welcomepage/images/webinar1.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/webinar2.png b/share/qtcreator/qmldesigner/welcomepage/images/webinar2.png Binary files differindex 325c7cdc33..325c7cdc33 100644 --- a/src/plugins/studiowelcome/qml/welcomepage/images/webinar2.png +++ b/share/qtcreator/qmldesigner/welcomepage/images/webinar2.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/webinardemo_thumbnail.png b/share/qtcreator/qmldesigner/welcomepage/images/webinardemo_thumbnail.png Binary files differindex 3cd777ab3f..3cd777ab3f 100644 --- a/src/plugins/studiowelcome/qml/welcomepage/images/webinardemo_thumbnail.png +++ b/share/qtcreator/qmldesigner/welcomepage/images/webinardemo_thumbnail.png 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 Binary files differindex 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 diff --git a/share/qtcreator/qmldesigner/welcomepage/images/youtubeDarkHover.png b/share/qtcreator/qmldesigner/welcomepage/images/youtubeDarkHover.png Binary files differnew file mode 100644 index 0000000000..4ccb6ae7da --- /dev/null +++ b/share/qtcreator/qmldesigner/welcomepage/images/youtubeDarkHover.png diff --git a/share/qtcreator/qmldesigner/welcomepage/images/youtubeDarkNormal.png b/share/qtcreator/qmldesigner/welcomepage/images/youtubeDarkNormal.png Binary files differnew file mode 100644 index 0000000000..b1cad2bbd7 --- /dev/null +++ b/share/qtcreator/qmldesigner/welcomepage/images/youtubeDarkNormal.png diff --git a/share/qtcreator/qmldesigner/welcomepage/images/youtubeLightHover.png b/share/qtcreator/qmldesigner/welcomepage/images/youtubeLightHover.png Binary files differnew file mode 100644 index 0000000000..7f1ad3eeb1 --- /dev/null +++ b/share/qtcreator/qmldesigner/welcomepage/images/youtubeLightHover.png diff --git a/share/qtcreator/qmldesigner/welcomepage/images/youtubeLightNormal.png b/share/qtcreator/qmldesigner/welcomepage/images/youtubeLightNormal.png Binary files differnew file mode 100644 index 0000000000..1110770d33 --- /dev/null +++ b/share/qtcreator/qmldesigner/welcomepage/images/youtubeLightNormal.png 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 Binary files differdeleted file mode 100644 index 82b852a408..0000000000 --- a/src/plugins/studiowelcome/qml/welcomepage/images/icon_default.png +++ /dev/null diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/icon_hover.png b/src/plugins/studiowelcome/qml/welcomepage/images/icon_hover.png Binary files differdeleted file mode 100644 index 693fdaf7b5..0000000000 --- a/src/plugins/studiowelcome/qml/welcomepage/images/icon_hover.png +++ /dev/null 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); |