forked from qt-creator/qt-creator
StudioWelcome: Use theming for extraction dialog
Task-number: QDS-5984 Change-Id: I2e5d067e47208214c81d126ebbc78fd7e560b7a0 Reviewed-by: Brook Cronin <brook.cronin@qt.io> Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
119
src/plugins/studiowelcome/qml/downloaddialog/PushButton.ui.qml
Normal file
119
src/plugins/studiowelcome/qml/downloaddialog/PushButton.ui.qml
Normal file
@@ -0,0 +1,119 @@
|
|||||||
|
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** Copyright (C) 2021 The Qt Company Ltd.
|
||||||
|
** Contact: https://www.qt.io/licensing/
|
||||||
|
**
|
||||||
|
** This file is part of Qt Creator.
|
||||||
|
**
|
||||||
|
** Commercial License Usage
|
||||||
|
** Licensees holding valid commercial Qt licenses may use this file in
|
||||||
|
** accordance with the commercial license agreement provided with the
|
||||||
|
** Software or, alternatively, in accordance with the terms contained in
|
||||||
|
** a written agreement between you and The Qt Company. For licensing terms
|
||||||
|
** and conditions see https://www.qt.io/terms-conditions. For further
|
||||||
|
** information use the contact form at https://www.qt.io/contact-us.
|
||||||
|
**
|
||||||
|
** GNU General Public License Usage
|
||||||
|
** Alternatively, this file may be used under the terms of the GNU
|
||||||
|
** General Public License version 3 as published by the Free Software
|
||||||
|
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
||||||
|
** included in the packaging of this file. Please review the following
|
||||||
|
** information to ensure the GNU General Public License requirements will
|
||||||
|
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
import QtQuick 2.15
|
||||||
|
import QtQuick.Templates 2.15
|
||||||
|
import ExampleCheckout 1.0
|
||||||
|
import StudioTheme 1.0
|
||||||
|
|
||||||
|
Button {
|
||||||
|
id: control
|
||||||
|
|
||||||
|
implicitWidth: Math.max(
|
||||||
|
buttonBackground ? buttonBackground.implicitWidth : 0,
|
||||||
|
textItem.implicitWidth + leftPadding + rightPadding)
|
||||||
|
implicitHeight: Math.max(
|
||||||
|
buttonBackground ? buttonBackground.implicitHeight : 0,
|
||||||
|
textItem.implicitHeight + topPadding + bottomPadding)
|
||||||
|
leftPadding: 4
|
||||||
|
rightPadding: 4
|
||||||
|
|
||||||
|
text: "My Button"
|
||||||
|
property alias fontpixelSize: textItem.font.pixelSize
|
||||||
|
//property bool decorated: false
|
||||||
|
state: "normal"
|
||||||
|
|
||||||
|
background: buttonBackground
|
||||||
|
Rectangle {
|
||||||
|
id: buttonBackground
|
||||||
|
color: "#00000000"
|
||||||
|
implicitWidth: 100
|
||||||
|
implicitHeight: 40
|
||||||
|
opacity: enabled ? 1 : 0.3
|
||||||
|
radius: 2
|
||||||
|
border.color: "#047eff"
|
||||||
|
anchors.fill: parent
|
||||||
|
}
|
||||||
|
|
||||||
|
contentItem: textItem
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id: textItem
|
||||||
|
text: control.text
|
||||||
|
font.pixelSize: 18
|
||||||
|
|
||||||
|
opacity: enabled ? 1.0 : 0.3
|
||||||
|
color: Values.themeTextColor
|
||||||
|
horizontalAlignment: Text.AlignHCenter
|
||||||
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
}
|
||||||
|
|
||||||
|
states: [
|
||||||
|
State {
|
||||||
|
name: "normal"
|
||||||
|
when: !control.down && !control.hovered
|
||||||
|
|
||||||
|
PropertyChanges {
|
||||||
|
target: buttonBackground
|
||||||
|
color: Values.themeControlBackground
|
||||||
|
border.color: Values.themeControlOutline
|
||||||
|
}
|
||||||
|
|
||||||
|
PropertyChanges {
|
||||||
|
target: textItem
|
||||||
|
color: Values.themeTextColor
|
||||||
|
}
|
||||||
|
},
|
||||||
|
State {
|
||||||
|
name: "hover"
|
||||||
|
when: control.hovered && !control.down
|
||||||
|
PropertyChanges {
|
||||||
|
target: textItem
|
||||||
|
color: Values.themeTextColor
|
||||||
|
}
|
||||||
|
|
||||||
|
PropertyChanges {
|
||||||
|
target: buttonBackground
|
||||||
|
color: Values.themeControlBackgroundHover
|
||||||
|
border.color: Values.themeControlOutline
|
||||||
|
}
|
||||||
|
},
|
||||||
|
State {
|
||||||
|
name: "activeQds"
|
||||||
|
when: control.down
|
||||||
|
PropertyChanges {
|
||||||
|
target: textItem
|
||||||
|
color: "#ffffff"
|
||||||
|
}
|
||||||
|
|
||||||
|
PropertyChanges {
|
||||||
|
target: buttonBackground
|
||||||
|
color: "#2e769e"
|
||||||
|
border.color: "#00000000"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@@ -30,17 +30,23 @@ import ExampleCheckout 1.0
|
|||||||
import QtQuick.Layouts 1.11
|
import QtQuick.Layouts 1.11
|
||||||
|
|
||||||
import StudioFonts 1.0
|
import StudioFonts 1.0
|
||||||
|
import StudioTheme 1.0
|
||||||
|
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
|
|
||||||
|
property color currentThemeBackground: Values.welcomeScreenBackground
|
||||||
|
property color themeTextColor: Values.themeTextColor
|
||||||
|
|
||||||
id: root
|
id: root
|
||||||
property alias url: downloader.url
|
property alias url: downloader.url
|
||||||
property string path: fileExtractor.targetPath
|
property string path: fileExtractor.targetPath
|
||||||
width: 620
|
width: 620
|
||||||
height: 300
|
height: 300
|
||||||
|
|
||||||
color: "#2d2e30"
|
color: root.currentThemeBackground
|
||||||
|
|
||||||
property color textColor: "#b9b9ba"
|
property color textColor: Values.themeTextColor
|
||||||
|
|
||||||
signal canceled
|
signal canceled
|
||||||
signal accepted
|
signal accepted
|
||||||
@@ -51,7 +57,7 @@ Rectangle {
|
|||||||
StackLayout {
|
StackLayout {
|
||||||
id: stackLayout
|
id: stackLayout
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
currentIndex: root.tempFile.length === 0 ? 0 : 1
|
currentIndex: root.tempFile.length === 0 ? 1 : 1
|
||||||
|
|
||||||
FileExtractor {
|
FileExtractor {
|
||||||
id: fileExtractor
|
id: fileExtractor
|
||||||
@@ -76,7 +82,7 @@ Rectangle {
|
|||||||
Layout.fillHeight: true
|
Layout.fillHeight: true
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
||||||
DialogButton {
|
PushButton {
|
||||||
id: button
|
id: button
|
||||||
x: 532
|
x: 532
|
||||||
y: 432
|
y: 432
|
||||||
@@ -87,6 +93,7 @@ Rectangle {
|
|||||||
anchors.rightMargin: 20
|
anchors.rightMargin: 20
|
||||||
enabled: false
|
enabled: false
|
||||||
onClicked: stackLayout.currentIndex = 1
|
onClicked: stackLayout.currentIndex = 1
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
CoolProgressBar {
|
CoolProgressBar {
|
||||||
@@ -106,7 +113,7 @@ Rectangle {
|
|||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
}
|
}
|
||||||
|
|
||||||
DialogButton {
|
PushButton{
|
||||||
id: downloadbutton
|
id: downloadbutton
|
||||||
y: 420
|
y: 420
|
||||||
enabled: !button.enabled
|
enabled: !button.enabled
|
||||||
@@ -119,6 +126,7 @@ Rectangle {
|
|||||||
downloadbutton.enabled = false
|
downloadbutton.enabled = false
|
||||||
downloader.start()
|
downloader.start()
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
CircularIndicator {
|
CircularIndicator {
|
||||||
@@ -138,7 +146,7 @@ Rectangle {
|
|||||||
Layout.fillHeight: true
|
Layout.fillHeight: true
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
||||||
DialogButton {
|
PushButton {
|
||||||
id: nextPageDestination
|
id: nextPageDestination
|
||||||
x: 532
|
x: 532
|
||||||
y: 432
|
y: 432
|
||||||
@@ -152,6 +160,7 @@ Rectangle {
|
|||||||
stackLayout.currentIndex = 2
|
stackLayout.currentIndex = 2
|
||||||
fileExtractor.extract()
|
fileExtractor.extract()
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
RowLayout {
|
RowLayout {
|
||||||
@@ -171,7 +180,7 @@ Rectangle {
|
|||||||
readOnly: true
|
readOnly: true
|
||||||
}
|
}
|
||||||
|
|
||||||
DialogButton {
|
PushButton{
|
||||||
id: browse
|
id: browse
|
||||||
text: qsTr("Browse")
|
text: qsTr("Browse")
|
||||||
onClicked: fileExtractor.browse()
|
onClicked: fileExtractor.browse()
|
||||||
@@ -189,7 +198,7 @@ Rectangle {
|
|||||||
visible: !nextPageDestination.enabled
|
visible: !nextPageDestination.enabled
|
||||||
}
|
}
|
||||||
|
|
||||||
DialogButton {
|
PushButton{
|
||||||
id: button5
|
id: button5
|
||||||
x: 400
|
x: 400
|
||||||
y: 420
|
y: 420
|
||||||
@@ -199,6 +208,7 @@ Rectangle {
|
|||||||
anchors.bottomMargin: 20
|
anchors.bottomMargin: 20
|
||||||
anchors.rightMargin: 20
|
anchors.rightMargin: 20
|
||||||
onClicked: root.canceled()
|
onClicked: root.canceled()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DialogLabel {
|
DialogLabel {
|
||||||
@@ -215,8 +225,7 @@ Rectangle {
|
|||||||
Layout.fillHeight: true
|
Layout.fillHeight: true
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
||||||
|
PushButton{
|
||||||
DialogButton {
|
|
||||||
id: done
|
id: done
|
||||||
x: 532
|
x: 532
|
||||||
y: 432
|
y: 432
|
||||||
@@ -227,6 +236,7 @@ Rectangle {
|
|||||||
anchors.rightMargin: 20
|
anchors.rightMargin: 20
|
||||||
enabled: fileExtractor.finished
|
enabled: fileExtractor.finished
|
||||||
onClicked: root.accepted()
|
onClicked: root.accepted()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -241,8 +251,7 @@ Rectangle {
|
|||||||
anchors.bottomMargin: 20
|
anchors.bottomMargin: 20
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PushButton{
|
||||||
DialogButton {
|
|
||||||
id: details
|
id: details
|
||||||
x: 8
|
x: 8
|
||||||
text: qsTr("Details")
|
text: qsTr("Details")
|
||||||
@@ -250,6 +259,7 @@ Rectangle {
|
|||||||
anchors.topMargin: 66
|
anchors.topMargin: 66
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
checkable: true
|
checkable: true
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -291,7 +301,7 @@ Rectangle {
|
|||||||
Layout.fillHeight: true
|
Layout.fillHeight: true
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
|
|
||||||
DialogButton {
|
PushButton{
|
||||||
id: finish
|
id: finish
|
||||||
x: 532
|
x: 532
|
||||||
y: 432
|
y: 432
|
||||||
@@ -301,6 +311,7 @@ Rectangle {
|
|||||||
anchors.bottomMargin: 20
|
anchors.bottomMargin: 20
|
||||||
anchors.rightMargin: 20
|
anchors.rightMargin: 20
|
||||||
onClicked: root.canceled()
|
onClicked: root.canceled()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DialogLabel {
|
DialogLabel {
|
||||||
|
Reference in New Issue
Block a user