Skip to content
Snippets Groups Projects
MainView.qml 3.55 KiB
Newer Older
  • Learn to ignore specific revisions
  • Kali Kaneko's avatar
    Kali Kaneko committed
    import QtQuick 2.0
    import QtQuick.Controls 2.4
    import QtQuick.Dialogs 1.2
    import QtQuick.Controls.Material 2.1
    import QtQuick.Layouts 1.14
    
    Page {
    
        StackView {
            id: stackView
            anchors.fill: parent
            initialItem: Home {}
        }
    
        Drawer {
            id: settingsDrawer
    
            width: Math.min(root.width, root.height) / 3 * 2
            height: root.height
    
            ListView {
                focus: true
                currentIndex: -1
                anchors.fill: parent
    
                delegate: ItemDelegate {
                    width: parent.width
                    text: model.text
                    highlighted: ListView.isCurrentItem
                    icon.color: "transparent"
                    icon.source: model.icon
                    onClicked: {
                        settingsDrawer.close()
                        model.triggered()
                    }
                }
    
                model: ListModel {
                    ListElement {
                        text: qsTr("Preferences")
                        icon: "../resources/tools.svg"
                        triggered: function () {
                            stackView.push("Preferences.qml")
                        }
                    }
                    ListElement {
                        text: qsTr("Donate")
                        icon: "../resources/donate.svg"
                        triggered: function () {
                            aboutDialog.open()
                        }
                    }
                    ListElement {
                        text: qsTr("Help")
                        icon: "../resources/help.svg"
                        triggered: function () {
                            stackView.push("Help.qml")
                            settingsDrawer.close()
                        }
                    } // -> can link to another dialog with report bug / support / contribute / FAQ
                    ListElement {
                        text: qsTr("About")
                        icon: "../resources/about.svg"
                        triggered: function () {
                            aboutDialog.open()
                        }
                    }
                    ListElement {
                        text: qsTr("Quit")
                        icon: "../resources/quit.svg"
                        triggered: function () {
                            Qt.callLater(backend.quit)
                        }
                    }
                }
    
                ScrollIndicator.vertical: ScrollIndicator {}
            }
        }
    
        Drawer {
            id: locationsDrawer
    
            width: root.width
            height: root.height
    
            ListView {
                focus: true
                currentIndex: -1
                anchors.fill: parent
    
                delegate: ItemDelegate {
                    width: parent.width
                    text: model.text
                    highlighted: ListView.isCurrentItem
                    onClicked: {
                        locationsDrawer.close()
                        model.triggered()
                    }
                }
    
                model: ListModel {
                    ListElement {
                        text: qsTr("Montreal, CA")
                        triggered: function () {}
                    }
                    ListElement {
                        text: qsTr("Paris, FR")
                        triggered: function () {}
                    }
                }
    
                ScrollIndicator.vertical: ScrollIndicator {}
            }
        }
    
        header: Header {}
        footer: Footer {}
    
        Dialog {
            id: aboutDialog
            title: qsTr("About")
            Label {
                anchors.fill: parent
                text: qsTr("RiseupVPN\nhttps://riseupvpn.net/vpn")
                horizontalAlignment: Text.AlignHCenter
            }
    
            standardButtons: StandardButton.Ok
        }
    }