QML UI: move location services to GPS menu

Move the location services switch to the GPS menu, indicate both with icon and text if the service is active or not.

Signed-off-by: Joakim Bygdell <j.bygdell@gmail.com>
This commit is contained in:
Joakim Bygdell 2017-07-23 09:38:40 +02:00 committed by Dirk Hohndel
parent 3b3f6b67f5
commit d51fe03bd9
3 changed files with 10 additions and 35 deletions

View file

@ -308,41 +308,6 @@ Kirigami.ScrollablePage {
}
}
Kirigami.Label {
text: qsTr("Run location service")
Layout.alignment: Qt.AlignRight
Layout.preferredWidth: gridWidth * 0.75
}
Switch {
id: locationButton
Layout.preferredWidth: gridWidth * 0.25
visible: manager.locationServiceAvailable
checked: manager.locationServiceEnabled
onClicked: {
manager.locationServiceEnabled = checked
}
indicator: Rectangle {
implicitWidth: Kirigami.Units.largeSpacing * 3
implicitHeight: Kirigami.Units.largeSpacing
x: locationButton.leftPadding
y: parent.height / 2 - height / 2
radius: Kirigami.Units.largeSpacing * 0.5
color: locationButton.checked ?
subsurfaceTheme.lightPrimaryColor : subsurfaceTheme.backgroundColor
border.color: subsurfaceTheme.darkerPrimaryColor
Rectangle {
x: locationButton.checked ? parent.width - width : 0
y: parent.height / 2 - height / 2
width: Kirigami.Units.largeSpacing * 1.5
height: Kirigami.Units.largeSpacing * 1.5
radius: height / 2
color: locationButton.down || locationButton.checked ?
subsurfaceTheme.primaryColor : subsurfaceTheme.lightPrimaryColor
border.color: subsurfaceTheme.darkerPrimaryColor
}
}
}
}
Rectangle {
color: subsurfaceTheme.darkerPrimaryColor

View file

@ -24,6 +24,7 @@ Kirigami.ApplicationWindow {
property QtObject notification: null
property bool showingDiveList: false
property alias syncToCloud: manager.syncToCloud
property alias locationServiceEnabled: manager.locationServiceEnabled
property alias showPin: manager.showPin
onNotificationTextChanged: {
if (notificationText != "") {
@ -229,6 +230,14 @@ if you have network connectivity and want to sync your data to cloud storage."),
manager.clearGpsData();
}
}
Kirigami.Action {
iconName: locationServiceEnabled ? "icons/ic_location_off.svg" : "icons/ic_place.svg"
text: locationServiceEnabled ? qsTr("Disable location service") : qsTr("Run location service")
onTriggered: {
locationServiceEnabled = !locationServiceEnabled
}
}
},
Kirigami.Action {
iconName: "icons/ic_info_outline.svg"

View file

@ -1213,6 +1213,7 @@ void QMLManager::setLocationServiceEnabled(bool locationServiceEnabled)
{
m_locationServiceEnabled = locationServiceEnabled;
locationProvider->serviceEnable(m_locationServiceEnabled);
emit locationServiceEnabledChanged();
}
bool QMLManager::locationServiceAvailable() const