Skip to content
Snippets Groups Projects
VpnState.qml 5.74 KiB
Newer Older
  • Learn to ignore specific revisions
  • import QtQuick 2.0
    
    Kali Kaneko's avatar
    Kali Kaneko committed
    import QtQuick.Controls 2.12
    
    import "logic.js" as Logic
    
    
    StateGroup {
    
        state: ctx ? ctx.status : ""
    
        states: [
    
    Kali Kaneko's avatar
    Kali Kaneko committed
            State {
                name: "initializing"
            },
    
            State {
                name: "off"
    
                StateChangeScript {
                    script: Logic.setStatus("off");
                }
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                PropertyChanges {
                    target: systray
    
                    tooltip: Logic.toHuman("off")
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                    icon.source: icons["off"]
                }
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                PropertyChanges {
                    target: vpntoggle
                    checked: false
    
                    checkable: true
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                PropertyChanges {
                    target: statusItem
    
                    text: Logic.toHuman("off")
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                }
    
                PropertyChanges {
                    target: autoSelectionItem
    
                    text: qsTr("Recommended")
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                PropertyChanges {
                    target: mainStatus
    
                    text: Logic.toHuman("off")
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                }
                PropertyChanges {
                    target: mainCurrentGateway
                    text: ""
                }
    
            },
            State {
                name: "on"
    
                StateChangeScript {
                    script: {
                        Logic.setNeedsReconnect(false);
                        brReconnect = false;
    
    
                        if (needsDonate && !shownDonate) {
                            donate.visible = true;
                            shownDonate = true;
                            backend.donateSeen();
                        }
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                PropertyChanges {
                    target: systray
    
                    tooltip: Logic.toHuman("on")
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                    icon.source: icons["on"]
                }
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                PropertyChanges {
                    target: vpntoggle
                    checked: true
    
                    checkable: true
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                PropertyChanges {
                    target: statusItem
    
                    text: Logic.toHuman("on")
    
                }
                PropertyChanges {
                    target: autoSelectionItem
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                    text: {
                        if (autoSelectionButton.checked) {
                            //: %1 -> location to which the client is connected to
    
                            qsTr("Recommended (%1)").arg(locationStr())
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                        } else {
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                        }
                    }
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                }
                PropertyChanges {
                    target: mainStatus
    
                    text: Logic.toHuman("on")
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                }
                PropertyChanges {
                    target: mainCurrentGateway
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                    //: %1 -> location to which the client is connected to
    
                    text: qsTr("Connected to %1").arg(locationStr())
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                }
    
            },
            State {
                name: "starting"
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                PropertyChanges {
                    target: systray
    
                    tooltip: Logic.toHuman("connecting")
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                    icon.source: icons["wait"]
                }
                PropertyChanges {
                    target: statusItem
    
                    text: Logic.toHuman("connecting")
    
                }
                PropertyChanges {
                    target: autoSelectionItem
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                    text: {
                        if (autoSelectionButton.checked) {
                            //: %1 -> location to which the client is connected to
    
                            qsTr("Recommended (%1)").arg(locationStr())
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                        } else {
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                            //: Clickable item to switch to the recommended location
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                }
                PropertyChanges {
                    target: mainStatus
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                    text: qsTr("Connecting…")
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                }
                PropertyChanges {
                    target: mainCurrentGateway
                    text: ""
                }
    
                PropertyChanges {
                    target: vpntoggle
                    checked: true
                    checkable: false
                }
    
            },
            State {
                name: "stopping"
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                PropertyChanges {
                    target: systray
    
                    tooltip: Logic.toHuman("stopping")
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                    icon.source: icons["wait"]
                }
                PropertyChanges {
                    target: statusItem
    
                    text: Logic.toHuman("stopping")
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                }
    
                PropertyChanges {
                    target: autoSelectionItem
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                    //: Clickable item to switch to the recommended location
    
                    text: qsTr("Recommended")
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                PropertyChanges {
                    target: mainStatus
    
                    text: Logic.toHuman("stopping")
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                }
                PropertyChanges {
                    target: mainCurrentGateway
                    text: ""
                }
    
                PropertyChanges {
                    target: vpntoggle
                    checked: false
                    checkable: false
                }
    
            },
            State {
                name: "failed"
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                PropertyChanges {
                    target: systray
    
                    tooltip: Logic.toHuman("failed")
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                    icon.source: icons["wait"]
                }
                PropertyChanges {
                    target: statusItem
    
                    text: Logic.toHuman("failed")
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                }
    
                PropertyChanges {
                    target: autoSelectionItem
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                    //: Clickable item to swicth to the recommended location
    
                    text: qsTr("Recommended")
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                PropertyChanges {
                    target: mainStatus
    
                    text: Logic.toHuman("failed")
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                }
                PropertyChanges {
                    target: mainCurrentGateway
                    text: ""
                }
    
                PropertyChanges {
                    target: vpntoggle
                    checked: false
                    checkable: true
                }