diff --git a/src/plugins/plugins.pro b/src/plugins/plugins.pro index 9efcf77bf11..7b7b88967d0 100644 --- a/src/plugins/plugins.pro +++ b/src/plugins/plugins.pro @@ -60,7 +60,8 @@ SUBDIRS = \ cppcheck \ compilationdatabaseprojectmanager \ perfprofiler \ - qmlpreview + qmlpreview \ + studiowelcome qtHaveModule(serialport) { SUBDIRS += serialterminal diff --git a/src/plugins/studiowelcome/StudioWelcome.json.in b/src/plugins/studiowelcome/StudioWelcome.json.in new file mode 100644 index 00000000000..5a4173de12f --- /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 00000000000..696af0c5499 Binary files /dev/null and b/src/plugins/studiowelcome/images/mode_welcome_mask.png 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 00000000000..060ada0cf54 Binary files /dev/null and b/src/plugins/studiowelcome/images/mode_welcome_mask@2x.png differ diff --git a/src/plugins/studiowelcome/qml/splashscreen/Arc.qml b/src/plugins/studiowelcome/qml/splashscreen/Arc.qml new file mode 100644 index 00000000000..2a63c1a7de3 --- /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 00000000000..08fae81a2cc --- /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 00000000000..010228b88b4 --- /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 00000000000..044a8eae845 --- /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 00000000000..774723c23a4 --- /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/RectangleMask.qml b/src/plugins/studiowelcome/qml/splashscreen/RectangleMask.qml new file mode 100644 index 00000000000..d0652d84b00 --- /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 00000000000..8f3d8fc56a0 --- /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 00000000000..477cd00b8cd --- /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 00000000000..c05c6efce9a --- /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 00000000000..3d54304195b --- /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 00000000000..5f07be16728 --- /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 00000000000..310861184de --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/Welcome_splash.qml @@ -0,0 +1,252 @@ +/**************************************************************************** +** +** 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 + +Image { + id: welcome_splash + width: 800 + height: 480 + source: "welcome_windows/welcome_1.png" + + signal goNext + signal closeClicked + + property alias showSplashScreen: do_not_show_checkBox.checked + property bool loadingPlugins: true + + Image { + id: logo + x: 16 + y: 18 + width: 76 + height: 66 + fillMode: Image.PreserveAspectFit + source: "welcome_windows/logo.png" + } + + Text { + id: qt_design_studio + x: 14 + y: 93 + 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 - 2018 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() + } + } + + Text { + id: do_not_show_text + x: 42 + y: 432 + width: 143 + height: 31 + color: "#ffffff" + text: qsTr("Don't show this again") + font.wordSpacing: 0 + font.pixelSize: 12 + font.family: StudioFonts.titilliumWeb_light + wrapMode: Text.WordWrap + } + + CheckBox { + id: do_not_show_checkBox + x: 7 + y: 421 + width: 34 + height: 40 + text: qsTr("") + scale: 0.5 + font.pointSize: 9 + } + + 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 + } + } + } +} diff --git a/src/plugins/studiowelcome/qml/splashscreen/main.qml b/src/plugins/studiowelcome/qml/splashscreen/main.qml new file mode 100644 index 00000000000..190f41e2e5d --- /dev/null +++ b/src/plugins/studiowelcome/qml/splashscreen/main.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.0 + +Item { + id: root + width: 800 + height: 480 + + signal closeClicked + signal checkBoxToggled + + property alias showSplashScreen: welcome_splash.showSplashScreen + property alias loadingPlugins: welcome_splash.loadingPlugins + + Welcome_splash { + onShowSplashScreenChanged: root.checkBoxToggled() + 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 00000000000..415e8f203dc --- /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: [ "../../../../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 00000000000..940e1687faf Binary files /dev/null and b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/close.png 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 00000000000..73944a4bad8 Binary files /dev/null and b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/hand.png 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 00000000000..d9e6db2b053 Binary files /dev/null and b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/highlight.png 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 00000000000..f7b6fb1736e Binary files /dev/null and b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/logo.png 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 00000000000..7697fc47471 Binary files /dev/null and b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/blue_seq.png 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 00000000000..28fd238433c Binary files /dev/null and b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/peach_seq.png 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 00000000000..714f1f79d40 Binary files /dev/null and b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/pink_seq.png 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 00000000000..6ac5b5c43f8 Binary files /dev/null and b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_1.png 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 00000000000..eb942aadad8 Binary files /dev/null and b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_2.png 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 00000000000..b33feda2a24 Binary files /dev/null and b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_3.png 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 00000000000..3e6a6ea8176 Binary files /dev/null and b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_4.png 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 00000000000..471f62da7da Binary files /dev/null and b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_5.png 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 00000000000..b6612b192b2 Binary files /dev/null and b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_6.png 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 00000000000..7bffeb9921c Binary files /dev/null and b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_7.png 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 00000000000..0fe2a943db5 Binary files /dev/null and b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/sequencer_images/seq_bar_8.png 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 00000000000..177a13e6ef4 Binary files /dev/null and b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/Audio_Waves.png 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 00000000000..326bb72d2eb Binary files /dev/null and b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/Slider_on.png 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 00000000000..870eb34e1e5 Binary files /dev/null and b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/Sliders_together.png 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 00000000000..79e05d8ada9 Binary files /dev/null and b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/Step_sequencer.png 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 00000000000..edf9debd10a Binary files /dev/null and b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/UI_Background.png 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 00000000000..0388a99ea0a Binary files /dev/null and b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_1_in.png 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 00000000000..662fcb0fe87 Binary files /dev/null and b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_1_out.png 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 00000000000..1bc54f88276 Binary files /dev/null and b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_2.png 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 00000000000..df8c7b5c70d Binary files /dev/null and b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_3.png 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 00000000000..022a6bc08dc Binary files /dev/null and b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_line_1.png 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 00000000000..f857c92b74b Binary files /dev/null and b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/ring_line_2.png 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 00000000000..9e8c2c7bdf3 Binary files /dev/null and b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/splash_pngs/sliders_off.png 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 00000000000..58b68511be9 Binary files /dev/null and b/src/plugins/studiowelcome/qml/splashscreen/welcome_windows/welcome_1.png differ diff --git a/src/plugins/studiowelcome/qml/welcomepage/AccountImage.qml b/src/plugins/studiowelcome/qml/welcomepage/AccountImage.qml new file mode 100644 index 00000000000..719ff05546d --- /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 00000000000..3f8ce9bc821 --- /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 00000000000..823d9407e66 --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/HoverOverDesaturate.qml @@ -0,0 +1,188 @@ +/**************************************************************************** +** +** 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.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 00000000000..304adc31c30 --- /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 00000000000..420b3a2b67e --- /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 00000000000..6faf3a65547 --- /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 00000000000..4f85e681a46 --- /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 00000000000..aa797b07524 --- /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 00000000000..565b1d62b1a Binary files /dev/null and b/src/plugins/studiowelcome/qml/welcomepage/images/coffeemachinedemo_thumbnail.png 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 00000000000..870a597282f Binary files /dev/null and b/src/plugins/studiowelcome/qml/welcomepage/images/designer_and_developers.png 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 00000000000..67cf3b9bff0 Binary files /dev/null and b/src/plugins/studiowelcome/qml/welcomepage/images/ebike_demo_thumbnail.png 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 00000000000..82b852a408c Binary files /dev/null and b/src/plugins/studiowelcome/qml/welcomepage/images/icon_default.png 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 00000000000..693fdaf7b5a Binary files /dev/null and b/src/plugins/studiowelcome/qml/welcomepage/images/icon_hover.png 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 00000000000..b1af2d8f410 Binary files /dev/null and b/src/plugins/studiowelcome/qml/welcomepage/images/progressbar_demo.png 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 00000000000..e24783aee01 Binary files /dev/null and b/src/plugins/studiowelcome/qml/welcomepage/images/qtws_video_thumbnail.png 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 00000000000..af81a8a1d3a Binary files /dev/null and b/src/plugins/studiowelcome/qml/welcomepage/images/ready_to_go.png 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 00000000000..b577ed4a0db Binary files /dev/null and b/src/plugins/studiowelcome/qml/welcomepage/images/sidemenu_demo.png 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 00000000000..3c4834e6448 Binary files /dev/null and b/src/plugins/studiowelcome/qml/welcomepage/images/thumbnail_test.png 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 00000000000..6d8d8bbe61c Binary files /dev/null and b/src/plugins/studiowelcome/qml/welcomepage/images/tutorial1.png 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 00000000000..753e5d0937a Binary files /dev/null and b/src/plugins/studiowelcome/qml/welcomepage/images/tutorial2.png 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 00000000000..82c5e1cdd5b Binary files /dev/null and b/src/plugins/studiowelcome/qml/welcomepage/images/tutorial3.png 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 00000000000..1e1180fddb6 Binary files /dev/null and b/src/plugins/studiowelcome/qml/welcomepage/images/tutorial4.png 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 00000000000..f0cefc0e6d8 Binary files /dev/null and b/src/plugins/studiowelcome/qml/welcomepage/images/tutorial5.png 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 00000000000..925a1247ca6 Binary files /dev/null and b/src/plugins/studiowelcome/qml/welcomepage/images/tutorialclusterdemo_thumbnail.png 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 00000000000..ba24ffc3bf2 Binary files /dev/null and b/src/plugins/studiowelcome/qml/welcomepage/images/webinar1.png 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 00000000000..325c7cdc33e Binary files /dev/null and b/src/plugins/studiowelcome/qml/welcomepage/images/webinar2.png 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 00000000000..3cd777ab3fc Binary files /dev/null and b/src/plugins/studiowelcome/qml/welcomepage/images/webinardemo_thumbnail.png 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 00000000000..84f8da8d106 --- /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 00000000000..616ac203530 --- /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 00000000000..3a37cc15987 --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/main.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.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/") + } + } + } +} 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 00000000000..d0524f3b465 --- /dev/null +++ b/src/plugins/studiowelcome/qml/welcomepage/mockData/projectmodel/ProjectModel.qml @@ -0,0 +1,136 @@ +/**************************************************************************** +** +** 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: "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 00000000000..0d7bc345c2b --- /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 00000000000..de393d88b07 --- /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 00000000000..183f955a490 --- /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 00000000000..59e410ba55a --- /dev/null +++ b/src/plugins/studiowelcome/studiowelcome.qrc @@ -0,0 +1,6 @@ + + + images/mode_welcome_mask.png + images/mode_welcome_mask@2x.png + + diff --git a/src/plugins/studiowelcome/studiowelcome_dependencies.pri b/src/plugins/studiowelcome/studiowelcome_dependencies.pri new file mode 100644 index 00000000000..748b036fc1e --- /dev/null +++ b/src/plugins/studiowelcome/studiowelcome_dependencies.pri @@ -0,0 +1,11 @@ +QTC_PLUGIN_NAME = StudioWelcome +QTC_LIB_DEPENDS += \ + extensionsystem \ + utils + +QTC_PLUGIN_DEPENDS += \ + coreplugin \ + projectexplorer \ + qtsupport + +CONFIG(licensechecker): QTC_PLUGIN_DEPENDS += licensechecker diff --git a/src/plugins/studiowelcome/studiowelcome_global.h b/src/plugins/studiowelcome/studiowelcome_global.h new file mode 100644 index 00000000000..6822c2a128f --- /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 + +#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 00000000000..5963faafeac --- /dev/null +++ b/src/plugins/studiowelcome/studiowelcomeplugin.cpp @@ -0,0 +1,289 @@ +/**************************************************************************** +** +** 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 +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace StudioWelcome { +namespace Internal { + +const char SHOW_SPLASHSCREEN[] = "Studiowelcomeplugin/showSplashScreen"; + +QPointer s_view = nullptr; + +class ProjectModel : public QAbstractListModel +{ + Q_OBJECT +public: + enum { FilePathRole = Qt::UserRole+1, PrettyFilePathRole }; + + explicit ProjectModel(QObject *parent = nullptr); + + int rowCount(const QModelIndex &parent) const override; + QVariant data(const QModelIndex &index, int role) const override; + QHash 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(); +}; + +ProjectModel::ProjectModel(QObject *parent) + : QAbstractListModel(parent) +{ + connect(ProjectExplorer::ProjectExplorerPlugin::instance(), + &ProjectExplorer::ProjectExplorerPlugin::recentProjectsChanged, + this, + &ProjectModel::resetProjects); +} + +int ProjectModel::rowCount(const QModelIndex &) const +{ + return ProjectExplorer::ProjectExplorerPlugin::recentProjects().count(); +} + +QVariant ProjectModel::data(const QModelIndex &index, int role) const +{ + QPair 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 ProjectModel::roleNames() const +{ + QHash 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()) + s_view->deleteLater(); +} + +void StudioWelcomePlugin::handleSplashCheckBoxChanged() +{ + if (s_view.isNull()) + return; + + bool show = s_view->rootObject()->property("showSplashScreen").toBool(); + Core::ICore::settings()->setValue(SHOW_SPLASHSCREEN, !show); +} + +StudioWelcomePlugin::~StudioWelcomePlugin() +{ + delete m_welcomeMode; +} + +bool StudioWelcomePlugin::initialize(const QStringList &arguments, QString *errorString) +{ + Q_UNUSED(arguments); + Q_UNUSED(errorString); + + qmlRegisterType("projectmodel", 1, 0, "ProjectModel"); + + m_welcomeMode = new WelcomeMode; + return true; +} + +void StudioWelcomePlugin::extensionsInitialized() +{ + Core::ModeManager::activateMode(m_welcomeMode->id()); + if (Core::ICore::settings()->value(SHOW_SPLASHSCREEN, true).toBool()) { + 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); + #ifdef QT_DEBUG + s_view->engine()->addImportPath(QLatin1Literal(STUDIO_QML_PATH) + + "splashscreen/imports"); + s_view->setSource(QUrl::fromLocalFile(QLatin1Literal(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())); + connect(s_view->rootObject(), SIGNAL(checkBoxToggled()), this, SLOT(handleSplashCheckBoxChanged())); + + s_view->show(); + s_view->raise(); + }); + } +} + +bool StudioWelcomePlugin::delayedInitialize() +{ + if (s_view.isNull()) + return true; + + QTC_ASSERT(s_view->rootObject() , return true); + + s_view->rootObject()->setProperty("loadingPlugins", false); + + QPointer 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(QLatin1Literal(STUDIO_QML_PATH) + + "welcomepage/imports"); + m_modeWidget->setSource(QUrl::fromLocalFile(QLatin1Literal(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); +} + +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 00000000000..28834b4a07f --- /dev/null +++ b/src/plugins/studiowelcome/studiowelcomeplugin.h @@ -0,0 +1,54 @@ +/**************************************************************************** +** +** 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 + +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(); + void handleSplashCheckBoxChanged(); + +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 diff --git a/src/share/3rdparty/studiofonts/StudioFonts/StudioFonts.qml b/src/share/3rdparty/studiofonts/StudioFonts/StudioFonts.qml new file mode 100644 index 00000000000..677dd7e0d19 --- /dev/null +++ b/src/share/3rdparty/studiofonts/StudioFonts/StudioFonts.qml @@ -0,0 +1,44 @@ +/**************************************************************************** +** +** 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 + +QtObject { + property FontLoader fontLoader_regular: FontLoader { + id: fontLoader_regular + source: "../TitilliumWeb-Regular.ttf" + } + + readonly property alias titilliumWeb_regular: fontLoader_regular.name + + property FontLoader fontLoader_light: FontLoader { + id: fontLoader_light + source: "../TitilliumWeb-Light.ttf" + } + + readonly property alias titilliumWeb_light: fontLoader_light.name +} diff --git a/src/share/3rdparty/studiofonts/StudioFonts/qmldir b/src/share/3rdparty/studiofonts/StudioFonts/qmldir new file mode 100644 index 00000000000..7d39f37fcb7 --- /dev/null +++ b/src/share/3rdparty/studiofonts/StudioFonts/qmldir @@ -0,0 +1 @@ +singleton StudioFonts 1.0 StudioFonts.qml diff --git a/src/share/3rdparty/studiofonts/TitilliumWeb-Light.ttf b/src/share/3rdparty/studiofonts/TitilliumWeb-Light.ttf new file mode 100644 index 00000000000..2685cbe55d8 Binary files /dev/null and b/src/share/3rdparty/studiofonts/TitilliumWeb-Light.ttf differ diff --git a/src/share/3rdparty/studiofonts/TitilliumWeb-Regular.ttf b/src/share/3rdparty/studiofonts/TitilliumWeb-Regular.ttf new file mode 100644 index 00000000000..4fd6b7fba0b Binary files /dev/null and b/src/share/3rdparty/studiofonts/TitilliumWeb-Regular.ttf differ diff --git a/src/share/3rdparty/studiofonts/TitilliumWeb.txt b/src/share/3rdparty/studiofonts/TitilliumWeb.txt new file mode 100644 index 00000000000..cc2b593f345 --- /dev/null +++ b/src/share/3rdparty/studiofonts/TitilliumWeb.txt @@ -0,0 +1,8 @@ +Titillium is a free open source font and it is born inside the Accademia +di Belle Arti di Urbino as a didactic project Course Type design of the +Master of Visual Design Campi Visivi. It has 11 different weights and is +well suited for headlines and body type. + +Titillium is used as the brand font for Qt. + +https://brand.qt.io/fonts/ \ No newline at end of file diff --git a/src/share/3rdparty/studiofonts/studiofonts.qrc b/src/share/3rdparty/studiofonts/studiofonts.qrc new file mode 100644 index 00000000000..0dfcd932329 --- /dev/null +++ b/src/share/3rdparty/studiofonts/studiofonts.qrc @@ -0,0 +1,8 @@ + + + TitilliumWeb-Light.ttf + TitilliumWeb-Regular.ttf + StudioFonts/qmldir + StudioFonts/StudioFonts.qml + +