diff options
Diffstat (limited to 'src/plugins/studiowelcome')
86 files changed, 4060 insertions, 0 deletions
diff --git a/src/plugins/studiowelcome/CMakeLists.txt b/src/plugins/studiowelcome/CMakeLists.txt new file mode 100644 index 0000000000..30e5cc62af --- /dev/null +++ b/src/plugins/studiowelcome/CMakeLists.txt @@ -0,0 +1,10 @@ +add_qtc_plugin(StudioWelcome + DEPENDS Qt5::QuickWidgets + PLUGIN_DEPENDS Core ProjectExplorer QtSupport + DEFINES STUDIO_QML_PATH="${CMAKE_CURRENT_SOURCE_DIR}/qml" + SOURCES + studiowelcomeplugin.cpp studiowelcomeplugin.h + studiowelcome_global.h + studiowelcome.qrc + "${PROJECT_SOURCE_DIR}/src/share/3rdparty/studiofonts/studiofonts.qrc" +) diff --git a/src/plugins/studiowelcome/StudioWelcome.json.in b/src/plugins/studiowelcome/StudioWelcome.json.in new file mode 100644 index 0000000000..5a4173de12 --- /dev/null +++ b/src/plugins/studiowelcome/StudioWelcome.json.in @@ -0,0 +1,21 @@ +{ + \"Name\" : \"StudioWelcome\", + \"Version\" : \"$$QTCREATOR_VERSION\", + \"CompatVersion\" : \"$$QTCREATOR_COMPAT_VERSION\", + \"Revision\" : \"$$QTC_PLUGIN_REVISION\", + \"DisabledByDefault\" : true, + \"Vendor\" : \"The Qt Company Ltd\", + \"Copyright\" : \"(C) $$QTCREATOR_COPYRIGHT_YEAR The Qt Company Ltd\", + \"License\" : [ \"Commercial Usage\", + \"\", + \"Licensees holding valid Qt Commercial licenses may use this plugin in accordance with the Qt 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.\", + \"\", + \"GNU General Public License Usage\", + \"\", + \"Alternatively, this plugin 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 plugin. 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.\" + ], + \"Category\" : \"Qt Quick\", + \"Description\" : \"Qt Design Studio Welcome Page.\", + \"Url\" : \"http://www.qt.io\", + $$dependencyList +} diff --git a/src/plugins/studiowelcome/images/mode_welcome_mask.png b/src/plugins/studiowelcome/images/mode_welcome_mask.png Binary files differnew file mode 100644 index 0000000000..696af0c549 --- /dev/null +++ b/src/plugins/studiowelcome/images/mode_welcome_mask.png diff --git a/src/plugins/studiowelcome/images/mode_welcome_mask@2x.png b/src/plugins/studiowelcome/images/mode_welcome_mask@2x.png Binary files differnew file mode 100644 index 0000000000..060ada0cf5 --- /dev/null +++ b/src/plugins/studiowelcome/images/mode_welcome_mask@2x.png diff --git a/src/plugins/studiowelcome/qml/splashscreen/Arc.qml b/src/plugins/studiowelcome/qml/splashscreen/Arc.qml new file mode 100644 index 0000000000..2a63c1a7de --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/Arc.qml @@ -0,0 +1,97 @@ +/**************************************************************************** +** +** 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.Shapes 1.0 + +Shape { + id: root + + //Antialiasing workaround + layer.enabled: true + layer.textureSize: Qt.size(width * 2, height * 2) + layer.smooth: true + + implicitWidth: 100 + implicitHeight: 100 + + property alias fillColor: path.fillColor + property alias strokeColor: path.strokeColor + property alias strokeWidth: path.strokeWidth + property alias capStyle: path.capStyle + property alias strokeStyle: path.strokeStyle + property alias fillGradient: path.fillGradient + + property real begin: 0 + property real end: 90 + + property real alpha: end - begin + + function polarToCartesianX(centerX, centerY, radius, angleInDegrees) { + var angleInRadians = angleInDegrees * Math.PI / 180.0 + var x = centerX + radius * Math.cos(angleInRadians) + return x + } + + function polarToCartesianY(centerX, centerY, radius, angleInDegrees) { + var angleInRadians = angleInDegrees * Math.PI / 180.0 + var y = centerY + radius * Math.sin(angleInRadians) + return y + } + + ShapePath { + id: path + + property real __xRadius: width / 2 - strokeWidth / 2 + property real __yRadius: height / 2 - strokeWidth / 2 + + property real __Xcenter: width / 2 + property real __Ycenter: height / 2 + strokeColor: "#000000" + + fillColor: "transparent" + strokeWidth: 1 + capStyle: ShapePath.FlatCap + + startX: root.polarToCartesianX(path.__Xcenter, path.__Ycenter, + path.__xRadius, root.begin - 180) + startY: root.polarToCartesianY(path.__Xcenter, path.__Ycenter, + path.__yRadius, root.begin - 180) + + PathArc { + id: arc + + x: root.polarToCartesianX(path.__Xcenter, path.__Ycenter, + path.__xRadius, root.end - 180) + y: root.polarToCartesianY(path.__Xcenter, path.__Ycenter, + path.__yRadius, root.end - 180) + + radiusY: path.__yRadius + radiusX: path.__xRadius + + useLargeArc: root.alpha > 180 + } + } +} diff --git a/src/plugins/studiowelcome/qml/splashscreen/ArcAnimation.qml b/src/plugins/studiowelcome/qml/splashscreen/ArcAnimation.qml new file mode 100644 index 0000000000..08fae81a2c --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/ArcAnimation.qml @@ -0,0 +1,148 @@ +/**************************************************************************** +** +** 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 +import QtQuick.Timeline 1.0 + +Item { + id: arcItem + width: 549 + height: 457 + Arc { + id: arc + x: 401 + y: 191 + width: 52 + height: 52 + strokeColor: "#5d9dea" + end: 0 + scale: 0.8 + strokeWidth: 7 + } + + Arc { + id: arc1 + x: 353 + y: 203 + width: 52 + height: 52 + rotation: -45 + strokeWidth: 7 + scale: 0.6 + strokeColor: "#ea6d60" + end: 0 + } + + Arc { + id: arc2 + x: 390 + y: 226 + width: 52 + height: 52 + rotation: 90 + scale: 0.5 + strokeWidth: 7 + strokeColor: "#aa97f4" + end: 0 + } + + Timeline { + id: timeline + startFrame: 0 + enabled: true + endFrame: 1000 + + KeyframeGroup { + target: arc + property: "end" + + Keyframe { + value: 0 + frame: 0 + } + + Keyframe { + value: 280 + frame: 520 + } + + Keyframe { + value: 0 + frame: 1000 + } + } + + KeyframeGroup { + target: arc1 + property: "end" + + Keyframe { + value: 0 + frame: 0 + } + + Keyframe { + value: 320 + frame: 690 + } + + Keyframe { + value: 0 + frame: 1000 + } + } + + KeyframeGroup { + target: arc2 + property: "end" + + Keyframe { + value: 0 + frame: 0 + } + + Keyframe { + value: 290 + frame: 320 + } + + Keyframe { + value: 0 + frame: 1000 + } + } + } + + PropertyAnimation { + id: propertyAnimation + target: timeline + property: "currentFrame" + running: true + loops: -1 + duration: 2600 + from: timeline.startFrame + to: timeline.endFrame + } +} diff --git a/src/plugins/studiowelcome/qml/splashscreen/Dof_Effect.qml b/src/plugins/studiowelcome/qml/splashscreen/Dof_Effect.qml new file mode 100644 index 0000000000..010228b88b --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/Dof_Effect.qml @@ -0,0 +1,93 @@ +/**************************************************************************** +** +** 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 +import QtGraphicalEffects 1.0 + +Item { + id: root + default property alias content: stack.children + property alias maskBlurRadius: maskedBlur.radius + property alias maskBlurSamples: maskedBlur.samples + property alias gradientStopPosition1: stop1.position + property alias gradientStopPosition2: stop2.position + property alias gradientStopPosition3: stop3.position + property alias gradientStopPosition4: stop4.position + property alias maskRotation: gradient.rotation + + Row { + visible: true + id: stack + } + + Item { + id: mask + width: stack.width + height: stack.height + visible: false + + LinearGradient { + id: gradient + height: stack.height * 2 + width: stack.width * 2 + y: -stack.height / 2 + x: -stack.width / 2 + rotation: 0 + gradient: Gradient { + GradientStop { + id: stop1 + position: 0.2 + color: "#ffffffff" + } + GradientStop { + id: stop2 + position: 0.5 + color: "#00ffffff" + } + GradientStop { + id: stop3 + position: 0.8 + color: "#00ffffff" + } + GradientStop { + id: stop4 + position: 1.0 + color: "#ffffffff" + } + } + start: Qt.point(stack.width / 2, 0) + end: Qt.point(stack.width + stack.width / 2, 100) + } + } + + MaskedBlur { + id: maskedBlur + anchors.fill: stack + source: stack + maskSource: mask + radius: 32 + samples: 16 + } +} diff --git a/src/plugins/studiowelcome/qml/splashscreen/Image1.qml b/src/plugins/studiowelcome/qml/splashscreen/Image1.qml new file mode 100644 index 0000000000..044a8eae84 --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/Image1.qml @@ -0,0 +1,32 @@ +/**************************************************************************** +** +** 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 + +Image { + id: slidersOn + scale: 0.5 + source: "welcome_windows/splash_pngs/Slider_on.png" +} diff --git a/src/plugins/studiowelcome/qml/splashscreen/Image2.qml b/src/plugins/studiowelcome/qml/splashscreen/Image2.qml new file mode 100644 index 0000000000..774723c23a --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/Image2.qml @@ -0,0 +1,152 @@ +/**************************************************************************** +** +** 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 +import QtQuick.Timeline 1.0 + +Item { + width: 174 + height: 200 + + Image { + id: image2 + x: 93 + y: 133 + source: "welcome_windows/splash_pngs/ring_1_out.png" + + Image { + id: image1 + x: 13 + y: 13 + source: "welcome_windows/splash_pngs/ring_1_in.png" + } + } + + Image { + id: image3 + x: 13 + y: 72 + source: "welcome_windows/splash_pngs/ring_2.png" + } + + Image { + id: image4 + x: 73 + y: 44 + source: "welcome_windows/splash_pngs/ring_line_2.png" + } + + Image { + id: image5 + x: 103 + y: 13 + source: "welcome_windows/splash_pngs/ring_3.png" + } + + Timeline { + id: timeline + startFrame: 0 + enabled: true + endFrame: 1000 + + KeyframeGroup { + target: image1 + property: "scale" + + Keyframe { + value: 0.01 + frame: 0 + } + + Keyframe { + value: 1 + frame: 200 + } + } + + KeyframeGroup { + target: image2 + property: "scale" + + Keyframe { + value: 0.01 + frame: 70 + } + + Keyframe { + value: 1 + frame: 300 + } + } + + KeyframeGroup { + target: image3 + property: "scale" + + Keyframe { + value: 0.01 + frame: 300 + } + + Keyframe { + value: 1 + frame: 555 + } + } + + KeyframeGroup { + target: image5 + property: "scale" + + Keyframe { + value: 0.01 + frame: 555 + } + + Keyframe { + value: 1 + frame: 820 + } + } + } + + PropertyAnimation { + id: propertyAnimation + target: timeline + property: "currentFrame" + running: true + loops: -1 + duration: 1000 + from: timeline.startFrame + to: timeline.endFrame + } + + Image { + id: image + x: 46 + y: 105 + source: "welcome_windows/splash_pngs/ring_line_1.png" + } +} diff --git a/src/plugins/studiowelcome/qml/splashscreen/NoShowCheckbox.qml b/src/plugins/studiowelcome/qml/splashscreen/NoShowCheckbox.qml new file mode 100644 index 0000000000..2b714a4784 --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/NoShowCheckbox.qml @@ -0,0 +1,47 @@ +/**************************************************************************** +** +** 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.7 +import QtQuick.Timeline 1.0 +import QtQuick.Controls 2.12 + +CheckBox { + id: do_not_show_checkBox + width: 268 + height: 40 + text: qsTr("Don't show this again") + spacing: 12 + + + contentItem: Text { + text:do_not_show_checkBox.text + font.family: "titillium web" + color: "#ffffff" + font.pointSize: 24 + verticalAlignment: Text.AlignVCenter + horizontalAlignment: Text.AlignLeft + leftPadding: do_not_show_checkBox.indicator.width + do_not_show_checkBox.spacing + } +} diff --git a/src/plugins/studiowelcome/qml/splashscreen/RectangleMask.qml b/src/plugins/studiowelcome/qml/splashscreen/RectangleMask.qml new file mode 100644 index 0000000000..d0652d84b0 --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/RectangleMask.qml @@ -0,0 +1,86 @@ +/**************************************************************************** +** +** 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 +import QtQuick.Timeline 1.0 + +Item { + width: 174 + height: 200 + + Item { + id: rectangleMask + width: 0 + height: 200 + clip: true + + Image { + id: image1 + x: 0 + y: 45 + source: "welcome_windows/splash_pngs/Audio_Waves.png" + } + + Timeline { + id: timeline + startFrame: 0 + enabled: true + endFrame: 2000 + + KeyframeGroup { + target: rectangleMask + property: "width" + + Keyframe { + value: 0 + frame: 0 + } + + Keyframe { + easing.bezierCurve: [0.25, 0.10, 0.25, 1.00, 1, 1] + value: 175 + frame: 997 + } + + Keyframe { + easing.bezierCurve: [0.00, 0.00, 0.58, 1.00, 1, 1] + value: 0 + frame: 1998 + } + } + } + + PropertyAnimation { + id: propertyAnimation + target: timeline + property: "currentFrame" + running: true + loops: -1 + duration: 2000 + from: timeline.startFrame + to: timeline.endFrame + } + } +} diff --git a/src/plugins/studiowelcome/qml/splashscreen/Sequencer.qml b/src/plugins/studiowelcome/qml/splashscreen/Sequencer.qml new file mode 100644 index 0000000000..8f3d8fc56a --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/Sequencer.qml @@ -0,0 +1,629 @@ +/**************************************************************************** +** +** 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 +import QtQuick.Timeline 1.0 + +Item { + id: blocks + anchors.right: parent.right + anchors.rightMargin: 175 + anchors.left: parent.left + anchors.leftMargin: 0 + anchors.bottom: parent.bottom + anchors.bottomMargin: 77 + anchors.top: parent.top + anchors.topMargin: 0 + + Image { + id: sequencer + width: 175 + height: 77 + clip: false + fillMode: Image.PreserveAspectFit + source: "welcome_windows/splash_pngs/Step_sequencer.png" + + Image { + id: blue_seq_block2 + x: 3 + y: 16 + width: 10 + height: 5 + source: "welcome_windows/sequencer_images/blue_seq.png" + fillMode: Image.PreserveAspectFit + } + + Image { + id: peach_seq_block + x: 49 + y: 24 + width: 10 + height: 5 + fillMode: Image.PreserveAspectFit + source: "welcome_windows/sequencer_images/peach_seq.png" + } + + Image { + id: pink_seq_block + x: 26 + y: 23 + width: 10 + height: 5 + fillMode: Image.PreserveAspectFit + source: "welcome_windows/sequencer_images/pink_seq.png" + } + + Image { + id: blue_seq_block + x: 83 + y: 23 + width: 10 + height: 5 + fillMode: Image.PreserveAspectFit + source: "welcome_windows/sequencer_images/blue_seq.png" + } + + Image { + id: pink_seq_block1 + x: 26 + y: 16 + width: 10 + height: 5 + source: "welcome_windows/sequencer_images/pink_seq.png" + fillMode: Image.PreserveAspectFit + } + + Image { + id: peach_seq_block1 + x: 15 + y: 31 + width: 10 + height: 5 + source: "welcome_windows/sequencer_images/peach_seq.png" + fillMode: Image.PreserveAspectFit + } + + Image { + id: pink_seq_block2 + x: 49 + y: 16 + width: 10 + height: 5 + source: "welcome_windows/sequencer_images/pink_seq.png" + fillMode: Image.PreserveAspectFit + } + + Image { + id: blue_seq_block3 + x: 61 + y: 29 + width: 10 + height: 5 + source: "welcome_windows/sequencer_images/blue_seq.png" + fillMode: Image.PreserveAspectFit + } + + Image { + id: pink_seq_block3 + x: 106 + y: 23 + width: 10 + height: 5 + source: "welcome_windows/sequencer_images/pink_seq.png" + fillMode: Image.PreserveAspectFit + } + + Image { + id: pink_seq_block4 + x: 129 + y: 16 + width: 10 + height: 5 + source: "welcome_windows/sequencer_images/pink_seq.png" + fillMode: Image.PreserveAspectFit + } + + Image { + id: blue_seq_block4 + x: 106 + y: 16 + width: 10 + height: 5 + source: "welcome_windows/sequencer_images/blue_seq.png" + fillMode: Image.PreserveAspectFit + } + + Image { + id: peach_seq_block2 + x: 118 + y: 30 + width: 10 + height: 5 + source: "welcome_windows/sequencer_images/peach_seq.png" + fillMode: Image.PreserveAspectFit + } + + Image { + id: peach_seq_block3 + x: 141 + y: 30 + width: 10 + height: 5 + source: "welcome_windows/sequencer_images/peach_seq.png" + fillMode: Image.PreserveAspectFit + } + } + + Image { + id: blue_seq_block1 + x: 3 + y: 23 + width: 10 + height: 5 + source: "welcome_windows/sequencer_images/blue_seq.png" + fillMode: Image.PreserveAspectFit + } + + Sequencer_Bars { + id: seq_bars + x: -7 + y: 39 + width: 199 + height: 69 + } + + Timeline { + id: timeline + enabled: true + startFrame: 0 + endFrame: 1000 + + KeyframeGroup { + target: blue_seq_block2 + property: "opacity" + + Keyframe { + frame: 0 + value: 0 + } + + Keyframe { + frame: 52 + value: 0 + } + + Keyframe { + frame: 53 + value: 1 + } + + Keyframe { + frame: 300 + value: 1 + } + + Keyframe { + frame: 301 + value: 0 + } + } + + KeyframeGroup { + target: blue_seq_block1 + property: "opacity" + + Keyframe { + frame: 0 + value: 0 + } + + Keyframe { + frame: 100 + value: 0 + } + + Keyframe { + frame: 101 + value: 1 + } + + Keyframe { + frame: 340 + value: 1 + } + + Keyframe { + frame: 341 + value: 0 + } + } + + KeyframeGroup { + target: peach_seq_block1 + property: "opacity" + + Keyframe { + frame: 0 + value: 0 + } + + Keyframe { + frame: 175 + value: 0 + } + + Keyframe { + frame: 176 + value: 1 + } + + Keyframe { + frame: 432 + value: 1 + } + + Keyframe { + frame: 435 + value: 0 + } + } + + KeyframeGroup { + target: pink_seq_block1 + property: "opacity" + + Keyframe { + frame: 0 + value: 0 + } + + Keyframe { + frame: 222 + value: 0 + } + + Keyframe { + frame: 227 + value: 1 + } + + Keyframe { + frame: 508 + value: 1 + } + + Keyframe { + frame: 512 + value: 0 + } + } + + KeyframeGroup { + target: pink_seq_block + property: "opacity" + + Keyframe { + frame: 0 + value: 0 + } + + Keyframe { + frame: 247 + value: 0 + } + + Keyframe { + frame: 251 + value: 1 + } + + Keyframe { + frame: 524 + value: 1 + } + + Keyframe { + frame: 529 + value: 0 + } + } + + KeyframeGroup { + target: pink_seq_block2 + property: "opacity" + + Keyframe { + frame: 0 + value: 0 + } + + Keyframe { + frame: 286 + value: 0 + } + + Keyframe { + frame: 290 + value: 1 + } + + Keyframe { + frame: 575 + value: 1 + } + + Keyframe { + frame: 580 + value: 0 + } + } + + KeyframeGroup { + target: peach_seq_block + property: "opacity" + + Keyframe { + frame: 0 + value: 0 + } + + Keyframe { + frame: 352 + value: 0 + } + + Keyframe { + frame: 357 + value: 1 + } + + Keyframe { + frame: 647 + value: 1 + } + + Keyframe { + frame: 652 + value: 0 + } + } + + KeyframeGroup { + target: blue_seq_block3 + property: "opacity" + + Keyframe { + frame: 0 + value: 0 + } + + Keyframe { + frame: 419 + value: 0 + } + + Keyframe { + frame: 424 + value: 1 + } + + Keyframe { + frame: 695 + value: 1 + } + + Keyframe { + frame: 699 + value: 0 + } + } + + KeyframeGroup { + target: blue_seq_block + property: "opacity" + + Keyframe { + frame: 0 + value: 0 + } + + Keyframe { + frame: 461 + value: 0 + } + + Keyframe { + frame: 756 + value: 1 + } + + Keyframe { + frame: 761 + value: 0 + } + } + + KeyframeGroup { + target: blue_seq_block4 + property: "opacity" + + Keyframe { + frame: 0 + value: 0 + } + + Keyframe { + frame: 502 + value: 0 + } + + Keyframe { + frame: 508 + value: 1 + } + + Keyframe { + frame: 799 + value: 1 + } + + Keyframe { + frame: 804 + value: 0 + } + } + + KeyframeGroup { + target: pink_seq_block3 + property: "opacity" + + Keyframe { + frame: 0 + value: 0 + } + + Keyframe { + frame: 525 + value: 0 + } + + Keyframe { + frame: 530 + value: 1 + } + + Keyframe { + frame: 840 + value: 1 + } + + Keyframe { + frame: 848 + value: 0 + } + } + + KeyframeGroup { + target: peach_seq_block2 + property: "opacity" + + Keyframe { + frame: 0 + value: 0 + } + + Keyframe { + frame: 661 + value: 0 + } + + Keyframe { + frame: 667 + value: 1 + } + + Keyframe { + frame: 901 + value: 1 + } + + Keyframe { + frame: 906 + value: 0 + } + } + + KeyframeGroup { + target: pink_seq_block4 + property: "opacity" + + Keyframe { + frame: 0 + value: 0 + } + + Keyframe { + frame: 756 + value: 0 + } + + Keyframe { + frame: 760 + value: 1 + } + + Keyframe { + frame: 955 + value: 1 + } + + Keyframe { + frame: 961 + value: 0 + } + } + + KeyframeGroup { + target: peach_seq_block3 + property: "opacity" + + Keyframe { + frame: 0 + value: 0 + } + + Keyframe { + frame: 831 + value: 0 + } + + Keyframe { + frame: 837 + value: 1 + } + + Keyframe { + frame: 989 + value: 1 + } + + Keyframe { + frame: 999 + value: 0 + } + } + } + + PropertyAnimation { + id: propertyAnimation + target: timeline + property: "currentFrame" + running: true + duration: 1200 + loops: -1 + from: timeline.startFrame + to: timeline.endFrame + } +} diff --git a/src/plugins/studiowelcome/qml/splashscreen/Sequencer_Bars.qml b/src/plugins/studiowelcome/qml/splashscreen/Sequencer_Bars.qml new file mode 100644 index 0000000000..477cd00b8c --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/Sequencer_Bars.qml @@ -0,0 +1,643 @@ +/**************************************************************************** +** +** 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 +import QtQuick.Timeline 1.0 + +Item { + id: item1 + width: 200 + height: 100 + + Rectangle { + id: mask_1 + x: 0 + y: 8 + width: 7 + height: 4 + color: "#00000000" + clip: true + + Image { + id: bar_1 + width: 72 + anchors.top: parent.top + anchors.topMargin: 0 + anchors.bottom: parent.bottom + anchors.bottomMargin: 0 + anchors.left: parent.left + anchors.leftMargin: 8 + source: "welcome_windows/sequencer_images/seq_bar_1.png" + } + } + + Rectangle { + id: mask_2 + x: 0 + y: 13 + width: 6 + height: 6 + color: "#00000000" + clip: true + + Image { + id: bar_2 + width: 55 + anchors.left: parent.left + anchors.leftMargin: 8 + anchors.bottom: parent.bottom + anchors.bottomMargin: 0 + anchors.top: parent.top + anchors.topMargin: 0 + source: "welcome_windows/sequencer_images/seq_bar_2.png" + } + } + + Rectangle { + id: mask_3 + x: 0 + y: 21 + width: 50 + height: 5 + color: "#00000000" + clip: true + + Image { + id: bar_3 + x: 8 + y: 0 + width: 36 + height: 5 + source: "welcome_windows/sequencer_images/seq_bar_3.png" + } + } + + Rectangle { + id: mask_4 + x: 0 + y: 28 + width: 99 + height: 4 + color: "#00000000" + clip: true + + Image { + id: bar_4 + width: 79 + anchors.left: parent.left + anchors.leftMargin: 8 + anchors.bottom: parent.bottom + anchors.bottomMargin: 0 + anchors.top: parent.top + anchors.topMargin: 0 + source: "welcome_windows/sequencer_images/seq_bar_4.png" + } + } + + Rectangle { + id: mask_5 + x: 115 + y: 8 + width: 85 + height: 4 + color: "#00000000" + clip: true + + Image { + id: bar_5 + width: 72 + anchors.left: parent.left + anchors.leftMargin: 5 + anchors.bottom: parent.bottom + anchors.bottomMargin: 0 + anchors.top: parent.top + anchors.topMargin: 0 + source: "welcome_windows/sequencer_images/seq_bar_5.png" + } + } + + Rectangle { + id: mask_6 + x: 115 + y: 13 + width: 69 + height: 6 + color: "#00000000" + clip: true + + Image { + id: bar_6 + width: 45 + anchors.left: parent.left + anchors.leftMargin: 5 + anchors.bottom: parent.bottom + anchors.bottomMargin: 0 + anchors.top: parent.top + anchors.topMargin: 0 + source: "welcome_windows/sequencer_images/seq_bar_6.png" + } + } + + Rectangle { + id: mask_7 + x: 115 + y: 21 + width: 4 + height: 5 + color: "#00000000" + clip: true + + Image { + id: bar_7 + width: 64 + anchors.left: parent.left + anchors.leftMargin: 5 + anchors.bottom: parent.bottom + anchors.bottomMargin: 0 + anchors.top: parent.top + anchors.topMargin: 0 + source: "welcome_windows/sequencer_images/seq_bar_7.png" + } + } + + Timeline { + id: timeline + enabled: true + startFrame: 0 + endFrame: 1000 + + KeyframeGroup { + target: mask_1 + property: "width" + Keyframe { + frame: 0 + value: 6 + } + + Keyframe { + easing.bezierCurve: [0.25, 0.46, 0.45, 0.94, 1, 1] + frame: 499 + value: 87 + } + + Keyframe { + frame: 999 + value: 6 + } + } + + KeyframeGroup { + target: mask_1 + property: "height" + Keyframe { + frame: 0 + value: 4 + } + + Keyframe { + easing.bezierCurve: [0.25, 0.46, 0.45, 0.94, 1, 1] + frame: 499 + value: 4 + } + + Keyframe { + frame: 999 + value: 4 + } + } + + KeyframeGroup { + target: mask_2 + property: "width" + Keyframe { + frame: 0 + value: 6 + } + + Keyframe { + frame: 151 + value: 7 + } + + Keyframe { + easing.bezierCurve: [0.55, 0.08, 0.68, 0.53, 1, 1] + frame: 677 + value: 64 + } + + Keyframe { + frame: 999 + value: 6 + } + } + + KeyframeGroup { + target: mask_2 + property: "height" + Keyframe { + frame: 0 + value: 6 + } + + Keyframe { + frame: 151 + value: 6 + } + + Keyframe { + easing.bezierCurve: [0.55, 0.08, 0.68, 0.53, 1, 1] + frame: 677 + value: 6 + } + + Keyframe { + frame: 999 + value: 6 + } + } + + KeyframeGroup { + target: mask_3 + property: "width" + Keyframe { + frame: 0 + value: 6 + } + + Keyframe { + easing.bezierCurve: [0.25, 0.25, 0.75, 0.75, 1, 1] + frame: 317 + value: 47 + } + + Keyframe { + frame: 999 + value: 6 + } + + Keyframe { + easing.bezierCurve: [0.17, 0.84, 0.44, 1.00, 1, 1] + frame: 544 + value: 50 + } + } + + KeyframeGroup { + target: mask_3 + property: "height" + Keyframe { + frame: 0 + value: 5 + } + + Keyframe { + easing.bezierCurve: [0.25, 0.25, 0.75, 0.75, 1, 1] + frame: 317 + value: 5 + } + + Keyframe { + frame: 999 + value: 5 + } + + Keyframe { + easing.bezierCurve: [0.17, 0.84, 0.44, 1.00, 1, 1] + frame: 544 + value: 5 + } + } + + KeyframeGroup { + target: mask_4 + property: "width" + Keyframe { + frame: 0 + value: 6 + } + + Keyframe { + frame: 243 + value: 6 + } + + Keyframe { + easing.bezierCurve: [0.00, 0.00, 0.20, 1.00, 1, 1] + frame: 682 + value: 92 + } + + Keyframe { + frame: 755 + value: 90 + } + + Keyframe { + frame: 999 + value: 6 + } + } + + KeyframeGroup { + target: mask_4 + property: "height" + Keyframe { + frame: 0 + value: 4 + } + + Keyframe { + frame: 243 + value: 4 + } + + Keyframe { + easing.bezierCurve: [0.00, 0.00, 0.20, 1.00, 1, 1] + frame: 682 + value: 4 + } + + Keyframe { + frame: 755 + value: 4 + } + + Keyframe { + frame: 999 + value: 4 + } + } + + KeyframeGroup { + target: mask_5 + property: "width" + Keyframe { + frame: 0 + value: 3 + } + + Keyframe { + frame: 182 + value: 3 + } + + Keyframe { + easing.bezierCurve: [0.77, 0.00, 0.17, 1.00, 1, 1] + frame: 462 + value: 85 + } + + Keyframe { + frame: 625 + value: 85 + } + + Keyframe { + frame: 999 + value: 4 + } + } + + KeyframeGroup { + target: mask_5 + property: "height" + Keyframe { + frame: 0 + value: 4 + } + + Keyframe { + frame: 182 + value: 4 + } + + Keyframe { + easing.bezierCurve: [0.77, 0.00, 0.17, 1.00, 1, 1] + frame: 462 + value: 4 + } + + Keyframe { + frame: 625 + value: 4 + } + + Keyframe { + frame: 999 + value: 4 + } + } + + KeyframeGroup { + target: mask_6 + property: "width" + Keyframe { + frame: 0 + value: 3 + } + + Keyframe { + frame: 364 + value: 3 + } + + Keyframe { + easing.bezierCurve: [0.19, 1.00, 0.22, 1.00, 1, 1] + frame: 695 + value: 54 + } + + Keyframe { + frame: 999 + value: 4 + } + } + + KeyframeGroup { + target: mask_6 + property: "height" + Keyframe { + frame: 0 + value: 6 + } + + Keyframe { + frame: 364 + value: 6 + } + + Keyframe { + easing.bezierCurve: [0.19, 1.00, 0.22, 1.00, 1, 1] + frame: 695 + value: 6 + } + + Keyframe { + frame: 999 + value: 6 + } + } + + KeyframeGroup { + target: mask_7 + property: "width" + Keyframe { + frame: 0 + value: 3 + } + + Keyframe { + frame: 444 + value: 3 + } + + Keyframe { + easing.bezierCurve: [0.00, 0.00, 0.20, 1.00, 1, 1] + frame: 759 + value: 77 + } + + Keyframe { + frame: 845 + value: 77 + } + + Keyframe { + frame: 999 + value: 4 + } + } + + KeyframeGroup { + target: mask_7 + property: "height" + Keyframe { + frame: 0 + value: 5 + } + + Keyframe { + frame: 444 + value: 5 + } + + Keyframe { + easing.bezierCurve: [0.00, 0.00, 0.20, 1.00, 1, 1] + frame: 759 + value: 5 + } + + Keyframe { + frame: 845 + value: 5 + } + + Keyframe { + frame: 999 + value: 5 + } + } + + KeyframeGroup { + target: mask_8 + property: "width" + Keyframe { + frame: 0 + value: 3 + } + + Keyframe { + easing.bezierCurve: [0.55, 0.06, 0.68, 0.19, 1, 1] + frame: 303 + value: 85 + } + + Keyframe { + frame: 516 + value: 85 + } + + Keyframe { + frame: 999 + value: 4 + } + } + + KeyframeGroup { + target: mask_8 + property: "height" + Keyframe { + frame: 0 + value: 4 + } + + Keyframe { + easing.bezierCurve: [0.55, 0.06, 0.68, 0.19, 1, 1] + frame: 303 + value: 4 + } + + Keyframe { + frame: 516 + value: 4 + } + + Keyframe { + frame: 999 + value: 4 + } + } + } + + PropertyAnimation { + id: propertyAnimation + target: timeline + property: "currentFrame" + running: true + duration: 3400 + loops: -1 + from: timeline.startFrame + to: timeline.endFrame + } + + Rectangle { + id: mask_8 + x: 115 + y: 28 + width: 85 + height: 4 + color: "#00000000" + clip: true + + Image { + id: bar_8 + x: 5 + y: 0 + width: 72 + height: 4 + source: "welcome_windows/sequencer_images/seq_bar_8.png" + } + } +} diff --git a/src/plugins/studiowelcome/qml/splashscreen/SlidersTogether.qml b/src/plugins/studiowelcome/qml/splashscreen/SlidersTogether.qml new file mode 100644 index 0000000000..c05c6efce9 --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/SlidersTogether.qml @@ -0,0 +1,104 @@ +/**************************************************************************** +** +** 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 +import QtQuick.Timeline 1.0 + +Item { + width: 174 + height: 200 + + Item { + id: rectangleMask + x: -1 + y: -2 + width: 31 + height: 49 + clip: true + + Item { + id: rectangle + x: 0 + y: 0 + width: 200 + height: 200 + clip: true + + Image { + id: slidersTogether + scale: 0.5 + source: "welcome_windows/splash_pngs/Sliders_together.png" + } + } + } + + Timeline { + id: timeline + startFrame: 0 + enabled: true + endFrame: 1000 + + KeyframeGroup { + target: rectangleMask + property: "width" + + Keyframe { + value: 30 + frame: 0 + } + + Keyframe { + easing.bezierCurve: [0.55, 0.06, 0.68, 0.19, 1, 1] + value: 106 + frame: 740 + } + + Keyframe { + value: 0 + frame: 1000 + } + } + + KeyframeGroup { + target: rectangleMask + property: "height" + Keyframe { + value: 49 + frame: 505 + } + } + } + + PropertyAnimation { + id: propertyAnimation + target: timeline + property: "currentFrame" + running: true + loops: -1 + duration: 1300 + from: timeline.startFrame + to: timeline.endFrame + } +} diff --git a/src/plugins/studiowelcome/qml/splashscreen/Splash_Image25d.qml b/src/plugins/studiowelcome/qml/splashscreen/Splash_Image25d.qml new file mode 100644 index 0000000000..3d54304195 --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/Splash_Image25d.qml @@ -0,0 +1,80 @@ +/**************************************************************************** +** +** 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.3 + +Rectangle { + id: splashBackground + width: 460 + height: 480 + color: "#11102d" + + layer.enabled: true + layer.textureSize: Qt.size(width * 2, height * 2) + layer.smooth: true + + Item { + id: composition + width: 460 + height: 480 + + layer.enabled: true + layer.textureSize: Qt.size(width * 2, height * 2) + layer.smooth: true + + Splash_Image2d_png { + x: 25 + y: 15 + antialiasing: false + scale: 1.4 + transform: Matrix4x4 { + matrix: Qt.matrix4x4(1.12606, 0.06371, 0, 0, 0.26038, 0.90592, + 0, 0, 0.00000, 0.0000, 1.0, 0, + 0.00121, -0.00009, 0.0, 1) + } + } + } + + Image { + id: highlight + x: -56 + y: -19 + width: 520 + height: 506 + fillMode: Image.PreserveAspectFit + source: "welcome_windows/highlight.png" + } + + Image { + id: hand + x: 245 + y: 227 + width: 224 + height: 264 + visible: true + fillMode: Image.PreserveAspectFit + source: "welcome_windows/hand.png" + } +} diff --git a/src/plugins/studiowelcome/qml/splashscreen/Splash_Image2d_png.qml b/src/plugins/studiowelcome/qml/splashscreen/Splash_Image2d_png.qml new file mode 100644 index 0000000000..5f07be1672 --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/Splash_Image2d_png.qml @@ -0,0 +1,96 @@ +/**************************************************************************** +** +** 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 + +Rectangle { + id: splashBackground + width: 460 + height: 480 + color: "#00ffffff" + visible: true + + Image { + id: image + x: -228 + y: -66 + scale: 0.5 + source: "welcome_windows/splash_pngs/UI_Background.png" + } + + RectangleMask { + id: rectangleMask + x: 23 + y: 156 + width: 209 + height: 199 + scale: 0.5 + } + + Image1 { + id: sliderBackground + x: 155 + y: 267 + height: 86 + } + + SlidersTogether { + id: slidersTogether + x: 185 + y: 295 + } + + Image { + id: slidersOff + x: 191 + y: 316 + scale: 0.5 + source: "welcome_windows/splash_pngs/sliders_off.png" + } + + Image2 { + id: rings + x: 84 + y: 227 + scale: 0.5 + } + + ArcAnimation { + id: arcAnimation + x: 9 + y: 13 + scale: 0.5 + } + + Sequencer { + id: sequencer + x: 152 + y: 119 + anchors.rightMargin: 119 + anchors.bottomMargin: 264 + anchors.leftMargin: 154 + anchors.topMargin: 108 + } +} diff --git a/src/plugins/studiowelcome/qml/splashscreen/Welcome_splash.qml b/src/plugins/studiowelcome/qml/splashscreen/Welcome_splash.qml new file mode 100644 index 0000000000..c00bde1ce8 --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/Welcome_splash.qml @@ -0,0 +1,253 @@ +/**************************************************************************** +** +** 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.7 +import QtQuick.Controls 2.3 +import StudioFonts 1.0 +import QtQuick.Layouts 1.0 +import projectmodel 1.0 + +Image { + id: welcome_splash + width: 800 + height: 480 + source: "welcome_windows/welcome_1.png" + + signal goNext + signal closeClicked + + property alias doNotShowAgain: do_not_show_checkBox.checked + property bool loadingPlugins: true + + Image { + id: logo + x: 14 + y: 8 + width: 76 + height: 66 + fillMode: Image.PreserveAspectFit + source: "welcome_windows/logo.png" + } + + Text { + id: qt_design_studio + x: 13 + y: 93 + width: 250 + height: 55 + color: "#4cd265" + text: qsTr("Qt Design Studio") + font.pixelSize: 36 + font.family: StudioFonts.titilliumWeb_light + } + + Text { + id: software_for_ui + x: 15 + y: 141 + width: 250 + height: 30 + color: "#ffffff" + text: qsTr("Software for UI and UX Designers") + renderType: Text.QtRendering + font.pixelSize: 18 + font.family: StudioFonts.titilliumWeb_light + } + + Text { + id: copyright + x: 15 + y: 183 + width: 270 + height: 24 + color: "#ffffff" + text: qsTr("Copyright 2008 - 2019 The Qt Company") + font.pixelSize: 16 + font.family: StudioFonts.titilliumWeb_light + } + + Text { + id: all_rights_reserved + x: 15 + y: 207 + width: 250 + height: 24 + color: "#ffffff" + text: qsTr("All Rights Reserved") + font.pixelSize: 16 + font.family: StudioFonts.titilliumWeb_light + } + + Text { + id: marketing_1 + x: 16 + y: 302 + width: 355 + height: 31 + color: "#ffffff" + text: qsTr("Multi-paradigm language for creating highly dynamic applications.") + wrapMode: Text.WordWrap + font.family: StudioFonts.titilliumWeb_light + font.pixelSize: 12 + font.wordSpacing: 0 + } + + Text { + id: marketing_2 + x: 16 + y: 323 + width: 311 + height: 31 + color: "#ffffff" + text: qsTr("Run your concepts and prototypes on your final hardware.") + wrapMode: Text.WordWrap + font.family: StudioFonts.titilliumWeb_light + font.pixelSize: 12 + font.wordSpacing: 0 + } + + Text { + id: marketing_3 + x: 16 + y: 344 + width: 311 + height: 31 + color: "#ffffff" + text: qsTr("Seamless integration between designer and developer.") + wrapMode: Text.WordWrap + font.family: StudioFonts.titilliumWeb_light + font.pixelSize: 12 + font.wordSpacing: 0 + } + + Dof_Effect { + id: dof_Effect + x: 358 + width: 442 + height: 480 + visible: true + maskBlurSamples: 64 + maskBlurRadius: 32 + gradientStopPosition4: 1.3 + gradientStopPosition3: 0.9 + gradientStopPosition2: 0.6 + gradientStopPosition1: 0 + + Splash_Image25d { + id: animated_artwork + x: 358 + y: 0 + width: 442 + height: 480 + clip: true + } + } + + Image { + id: close_window + x: 779 + y: 5 + width: 13 + height: 13 + fillMode: Image.PreserveAspectFit + source: "welcome_windows/close.png" + opacity: area.containsMouse ? 1 : 0.8 + MouseArea { + id: area + hoverEnabled: true + anchors.fill: parent + anchors.margins: -10 + onClicked: welcome_splash.closeClicked() + } + } + + NoShowCheckbox { + id: do_not_show_checkBox + x: -47 + y: 430 + padding: 0 + scale: 0.5 + } + + + RowLayout { + x: 16 + y: 254 + + visible: welcome_splash.loadingPlugins + + Text { + id: text1 + color: "#ffffff" + text: qsTr("%") + font.pixelSize: 12 + RotationAnimator { + target: text1 + from: 0 + to: 360 + duration: 1800 + running: true + loops: -1 + } + } + + Text { + id: loading_progress + color: "#ffffff" + text: qsTr("Loading Plugins") + font.family: StudioFonts.titilliumWeb_light + font.pixelSize: 16 + } + + Text { + id: text2 + color: "#ffffff" + text: qsTr("%") + font.pixelSize: 12 + RotationAnimator { + target: text2 + from: 0 + to: 360 + duration: 2000 + running: true + loops: -1 + } + } + } + + Text { + id: all_rights_reserved1 + x: 15 + y: 75 + color: "#ffffff" + text: qsTr("Community Edition") + font.pixelSize: 13 + font.family: StudioFonts.titilliumWeb_light + visible: projectModel.communityVersion + ProjectModel { + id: projectModel + } + } +} diff --git a/src/plugins/studiowelcome/qml/splashscreen/main.qml b/src/plugins/studiowelcome/qml/splashscreen/main.qml new file mode 100644 index 0000000000..be88704784 --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/main.qml @@ -0,0 +1,46 @@ +/**************************************************************************** +** +** 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 + +Item { + id: root + width: 800 + height: 480 + + signal closeClicked + signal checkBoxToggled + + property alias doNotShowAgain: welcome_splash.doNotShowAgain + property alias loadingPlugins: welcome_splash.loadingPlugins + + Welcome_splash { + id: welcome_splash + x: 0 + y: 0 + antialiasing: true + onCloseClicked: root.closeClicked() + } +} diff --git a/src/plugins/studiowelcome/qml/splashscreen/welcome_screens.qmlproject b/src/plugins/studiowelcome/qml/splashscreen/welcome_screens.qmlproject new file mode 100644 index 0000000000..de393d88b0 --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_screens.qmlproject @@ -0,0 +1,47 @@ +/**************************************************************************** +** +** 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 QmlProject 1.1 + +Project { + mainFile: "main.qml" + + /* 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" ] + + Environment { + QT_AUTO_SCREEN_SCALE_FACTOR: "1" + } +} diff --git a/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/close.png b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/close.png Binary files differnew file mode 100644 index 0000000000..940e1687fa --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/close.png diff --git a/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/hand.png b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/hand.png Binary files differnew file mode 100644 index 0000000000..73944a4bad --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/hand.png diff --git a/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/highlight.png b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/highlight.png Binary files differnew file mode 100644 index 0000000000..d9e6db2b05 --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/highlight.png diff --git a/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/logo.png b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/logo.png Binary files differnew file mode 100644 index 0000000000..347beb789c --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/logo.png diff --git a/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/blue_seq.png b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/blue_seq.png Binary files differnew file mode 100644 index 0000000000..7697fc4747 --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/blue_seq.png diff --git a/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/peach_seq.png b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/peach_seq.png Binary files differnew file mode 100644 index 0000000000..28fd238433 --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/peach_seq.png diff --git a/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/pink_seq.png b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/pink_seq.png Binary files differnew file mode 100644 index 0000000000..714f1f79d4 --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/pink_seq.png diff --git a/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_1.png b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_1.png Binary files differnew file mode 100644 index 0000000000..6ac5b5c43f --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_1.png diff --git a/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_2.png b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_2.png Binary files differnew file mode 100644 index 0000000000..eb942aadad --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_2.png diff --git a/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_3.png b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_3.png Binary files differnew file mode 100644 index 0000000000..b33feda2a2 --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_3.png diff --git a/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_4.png b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_4.png Binary files differnew file mode 100644 index 0000000000..3e6a6ea817 --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_4.png diff --git a/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_5.png b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_5.png Binary files differnew file mode 100644 index 0000000000..471f62da7d --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_5.png diff --git a/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_6.png b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_6.png Binary files differnew file mode 100644 index 0000000000..b6612b192b --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_6.png diff --git a/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_7.png b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_7.png Binary files differnew file mode 100644 index 0000000000..7bffeb9921 --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_7.png diff --git a/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_8.png b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_8.png Binary files differnew file mode 100644 index 0000000000..0fe2a943db --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_8.png diff --git a/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/Audio_Waves.png b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/Audio_Waves.png Binary files differnew file mode 100644 index 0000000000..177a13e6ef --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/Audio_Waves.png diff --git a/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/Slider_on.png b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/Slider_on.png Binary files differnew file mode 100644 index 0000000000..326bb72d2e --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/Slider_on.png diff --git a/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/Sliders_together.png b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/Sliders_together.png Binary files differnew file mode 100644 index 0000000000..870eb34e1e --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/Sliders_together.png diff --git a/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/Step_sequencer.png b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/Step_sequencer.png Binary files differnew file mode 100644 index 0000000000..79e05d8ada --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/Step_sequencer.png diff --git a/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/UI_Background.png b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/UI_Background.png Binary files differnew file mode 100644 index 0000000000..edf9debd10 --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/UI_Background.png diff --git a/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_1_in.png b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_1_in.png Binary files differnew file mode 100644 index 0000000000..0388a99ea0 --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_1_in.png diff --git a/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_1_out.png b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_1_out.png Binary files differnew file mode 100644 index 0000000000..662fcb0fe8 --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_1_out.png diff --git a/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_2.png b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_2.png Binary files differnew file mode 100644 index 0000000000..1bc54f8827 --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_2.png diff --git a/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_3.png b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_3.png Binary files differnew file mode 100644 index 0000000000..df8c7b5c70 --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_3.png diff --git a/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_line_1.png b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_line_1.png Binary files differnew file mode 100644 index 0000000000..022a6bc08d --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_line_1.png diff --git a/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_line_2.png b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_line_2.png Binary files differnew file mode 100644 index 0000000000..f857c92b74 --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_line_2.png diff --git a/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/sliders_off.png b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/sliders_off.png Binary files differnew file mode 100644 index 0000000000..9e8c2c7bdf --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/sliders_off.png diff --git a/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/welcome_1.png b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/welcome_1.png Binary files differnew file mode 100644 index 0000000000..58b68511be --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/welcome_1.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/AccountImage.qml b/src/plugins/studiowelcome/qml/welcomepage/AccountImage.qml new file mode 100644 index 0000000000..719ff05546 --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/AccountImage.qml @@ -0,0 +1,55 @@ +/**************************************************************************** +** +** 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 welcome 1.0 +import StudioFonts 1.0 + +Image { + id: account_icon + + source: "images/" + (mouseArea.containsMouse ? "icon_hover.png" : "icon_default.png") + + 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 + } + + MouseArea { + id: mouseArea + anchors.fill: parent + anchors.margins: -25 + hoverEnabled: true + + onClicked: Qt.openUrlExternally("https://login.qt.io/login/") + } +} diff --git a/src/plugins/studiowelcome/qml/welcomepage/ExamplesModel.qml b/src/plugins/studiowelcome/qml/welcomepage/ExamplesModel.qml new file mode 100644 index 0000000000..3f8ce9bc82 --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/ExamplesModel.qml @@ -0,0 +1,70 @@ +/**************************************************************************** +** +** 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 { + ListElement { + projectName: "ClusterTutorial" + qmlFileName: "Cluster_Art.ui.qml" + thumbnail: "images/tutorialclusterdemo_thumbnail.png" + displayName: "Cluster Tutorial" + } + + ListElement { + projectName: "CoffeeMachine" + qmlFileName: "ApplicationFlowForm.ui.qml" + thumbnail: "images/coffeemachinedemo_thumbnail.png" + displayName: "Coffee Machine" + } + + ListElement { + projectName: "SideMenu" + qmlFileName: "MainFile.ui.qml" + thumbnail: "images/sidemenu_demo.png" + displayName: "Side Menu" + } + + ListElement { + projectName: "WebinarDemo" + qmlFileName: "MainApp.ui.qml" + thumbnail: "images/webinardemo_thumbnail.png" + displayName: "Webinar Demo" + } + + ListElement { + projectName: "EBikeDesign" + qmlFileName: "Screen01.ui.qml" + thumbnail: "images/ebike_demo_thumbnail.png" + displayName: "E-Bike Design" + } + + ListElement { + projectName: "ProgressBar" + qmlFileName: "ProgressBar.ui.qml" + thumbnail: "images/progressbar_demo.png" + displayName: "Progress Bar" + } +} diff --git a/src/plugins/studiowelcome/qml/welcomepage/HoverOverDesaturate.qml b/src/plugins/studiowelcome/qml/welcomepage/HoverOverDesaturate.qml new file mode 100644 index 0000000000..e160a1f70e --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/HoverOverDesaturate.qml @@ -0,0 +1,189 @@ +/**************************************************************************** +** +** 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 { + visible: true + width: 270 + height: 175 + property alias imageSource: image.source + property alias labelText: label.text + + 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" + } + } + } + + 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 + } +} diff --git a/src/plugins/studiowelcome/qml/welcomepage/MyButton.qml b/src/plugins/studiowelcome/qml/welcomepage/MyButton.qml new file mode 100644 index 0000000000..304adc31c3 --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/MyButton.qml @@ -0,0 +1,51 @@ +/**************************************************************************** +** +** 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.Controls 2.3 +import welcome 1.0 +import StudioFonts 1.0 + +Button { + id: button + + property color hoverColor: Constants.textHoverColor + property color defaultColor: Constants.textDefaultColor + property color checkedColor: Constants.textDefaultColor + + 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 + } + + background: Item { + } +} diff --git a/src/plugins/studiowelcome/qml/welcomepage/MyTabButton.qml b/src/plugins/studiowelcome/qml/welcomepage/MyTabButton.qml new file mode 100644 index 0000000000..420b3a2b67 --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/MyTabButton.qml @@ -0,0 +1,33 @@ +/**************************************************************************** +** +** 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 + +MyButton { + checkable: true + autoExclusive: true + defaultColor: "#686868" + hoverColor: "#79797C" +} diff --git a/src/plugins/studiowelcome/qml/welcomepage/ProjectsGrid.qml b/src/plugins/studiowelcome/qml/welcomepage/ProjectsGrid.qml new file mode 100644 index 0000000000..6faf3a6554 --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/ProjectsGrid.qml @@ -0,0 +1,70 @@ +/**************************************************************************** +** +** 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 welcome 1.0 + +GridView { + id: root + cellHeight: 180 + cellWidth: 285 + + clip: true + + signal itemSelected(int index, variant item) + + delegate: HoverOverDesaturate { + id: hoverOverDesaturate + imageSource: typeof(thumbnail) === "undefined" ? "images/thumbnail_test.png" : thumbnail; + labelText: displayName + + SequentialAnimation { + id: animation + running: hoverOverDesaturate.visible + + PropertyAction { + target: hoverOverDesaturate + property: "scale" + value: 0.0 + } + PauseAnimation { + duration: model.index > 0 ? 100 * model.index : 0 + } + NumberAnimation { + target: hoverOverDesaturate + property: "scale" + from: 0.0 + to: 1.0 + duration: 200 + easing.type: Easing.InOutExpo + } + } + + MouseArea { + anchors.fill: parent + onClicked: root.itemSelected(index, root.model.get(index)) + } + } +} diff --git a/src/plugins/studiowelcome/qml/welcomepage/SaturationEffect.qml b/src/plugins/studiowelcome/qml/welcomepage/SaturationEffect.qml new file mode 100644 index 0000000000..4f85e681a4 --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/SaturationEffect.qml @@ -0,0 +1,37 @@ +/**************************************************************************** +** +** 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 +import QtGraphicalEffects 1.0 + +Item { + id: root + + property real desaturation: 1.0 + layer.enabled: true + layer.effect: Desaturate { + desaturation: root.desaturation + } +} diff --git a/src/plugins/studiowelcome/qml/welcomepage/TutorialsModel.qml b/src/plugins/studiowelcome/qml/welcomepage/TutorialsModel.qml new file mode 100644 index 0000000000..aa797b0752 --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/TutorialsModel.qml @@ -0,0 +1,88 @@ +/**************************************************************************** +** +** 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 { + ListElement { + displayName: "Learn to use Qt Design Studio (Part 1)" + thumbnail: "images/tutorial1.png" + url: "https://www.youtube.com/watch?v=aV6kFxH3Xws" + } + + ListElement { + displayName: "Learn to use Qt Design Studio (Part 2)" + thumbnail: "images/tutorial2.png" + url: "https://www.youtube.com/watch?v=Z3uPoe-4UAw" + } + + ListElement { + displayName: "Learn to use Qt Design Studio (Part 3)" + thumbnail: "images/tutorial3.png" + url: "https://www.youtube.com/watch?v=9AjvxoeqAKo" + } + + ListElement { + displayName: "Learn to use Qt Design Studio (Part 4)" + thumbnail: "images/tutorial4.png" + url: "https://www.youtube.com/watch?v=8pJpdMwLaAg" + } + + ListElement { + displayName: "Learn to use Qt Design Studio (Part 5)" + thumbnail: "images/tutorial5.png" + url: "https://www.youtube.com/watch?v=U91nAFReAoU" + } + + ListElement { + displayName: "The Designer Tool Developers Love" + thumbnail: "images/webinar1.png" + url: "https://youtu.be/gU_tDbebAzM" + } + + ListElement { + displayName: "From Photoshop to Prototype" + thumbnail: "images/webinar2.png" + url: "https://youtu.be/ZzbucmQPU44" + } + + ListElement { + displayName: "Qt for Designers and Developers" + thumbnail: "images/designer_and_developers.png" + url: "https://www.youtube.com/watch?v=EgjCvZWEPWk" + } + + ListElement { + displayName: "Qt Design Studio: 1.0 and Ready to Go!" + thumbnail: "images/ready_to_go.png" + url: "https://www.youtube.com/watch?v=i9ToZ_04kTk" + } + + ListElement { + displayName: "QTWS - Designer and Developer Workflow" + thumbnail: "images/qtws_video_thumbnail.png" + url: "https://www.youtube.com/watch?v=4ug0EUdS2RM" + } +} diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/coffeemachinedemo_thumbnail.png b/src/plugins/studiowelcome/qml/welcomepage/images/coffeemachinedemo_thumbnail.png Binary files differnew file mode 100644 index 0000000000..565b1d62b1 --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/images/coffeemachinedemo_thumbnail.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/designer_and_developers.png b/src/plugins/studiowelcome/qml/welcomepage/images/designer_and_developers.png Binary files differnew file mode 100644 index 0000000000..870a597282 --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/images/designer_and_developers.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/ebike_demo_thumbnail.png b/src/plugins/studiowelcome/qml/welcomepage/images/ebike_demo_thumbnail.png Binary files differnew file mode 100644 index 0000000000..67cf3b9bff --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/images/ebike_demo_thumbnail.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/icon_default.png b/src/plugins/studiowelcome/qml/welcomepage/images/icon_default.png Binary files differnew file mode 100644 index 0000000000..82b852a408 --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/images/icon_default.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/icon_hover.png b/src/plugins/studiowelcome/qml/welcomepage/images/icon_hover.png Binary files differnew file mode 100644 index 0000000000..693fdaf7b5 --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/images/icon_hover.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/progressbar_demo.png b/src/plugins/studiowelcome/qml/welcomepage/images/progressbar_demo.png Binary files differnew file mode 100644 index 0000000000..b1af2d8f41 --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/images/progressbar_demo.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/qtws_video_thumbnail.png b/src/plugins/studiowelcome/qml/welcomepage/images/qtws_video_thumbnail.png Binary files differnew file mode 100644 index 0000000000..e24783aee0 --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/images/qtws_video_thumbnail.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/ready_to_go.png b/src/plugins/studiowelcome/qml/welcomepage/images/ready_to_go.png Binary files differnew file mode 100644 index 0000000000..af81a8a1d3 --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/images/ready_to_go.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/sidemenu_demo.png b/src/plugins/studiowelcome/qml/welcomepage/images/sidemenu_demo.png Binary files differnew file mode 100644 index 0000000000..b577ed4a0d --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/images/sidemenu_demo.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/thumbnail_test.png b/src/plugins/studiowelcome/qml/welcomepage/images/thumbnail_test.png Binary files differnew file mode 100644 index 0000000000..3c4834e644 --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/images/thumbnail_test.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/tutorial1.png b/src/plugins/studiowelcome/qml/welcomepage/images/tutorial1.png Binary files differnew file mode 100644 index 0000000000..6d8d8bbe61 --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/images/tutorial1.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/tutorial2.png b/src/plugins/studiowelcome/qml/welcomepage/images/tutorial2.png Binary files differnew file mode 100644 index 0000000000..753e5d0937 --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/images/tutorial2.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/tutorial3.png b/src/plugins/studiowelcome/qml/welcomepage/images/tutorial3.png Binary files differnew file mode 100644 index 0000000000..82c5e1cdd5 --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/images/tutorial3.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/tutorial4.png b/src/plugins/studiowelcome/qml/welcomepage/images/tutorial4.png Binary files differnew file mode 100644 index 0000000000..1e1180fddb --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/images/tutorial4.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/tutorial5.png b/src/plugins/studiowelcome/qml/welcomepage/images/tutorial5.png Binary files differnew file mode 100644 index 0000000000..f0cefc0e6d --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/images/tutorial5.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/tutorialclusterdemo_thumbnail.png b/src/plugins/studiowelcome/qml/welcomepage/images/tutorialclusterdemo_thumbnail.png Binary files differnew file mode 100644 index 0000000000..925a1247ca --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/images/tutorialclusterdemo_thumbnail.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/webinar1.png b/src/plugins/studiowelcome/qml/welcomepage/images/webinar1.png Binary files differnew file mode 100644 index 0000000000..ba24ffc3bf --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/images/webinar1.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/webinar2.png b/src/plugins/studiowelcome/qml/welcomepage/images/webinar2.png Binary files differnew file mode 100644 index 0000000000..325c7cdc33 --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/images/webinar2.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/webinardemo_thumbnail.png b/src/plugins/studiowelcome/qml/welcomepage/images/webinardemo_thumbnail.png Binary files differnew file mode 100644 index 0000000000..3cd777ab3f --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/images/webinardemo_thumbnail.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/imports/welcome/Constants.qml b/src/plugins/studiowelcome/qml/welcomepage/imports/welcome/Constants.qml new file mode 100644 index 0000000000..84f8da8d10 --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/imports/welcome/Constants.qml @@ -0,0 +1,37 @@ +/**************************************************************************** +** +** 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. +** +****************************************************************************/ + +pragma Singleton + +import QtQuick 2.6 +import StudioFonts 1.0 + +QtObject { + readonly property color backgroundColor: "#443224" + + readonly property color textDefaultColor: "#b9b9ba" + + readonly property color textHoverColor: "#ffffff" +} diff --git a/src/plugins/studiowelcome/qml/welcomepage/imports/welcome/qmldir b/src/plugins/studiowelcome/qml/welcomepage/imports/welcome/qmldir new file mode 100644 index 0000000000..616ac20353 --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/imports/welcome/qmldir @@ -0,0 +1 @@ +singleton Constants 1.0 Constants.qml diff --git a/src/plugins/studiowelcome/qml/welcomepage/main.qml b/src/plugins/studiowelcome/qml/welcomepage/main.qml new file mode 100644 index 0000000000..759ac45923 --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/main.qml @@ -0,0 +1,204 @@ +/**************************************************************************** +** +** 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 + + ScrollView{ + ProjectsGrid { + model: ProjectModel { + id: projectModel + } + onItemSelected: projectModel.openProjectAt(index) + } + } + + ScrollView { + ProjectsGrid { + model: ExamplesModel {} + onItemSelected: projectModel.openExample(item.projectName, item.qmlFileName) + } + } + + ScrollView{ + ProjectsGrid { + model: TutorialsModel {} + onItemSelected: 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") + bottomPadding: 6 + topPadding: 6.8 + 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 new file mode 100644 index 0000000000..bca1783d42 --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/mockData/projectmodel/ProjectModel.qml @@ -0,0 +1,138 @@ +/**************************************************************************** +** +** 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 new file mode 100644 index 0000000000..0d7bc345c2 --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/mockData/projectmodel/qmldir @@ -0,0 +1 @@ +ProjectModel 1.0 ProjectModel.qml diff --git a/src/plugins/studiowelcome/qml/welcomepage/welcomepage.qmlproject b/src/plugins/studiowelcome/qml/welcomepage/welcomepage.qmlproject new file mode 100644 index 0000000000..de393d88b0 --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/welcomepage.qmlproject @@ -0,0 +1,47 @@ +/**************************************************************************** +** +** 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 QmlProject 1.1 + +Project { + mainFile: "main.qml" + + /* 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" ] + + Environment { + QT_AUTO_SCREEN_SCALE_FACTOR: "1" + } +} diff --git a/src/plugins/studiowelcome/studiowelcome.pro b/src/plugins/studiowelcome/studiowelcome.pro new file mode 100644 index 0000000000..183f955a49 --- /dev/null +++ b/src/plugins/studiowelcome/studiowelcome.pro @@ -0,0 +1,27 @@ +DEFINES += STUDIOWELCOME_LIBRARY + +QT += quick quickwidgets + +include(../../qtcreatorplugin.pri) + +## magic fix for unix builds +RCC_DIR = . + +DEFINES += STUDIO_QML_PATH=\\\"$$PWD/qml/\\\" + +HEADERS += \ + studiowelcome_global.h \ + studiowelcomeplugin.h \ + +SOURCES += \ + studiowelcomeplugin.cpp + +OTHER_FILES += \ + StudioWelcome.json.in + +RESOURCES += \ + ../../share/3rdparty/studiofonts/studiofonts.qrc \ + studiowelcome.qrc + +RESOURCES += \ + $$files(qml/*) diff --git a/src/plugins/studiowelcome/studiowelcome.qrc b/src/plugins/studiowelcome/studiowelcome.qrc new file mode 100644 index 0000000000..59e410ba55 --- /dev/null +++ b/src/plugins/studiowelcome/studiowelcome.qrc @@ -0,0 +1,6 @@ +<RCC> + <qresource prefix="/studiowelcome"> + <file>images/mode_welcome_mask.png</file> + <file>images/mode_welcome_mask@2x.png</file> + </qresource> +</RCC> diff --git a/src/plugins/studiowelcome/studiowelcome_dependencies.pri b/src/plugins/studiowelcome/studiowelcome_dependencies.pri new file mode 100644 index 0000000000..51eb0d0256 --- /dev/null +++ b/src/plugins/studiowelcome/studiowelcome_dependencies.pri @@ -0,0 +1,10 @@ +QTC_PLUGIN_NAME = StudioWelcome +QTC_LIB_DEPENDS += \ + extensionsystem \ + utils + +QTC_PLUGIN_DEPENDS += \ + coreplugin \ + projectexplorer \ + qtsupport + diff --git a/src/plugins/studiowelcome/studiowelcome_global.h b/src/plugins/studiowelcome/studiowelcome_global.h new file mode 100644 index 0000000000..6822c2a128 --- /dev/null +++ b/src/plugins/studiowelcome/studiowelcome_global.h @@ -0,0 +1,34 @@ +/**************************************************************************** +** +** 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. +** +****************************************************************************/ + +#pragma once + +#include <QtGlobal> + +#if defined(STUDIOWELCOME_LIBRARY) +# define STUDIOWELCOME_EXPORT Q_DECL_EXPORT +#else +# define STUDIOWELCOME_EXPORT Q_DECL_IMPORT +#endif diff --git a/src/plugins/studiowelcome/studiowelcomeplugin.cpp b/src/plugins/studiowelcome/studiowelcomeplugin.cpp new file mode 100644 index 0000000000..508ab20b83 --- /dev/null +++ b/src/plugins/studiowelcome/studiowelcomeplugin.cpp @@ -0,0 +1,325 @@ +/**************************************************************************** +** +** 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. +** +****************************************************************************/ + +#include "studiowelcomeplugin.h" + +#include <coreplugin/coreconstants.h> +#include <coreplugin/editormanager/editormanager.h> +#include <coreplugin/helpmanager.h> +#include <coreplugin/icore.h> +#include <coreplugin/imode.h> +#include <coreplugin/modemanager.h> + +#include <projectexplorer/projectexplorer.h> +#include <projectexplorer/projectexplorer.h> +#include <projectexplorer/projectmanager.h> + +#include <utils/checkablemessagebox.h> +#include <utils/icon.h> +#include <utils/stringutils.h> +#include <utils/theme/theme.h> + +#include <QAbstractListModel> +#include <QApplication> +#include <QDesktopServices> +#include <QFontDatabase> +#include <QFileInfo> +#include <QPointer> +#include <QQmlContext> +#include <QQmlEngine> +#include <QQuickItem> +#include <QQuickView> +#include <QQuickWidget> +#include <QTimer> + +namespace StudioWelcome { +namespace Internal { + +const char DO_NOT_SHOW_SPLASHSCREEN_AGAIN_KEY[] = "StudioSplashScreen"; + +QPointer<QQuickWidget> s_view = nullptr; + +class ProjectModel : public QAbstractListModel +{ + Q_OBJECT +public: + enum { FilePathRole = Qt::UserRole+1, PrettyFilePathRole }; + + Q_PROPERTY(bool communityVersion MEMBER m_communityVersion NOTIFY communityVersionChanged) + + explicit ProjectModel(QObject *parent = nullptr); + + int rowCount(const QModelIndex &parent) const override; + QVariant data(const QModelIndex &index, int role) const override; + QHash<int, QByteArray> roleNames() const override; + + Q_INVOKABLE void createProject() + { + ProjectExplorer::ProjectExplorerPlugin::openNewProjectDialog(); + } + + Q_INVOKABLE void openProject() + { + ProjectExplorer::ProjectExplorerPlugin::openOpenProjectDialog(); + } + + Q_INVOKABLE void openProjectAt(int row) + { + const QString projectFile = data(index(row, 0), + ProjectModel::FilePathRole).toString(); + ProjectExplorer::ProjectExplorerPlugin::openProjectWelcomePage(projectFile); + } + + Q_INVOKABLE void showHelp() + { + QDesktopServices::openUrl(QUrl("qthelp://org.qt-project.qtcreator/doc/index.html")); + } + + Q_INVOKABLE void openExample(const QString &example, const QString &formFile) + { + const QString projectFile = Core::ICore::resourcePath() + "/examples/" + example + "/" + example + ".qmlproject"; + ProjectExplorer::ProjectExplorerPlugin::openProjectWelcomePage(projectFile); + const QString qmlFile = Core::ICore::resourcePath() + "/examples/" + example + "/" + formFile; + Core::EditorManager::openEditor(qmlFile); + } +public slots: + void resetProjects(); + +signals: + void communityVersionChanged(); + +private: + bool m_communityVersion = false; +}; + +ProjectModel::ProjectModel(QObject *parent) + : QAbstractListModel(parent) +{ + connect(ProjectExplorer::ProjectExplorerPlugin::instance(), + &ProjectExplorer::ProjectExplorerPlugin::recentProjectsChanged, + this, + &ProjectModel::resetProjects); + +#ifdef LICENSECHECKER + if (!Utils::findOrDefault(ExtensionSystem::PluginManager::plugins(), + Utils::equal(&ExtensionSystem::PluginSpec::name, QString("LicenseChecker")))) + m_communityVersion = true; +#endif +} + +int ProjectModel::rowCount(const QModelIndex &) const +{ + return ProjectExplorer::ProjectExplorerPlugin::recentProjects().count(); +} + +QVariant ProjectModel::data(const QModelIndex &index, int role) const +{ + QPair<QString,QString> data = + ProjectExplorer::ProjectExplorerPlugin::recentProjects().at(index.row()); + switch (role) { + case Qt::DisplayRole: + return data.second; + break; + case FilePathRole: + return data.first; + case PrettyFilePathRole: + return Utils::withTildeHomePath(data.first); + default: + return QVariant(); + } + + return QVariant(); +} + +QHash<int, QByteArray> ProjectModel::roleNames() const +{ + QHash<int, QByteArray> roleNames; + roleNames[Qt::DisplayRole] = "displayName"; + roleNames[FilePathRole] = "filePath"; + roleNames[PrettyFilePathRole] = "prettyFilePath"; + return roleNames; +} + +void ProjectModel::resetProjects() +{ + beginResetModel(); + endResetModel(); +} + +class WelcomeMode : public Core::IMode +{ + Q_OBJECT +public: + WelcomeMode(); + ~WelcomeMode() override; + +private: + + QQuickWidget *m_modeWidget = nullptr; +}; + +void StudioWelcomePlugin::closeSplashScreen() +{ + if (!s_view.isNull()) { + const bool doNotShowAgain = s_view->rootObject()->property("doNotShowAgain").toBool(); + if (doNotShowAgain) + Utils::CheckableMessageBox::doNotAskAgain(Core::ICore::settings(), + DO_NOT_SHOW_SPLASHSCREEN_AGAIN_KEY); + + s_view->deleteLater(); + } +} + +StudioWelcomePlugin::~StudioWelcomePlugin() +{ + delete m_welcomeMode; +} + +bool StudioWelcomePlugin::initialize(const QStringList &arguments, QString *errorString) +{ + Q_UNUSED(arguments); + Q_UNUSED(errorString); + + qmlRegisterType<ProjectModel>("projectmodel", 1, 0, "ProjectModel"); + + m_welcomeMode = new WelcomeMode; + + QFontDatabase fonts; + QFontDatabase::addApplicationFont(":/studiofonts/TitilliumWeb-Regular.ttf"); + QFont systemFont("Titillium Web", QApplication::font().pointSize()); + QApplication::setFont(systemFont); + + return true; +} + +void StudioWelcomePlugin::extensionsInitialized() +{ + Core::ModeManager::activateMode(m_welcomeMode->id()); + if (Utils::CheckableMessageBox::shouldAskAgain(Core::ICore::settings(), + DO_NOT_SHOW_SPLASHSCREEN_AGAIN_KEY)) { + connect(Core::ICore::instance(), &Core::ICore::coreOpened, this, [this] (){ + s_view = new QQuickWidget(Core::ICore::dialogParent()); + s_view->setResizeMode(QQuickWidget::SizeRootObjectToView); + s_view->setWindowFlag(Qt::SplashScreen, true); + s_view->setWindowModality(Qt::ApplicationModal); + s_view->engine()->addImportPath("qrc:/studiofonts"); + #ifdef QT_DEBUG + s_view->engine()->addImportPath(QLatin1String(STUDIO_QML_PATH) + + "splashscreen/imports"); + s_view->setSource(QUrl::fromLocalFile(QLatin1String(STUDIO_QML_PATH) + + "splashscreen/main.qml")); + #else + s_view->engine()->addImportPath("qrc:/qml/splashscreen/imports"); + s_view->setSource(QUrl("qrc:/qml/splashscreen/main.qml")); + #endif + + QTC_ASSERT(s_view->rootObject(), + qWarning() << "The StudioWelcomePlugin has a runtime depdendency on qt/qtquicktimeline."; + return); + + connect(s_view->rootObject(), SIGNAL(closeClicked()), this, SLOT(closeSplashScreen())); + + s_view->show(); + s_view->raise(); + + QTimer::singleShot(15000, [](){ + if (s_view) + s_view->close(); + }); + }); + } +} + +bool StudioWelcomePlugin::delayedInitialize() +{ + if (s_view.isNull()) + return true; + + QTC_ASSERT(s_view->rootObject() , return true); + + s_view->rootObject()->setProperty("loadingPlugins", false); + + QPointer<QQuickWidget> view = s_view; + + connect(Core::ICore::mainWindow()->windowHandle(), &QWindow::visibleChanged, this, [view](){ + if (!view.isNull()) { + view->close(); + view->deleteLater(); + } + }); + + return false; +} + +WelcomeMode::WelcomeMode() +{ + setDisplayName(tr("Studio")); + + const Utils::Icon FLAT({{":/studiowelcome/images/mode_welcome_mask.png", + Utils::Theme::IconsBaseColor}}); + const Utils::Icon FLAT_ACTIVE({{":/studiowelcome/images/mode_welcome_mask.png", + Utils::Theme::IconsModeWelcomeActiveColor}}); + setIcon(Utils::Icon::modeIcon(FLAT, FLAT, FLAT_ACTIVE)); + + setPriority(Core::Constants::P_MODE_WELCOME); + setId(Core::Constants::MODE_WELCOME); + setContextHelp("Qt Creator Manual"); + setContext(Core::Context(Core::Constants::C_WELCOME_MODE)); + + m_modeWidget = new QQuickWidget; + m_modeWidget->setResizeMode(QQuickWidget::SizeRootObjectToView); + 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 + + setWidget(m_modeWidget); + + QStringList designStudioQchPathes = {Core::HelpManager::documentationPath() + + "/qtdesignstudio.qch", + Core::HelpManager::documentationPath() + "/qtquick.qch", + Core::HelpManager::documentationPath() + + "/qtquickcontrols.qch"}; + + Core::HelpManager::registerDocumentation( + Utils::filtered(designStudioQchPathes, + [](const QString &path) { return QFileInfo::exists(path); })); +} + +WelcomeMode::~WelcomeMode() +{ + delete m_modeWidget; +} + +} // namespace Internal +} // namespace StudioWelcome + +#include "studiowelcomeplugin.moc" diff --git a/src/plugins/studiowelcome/studiowelcomeplugin.h b/src/plugins/studiowelcome/studiowelcomeplugin.h new file mode 100644 index 0000000000..2250d7b1b6 --- /dev/null +++ b/src/plugins/studiowelcome/studiowelcomeplugin.h @@ -0,0 +1,53 @@ +/**************************************************************************** +** +** 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. +** +****************************************************************************/ + +#pragma once + +#include <extensionsystem/iplugin.h> + +namespace StudioWelcome { +namespace Internal { + +class StudioWelcomePlugin : public ExtensionSystem::IPlugin +{ + Q_OBJECT + Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "StudioWelcome.json") + +public slots: + void closeSplashScreen(); + +public: + ~StudioWelcomePlugin() final; + + bool initialize(const QStringList &arguments, QString *errorString) override; + void extensionsInitialized() override; + bool delayedInitialize() override; + +private: + class WelcomeMode *m_welcomeMode = nullptr; +}; + +} // namespace Internal +} // namespace StudioWelcome |