mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
core: fold divesite-helper.cpp into divesite.cpp
The divesite-helper.cpp only existed because C-string manipulation was too tedious. Now that divesite.cpp is C++ anyway, the split is not necessary anymore. Moreover, return an std::string, since this is a core-function. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
801b5d50b2
commit
177246b419
6 changed files with 55 additions and 59 deletions
|
@ -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 = "<small><small>" + gettextFromC::tr("No dive site layout categories set in preferences!").toStdString() +
|
||||
"</small></small>"s;
|
||||
return locationTag;
|
||||
}
|
||||
else if (!prefs_set)
|
||||
return locationTag;
|
||||
|
||||
if (for_maintab)
|
||||
locationTag = "<small><small>("s + gettextFromC::tr("Tags").toStdString() + ": "s;
|
||||
else
|
||||
locationTag = "<small><small>"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 += ")</small></small>"s;
|
||||
else
|
||||
locationTag += "</small></small>"s;
|
||||
return locationTag;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue