aboutsummaryrefslogtreecommitdiffstats
path: root/share/qtcreator/qmldesigner/landingpage/content/Screen01.ui.qml
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
                }
            }
        }
    }
}