blob: 90973aaacce4779a3be83f76fb0ce2737779e77c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
|
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0
/*
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.Controls 6.2
import QtQuick.Layouts 1.15
import LandingPageApi
import LandingPage as Theme
Rectangle {
id: root
width: 1024
height: 768
color: Theme.Colors.backgroundPrimary
Connections {
target: openQds
function onClicked() { LandingPageApi.openQds(rememberCheckbox.checkState === Qt.Checked) }
}
Connections {
target: openQtc
function onClicked() { LandingPageApi.openQtc(rememberCheckbox.checkState === Qt.Checked) }
}
states: [
State {
name: "large"
when: root.width > Theme.Values.layoutBreakpointLG
PropertyChanges {
target: Theme.Values
fontSizeTitle: Theme.Values.fontSizeTitleLG
fontSizeSubtitle: Theme.Values.fontSizeSubtitleLG
}
PropertyChanges {
target: buttonBoxGrid
columns: 2
}
},
State {
name: "medium"
when: root.width <= Theme.Values.layoutBreakpointLG
&& root.width > Theme.Values.layoutBreakpointMD
PropertyChanges {
target: Theme.Values
fontSizeTitle: Theme.Values.fontSizeTitleMD
fontSizeSubtitle: Theme.Values.fontSizeSubtitleMD
}
PropertyChanges {
target: buttonBoxGrid
columns: 2
}
},
State {
name: "small"
when: root.width <= Theme.Values.layoutBreakpointMD
PropertyChanges {
target: Theme.Values
fontSizeTitle: Theme.Values.fontSizeTitleSM
fontSizeSubtitle: Theme.Values.fontSizeSubtitleSM
}
PropertyChanges {
target: buttonBoxGrid
columns: 1
}
}
]
ScrollView {
id: scrollView
anchors.fill: root
Column {
id: layout
spacing: 0
width: scrollView.width
Item {
width: layout.width
height: logoSection.childrenRect.height + (2 * Theme.Values.spacing)
Column {
id: logoSection
spacing: 10
anchors.centerIn: parent
Image {
id: qdsLogo
anchors.horizontalCenter: parent.horizontalCenter
source: "logo.png"
}
Text {
id: qdsText
anchors.horizontalCenter: parent.horizontalCenter
text: qsTr("Qt Design Studio")
font.pixelSize: Theme.Values.fontSizeTitle
font.family: Theme.Values.baseFont
color: Theme.Colors.text
}
}
}
InstallQdsStatusBlock {
id: installQdsStatusBlock
width: parent.width
visible: !LandingPageApi.qdsInstalled
}
ProjectInfoStatusBlock {
id: projectInfoStatusBlock
width: parent.width
visible: !installQdsStatusBlock.visible
projectFileExists: LandingPageApi.projectFileExists
qtVersion: LandingPageApi.qtVersion
qdsVersion: LandingPageApi.qdsVersion
}
GridLayout {
id: buttonBoxGrid
anchors.horizontalCenter: parent.horizontalCenter
columns: 2
rows: 2
columnSpacing: 3 * Theme.Values.spacing
rowSpacing: Theme.Values.spacing
property int tmpWidth: textMetrics.width
TextMetrics {
id: textMetrics
text: openQtcText.text.length > openQdsText.text.length ? openQtcText.text
: openQdsText.text
font.pixelSize: Theme.Values.fontSizeSubtitle
font.family: Theme.Values.baseFont
}
Column {
id: openQdsBox
Layout.alignment: Qt.AlignHCenter
PageText {
id: openQdsText
width: buttonBoxGrid.tmpWidth
padding: Theme.Values.spacing
text: qsTr("Open with Qt Design Studio")
wrapMode: Text.NoWrap
}
PushButton {
id: openQds
text: qsTr("Open")
enabled: LandingPageApi.qdsInstalled
anchors.horizontalCenter: parent.horizontalCenter
}
}
Column {
id: openQtcBox
Layout.alignment: Qt.AlignHCenter
PageText {
id: openQtcText
width: buttonBoxGrid.tmpWidth
padding: Theme.Values.spacing
text: qsTr("Open with Qt Creator - Text Mode")
wrapMode: Text.NoWrap
}
PushButton {
id: openQtc
text: qsTr("Open")
anchors.horizontalCenter: parent.horizontalCenter
}
}
CustomCheckBox {
id: rememberCheckbox
text: qsTr("Remember my choice")
font.family: Theme.Values.baseFont
Layout.columnSpan: buttonBoxGrid.columns
Layout.alignment: Qt.AlignHCenter
Layout.topMargin: Theme.Values.spacing
Layout.bottomMargin: Theme.Values.spacing
}
}
}
}
}
|