summaryrefslogtreecommitdiff
path: root/kodereviewer/qml/Main.qml
blob: c1be6b9ab87aa3a2fcfa63ce76c0c9d7c095e890 (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
pragma ComponentBehavior: Bound
import QtQuick
import QtCore
import QtQuick.Controls as Controls
import QtQuick.Layouts

import org.kde.kirigami as Kirigami
import org.kde.kirigamiaddons.formcard as FormCard

import org.deprecated.kodereviewer 1.0

Kirigami.ApplicationWindow {
    id: root

    title: qsTr("Kode Reviewer")

    minimumWidth: Kirigami.Units.gridUnit * 20
    //minimumHeight: Kirigami.Units.gridUnit * 20
    width: minimumWidth
    height: minimumHeight

    signal projectSelected()

    property Project project

    property NetworkManager connection: NetworkManager {
        project: root.project
    }

    Settings {
        id: settings
        property alias width: root.width
        property alias height: root.height
        property string githubToken: ""
    }

    pageStack.initialPage: initPage

    Component {
        id: initPage
        WelcomePage {
            onProjectSelected: project => {
                root.project = project
                root.projectSelected()
            }
        }
    }

    Loader {
        id: treeFileModelLoader
        active: !!pullRequest
        property var pullRequest: undefined

        sourceComponent: TreeFileModel {
            pullRequest: treeFileModelLoader.pullRequest
        }
    }

    contextDrawer: FilesDrawer {
        id: contextDrawer
        enabled: treeFileModelLoader.active
        model: treeFileModelLoader.item

        onEnabledChanged: {
            print("Enabled?  " + enabled)
        }
    }


    Loader {
        id: projectListPageLoader
        active: false
        sourceComponent: Component {
            ProjectListPage {
                connection: root.connection
                project: root.project

                onPullRequestSelected: number => {
                    const pullRequest = project.pullRequest(number)
                    pullRequestPageLoader.item.pullRequest = pullRequest
                    treeFileModelLoader.pullRequest = pullRequest
                }
            }
        }
    }

    Loader {
        id: pullRequestPageLoader
        active: false
        sourceComponent: PullRequestPage {
            connection: root.connection
        }
    }

    onProjectSelected: {
        projectListPageLoader.active = true
        pullRequestPageLoader.active = true
        pageStack.replace(projectListPageLoader.item)
        pageStack.push(pullRequestPageLoader.item)
    }
}