Skip to content
Snippets Groups Projects
Splash.qml 1.75 KiB
Newer Older
  • Learn to ignore specific revisions
  • Kali Kaneko's avatar
    Kali Kaneko committed
    import QtQuick 2.9
    import QtQuick.Controls 2.2
    import QtGraphicalEffects 1.0
    
    Page {
        id: splash
    
    Kali Kaneko's avatar
    Kali Kaneko committed
        property int timeoutInterval: qmlDebug ? 200 : 1600
    
    Kali Kaneko's avatar
    Kali Kaneko committed
        property alias errors: splashErrorBox
    
    Kali Kaneko's avatar
    Kali Kaneko committed
    
        Column {
            width: parent.width * 0.8
            anchors.horizontalCenter: parent.horizontalCenter
            anchors.topMargin: 24
    
            VerticalSpacer {
                visible: true
                height: root.height * 0.10
            }
    
            Image {
                id: connectionImage
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                height: 180
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                anchors.horizontalCenter: parent.horizontalCenter
                source: "../resources/icon-noshield.svg"
                fillMode: Image.PreserveAspectFit
            }
    
    
    Kali Kaneko's avatar
    Kali Kaneko committed
            VerticalSpacer {
                visible: true
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                height: root.height * 0.22
    
    Kali Kaneko's avatar
    Kali Kaneko committed
            }
    
            ProgressBar {
                anchors.horizontalCenter: parent.horizontalCenter
                indeterminate: true
    
    Kali Kaneko's avatar
    Kali Kaneko committed
            }
    
            InitErrors {
                id: splashErrorBox
            }
    
    Kali Kaneko's avatar
    Kali Kaneko committed
        }
    
        Timer {
            id: splashTimer
        }
    
        function delay(delayTime, cb) {
            splashTimer.interval = delayTime
    
            splashTimer.repeat = true
    
    Kali Kaneko's avatar
    Kali Kaneko committed
            splashTimer.triggered.connect(cb)
            splashTimer.start()
        }
    
        function loadMainViewWhenReady() {
    
    Kali Kaneko's avatar
    Kali Kaneko committed
            if (root.error != "") {
                return
            }
    
    Kali Kaneko's avatar
    Kali Kaneko committed
            if (ctx && ctx.isReady) {
    
                splashTimer.stop()
    
    Kali Kaneko's avatar
    Kali Kaneko committed
                loader.source = "MainView.qml"
            } else {
    
                if (!splashTimer.running) {
                  console.debug('delay...')
                  delay(500, loadMainViewWhenReady)
                }
    
    Kali Kaneko's avatar
    Kali Kaneko committed
            }
        }
    
        Timer {
            interval: timeoutInterval
            running: true
            repeat: false
            onTriggered: {
                loadMainViewWhenReady()
            }
        }
    
    
        Component.onCompleted: {}
    
    Kali Kaneko's avatar
    Kali Kaneko committed
    }