1
0
Fork 0
flightgear/src/GUI/AircraftCompactDelegate.qml

113 lines
2.5 KiB
QML
Raw Normal View History

import QtQuick 2.0
import FlightGear.Launcher 1.0
Item {
id: root
readonly property int margin: 8
signal select(var uri);
signal showDetails(var uri)
implicitHeight: Math.max(contentBox.childrenRect.height, thumbnailBox.height) + footer.height
implicitWidth: ListView.view.width
readonly property bool __isSelected: ListView.isCurrentItem
MouseArea {
anchors.fill: parent
onClicked: {
if (__isSelected) {
root.showDetails(model.uri)
} else {
root.select(model.uri)
}
}
}
Rectangle {
id: thumbnailBox
// thumbnail border
y: Math.max(0, Math.round((contentBox.childrenRect.height - height) * 0.5))
border.width: 1
border.color: "#7f7f7f"
width: thumbnail.width
height: thumbnail.height
ThumbnailImage {
id: thumbnail
aircraftUri: model.uri
maximumSize.width: 172
maximumSize.height: 128
}
}
Column {
id: contentBox
anchors {
margins: root.margin
left: thumbnailBox.right
right: parent.right
top: parent.top
}
spacing: root.margin
AircraftVariantChoice {
id: titleBox
width: parent.width
aircraft: model.uri;
currentIndex: model.activeVariant
onSelected: {
model.activeVariant = index
root.select(model.uri)
}
}
Text {
id: description
width: parent.width
text: model.description
maximumLineCount: 3
wrapMode: Text.WordWrap
elide: Text.ElideRight
height: implicitHeight
visible: model.description != ""
}
AircraftDownloadPanel
{
id: downloadPanel
visible: (model.package != undefined)
packageSize: model.packageSizeBytes
installStatus: model.packageStatus
downloadedBytes: model.downloadedBytes
uri: model.uri
width: parent.width
compact: true
}
} // of content column
Item {
id: footer
height: 12
width: parent.width
anchors.bottom: parent.bottom
Rectangle {
color: "#68A6E1"
height: 1
width: parent.width - 60
anchors.centerIn: parent
}
}
} // of root item