Changeset 7ccda01 in subsurface


Ignore:
Timestamp:
Jun 20, 2017, 1:06:29 PM (3 months ago)
Author:
Dirk Hohndel <dirk@…>
Branches:
master
Children:
20dae44
Parents:
cbcb432
git-author:
Dirk Hohndel <dirk@…> (06/20/17 12:02:30)
git-committer:
Dirk Hohndel <dirk@…> (06/20/17 13:06:29)
Message:

QML UI: DiveDetailsView?: make key dive info consistent with dive list

Remove the grid layout and replace it with code that is derived from the delegate
that we use in the dive list. In order to look proportional I ended up using a
larger font for the location and therefore decided to allow that text to wrap
instead of forcing single line.

This implements a good chunk of another one of Davide's great
suggestions.

See #431

Signed-off-by: Dirk Hohndel <dirk@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • mobile-widgets/qml/DiveDetailsView.qml

    rcbcb432 r7ccda01  
    1717
    1818        width: diveDetailsPage.width - diveDetailsPage.leftPadding - diveDetailsPage.rightPadding
    19         height: mainLayout.implicitHeight + bottomLayout.implicitHeight + Kirigami.Units.iconSizes.large
     19        height: divePlate.implicitHeight + bottomLayout.implicitHeight + Kirigami.Units.iconSizes.large
    2020        Rectangle {
    2121                z: 99
     
    2929                }
    3030        }
    31         GridLayout {
    32                 id: mainLayout
    33                 anchors {
    34                         top: parent.top
    35                         left: parent.left
    36                         right: parent.right
    37                         margins: Kirigami.Units.gridUnit
    38                 }
    39                 columns: 4
    40                 rowSpacing: Kirigami.Units.smallSpacing * 2
    41                 columnSpacing: Kirigami.Units.smallSpacing
    42 
    43                 Kirigami.Heading {
    44                         id: detailsViewHeading
    45                         Layout.fillWidth: true
     31        Item {
     32                id: divePlate
     33                width: parent.width - Kirigami.Units.gridUnit
     34                height: childrenRect.height - Kirigami.Units.smallSpacing
     35                anchors.left: parent.left
     36                Kirigami.Label {
     37                        id: locationText
    4638                        text: dive.location
    47                         Layout.columnSpan: 4
    48                         wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
    49                         Layout.topMargin: Kirigami.Units.largeSpacing
     39                        font.weight: Font.Bold
     40                        font.pointSize: subsurfaceTheme.titlePointSize
     41                        wrapMode: Text.WrapAtWordBoundaryOrAnywhere
     42                        color: Kirigami.Theme.textColor
     43                        anchors {
     44                                left: parent.left
     45                                top: parent.top
     46                                right: parent.right
     47                                margins: Math.round(Kirigami.Units.gridUnit / 2)
     48                        }
    5049                        MouseArea {
    5150                                anchors.fill: parent
     51                                visible: dive.gps_decimal !== ""
    5252                                onClicked: {
    5353                                        if (dive.gps_decimal !== "")
     
    5656                        }
    5757                }
    58                 Kirigami.Label {
    59                         id: dateLabel
    60                         text: qsTr("Date: ")
    61                         opacity: 0.6
    62                 }
    63                 Kirigami.Label {
    64                         text: dive.date + " " + dive.time
    65                         wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
    66                         Layout.columnSpan: 2
     58                Row {
     59                        anchors {
     60                                left: locationText.left
     61                                top: locationText.bottom
     62                                bottom: numberText.bottom
     63                        }
     64
     65                        Kirigami.Label {
     66                                text: dive.date + " " + dive.time
     67                                width: Math.max(locationText.width * 0.45, paintedWidth)
     68                                font.pointSize: subsurfaceTheme.smallPointSize
     69                                color: Kirigami.Theme.textColor
     70                        }
     71                        // let's try to show the depth / duration very compact
     72                        Kirigami.Label {
     73                                text: dive.depth + ' / ' + dive.duration
     74                                width: Math.max(Kirigami.Units.gridUnit * 3, paintedWidth)
     75                                font.pointSize: subsurfaceTheme.smallPointSize
     76                                color: Kirigami.Theme.textColor
     77                        }
    6778                }
    6879                Kirigami.Label {
    6980                        id: numberText
    7081                        text: "#" + dive.number
     82                        font.pointSize: subsurfaceTheme.smallPointSize
    7183                        color: Kirigami.Theme.textColor
    72                         wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
    73                 }
    74 
    75                 Kirigami.Label {
    76                         id: depthLabel
    77                         text: qsTr("Depth: ")
    78                         opacity: 0.6
    79                 }
    80                 Kirigami.Label {
    81                         text: dive.depth
    82                         Layout.fillWidth: true
    83                         wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
    84                 }
    85                 Kirigami.Label {
    86                         text: qsTr("Duration: ")
    87                         opacity: 0.6
    88                         Layout.alignment: Qt.AlignRight
    89                 }
    90                 Kirigami.Label {
    91                         text: dive.duration
    92                         wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
     84                        anchors {
     85                                right: parent.right
     86                                top: locationText.bottom
     87                        }
     88                }
    9389        }
    9490        GridLayout {
    9591                id: bottomLayout
    9692                anchors {
    97                         top: mainLayout.bottom
     93                        top: divePlate.bottom
    9894                        left: parent.left
    9995                        right: parent.right
Note: See TracChangeset for help on using the changeset viewer.