summaryrefslogtreecommitdiffstats
path: root/main.qml
blob: 48a002c8280051c7135fd832a1adbcc96db3c617 (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
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only

import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import QtQuick.Dialogs
import Qt.labs.qmlmodels
import QtCore

ApplicationWindow {
    id: window
    width: 800
    height: 600
    visible: true
    title: "Qt Quick Style Generator"

    property bool generating: false
    property bool stopping: false
    property bool closeRequested: false

    onClosing: (closeEvent) => {
        if (generating) {
            stopping = true
            bridge.stop()
            closeRequested = true
            closeEvent.accepted = false
        }
    }

    Connections {
        target: bridge
        function onStarted() {
            generating = true
        }

        function onFinished() {
            generating = false
            stopping = false
            if (closeRequested)
                window.close()
        }
    }

    ColumnLayout {
        anchors.fill: parent
        anchors.margins: 20
        spacing: 10

        Image {
            Layout.preferredWidth: parent.width
            Layout.preferredHeight: 50
            source: Qt.resolvedUrl("background.png")
            Image {
                anchors.top: parent.top
                anchors.bottom: parent.bottom
                anchors.left: parent.left
                anchors.margins: 10
                source: Qt.resolvedUrl("figma_and_qt.png")
                fillMode: Image.PreserveAspectFit
            }
        }

        ScrollView {
            id: scrollView
            Layout.preferredWidth: parent.width
            Layout.fillHeight: true
            contentHeight: column.childrenRect.height
            ColumnLayout {
                id: column
                width: scrollView.width - scrollView.effectiveScrollBarWidth - 10
                spacing: 20
                FigmaOptions { }
                ControlsOptions { }
                ExportOptions { }
                Log { }
                Usage { }
            }
        }

        Item { height: 10 }
        Generate { }
    }
}