diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt
index 9d0cab87f..e132eb68a 100644
--- a/core/CMakeLists.txt
+++ b/core/CMakeLists.txt
@@ -72,7 +72,6 @@ set(SUBSURFACE_CORE_LIB_SRCS
divelog.h
divelogexportlogic.cpp
divelogexportlogic.h
- divesite-helper.cpp
divesite.cpp
divesite.h
divesitehelpers.cpp
diff --git a/core/divesite-helper.cpp b/core/divesite-helper.cpp
deleted file mode 100644
index d9c06e9c0..000000000
--- a/core/divesite-helper.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-#include "divesite.h"
-#include "pref.h"
-#include "gettextfromc.h"
-
-QString constructLocationTags(taxonomy_data &taxonomy, bool for_maintab)
-{
- QString locationTag;
-
- if (taxonomy.empty())
- return locationTag;
-
- /* Check if the user set any of the 3 geocoding categories */
- bool prefs_set = false;
- for (int i = 0; i < 3; i++) {
- if (prefs.geocoding.category[i] != TC_NONE)
- prefs_set = true;
- }
-
- if (!prefs_set && !for_maintab) {
- locationTag = QString("") + gettextFromC::tr("No dive site layout categories set in preferences!") +
- QString("");
- return locationTag;
- }
- else if (!prefs_set)
- return locationTag;
-
- if (for_maintab)
- locationTag = QString("(") + gettextFromC::tr("Tags") + QString(": ");
- else
- locationTag = QString("");
- QString connector;
- for (int i = 0; i < 3; i++) {
- if (prefs.geocoding.category[i] == TC_NONE)
- continue;
- for (auto const &t: taxonomy) {
- if (t.category == prefs.geocoding.category[i]) {
- if (!t.value.empty()) {
- locationTag += connector + QString::fromStdString(t.value);
- connector = " / ";
- }
- break;
- }
- }
- }
-
- if (for_maintab)
- locationTag += ")";
- else
- locationTag += "";
- return locationTag;
-}
diff --git a/core/divesite.cpp b/core/divesite.cpp
index e5ba7c2ae..2f9c0846a 100644
--- a/core/divesite.cpp
+++ b/core/divesite.cpp
@@ -5,7 +5,9 @@
#include "divelist.h"
#include "divelog.h"
#include "errorhelper.h"
+#include "gettextfromc.h"
#include "membuffer.h"
+#include "pref.h"
#include "subsurface-string.h"
#include "table.h"
#include "sha1.h"
@@ -378,3 +380,52 @@ struct dive_site *unregister_dive_from_dive_site(struct dive *d)
d->dive_site = nullptr;
return ds;
}
+
+std::string constructLocationTags(const taxonomy_data &taxonomy, bool for_maintab)
+{
+ using namespace std::string_literals;
+ std::string locationTag;
+
+ if (taxonomy.empty())
+ return locationTag;
+
+ /* Check if the user set any of the 3 geocoding categories */
+ bool prefs_set = false;
+ for (int i = 0; i < 3; i++) {
+ if (prefs.geocoding.category[i] != TC_NONE)
+ prefs_set = true;
+ }
+
+ if (!prefs_set && !for_maintab) {
+ locationTag = "" + gettextFromC::tr("No dive site layout categories set in preferences!").toStdString() +
+ ""s;
+ return locationTag;
+ }
+ else if (!prefs_set)
+ return locationTag;
+
+ if (for_maintab)
+ locationTag = "("s + gettextFromC::tr("Tags").toStdString() + ": "s;
+ else
+ locationTag = ""s;
+ std::string connector;
+ for (int i = 0; i < 3; i++) {
+ if (prefs.geocoding.category[i] == TC_NONE)
+ continue;
+ for (auto const &t: taxonomy) {
+ if (t.category == prefs.geocoding.category[i]) {
+ if (!t.value.empty()) {
+ locationTag += connector + t.value;
+ connector = " / "s;
+ }
+ break;
+ }
+ }
+ }
+
+ if (for_maintab)
+ locationTag += ")"s;
+ else
+ locationTag += ""s;
+ return locationTag;
+}
diff --git a/core/divesite.h b/core/divesite.h
index c02226880..550d19b0a 100644
--- a/core/divesite.h
+++ b/core/divesite.h
@@ -8,7 +8,6 @@
#include
#ifdef __cplusplus
-#include
#include
struct dive_site
@@ -73,8 +72,7 @@ void clear_dive_site_table(struct dive_site_table *ds_table);
void move_dive_site_table(struct dive_site_table *src, struct dive_site_table *dst);
void add_dive_to_dive_site(struct dive *d, struct dive_site *ds);
struct dive_site *unregister_dive_from_dive_site(struct dive *d);
-
-QString constructLocationTags(taxonomy_data &taxonomy, bool for_maintab);
+std::string constructLocationTags(const taxonomy_data &taxonomy, bool for_maintab);
/* Make pointer-to-dive_site a "Qt metatype" so that we can pass it through QVariants */
Q_DECLARE_METATYPE(dive_site *);
diff --git a/desktop-widgets/locationinformation.cpp b/desktop-widgets/locationinformation.cpp
index dc5131da4..9acee5072 100644
--- a/desktop-widgets/locationinformation.cpp
+++ b/desktop-widgets/locationinformation.cpp
@@ -152,7 +152,7 @@ void LocationInformationWidget::updateLabels()
ui.diveSiteCoordinates->clear();
coordinatesSetWarning(false);
- ui.locationTags->setText(constructLocationTags(diveSite->taxonomy, false));
+ ui.locationTags->setText(QString::fromStdString(constructLocationTags(diveSite->taxonomy, false)));
}
void LocationInformationWidget::unitsChanged()
@@ -182,7 +182,7 @@ void LocationInformationWidget::diveSiteChanged(struct dive_site *ds, int field)
return;
case LocationInformationModel::TAXONOMY:
ui.diveSiteCountry->setText(QString::fromStdString(taxonomy_get_country(diveSite->taxonomy)));
- ui.locationTags->setText(constructLocationTags(diveSite->taxonomy, false));
+ ui.locationTags->setText(QString::fromStdString(constructLocationTags(diveSite->taxonomy, false)));
return;
case LocationInformationModel::LOCATION:
filter_model.setCoordinates(diveSite->location);
diff --git a/desktop-widgets/tab-widgets/TabDiveNotes.cpp b/desktop-widgets/tab-widgets/TabDiveNotes.cpp
index 3e4b995e5..35f69a5e7 100644
--- a/desktop-widgets/tab-widgets/TabDiveNotes.cpp
+++ b/desktop-widgets/tab-widgets/TabDiveNotes.cpp
@@ -178,7 +178,7 @@ void TabDiveNotes::updateDiveSite(struct dive *d)
struct dive_site *ds = d->dive_site;
ui.location->setCurrentDiveSite(d);
if (ds) {
- ui.locationTags->setText(constructLocationTags(ds->taxonomy, true));
+ ui.locationTags->setText(QString::fromStdString(constructLocationTags(ds->taxonomy, true)));
if (ui.locationTags->text().isEmpty() && has_location(&ds->location))
ui.locationTags->setText(printGPSCoords(&ds->location));