subsurface/mobile-widgets/qml/GpsList.qml
Jan Mulder 3b5375d553 QML UI: Kirigami to 2.2
When first tested this commit, especially the dive list was looking
terrible. However, after including newer SHA's from libkirigami, and
correcting lots of spacing/margin issue, a retest of this commit shows
no strange artifact any more, and the amount of warnings in the log
output is reduced significantly. So now, it appears save to
upgrade.

Notice that main.qml still uses Kirigami 2.0. and is not updated in
this commit. With version 2.2, there is a new way of theming, that
is not (yet) compatible with our current code. Blindly upgrading to
2.2 leads to a almost black dive list, wrong button colors, and
runtime errors in the log, due to the fact the direct setting from
QML Kirigami's Theme colors is not allowed any more.

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2017-11-19 12:20:43 -08:00

104 lines
2.4 KiB
QML

// SPDX-License-Identifier: GPL-2.0
import QtQuick 2.6
import QtQuick.Controls 2.0 as Controls
import QtQuick.Window 2.2
import QtQuick.Dialogs 1.2
import QtQuick.Layouts 1.1
import QtQuick.Window 2.2
import org.subsurfacedivelog.mobile 1.0
import org.kde.kirigami 2.2 as Kirigami
Kirigami.ScrollablePage {
id: gpsListWindow
objectName: "gpsList"
title: qsTr("GPS Fixes")
Component {
id: gpsDelegate
Kirigami.SwipeListItem {
id: gpsFix
enabled: true
width: parent.width
GridLayout {
columns: 4
id: timeAndName
width: parent.width
Controls.Label {
text: qsTr('Date: ')
color: subsurfaceTheme.textColor
opacity: 0.6
font.pointSize: subsurfaceTheme.smallPointSize
}
Controls.Label {
text: date
color: subsurfaceTheme.textColor
Layout.preferredWidth: Math.max(parent.width / 5, paintedWidth)
font.pointSize: subsurfaceTheme.smallPointSize
}
Controls.Label {
text: qsTr('Name: ')
color: subsurfaceTheme.textColor
opacity: 0.6
font.pointSize: subsurfaceTheme.smallPointSize
}
Controls.Label {
text: name
color: subsurfaceTheme.textColor
Layout.preferredWidth: Math.max(parent.width / 5, paintedWidth)
font.pointSize: subsurfaceTheme.smallPointSize
}
Controls.Label {
text: qsTr('Latitude: ')
color: subsurfaceTheme.textColor
opacity: 0.6
font.pointSize: subsurfaceTheme.smallPointSize
}
Controls.Label {
text: latitude
color: subsurfaceTheme.textColor
font.pointSize: subsurfaceTheme.smallPointSize
}
Controls.Label {
text: qsTr('Longitude: ')
color: subsurfaceTheme.textColor
opacity: 0.6
font.pointSize: subsurfaceTheme.smallPointSize
}
Controls.Label {
text: longitude
color: subsurfaceTheme.textColor
font.pointSize: subsurfaceTheme.smallPointSize
}
}
actions: [
Kirigami.Action {
iconName: "trash-empty"
onTriggered: {
print("delete this!")
manager.deleteGpsFix(when)
}
},
Kirigami.Action {
iconName: "gps"
onTriggered: {
showMap(latitude + " " + longitude)
}
}
]
}
}
ListView {
id: gpsListView
anchors.fill: parent
model: gpsModel
currentIndex: -1
delegate: gpsDelegate
boundsBehavior: Flickable.StopAtBounds
maximumFlickVelocity: parent.height * 5
cacheBuffer: Math.max(5000, parent.height * 5)
focus: true
clip: true
}
}