Skip to content
FakeSplash.qml 2.74 KiB
Newer Older
/*
    This file is part of Gabriel's Qt/QML CardBoard Sample (or short GQQCS)

    GQQCS is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    GQQCS is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with Foobar.  If not, see <http://www.gnu.org/licenses/>.

    Updated: 07/08/2015 by: Gabriel F.
*/

import QtQuick 2.4

Item {
    id: root
    anchors.fill: parent
    visible: false
    opacity: 0.0

    property var timerEndCallback: function() {  }
    function startTimer() { splashTimer.start() }

    NumberAnimation {
        id: fadeIn
        target: root
        property: "opacity"
        duration: 1000
        easing.type: Easing.InOutQuad
        to: 1.0

        onStarted: { root.visible = true }
        onStopped: { splashTimer.start() }
    }

    NumberAnimation {
        id: fadeOut
        target: root
        property: "opacity"
        duration: 1000
        easing.type: Easing.InOutQuad
        to: 0.0

        onStopped: { root.visible = false }
    }

    function show() { fadeIn.start() }
    function hide() { fadeOut.start() }


    Item {
        width: stereo ? parent.width*0.5 : parent.width
        height: parent.height
        anchors.verticalCenter: parent.verticalCenter
        anchors.left: parent.left
        clip: true
        Image {
            id: l_logo
            fillMode: Image.PreserveAspectCrop
            sourceSize.width: width
            sourceSize.height: height
            width: parent.width
            height: parent.height
            anchors.centerIn: parent
            source: "qrc:/images/splash_L.jpg"
        }
    }

    Item {
        visible: stereo
        width: parent.width*0.5
        height: parent.height
        anchors.verticalCenter: parent.verticalCenter
        anchors.right: parent.right
        clip: true
        Image {
            fillMode: Image.PreserveAspectCrop
            width: l_logo.width
            height: l_logo.height
            sourceSize.width: width
            sourceSize.height: height
            x: l_logo.x
            y: l_logo.y
            source: "qrc:/images/splash_R.jpg"
        }
    }

    Timer {
        id: splashTimer
        interval: stereo ? 3000 : 1000
        running: false
        repeat: false
        onTriggered: {
            root.timerEndCallback()
            splashTimer.stop()
        }
    }
}