import QtQuick 2.3 /* import QtWebView 1.0 */ import QtQuick.Dialogs 1.2 import QtQuick.Layouts 1.1 import org.subsurfacedivelog.mobile 1.0 import org.kde.kirigami 2.0 as Kirigami Item { id: detailsView property real gridWidth: detailsView.width - 2 * Kirigami.Units.gridUnit property real col1Width: gridWidth * 0.23 property real col2Width: gridWidth * 0.37 property real col3Width: gridWidth * 0.20 property real col4Width: gridWidth * 0.20 width: diveDetailsPage.width - diveDetailsPage.leftPadding - diveDetailsPage.rightPadding height: mainLayout.implicitHeight + bottomLayout.implicitHeight + Kirigami.Units.iconSizes.large Rectangle { z: 99 color: Kirigami.Theme.textColor opacity: 0.3 width: Kirigami.Units.smallSpacing/4 anchors { right: parent.right top: parent.top bottom: parent.bottom } } GridLayout { id: mainLayout anchors { top: parent.top left: parent.left right: parent.right margins: Kirigami.Units.gridUnit } columns: 4 rowSpacing: Kirigami.Units.smallSpacing * 2 columnSpacing: Kirigami.Units.smallSpacing Kirigami.Heading { id: detailsViewHeading Layout.fillWidth: true text: dive.location font.underline: dive.gps !== "" Layout.columnSpan: 4 wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere Layout.topMargin: Kirigami.Units.largeSpacing MouseArea { anchors.fill: parent onClicked: { if (dive.gps_decimal !== "") showMap(dive.gps_decimal) } } } Kirigami.Label { id: dateLabel text: qsTr("Date: ") opacity: 0.6 } Kirigami.Label { text: dive.date + " " + dive.time wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere Layout.columnSpan: 2 } Kirigami.Label { id: numberText text: "#" + dive.number color: Kirigami.Theme.textColor wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere } Kirigami.Label { id: depthLabel text: qsTr("Depth: ") opacity: 0.6 } Kirigami.Label { text: dive.depth Layout.fillWidth: true wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere } Kirigami.Label { text: qsTr("Duration: ") opacity: 0.6 Layout.alignment: Qt.AlignRight } Kirigami.Label { text: dive.duration wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere } QMLProfile { id: qmlProfile visible: !dive.noDive Layout.fillWidth: true Layout.preferredHeight: Layout.minimumHeight Layout.minimumHeight: width * 0.75 Layout.columnSpan: 4 clip: false Rectangle { color: "transparent" opacity: 0.6 border.width: 1 border.color: Kirigami.Theme.textColor; anchors.fill: parent } } Kirigami.Label { id: noProfile visible: dive.noDive Layout.fillWidth: true Layout.columnSpan: 4 Layout.margins: Kirigami.Units.gridUnit horizontalAlignment: Text.AlignHCenter text: qsTr("No profile to show") } } GridLayout { id: bottomLayout anchors { top: mainLayout.bottom left: parent.left right: parent.right margins: Math.round(Kirigami.Units.gridUnit / 2) } columns: 4 rowSpacing: Kirigami.Units.smallSpacing * 2 columnSpacing: Kirigami.Units.smallSpacing Kirigami.Heading { Layout.fillWidth: true level: 3 text: qsTr("Dive Details") Layout.columnSpan: 4 } Kirigami.Label { text: qsTr("Suit:") wrapMode: Text.WrapAtWordBoundaryOrAnywhere opacity: 0.6 width: detailsView.col1Width Layout.alignment: Qt.AlignRight } Kirigami.Label { id: txtSuit text: dive.suit wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere Layout.fillWidth: true } Kirigami.Label { text: qsTr("Air Temp:") wrapMode: Text.WrapAtWordBoundaryOrAnywhere opacity: 0.6 width: detailsView.col3Width Layout.alignment: Qt.AlignRight } Kirigami.Label { id: txtAirTemp text: dive.airTemp wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere width: detailsView.col4Width } Kirigami.Label { text: qsTr("Cylinder:") opacity: 0.6 width: detailsView.col1Width Layout.alignment: Qt.AlignRight } Kirigami.Label { id: txtCylinder text: dive.getCylinder wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere Layout.fillWidth: true } Kirigami.Label { text: qsTr("Water Temp:") opacity: 0.6 width: detailsView.col3Width Layout.alignment: Qt.AlignRight } Kirigami.Label { id: txtWaterTemp text: dive.waterTemp wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere width: detailsView.col4Width } Kirigami.Label { text: qsTr("Divemaster:") opacity: 0.6 width: detailsView.col1Width Layout.alignment: Qt.AlignRight } Kirigami.Label { id: txtDiveMaster text: dive.divemaster wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere Layout.fillWidth: true } Kirigami.Label { text: qsTr("Weight:") opacity: 0.6 width: detailsView.col3Width Layout.alignment: Qt.AlignRight } Kirigami.Label { id: txtWeight text: dive.sumWeight wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere width: detailsView.col4Width } Kirigami.Label { text: qsTr("Buddy:") opacity: 0.6 width: detailsView.col1Width Layout.alignment: Qt.AlignRight } Kirigami.Label { id: txtBuddy text: dive.buddy wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere Layout.fillWidth: true } Kirigami.Label { text: qsTr("SAC:") opacity: 0.6 width: detailsView.col3Width Layout.alignment: Qt.AlignRight } Kirigami.Label { id: txtSAC text: dive.sac wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere width: detailsView.col4Width } Kirigami.Heading { Layout.fillWidth: true level: 3 text: qsTr("Notes") wrapMode: Text.WrapAtWordBoundaryOrAnywhere Layout.columnSpan: 4 } Kirigami.Label { id: txtNotes text: dive.notes focus: true Layout.columnSpan: 4 Layout.fillWidth: true //selectByMouse: true wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere } Item { Layout.columnSpan: 4 Layout.fillWidth: true Layout.minimumHeight: Kirigami.Units.gridUnit * 3 } Component.onCompleted: { qmlProfile.setMargin(Kirigami.Units.smallSpacing) qmlProfile.diveId = model.dive.id; qmlProfile.update(); } } }