1
0
Fork 0
flightgear/src/GUI/qml/AircraftGridView.qml
2020-02-24 11:33:05 +00:00

80 lines
1.9 KiB
QML

import QtQuick 2.0
import FlightGear.Launcher 1.0 as FG
Item {
id: root
property alias model: view.model
property alias header: view.header
signal showDetails(var uri);
function updateSelectionFromLauncher()
{
if (!model)
return;
var row = model.indexForURI(_launcher.selectedAircraft);
if (row >= 0) {
view.currentIndex = row;
} else {
// clear selection in view, so we don't show something
// erroneous such as the previous value
view.currentIndex = -1;
}
}
onModelChanged: updateSelectionFromLauncher();
Component {
id: highlight
Rectangle {
gradient: Gradient {
GradientStop { position: 0.0; color: "#98A3B4" }
GradientStop { position: 1.0; color: "#5A6B83" }
}
}
}
GridView {
id: view
cellWidth: width / colCount
cellHeight: 128 + Style.strutSize
highlightMoveDuration: 0
readonly property int baseCellWidth: 172 + (Style.strutSize * 2)
readonly property int colCount: Math.floor(width / baseCellWidth)
anchors {
left: parent.left
top: parent.top
bottom: parent.bottom
right: scrollbar.left
topMargin: Style.margin
}
delegate: AircraftGridDelegate {
width: view.cellWidth
height: view.cellHeight
onSelect: {
view.currentIndex = model.index;
_launcher.selectedAircraft = uri;
}
onShowDetails: root.showDetails(uri)
}
clip: true
focus: true
highlight: highlight
}
Scrollbar {
id: scrollbar
anchors.right: parent.right
anchors.top: parent.top
height: view.height
flickable: view
}
}