aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/studiowelcome
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/studiowelcome')
-rw-r--r--src/plugins/studiowelcome/CMakeLists.txt10
-rw-r--r--src/plugins/studiowelcome/StudioWelcome.json.in21
-rw-r--r--src/plugins/studiowelcome/images/mode_welcome_mask.pngbin0 -> 101 bytes
-rw-r--r--src/plugins/studiowelcome/images/mode_welcome_mask@2x.pngbin0 -> 107 bytes
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/Arc.qml97
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/ArcAnimation.qml148
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/Dof_Effect.qml93
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/Image1.qml32
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/Image2.qml152
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/NoShowCheckbox.qml47
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/RectangleMask.qml86
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/Sequencer.qml629
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/Sequencer_Bars.qml643
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/SlidersTogether.qml104
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/Splash_Image25d.qml80
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/Splash_Image2d_png.qml96
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/Welcome_splash.qml253
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/main.qml46
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/welcome_screens.qmlproject47
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/welcome_windows/close.pngbin0 -> 273 bytes
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/welcome_windows/hand.pngbin0 -> 122318 bytes
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/welcome_windows/highlight.pngbin0 -> 10633 bytes
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/welcome_windows/logo.pngbin0 -> 30814 bytes
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/blue_seq.pngbin0 -> 130 bytes
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/peach_seq.pngbin0 -> 145 bytes
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/pink_seq.pngbin0 -> 130 bytes
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_1.pngbin0 -> 182 bytes
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_2.pngbin0 -> 199 bytes
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_3.pngbin0 -> 153 bytes
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_4.pngbin0 -> 200 bytes
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_5.pngbin0 -> 191 bytes
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_6.pngbin0 -> 196 bytes
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_7.pngbin0 -> 186 bytes
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_8.pngbin0 -> 201 bytes
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/Audio_Waves.pngbin0 -> 2731 bytes
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/Slider_on.pngbin0 -> 1198 bytes
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/Sliders_together.pngbin0 -> 482 bytes
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/Step_sequencer.pngbin0 -> 2632 bytes
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/UI_Background.pngbin0 -> 31484 bytes
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_1_in.pngbin0 -> 276 bytes
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_1_out.pngbin0 -> 577 bytes
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_2.pngbin0 -> 1182 bytes
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_3.pngbin0 -> 1108 bytes
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_line_1.pngbin0 -> 532 bytes
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_line_2.pngbin0 -> 593 bytes
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/sliders_off.pngbin0 -> 835 bytes
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/welcome_windows/welcome_1.pngbin0 -> 732 bytes
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/AccountImage.qml55
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/ExamplesModel.qml70
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/HoverOverDesaturate.qml189
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/MyButton.qml51
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/MyTabButton.qml33
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/ProjectsGrid.qml70
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/SaturationEffect.qml37
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/TutorialsModel.qml88
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/images/coffeemachinedemo_thumbnail.pngbin0 -> 41491 bytes
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/images/designer_and_developers.pngbin0 -> 92433 bytes
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/images/ebike_demo_thumbnail.pngbin0 -> 17612 bytes
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/images/icon_default.pngbin0 -> 289 bytes
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/images/icon_hover.pngbin0 -> 289 bytes
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/images/progressbar_demo.pngbin0 -> 6012 bytes
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/images/qtws_video_thumbnail.pngbin0 -> 60216 bytes
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/images/ready_to_go.pngbin0 -> 37363 bytes
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/images/sidemenu_demo.pngbin0 -> 45862 bytes
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/images/thumbnail_test.pngbin0 -> 32580 bytes
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/images/tutorial1.pngbin0 -> 28717 bytes
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/images/tutorial2.pngbin0 -> 20299 bytes
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/images/tutorial3.pngbin0 -> 28298 bytes
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/images/tutorial4.pngbin0 -> 44785 bytes
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/images/tutorial5.pngbin0 -> 40981 bytes
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/images/tutorialclusterdemo_thumbnail.pngbin0 -> 50213 bytes
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/images/webinar1.pngbin0 -> 54944 bytes
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/images/webinar2.pngbin0 -> 32635 bytes
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/images/webinardemo_thumbnail.pngbin0 -> 52855 bytes
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/imports/welcome/Constants.qml37
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/imports/welcome/qmldir1
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/main.qml204
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/mockData/projectmodel/ProjectModel.qml138
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/mockData/projectmodel/qmldir1
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/welcomepage.qmlproject47
-rw-r--r--src/plugins/studiowelcome/studiowelcome.pro27
-rw-r--r--src/plugins/studiowelcome/studiowelcome.qrc6
-rw-r--r--src/plugins/studiowelcome/studiowelcome_dependencies.pri10
-rw-r--r--src/plugins/studiowelcome/studiowelcome_global.h34
-rw-r--r--src/plugins/studiowelcome/studiowelcomeplugin.cpp325
-rw-r--r--src/plugins/studiowelcome/studiowelcomeplugin.h53
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
new file mode 100644
index 0000000000..696af0c549
--- /dev/null
+++ b/src/plugins/studiowelcome/images/mode_welcome_mask.png
Binary files differ
diff --git a/src/plugins/studiowelcome/images/mode_welcome_mask@2x.png b/src/plugins/studiowelcome/images/mode_welcome_mask@2x.png
new file mode 100644
index 0000000000..060ada0cf5
--- /dev/null
+++ b/src/plugins/studiowelcome/images/mode_welcome_mask@2x.png
Binary files differ
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
new file mode 100644
index 0000000000..940e1687fa
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/close.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/hand.png b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/hand.png
new file mode 100644
index 0000000000..73944a4bad
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/hand.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/highlight.png b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/highlight.png
new file mode 100644
index 0000000000..d9e6db2b05
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/highlight.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/logo.png b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/logo.png
new file mode 100644
index 0000000000..347beb789c
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/logo.png
Binary files differ
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
new file mode 100644
index 0000000000..7697fc4747
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/blue_seq.png
Binary files differ
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
new file mode 100644
index 0000000000..28fd238433
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/peach_seq.png
Binary files differ
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
new file mode 100644
index 0000000000..714f1f79d4
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/pink_seq.png
Binary files differ
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
new file mode 100644
index 0000000000..6ac5b5c43f
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_1.png
Binary files differ
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
new file mode 100644
index 0000000000..eb942aadad
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_2.png
Binary files differ
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
new file mode 100644
index 0000000000..b33feda2a2
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_3.png
Binary files differ
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
new file mode 100644
index 0000000000..3e6a6ea817
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_4.png
Binary files differ
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
new file mode 100644
index 0000000000..471f62da7d
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_5.png
Binary files differ
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
new file mode 100644
index 0000000000..b6612b192b
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_6.png
Binary files differ
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
new file mode 100644
index 0000000000..7bffeb9921
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_7.png
Binary files differ
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
new file mode 100644
index 0000000000..0fe2a943db
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_8.png
Binary files differ
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
new file mode 100644
index 0000000000..177a13e6ef
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/Audio_Waves.png
Binary files differ
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
new file mode 100644
index 0000000000..326bb72d2e
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/Slider_on.png
Binary files differ
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
new file mode 100644
index 0000000000..870eb34e1e
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/Sliders_together.png
Binary files differ
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
new file mode 100644
index 0000000000..79e05d8ada
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/Step_sequencer.png
Binary files differ
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
new file mode 100644
index 0000000000..edf9debd10
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/UI_Background.png
Binary files differ
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
new file mode 100644
index 0000000000..0388a99ea0
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_1_in.png
Binary files differ
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
new file mode 100644
index 0000000000..662fcb0fe8
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_1_out.png
Binary files differ
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
new file mode 100644
index 0000000000..1bc54f8827
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_2.png
Binary files differ
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
new file mode 100644
index 0000000000..df8c7b5c70
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_3.png
Binary files differ
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
new file mode 100644
index 0000000000..022a6bc08d
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_line_1.png
Binary files differ
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
new file mode 100644
index 0000000000..f857c92b74
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_line_2.png
Binary files differ
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
new file mode 100644
index 0000000000..9e8c2c7bdf
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/sliders_off.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/welcome_1.png b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/welcome_1.png
new file mode 100644
index 0000000000..58b68511be
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/welcome_1.png
Binary files differ
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
new file mode 100644
index 0000000000..565b1d62b1
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/welcomepage/images/coffeemachinedemo_thumbnail.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/designer_and_developers.png b/src/plugins/studiowelcome/qml/welcomepage/images/designer_and_developers.png
new file mode 100644
index 0000000000..870a597282
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/welcomepage/images/designer_and_developers.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/ebike_demo_thumbnail.png b/src/plugins/studiowelcome/qml/welcomepage/images/ebike_demo_thumbnail.png
new file mode 100644
index 0000000000..67cf3b9bff
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/welcomepage/images/ebike_demo_thumbnail.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/icon_default.png b/src/plugins/studiowelcome/qml/welcomepage/images/icon_default.png
new file mode 100644
index 0000000000..82b852a408
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/welcomepage/images/icon_default.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/icon_hover.png b/src/plugins/studiowelcome/qml/welcomepage/images/icon_hover.png
new file mode 100644
index 0000000000..693fdaf7b5
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/welcomepage/images/icon_hover.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/progressbar_demo.png b/src/plugins/studiowelcome/qml/welcomepage/images/progressbar_demo.png
new file mode 100644
index 0000000000..b1af2d8f41
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/welcomepage/images/progressbar_demo.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/qtws_video_thumbnail.png b/src/plugins/studiowelcome/qml/welcomepage/images/qtws_video_thumbnail.png
new file mode 100644
index 0000000000..e24783aee0
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/welcomepage/images/qtws_video_thumbnail.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/ready_to_go.png b/src/plugins/studiowelcome/qml/welcomepage/images/ready_to_go.png
new file mode 100644
index 0000000000..af81a8a1d3
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/welcomepage/images/ready_to_go.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/sidemenu_demo.png b/src/plugins/studiowelcome/qml/welcomepage/images/sidemenu_demo.png
new file mode 100644
index 0000000000..b577ed4a0d
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/welcomepage/images/sidemenu_demo.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/thumbnail_test.png b/src/plugins/studiowelcome/qml/welcomepage/images/thumbnail_test.png
new file mode 100644
index 0000000000..3c4834e644
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/welcomepage/images/thumbnail_test.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/tutorial1.png b/src/plugins/studiowelcome/qml/welcomepage/images/tutorial1.png
new file mode 100644
index 0000000000..6d8d8bbe61
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/welcomepage/images/tutorial1.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/tutorial2.png b/src/plugins/studiowelcome/qml/welcomepage/images/tutorial2.png
new file mode 100644
index 0000000000..753e5d0937
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/welcomepage/images/tutorial2.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/tutorial3.png b/src/plugins/studiowelcome/qml/welcomepage/images/tutorial3.png
new file mode 100644
index 0000000000..82c5e1cdd5
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/welcomepage/images/tutorial3.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/tutorial4.png b/src/plugins/studiowelcome/qml/welcomepage/images/tutorial4.png
new file mode 100644
index 0000000000..1e1180fddb
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/welcomepage/images/tutorial4.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/tutorial5.png b/src/plugins/studiowelcome/qml/welcomepage/images/tutorial5.png
new file mode 100644
index 0000000000..f0cefc0e6d
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/welcomepage/images/tutorial5.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/tutorialclusterdemo_thumbnail.png b/src/plugins/studiowelcome/qml/welcomepage/images/tutorialclusterdemo_thumbnail.png
new file mode 100644
index 0000000000..925a1247ca
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/welcomepage/images/tutorialclusterdemo_thumbnail.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/webinar1.png b/src/plugins/studiowelcome/qml/welcomepage/images/webinar1.png
new file mode 100644
index 0000000000..ba24ffc3bf
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/welcomepage/images/webinar1.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/webinar2.png b/src/plugins/studiowelcome/qml/welcomepage/images/webinar2.png
new file mode 100644
index 0000000000..325c7cdc33
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/welcomepage/images/webinar2.png
Binary files differ
diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/webinardemo_thumbnail.png b/src/plugins/studiowelcome/qml/welcomepage/images/webinardemo_thumbnail.png
new file mode 100644
index 0000000000..3cd777ab3f
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/welcomepage/images/webinardemo_thumbnail.png
Binary files differ
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