aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Hartmann <thomas.hartmann@qt.io>2022-04-11 14:28:43 +0200
committerThomas Hartmann <thomas.hartmann@qt.io>2022-04-13 08:23:20 +0000
commit803f2999673c3f2ededdd6cbf569112c15636b3d (patch)
tree57512ccf376d2a96c2ad06e13a1ffb7efa084a6a
parent0c1b5065c88a49dceca5cc14a8a92eb6c5b9a4bb (diff)
StudioPlugin: Revamp splash screen
* "Learn More" links to Qt Privacy policy webpage * Size changed * Design adjusted * The user now can choose between sending data and not sending data * The screen closes after the user chooses one of the options using a button. Task-number: QDS-6617 Change-Id: I8729f1bb6f9e7b74c6da8f1d62a4fc04456175c8 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/CustomButton.ui.qml108
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/Splash_Image25d.qml24
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/Welcome_splash.qml309
-rw-r--r--src/plugins/studiowelcome/qml/splashscreen/main.qml4
-rw-r--r--src/plugins/studiowelcome/qml/welcomepage/mockData/usagestatistics/UsageStatisticModel.qml1
-rw-r--r--src/plugins/studiowelcome/studiowelcomeplugin.cpp14
6 files changed, 204 insertions, 256 deletions
diff --git a/src/plugins/studiowelcome/qml/splashscreen/CustomButton.ui.qml b/src/plugins/studiowelcome/qml/splashscreen/CustomButton.ui.qml
new file mode 100644
index 0000000000..4cce33d42b
--- /dev/null
+++ b/src/plugins/studiowelcome/qml/splashscreen/CustomButton.ui.qml
@@ -0,0 +1,108 @@
+/****************************************************************************
+**
+** Copyright (C) 2022 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.
+**
+****************************************************************************/
+
+/*
+This is a UI file (.ui.qml) that is intended to be edited in Qt Design Studio only.
+It is supposed to be strictly declarative and only uses a subset of QML. If you edit
+this file manually, you might introduce QML code that is not supported by Qt Design Studio.
+Check out https://doc.qt.io/qtcreator/creator-quick-ui-forms.html for details on .ui.qml files.
+*/
+import QtQuick 2.15
+import QtQuick.Templates 2.15
+import StudioFonts 1.0
+
+Button {
+ id: control
+
+ implicitWidth: Math.max(
+ buttonBackground ? buttonBackground.implicitWidth : 0,
+ textItem.implicitWidth + leftPadding + rightPadding)
+ implicitHeight: Math.max(
+ buttonBackground ? buttonBackground.implicitHeight : 0,
+ textItem.implicitHeight + topPadding + bottomPadding)
+ leftPadding: 16
+ rightPadding: 16
+
+ text: "My Button"
+
+ font.family: StudioFonts.titilliumWeb_light
+
+ //property color accentColor: "#047eff"
+ property color accentColor: "#126491"
+
+ background: buttonBackground
+ Rectangle {
+ id: buttonBackground
+ color: "#00000000"
+ implicitWidth: 100
+ implicitHeight: 40
+ opacity: enabled ? 1 : 0.3
+ radius: 2
+ border.color: control.accentColor
+ }
+
+ contentItem: textItem
+ Text {
+ id: textItem
+ text: control.text
+
+ opacity: enabled ? 1.0 : 0.3
+ color: "#ffffff"
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ states: [
+ State {
+ name: "normal"
+ when: !control.down
+
+ PropertyChanges {
+ target: buttonBackground
+ color: "#00000000"
+ border.color: control.accentColor
+ }
+
+ PropertyChanges {
+ target: textItem
+ color: "#ffffff"
+ }
+ },
+ State {
+ name: "down"
+ when: control.down
+ PropertyChanges {
+ target: textItem
+ color: "#ffffff"
+ }
+
+ PropertyChanges {
+ target: buttonBackground
+ color: control.accentColor
+ border.color: "#00000000"
+ }
+ }
+ ]
+}
diff --git a/src/plugins/studiowelcome/qml/splashscreen/Splash_Image25d.qml b/src/plugins/studiowelcome/qml/splashscreen/Splash_Image25d.qml
index 3d54304195..f0ae6c2d8b 100644
--- a/src/plugins/studiowelcome/qml/splashscreen/Splash_Image25d.qml
+++ b/src/plugins/studiowelcome/qml/splashscreen/Splash_Image25d.qml
@@ -29,7 +29,7 @@ Rectangle {
id: splashBackground
width: 460
height: 480
- color: "#11102d"
+ color: "transparent"
layer.enabled: true
layer.textureSize: Qt.size(width * 2, height * 2)
@@ -37,6 +37,7 @@ Rectangle {
Item {
id: composition
+ anchors.centerIn: parent
width: 460
height: 480
@@ -56,25 +57,4 @@ Rectangle {
}
}
}
-
- 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/Welcome_splash.qml b/src/plugins/studiowelcome/qml/splashscreen/Welcome_splash.qml
index 5cff58fad4..24fba429ea 100644
--- a/src/plugins/studiowelcome/qml/splashscreen/Welcome_splash.qml
+++ b/src/plugins/studiowelcome/qml/splashscreen/Welcome_splash.qml
@@ -32,8 +32,7 @@ import usagestatistics 1.0
Rectangle {
id: welcome_splash
- width: 800
- height: 480
+ anchors.fill: parent
gradient: Gradient {
orientation: Gradient.Horizontal
@@ -46,43 +45,27 @@ Rectangle {
signal closeClicked
signal configureClicked
- property alias doNotShowAgain: doNotShowCheckBox.checked
+ property bool doNotShowAgain: true
property bool loadingPlugins: true
-
- // called from C++
- function onPluginInitialized(crashReportingEnabled: bool, crashReportingOn: bool)
- {
- loadingPlugins = false
-
- if (crashReportingEnabled) {
- var configureButton = "<a href='#' style='text-decoration:none;color:#ffff00'>"
- + qsTr("[Configure]") + "</a>";
- var settingPath = Qt.platform.os === "osx"
- ? qsTr("Qt Creator > Preferences > Environment > System")
- : qsTr("Tools > Options > Environment > System")
- var strConfigure = qsTr("Qt Design Studio collects usage statistics and crash reports for the sole purpose of fixing bugs and improving the tool. "
- + "You can configure the crash reporter under %1. %2").arg(settingPath).arg(configureButton)
-
- crash_reporting_text.text = strConfigure
- crashReportCheckBox.visible = true
- }
- }
+ color: "#1d212a"
Image {
id: logo
- x: 15
- y: 11
- width: 66
- height: 50
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.margins: 10
+ width: 66 * 2
+ height: 50 * 2
+ smooth: true
source: "welcome_windows/logo.png"
}
+
Text {
- id: qt_design_studio
- x: 13
- y: 81
- width: 336
- height: 46
+ id: qt_design_studio_text
+ anchors.top: logo.top
+ anchors.left: logo.right
+ anchors.leftMargin: 10
color: "#25709a"
text: qsTr("Qt Design Studio")
font.pixelSize: 36
@@ -90,156 +73,89 @@ Rectangle {
}
Text {
- id: software_for_ui
- x: 15
- y: 126
- width: 300
- height: 30
- color: "#ffffff"
- text: qsTr("Software for UI and UX Designers")
- renderType: Text.QtRendering
- font.pixelSize: 15
- font.family: StudioFonts.titilliumWeb_light
- }
-
- Text {
- id: copyright
- x: 15
- y: 155
- width: 270
- height: 24
- color: "#ffffff"
- text: qsTr("Copyright 2008 - 2022 The Qt Company")
- font.pixelSize: 14
- font.family: StudioFonts.titilliumWeb_light
- }
+ id: qt_design_studio_version_text
+ anchors.left: qt_design_studio_text.right
+ anchors.baseline: qt_design_studio_text.baseline
+ anchors.leftMargin: 10
+ color: "#25709a"
+ text: usageStatisticModel.version
- Text {
- id: all_rights_reserved
- x: 15
- y: 174
- width: 250
- height: 24
- color: "#ffffff"
- text: qsTr("All Rights Reserved")
- font.pixelSize: 14
font.family: StudioFonts.titilliumWeb_light
+ font.pixelSize: 36
}
Text {
- id: marketing_1
- x: 15
- y: 206
- width: 406
- height: 31
+ id: license_variant_text
+ anchors.left: qt_design_studio_text.left
+ anchors.top: qt_design_studio_text.bottom
+ anchors.leftMargin: 5
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: 15
- y: 229
- width: 341
- 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
- }
+ font.pixelSize: 20
- Text {
- id: marketing_3
- x: 15
- y: 252
- width: 336
- 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
- }
+ text: {
+ if (projectModel.communityVersion)
+ return qsTr("Community Edition")
+ if (projectModel.enterpriseVersion)
+ return qsTr("Enterprise Edition")
+ return qsTr("Professional Edition")
+ }
- Text {
- id: crash_reporting_text
- color: "#ffffff"
- anchors.bottom: columnLayout.top
- textFormat: Text.RichText
- x: 15
- y: 280
- width: 311
- wrapMode: Text.WordWrap
- anchors.bottomMargin: 8
- font.family: StudioFonts.titilliumWeb_light
- font.pixelSize: 12
- font.wordSpacing: 0
- onLinkActivated: welcome_splash.configureClicked()
+ ProjectModel {
+ id: projectModel
+ }
- MouseArea { // show hand cursor on link hover
- anchors.fill: parent
- acceptedButtons: Qt.NoButton // don't eat clicks on the Text
- cursorShape: parent.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor
+ UsageStatisticModel {
+ id: usageStatisticModel
}
}
Dof_Effect {
- id: dof_Effect
- x: 358
+ id: dof_effect
+ anchors.top: qt_design_studio_text.bottom
+ anchors.horizontalCenter: welcome_splash.horizontalCenter
width: 442
height: 480
- visible: true
maskBlurSamples: 64
maskBlurRadius: 32
Splash_Image25d {
id: animated_artwork
- x: 358
- y: 0
- width: 442
- height: 480
+ width: dof_effect.width
+ height: dof_effect.height
clip: true
}
}
- Image {
- id: close_window
- anchors.top: parent.top
+ Text {
+ id: help_us_text
+ anchors.left: welcome_splash.left
anchors.right: parent.right
- anchors.margins: 8
- width: 13
- height: 13
- fillMode: Image.PreserveAspectFit
- source: "welcome_windows/close.png"
- opacity: area.containsMouse ? 1 : 0.8
+ anchors.leftMargin: 10
+ anchors.top: dof_effect.bottom
+ anchors.topMargin: 10
+ color: "#FFFFFF"
+ text: qsTr("Before we let you move on to your wonderful designs, help us make Qt Design Studio even better by letting us know how you're using it.")
- MouseArea {
- id: area
- hoverEnabled: true
- anchors.fill: parent
- anchors.margins: -10
- onClicked: welcome_splash.closeClicked()
- }
+ font.family: StudioFonts.titilliumWeb_light
+ font.pixelSize: 18
+ wrapMode: Text.WordWrap
+ anchors.rightMargin: 10
}
ColumnLayout {
id: columnLayout
anchors.left: parent.left
- anchors.bottom: parent.bottom
- anchors.leftMargin: 16
- anchors.bottomMargin: 10
+ anchors.top: help_us_text.bottom
+ anchors.leftMargin: 10
+ anchors.topMargin: 20
spacing: 3
CheckBox {
+ visible: false
id: usageStatisticCheckBox
- text: qsTr("Enable Usage Statistics")
+ text: qsTr("Send Usage Statistics")
checked: usageStatisticModel.usageStatisticEnabled
padding: 0
spacing: 12
@@ -255,11 +171,11 @@ Rectangle {
}
CheckBox {
+ visible: false
id: crashReportCheckBox
- text: qsTr("Enable Crash Reports")
+ text: qsTr("Send Crash Reports")
spacing: 12
checked: usageStatisticModel.crashReporterEnabled
- visible: false
onCheckedChanged: {
usageStatisticModel.setCrashReporterEnabled(crashReportCheckBox.checked)
@@ -274,90 +190,41 @@ Rectangle {
}
padding: 0
}
-
- CheckBox {
- id: doNotShowCheckBox
- text: qsTr("Do not show this again")
- padding: 0
- spacing: 12
-
- contentItem: Text {
- text: doNotShowCheckBox.text
- color: "#ffffff"
- leftPadding: doNotShowCheckBox.indicator.width + doNotShowCheckBox.spacing
- font.pixelSize: 12
- }
- }
}
RowLayout {
- x: 16
- y: 277
- 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
+ anchors.right: parent.right
+ anchors.bottom: welcome_splash.bottom
+ anchors.rightMargin: 10
+ anchors.bottomMargin: 10
+ spacing: 20
+
+ CustomButton {
+ text: qsTr("Don't send")
+ onClicked: {
+ usageStatisticModel.setTelemetryEnabled(false)
+ usageStatisticModel.setCrashReporterEnabled(false)
+ welcome_splash.closeClicked()
}
}
- 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
+ CustomButton {
+ text: qsTr("Send analytics data")
+ onClicked: {
+ usageStatisticModel.setTelemetryEnabled(true)
+ usageStatisticModel.setCrashReporterEnabled(true)
+ welcome_splash.closeClicked()
}
}
}
- Text {
- id: all_rights_reserved1
- x: 15
- y: 65
- color: "#ffffff"
-
- font.pixelSize: 13
- font.family: StudioFonts.titilliumWeb_light
- text: {
- if (projectModel.communityVersion)
- return qsTr("Community Edition")
- if (projectModel.enterpriseVersion)
- return qsTr("Enterprise Edition")
- return qsTr("Professional Edition")
- }
-
- ProjectModel {
- id: projectModel
- }
-
- UsageStatisticModel {
- id: usageStatisticModel
- }
+ CustomButton {
+ y: 430
+ text: qsTr("Learn More")
+ anchors.left: parent.left
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: 10
+ anchors.leftMargin: 10
+ onClicked: Qt.openUrlExternally("https://www.qt.io/terms-conditions/telemetry-privacy")
}
}
diff --git a/src/plugins/studiowelcome/qml/splashscreen/main.qml b/src/plugins/studiowelcome/qml/splashscreen/main.qml
index 674bb47c9f..9ada7e7504 100644
--- a/src/plugins/studiowelcome/qml/splashscreen/main.qml
+++ b/src/plugins/studiowelcome/qml/splashscreen/main.qml
@@ -27,8 +27,8 @@ import QtQuick 2.0
Item {
id: root
- width: 800
- height: 480
+ width: 720
+ height: 720
signal closeClicked
signal checkBoxToggled
diff --git a/src/plugins/studiowelcome/qml/welcomepage/mockData/usagestatistics/UsageStatisticModel.qml b/src/plugins/studiowelcome/qml/welcomepage/mockData/usagestatistics/UsageStatisticModel.qml
index c19250f214..28f245910a 100644
--- a/src/plugins/studiowelcome/qml/welcomepage/mockData/usagestatistics/UsageStatisticModel.qml
+++ b/src/plugins/studiowelcome/qml/welcomepage/mockData/usagestatistics/UsageStatisticModel.qml
@@ -27,4 +27,5 @@ import QtQuick 2.0
QtObject {
property bool usageStatisticEnabled: false
+ property string version: "3.3.0"
}
diff --git a/src/plugins/studiowelcome/studiowelcomeplugin.cpp b/src/plugins/studiowelcome/studiowelcomeplugin.cpp
index 80a1edebf9..0ca852725c 100644
--- a/src/plugins/studiowelcome/studiowelcomeplugin.cpp
+++ b/src/plugins/studiowelcome/studiowelcomeplugin.cpp
@@ -134,11 +134,13 @@ class UsageStatisticPluginModel : public QObject
Q_PROPERTY(bool usageStatisticEnabled MEMBER m_usageStatisticEnabled NOTIFY usageStatisticChanged)
Q_PROPERTY(bool crashReporterEnabled MEMBER m_crashReporterEnabled NOTIFY crashReporterEnabledChanged)
+ Q_PROPERTY(QString version MEMBER m_versionString CONSTANT)
public:
explicit UsageStatisticPluginModel(QObject *parent = nullptr)
: QObject(parent)
{
+ m_versionString = Core::Constants::IDE_VERSION_DISPLAY;
setupModel();
}
@@ -191,6 +193,7 @@ signals:
private:
bool m_usageStatisticEnabled = false;
bool m_crashReporterEnabled = false;
+ QString m_versionString;
};
class ProjectModel : public QAbstractListModel
@@ -620,17 +623,6 @@ bool StudioWelcomePlugin::delayedInitialize()
QTC_ASSERT(s_view->rootObject(), return true);
-#ifdef ENABLE_CRASHPAD
- const bool crashReportingEnabled = true;
- const bool crashReportingOn = Core::ICore::settings()->value(CRASH_REPORTER_SETTING, false).toBool();
-#else
- const bool crashReportingEnabled = false;
- const bool crashReportingOn = false;
-#endif
-
- QMetaObject::invokeMethod(s_view->rootObject(), "onPluginInitialized",
- Q_ARG(bool, crashReportingEnabled), Q_ARG(bool, crashReportingOn));
-
return false;
}