/* 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 . Updated: 07/08/2015 by: Gabriel F. */ import QtQuick 2.4 Item { id: root anchors.fill: parent visible: false opacity: 0.0 property var panEndCallback: function() { } property var fadeOutEndCallback: function() { } property var fadeInEndCallback: function() { } function reset() { imagePan.y = 0 } NumberAnimation { id: fadeIn target: root property: "opacity" duration: 1000 easing.type: Easing.InOutQuad to: 1.0 onStarted: { root.visible = true } onStopped: { fadeInEndCallback() imagePanAnimation.start() } } NumberAnimation { id: fadeOut target: root property: "opacity" duration: 1000 easing.type: Easing.InOutQuad to: 0.0 onStopped: { imagePan.y = 0 root.visible = false fadeOutEndCallback() } } function show() { fadeIn.start() } function hide() { fadeOut.start() } Rectangle { width: parent.width height: parent.height anchors.fill: parent gradient: Gradient { GradientStop { position: 0.00; color: "#063d9c"; } GradientStop { position: 1.00; color: "#5bcbe4"; } } } Item { width: stereo ? parent.width*0.5 : parent.width height: parent.height anchors.verticalCenter: parent.verticalCenter anchors.left: parent.left clip: true Image { id: imagePan fillMode: Image.PreserveAspectCrop width: 3*parent.width height: width*0.5625 source: "qrc:/images/panImage.jpg" anchors.horizontalCenter: parent.horizontalCenter y: 0 } } 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: imagePan.width height: imagePan.height source: "qrc:/images/panImage.jpg" anchors.horizontalCenter: parent.horizontalCenter y: imagePan.y } } Rectangle { opacity: 0.4 gradient: Gradient { GradientStop { position: 0.00; color: "#000000ff"; } GradientStop { position: 1.00; color: "#000000"; } } anchors.fill: parent } NumberAnimation { id: imagePanAnimation target: imagePan property: "y" duration: 5000 easing.type: Easing.InOutQuad to: - (imagePan.height - parent.height) onStopped: { panEndCallback() root.hide() } } }