1
0
Fork 0
flightgear/utils/fgqcanvas/qml/Window.qml

91 lines
2.1 KiB
QML
Raw Normal View History

import QtQuick 2.0
import QtQuick.Window 2.4 as QQ2W
Rectangle {
width: 1024
height: 768
color: "black"
// only show the UI on the main window
property double __uiOpacity: __shouldShowUi ? 1.0 : 0.0
2017-11-04 10:47:14 +00:00
property bool __uiVisible: true
readonly property bool __shouldShowUi: (isMainWindow && _application.showUI)
readonly property bool isMainWindow: (_windowNumber === 0)
2017-11-04 10:47:14 +00:00
Component.onCompleted: {
// synchronize insitial state of this
__uiVisible = __shouldShowUi;
}
2017-11-04 10:47:14 +00:00
Behavior on __uiOpacity {
SequentialAnimation {
2018-11-06 17:58:44 +00:00
ScriptAction { script: if (_application.showUI) __uiVisible = true; }
NumberAnimation { duration: 400 }
ScriptAction { script: if (!_application.showUI) __uiVisible = false; }
2017-11-04 10:47:14 +00:00
}
}
Image {
2017-11-04 10:47:14 +00:00
opacity: __uiOpacity * 0.5
source: "qrc:///images/checkerboard"
fillMode: Image.Tile
anchors.fill: parent
visible: __uiVisible
}
Repeater {
model: _application.activeCanvases
// we use a loader to only create canvases on the correct window
// by driving the 'active' property
delegate: Loader {
id: canvasLoader
sourceComponent: canvasFrame
active: modelData.windowIndex === _windowNumber
Binding {
target: canvasLoader.item
property: "canvas"
value: model.modelData
}
}
}
Component {
id: canvasFrame
CanvasFrame {
2017-11-04 10:47:14 +00:00
showUi: __uiVisible
}
}
2017-11-08 13:36:07 +00:00
VerticalTabPanel {
anchors.fill: parent
tabs: [browsePanel, configPanel, snapshotsPanel]
titles: ["Connect", "Load / Save", "Snapshots"]
visible: __uiVisible
opacity: __uiOpacity
}
2017-11-08 13:36:07 +00:00
Component {
id: browsePanel
BrowsePanel { }
}
Component {
id: configPanel
LoadSavePanel { }
}
Component {
id: snapshotsPanel
SnapshotsPanel { }
}
2017-11-08 13:36:07 +00:00
2018-11-08 08:40:53 +00:00
GetStarted {
visible: isMainWindow
2018-11-08 08:40:53 +00:00
anchors.centerIn: parent
}
}