aboutsummaryrefslogtreecommitdiffstats
path: root/map-widget/qml
AgeCommit message (Collapse)Author
2019-05-11Map: show multiple selected dive sitesGravatar Berthold Stoeger
If multiple dives are selected, highlight all corresponding sites. For that, replace the MapLocationModel::m_selectedDs pointer by a QVector<>. Fill the vector in MapLocationModel::reload() and add a isSelected() member function. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-10-29Dive site: replace dive->dive_site_uuid by dive_siteGravatar Berthold Stoeger
Replace the UUID reference of struct dive by a pointer to dive_site. This commit is rather large in lines, but nevertheless quite simple since most of the UUID->pointer work was done in previous commits. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-06-21map-widget: add qrc file for widgetGravatar jan Iversen
Make map-widget self contained, with its own qrc file. Signed-off-by: Jan Iversen <jani@apache.org>
2018-03-15MapWidgetContextMenu.qml: improve the action textGravatar Lubomir I. Ivanov
The first 3 actions in the map widget context menu are about the current map widget center and not about the selected dive site / marker. Avoid using the word "location" for these, use "coordinates" for the second and third entry. Suggested-by: Willem Ferguson <willemferguson@zoology.up.ac.za> Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
2018-03-15MapWidget.qml: try to preserve zoom when opening Google MapsGravatar Lubomir I. Ivanov
Extend openLocationInGoogleMaps() so that the current map widget zoom level is roughly mapped to the Google Maps zoom level. The two zoom scales are quite different. Google Maps uses meters directly, while the QML map uses a scale from ~1 - 21. The approximation is done via exponential regression over a small data set gathered from experiment. Add a console.log() call so that the URL is logged. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
2018-03-15MapWidget.qml: use a new URL format for Google MapsGravatar Lubomir I. Ivanov
Make the map widget use a new URL format for Google Maps in openLocationInGoogleMaps(). The new URL format does not show a marker once the location is open in Google Maps as this might confuse some users. Suggested-by: Willem Ferguson <willemferguson@zoology.up.ac.za> Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
2018-03-11mapwidget.qml: emit a signal when the marker changedGravatar Lubomir I. Ivanov
The signal to emit is selectedDivesChanged() and it accepts a list if diveIds. The 'nSelectedDives' counter is redundant. Also expose the 'map' and 'mapHelper' objects as aliases. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
2017-12-24mapwidget: QtQuick really to 2.5Gravatar Jan Mulder
It shall match the Qt version ... according to Dirk. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2017-12-24mapwidget: revert QtQuick version to 2.0Gravatar Jan Mulder
In commit f3d978b8a5fb6 the QtQuick version was upgraded to 2.6 (from 2.0 for the mapwidget). This is, apparently, too agressive, as there are still mainstream distributions that are still on Qt 5.5.1 for which 2.6 of QtQuick is too new. And as a sidenote: Qt 5.5.1 was released in October 2015. So partially revert commit f3d978b8a5fb6. Fixes: #978 Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2017-11-30Use better aliases for icons.Gravatar Martin Měřinský
Icon aliases were complete mess. Some icons had alias some didn't. Named with underscores vs. hyphens vs. camelCase. Lower vs. upper case. "ICON" prefix vs. suffix vs. nothing. With vs. without filename suffix. Some didn't make sence. Eg. mapwidget-marker-gray (I can see, it's grey, but what does it represent?) Some were duplicated, eg warning vs. warning-icon. Some were name after widget, which is wrong. Do not reinvent wheel. Use widely used naming scheme close to Freedesktop Icon Naming Specification. This will enable usage of common icons from current set in the future. Thus Subsurface will fit nicely to GUI. This changes icon aliases to one, easy grep-able style. Signed-off-by: Martin Měřinský <mermar@centrum.cz>
2017-11-29Revert "Use consistent aliases for all icons."Gravatar Dirk Hohndel
This reverts commit 92e9c6606f6ef3ad16d2e31f9f9a8f5fa14f2c1a.
2017-11-29Use consistent aliases for all icons.Gravatar Martin Měřinský
Icon aliases were inconsistent mess. Underscores vs. hyphens vs. camelCase. With vs. without filename suffix. Lower vs. upper case. "icon" suffix vs. prefix vs. nothing. Some were duplicated, eg warning vs. warning-icon. Some icons didn't have alias at all. This changes all icon aliases to one, easy grep-able style which complies to Freedesktop Icon Naming Specification (Guidelines). Signed-off-by: Martin Měřinský <mermar@centrum.cz>
2017-11-27mapwidget.qml: return early instead of doing branchingGravatar Lubomir I. Ivanov
The centerOn*() functions can just return early for invalid input, instead of branching the conditions. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
2017-11-27mapwidget.qml: more minor improvementsGravatar Lubomir I. Ivanov
- Add the helper coordIsValid() and use it in centerOnCoordinate(). This checks for NaN coordinates and prevents an infinite while() loop. - Use '-= 1.0' instead of '--' to be more clear that the decremented variable is a float - Store the current center with 'centerStored' in centerOnCoordinate(). Fixes a possible zoom out glitch. - use Math.floor() to convert 'zoomLevel' to integer when estimating zoomOut in centerOn*() Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
2017-11-27mapwidget.qml: remove unused zoom-out functionGravatar Lubomir I. Ivanov
The zoom out function is no longer used as we don't zoom out when a dive doesn't have dive site coordinates. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
2017-11-27mapwidget.qml: make pan and zoom-in have the same durationGravatar Lubomir I. Ivanov
There was a problem with the current different duration for pan and zoom. Ideally the pan should before the zoom: Map zooms out -> pan to new center starts -> zoom in The problem with this is that if the map pans out too much it loses it's center and the above scheme would not work. To solve the problem, make the duration of pan and zoom the same this is not idea, but prevents the case where the map would not zoom-in at the correct center. Also remove the easing function. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
2017-11-27map-widget: interrupt map animations on new interactionsGravatar Lubomir I. Ivanov
When the map is performing zoom/pan animation and the user performs an action that would trigger a new zoom/pan animation, but some glitches can occurs. An example would be when one clicks a dive in the dive list - the zoom/pan animation will trigger, so that the map is centered on the dive site, but if the user clicks the [+] button to zoom-in, while the animation is running the map will glitch. This patch prevents such glitches by stopping all running animations in progress when the user: - single clicks the map - uses the mouse-wheel to zoom - presses the [+] / [-] buttons Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
2017-11-19QML UI: QtQuick to 2.6Gravatar Jan Mulder
Upgrade QtQuick to 2.6. Seeing a small artifact in the application header, lets see what happens when upgrading more includes. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2017-11-09map-widget: allow real-time updates of edited markersGravatar Lubomir I. Ivanov
This patch allows updating the location of map markers while editing a dive site and updating the text in the LocationInformationWidget in real-time. Currently it is only possible to see the marker changes by clicking 'Apply'. The modification required the following changes: - add the MapWidget::updateCurrentDiveSiteCoordinatesToMap() slot and call it each time the GPS text updates - separate the updateCurrentDiveSiteCoordinates(FromMap/ToMap) logic by having the FromMap/ToMap suffix to method names - make MapWidgetHelper::updateCurrentDiveSiteCoordinatesToMap() call a new MapLocationModel::updateMapLocationCoordinates() method, which updates selected location coordinates and the model - add MapLocation::setCoordinateNoEmit() that does not emit a signal when updating a coordinate Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
2017-11-05map-widget: move the widget and its resources to 'map-widget'Gravatar Lubomir I. Ivanov
Move all the map widget platform agnostic files to the <subsurface-root>/map-widget folder. This avoids the confusion about the desktop version of subsurface using mobile components. The map widget is planned as a shared component between the mobile and desktop versions. desktop-widgets/mapwidget[.h/.cpp] still remain as those are specific to the desktop version. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>