Revision control

++ // Copyright (C) 2022 The Qt Company Ltd.
++ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
++
++ import QtQuick
++ import QtQuick.Controls
++ import QtQuick.Layouts
++ import QQEMLib 1.0
++
++ Item {
++ id: rootItem
++
++ property alias outputEditorView: outputEditorView
++ property alias effectPreview: effectPreview
++
++ function showHelp() {
++ tabBarViews.currentIndex = 2;
++ }
++ function showCodePreview() {
++ tabBarViews.currentIndex = 1;
++ }
++
++ function renderToImage(filename) {
++ effectPreview.renderToImage(filename);
++ }
++
++ FpsHelper {
++ id: fpsHelper
++ enabled: previewAnimationRunning
++ }
++
++ TabBar {
++ id: tabBarViews
++ currentIndex: 0
++ TabButton {
++ text: "Preview"
++ width: 100
++ }
++ TabButton {
++ text: "Code"
++ width: 100
++ }
++ TabButton {
++ text: "Help"
++ width: 100
++ }
++ }
++ Rectangle {
++ anchors.fill: toolbarRow
++ color: mainView.backgroundColor1
++ opacity: 0.8
++ }
++ Row {
++ id: toolbarRow
++ anchors.right: parent.right
++ anchors.verticalCenter: tabBarViews.verticalCenter
++ height: tabBarViews.height * 0.8
++ PlaybackTimeComponent {
++ id: playbackTimeComponent
++ }
++ Item {
++ width: 10
++ height: 1
++ }
++ CustomIconButton {
++ id: resetTimeButton
++ height: parent.height
++ width: height
++ icon: "images/icon_restart.png"
++ description: "Restart time"
++ onClicked: {
++ // Reset the time to 0
++ previewFrameTimer.reset();
++ playbackTimeComponent.reset();
++ }
++ }
++ CustomIconButton {
++ id: playPauseButton
++ height: parent.height
++ width: height
++ icon: previewAnimationRunning ? "images/icon_pause.png" : "images/icon_play.png"
++ description: "Play / Pause time"
++ onClicked: {
++ previewAnimationRunning = !previewAnimationRunning;
++ }
++ }
++ }
++
++ EffectPreview {
++ id: effectPreview
++ anchors.top: tabBarViews.bottom
++ anchors.bottom: statusBar.top
++ width: parent.width
++ FrameAnimation {
++ id: previewFrameTimer
++ running: true
++ paused: !previewAnimationRunning
++ }
++ }
++ EditorView {
++ id: outputEditorView
++ anchors.top: tabBarViews.bottom
++ anchors.bottom: statusBar.top
++ width: parent.width
++ editable: false
++ visible: tabBarViews.currentIndex == 1
++ }
++ HelpView {
++ id: helpView
++ anchors.top: tabBarViews.bottom
++ anchors.bottom: statusBar.top
++ width: parent.width
++ visible: tabBarViews.currentIndex == 2
++ }
++
++ StatusBar {
++ id: statusBar
++ }
++ }