90 lines
2.1 KiB
QML
90 lines
2.1 KiB
QML
import QtQuick 2.0
|
|
|
|
Rectangle {
|
|
width: 1024
|
|
height: 768
|
|
color: "black"
|
|
|
|
// only show the UI on the main window
|
|
property double __uiOpacity: __shouldShowUi ? 1.0 : 0.0
|
|
property bool __uiVisible: true
|
|
readonly property bool __shouldShowUi: (isMainWindow && _application.showUI)
|
|
readonly property bool isMainWindow: (_windowNumber === 0)
|
|
|
|
Component.onCompleted: {
|
|
// synchronize insitial state of this
|
|
__uiVisible = __shouldShowUi;
|
|
}
|
|
|
|
Behavior on __uiOpacity {
|
|
SequentialAnimation {
|
|
ScriptAction { script: if (_application.showUI) __uiVisible = true; }
|
|
NumberAnimation { duration: 400 }
|
|
ScriptAction { script: if (!_application.showUI) __uiVisible = false; }
|
|
}
|
|
}
|
|
|
|
Image {
|
|
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 {
|
|
showUi: __uiVisible
|
|
}
|
|
}
|
|
|
|
VerticalTabPanel {
|
|
anchors.fill: parent
|
|
tabs: [browsePanel, configPanel, snapshotsPanel]
|
|
titles: ["Connect", "Load / Save", "Snapshots"]
|
|
visible: __uiVisible
|
|
opacity: __uiOpacity
|
|
}
|
|
|
|
Component {
|
|
id: browsePanel
|
|
BrowsePanel { }
|
|
}
|
|
|
|
Component {
|
|
id: configPanel
|
|
LoadSavePanel { }
|
|
}
|
|
|
|
Component {
|
|
id: snapshotsPanel
|
|
SnapshotsPanel { }
|
|
}
|
|
|
|
GetStarted {
|
|
visible: isMainWindow
|
|
anchors.centerIn: parent
|
|
}
|
|
|
|
|
|
}
|