68141f3675
(in the details view)
233 lines
7.4 KiB
QML
233 lines
7.4 KiB
QML
import QtQuick 2.4
|
|
import FlightGear.Launcher 1.0
|
|
import "."
|
|
|
|
Rectangle {
|
|
id: root
|
|
color: "white"
|
|
property alias aircraftURI: aircraft.uri
|
|
|
|
MouseArea {
|
|
// consume all mouse-clicks on the detail view
|
|
anchors.fill: parent
|
|
}
|
|
|
|
AircraftInfo
|
|
{
|
|
id: aircraft
|
|
}
|
|
|
|
Flickable
|
|
{
|
|
id: flickable
|
|
|
|
anchors.fill: parent
|
|
contentWidth: parent.width
|
|
contentHeight: content.childrenRect.height
|
|
boundsBehavior: Flickable.StopAtBounds
|
|
|
|
Item {
|
|
id: content
|
|
width: root.width - scrollbar.width
|
|
height: childrenRect.height
|
|
|
|
Column {
|
|
width: content.width - (Style.margin * 2)
|
|
spacing: Style.margin
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
|
|
AircraftVariantChoice {
|
|
id: headingBox
|
|
fontPixelSize: 30
|
|
popupFontPixelSize: Style.headingFontPixelSize
|
|
|
|
anchors {
|
|
margins: Style.strutSize * 2 // space for back button
|
|
left: parent.left
|
|
right: parent.right
|
|
}
|
|
|
|
aircraft: aircraftURI
|
|
currentIndex: aircraft.variant
|
|
|
|
onSelected: {
|
|
aircraft.variant = index
|
|
_launcher.selectedAircraft = aircraft.uri;
|
|
}
|
|
}
|
|
|
|
// this element normally hides itself unless needed
|
|
AircraftWarningPanel {
|
|
id: warningBox
|
|
aircraftStatus: aircraft.status
|
|
requiredFGVersion: aircraft.minimumFGVersion
|
|
width: parent.width
|
|
}
|
|
|
|
// thumbnails + description + authors container
|
|
Item {
|
|
width: parent.width
|
|
height: childrenRect.height
|
|
|
|
Rectangle {
|
|
id: thumbnailBox
|
|
// thumbnail border
|
|
|
|
border.width: 1
|
|
border.color: "#7f7f7f"
|
|
|
|
width: thumbnail.width
|
|
height: thumbnail.height
|
|
|
|
ThumbnailImage {
|
|
id: thumbnail
|
|
|
|
aircraftUri: root.aircraftURI
|
|
maximumSize.width: 172
|
|
maximumSize.height: 128
|
|
}
|
|
}
|
|
|
|
Column {
|
|
anchors.left: thumbnailBox.right
|
|
anchors.leftMargin: Style.margin
|
|
anchors.right: parent.right
|
|
spacing: Style.margin
|
|
|
|
StyledText {
|
|
id: aircraftDescription
|
|
text: aircraft.description
|
|
width: parent.width
|
|
wrapMode: Text.WordWrap
|
|
visible: aircraft.description != ""
|
|
}
|
|
|
|
StyledText {
|
|
id: aircraftAuthors
|
|
text: qsTr("by %1").arg(aircraft.authors)
|
|
width: parent.width
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
wrapMode: Text.WordWrap
|
|
visible: (aircraft.authors != undefined)
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
// web-links row
|
|
Row {
|
|
width: parent.width
|
|
height: childrenRect.height
|
|
spacing: Style.margin
|
|
|
|
Weblink {
|
|
visible: aircraft.homePage != ""
|
|
label: qsTr("Website")
|
|
link: aircraft.homePage
|
|
}
|
|
|
|
Weblink {
|
|
visible: aircraft.supportUrl != ""
|
|
label: qsTr("Support and issue reporting")
|
|
link: aircraft.supportUrl
|
|
}
|
|
|
|
Weblink {
|
|
visible: aircraft.wikipediaUrl != ""
|
|
label: qsTr("Wikipedia")
|
|
link: aircraft.wikipediaUrl
|
|
}
|
|
}
|
|
|
|
AircraftDownloadPanel {
|
|
visible: aircraft.isPackaged
|
|
width: parent.width
|
|
uri: aircraft.uri
|
|
installStatus: aircraft.installStatus
|
|
packageSize: aircraft.packageSize
|
|
downloadedBytes: aircraft.downloadedBytes
|
|
}
|
|
|
|
AircraftPreviewPanel {
|
|
id: previews
|
|
width: parent.width
|
|
previews: aircraft.previews
|
|
visible: aircraft.previews.length > 0
|
|
}
|
|
|
|
Grid {
|
|
id: ratingGrid
|
|
anchors.left: parent.left
|
|
|
|
visible: aircraft.ratings !== undefined
|
|
|
|
rows: 2
|
|
columns: 3
|
|
rowSpacing: Style.margin
|
|
columnSpacing: Style.margin
|
|
|
|
StyledText {
|
|
id: ratingsLabel
|
|
text: qsTr("Ratings:")
|
|
}
|
|
|
|
|
|
AircraftRating {
|
|
title: qsTr("Flight model")
|
|
Binding on value {
|
|
when: aircraft.ratings != undefined
|
|
value: aircraft.ratings[0]
|
|
}
|
|
}
|
|
|
|
AircraftRating {
|
|
title: qsTr("Systems")
|
|
Binding on value {
|
|
when: aircraft.ratings != undefined
|
|
value: aircraft.ratings[1]
|
|
}
|
|
}
|
|
|
|
Item {
|
|
width: ratingsLabel.width
|
|
height: 1
|
|
} // placeholder
|
|
|
|
AircraftRating {
|
|
title: qsTr("Cockpit")
|
|
Binding on value {
|
|
when: aircraft.ratings != undefined
|
|
value: aircraft.ratings[2]
|
|
}
|
|
}
|
|
|
|
AircraftRating {
|
|
title: qsTr("Exterior")
|
|
Binding on value {
|
|
when: aircraft.ratings != undefined
|
|
value: aircraft.ratings[3]
|
|
}
|
|
}
|
|
}
|
|
|
|
StyledText {
|
|
text: qsTr("Local file location: %1").arg(aircraft.pathOnDisk);
|
|
width: parent.width
|
|
wrapMode: Text.WrapAtWordBoundaryOrAnywhere
|
|
visible: aircraft.pathOnDisk != undefined
|
|
}
|
|
|
|
} // main layout column
|
|
} // of main item
|
|
|
|
} // of Flickable
|
|
|
|
Scrollbar {
|
|
id: scrollbar
|
|
anchors.right: parent.right
|
|
anchors.top: parent.top
|
|
height: parent.height
|
|
flickable: flickable
|
|
visible: flickable.visibleArea.heightRatio < 1.0
|
|
}
|
|
} // of Rect
|