mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Globe: use lighter and darker flags to mark the current dive site
This may be too subtle... the current dive site now has a brighter flag than the others. I may need to make it an even bigger difference or maybe make the flag a little bigger or something... but it's a start. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
ee8f7de4e7
commit
fbc3b5242d
5 changed files with 18 additions and 8 deletions
BIN
icons/flag_dark.png
Normal file
BIN
icons/flag_dark.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.5 KiB |
BIN
icons/flag_light.png
Normal file
BIN
icons/flag_light.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.4 KiB |
|
@ -16,6 +16,8 @@
|
||||||
#include <marble/MarbleModel.h>
|
#include <marble/MarbleModel.h>
|
||||||
#include <marble/MarbleDirs.h>
|
#include <marble/MarbleDirs.h>
|
||||||
#include <marble/MapThemeManager.h>
|
#include <marble/MapThemeManager.h>
|
||||||
|
#include <marble/GeoDataStyle.h>
|
||||||
|
#include <marble/GeoDataIconStyle.h>
|
||||||
|
|
||||||
#ifdef MARBLE_SUBSURFACE_BRANCH
|
#ifdef MARBLE_SUBSURFACE_BRANCH
|
||||||
#include <marble/MarbleDebug.h>
|
#include <marble/MarbleDebug.h>
|
||||||
|
@ -188,6 +190,8 @@ void GlobeGPS::mouseClicked(qreal lon, qreal lat, GeoDataCoordinates::Unit unit)
|
||||||
|
|
||||||
void GlobeGPS::repopulateLabels()
|
void GlobeGPS::repopulateLabels()
|
||||||
{
|
{
|
||||||
|
static GeoDataStyle otherSite, currentSite;
|
||||||
|
static GeoDataIconStyle darkFlag(QImage(":flagDark")), lightFlag(QImage(":flagLight"));
|
||||||
struct dive_site *ds;
|
struct dive_site *ds;
|
||||||
int idx;
|
int idx;
|
||||||
QMap<QString, GeoDataPlacemark *> locationMap;
|
QMap<QString, GeoDataPlacemark *> locationMap;
|
||||||
|
@ -196,12 +200,23 @@ void GlobeGPS::repopulateLabels()
|
||||||
delete loadedDives;
|
delete loadedDives;
|
||||||
}
|
}
|
||||||
loadedDives = new GeoDataDocument;
|
loadedDives = new GeoDataDocument;
|
||||||
|
otherSite.setIconStyle(darkFlag);
|
||||||
|
currentSite.setIconStyle(lightFlag);
|
||||||
|
|
||||||
|
if (displayed_dive_site.uuid && dive_site_has_gps_location(&displayed_dive_site)) {
|
||||||
|
GeoDataPlacemark *place = new GeoDataPlacemark(displayed_dive_site.name);
|
||||||
|
place->setStyle(¤tSite);
|
||||||
|
place->setCoordinate(displayed_dive_site.longitude.udeg / 1000000.0,
|
||||||
|
displayed_dive_site.latitude.udeg / 1000000.0, 0, GeoDataCoordinates::Degree);
|
||||||
|
locationMap[QString(displayed_dive_site.name)] = place;
|
||||||
|
loadedDives->append(place);
|
||||||
|
}
|
||||||
for_each_dive_site(idx, ds) {
|
for_each_dive_site(idx, ds) {
|
||||||
if (ds->uuid == displayed_dive_site.uuid)
|
if (ds->uuid == displayed_dive_site.uuid)
|
||||||
continue;
|
continue;
|
||||||
if (dive_site_has_gps_location(ds)) {
|
if (dive_site_has_gps_location(ds)) {
|
||||||
GeoDataPlacemark *place = new GeoDataPlacemark(ds->name);
|
GeoDataPlacemark *place = new GeoDataPlacemark(ds->name);
|
||||||
|
place->setStyle(&otherSite);
|
||||||
place->setCoordinate(ds->longitude.udeg / 1000000.0, ds->latitude.udeg / 1000000.0, 0, GeoDataCoordinates::Degree);
|
place->setCoordinate(ds->longitude.udeg / 1000000.0, ds->latitude.udeg / 1000000.0, 0, GeoDataCoordinates::Degree);
|
||||||
|
|
||||||
// don't add dive locations twice, unless they are at least 50m apart
|
// don't add dive locations twice, unless they are at least 50m apart
|
||||||
|
@ -221,14 +236,6 @@ void GlobeGPS::repopulateLabels()
|
||||||
loadedDives->append(place);
|
loadedDives->append(place);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (displayed_dive_site.uuid && dive_site_has_gps_location(&displayed_dive_site)) {
|
|
||||||
GeoDataPlacemark *place = new GeoDataPlacemark(displayed_dive_site.name);
|
|
||||||
place->setCoordinate(displayed_dive_site.longitude.udeg / 1000000.0,
|
|
||||||
displayed_dive_site.latitude.udeg / 1000000.0, 0, GeoDataCoordinates::Degree);
|
|
||||||
locationMap[QString(displayed_dive_site.name)] = place;
|
|
||||||
loadedDives->append(place);
|
|
||||||
}
|
|
||||||
model()->treeModel()->addDocument(loadedDives);
|
model()->treeModel()->addDocument(loadedDives);
|
||||||
|
|
||||||
struct dive_site *center = displayed_dive_site.uuid != 0 ?
|
struct dive_site *center = displayed_dive_site.uuid != 0 ?
|
||||||
|
|
|
@ -264,6 +264,7 @@ void MainWindow::current_dive_changed(int divenr)
|
||||||
}
|
}
|
||||||
graphics()->plotDive();
|
graphics()->plotDive();
|
||||||
information()->updateDiveInfo();
|
information()->updateDiveInfo();
|
||||||
|
globe()->reload();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::on_actionNew_triggered()
|
void MainWindow::on_actionNew_triggered()
|
||||||
|
|
|
@ -18,6 +18,8 @@
|
||||||
<file alias="gaschangeNitrox">icons/Nx_change.png</file>
|
<file alias="gaschangeNitrox">icons/Nx_change.png</file>
|
||||||
<file alias="gaschangeTrimix">icons/Tmx_change.png</file>
|
<file alias="gaschangeTrimix">icons/Tmx_change.png</file>
|
||||||
<file alias="flag">icons/flag.png</file>
|
<file alias="flag">icons/flag.png</file>
|
||||||
|
<file alias="flagDark">icons/flag_dark.png</file>
|
||||||
|
<file alias="flagLight">icons/flag_light.png</file>
|
||||||
<file alias="scale">icons/scale.png</file>
|
<file alias="scale">icons/scale.png</file>
|
||||||
<file alias="ruler">icons/ruler.png</file>
|
<file alias="ruler">icons/ruler.png</file>
|
||||||
<file alias="poster">icons/poster.png</file>
|
<file alias="poster">icons/poster.png</file>
|
||||||
|
|
Loading…
Add table
Reference in a new issue