113 lines
2.5 KiB
QML
113 lines
2.5 KiB
QML
|
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
|