mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-28 05:00:20 +00:00
Move the algorithm to divesite.cpp file
This shouldn't be on the maintab.cpp, this file is already too convoluted. [Dirk Hohndel: slightly refactored this commit and the next one to make the code actually work and make the split across the two commits more reasonable] Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
ebf2407db6
commit
2eed9c0b9b
4 changed files with 36 additions and 22 deletions
|
@ -317,6 +317,7 @@ set(SUBSURFACE_CORE_LIB_SRCS
|
|||
device.c
|
||||
dive.c
|
||||
divesite.c
|
||||
divesite.cpp # some new stuff that is not c code but belongs to divesite.
|
||||
divelist.c
|
||||
equipment.c
|
||||
file.c
|
||||
|
|
31
divesite.cpp
Normal file
31
divesite.cpp
Normal file
|
@ -0,0 +1,31 @@
|
|||
#include "divesite.h"
|
||||
#include "pref.h"
|
||||
|
||||
QString constructLocationTags(uint32_t ds_uuid)
|
||||
{
|
||||
QString locationTag;
|
||||
struct dive_site *ds = get_dive_site_by_uuid(ds_uuid);
|
||||
|
||||
if (!ds || !ds->taxonomy.nr)
|
||||
return locationTag;
|
||||
|
||||
locationTag = "<small><small>(tags: ";
|
||||
QString connector;
|
||||
for (int i = 0; i < 3; i++) {
|
||||
if (prefs.geocoding.category[i] == TC_NONE)
|
||||
continue;
|
||||
for (int j = 0; j < TC_NR_CATEGORIES; j++) {
|
||||
if (ds->taxonomy.category[j].category == prefs.geocoding.category[i]) {
|
||||
QString tag = ds->taxonomy.category[j].value;
|
||||
if (!tag.isEmpty()) {
|
||||
locationTag += connector + tag;
|
||||
connector = " / ";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
locationTag += ")</small></small>";
|
||||
return locationTag;
|
||||
}
|
|
@ -6,6 +6,7 @@
|
|||
#include <stdlib.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
#include <QString>
|
||||
extern "C" {
|
||||
#else
|
||||
#include <stdbool.h>
|
||||
|
@ -72,6 +73,8 @@ void merge_dive_sites(uint32_t ref, uint32_t *uuids, int count);
|
|||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
QString constructLocationTags(uint32_t ds_uuid);
|
||||
|
||||
#endif
|
||||
|
||||
#endif // DIVESITE_H
|
||||
|
|
|
@ -487,29 +487,8 @@ void MainTab::updateDiveInfo(bool clear)
|
|||
}
|
||||
|
||||
if (ds) {
|
||||
// construct the location tags
|
||||
QString locationTag;
|
||||
if (ds->taxonomy.nr) {
|
||||
locationTag = "<small><small>(tags: ";
|
||||
QString connector = "";
|
||||
for (int i = 0; i < 3; i++) {
|
||||
if (prefs.geocoding.category[i] == TC_NONE)
|
||||
continue;
|
||||
for (int j = 0; j < TC_NR_CATEGORIES; j++) {
|
||||
if (ds->taxonomy.category[j].category == prefs.geocoding.category[i]) {
|
||||
QString tag = ds->taxonomy.category[j].value;
|
||||
if (!tag.isEmpty()) {
|
||||
locationTag += connector + tag;
|
||||
connector = " / ";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
locationTag += ")</small></small>";
|
||||
}
|
||||
ui.location->setCurrentDiveSiteUuid(ds->uuid);
|
||||
ui.locationTags->setText(locationTag);
|
||||
ui.locationTags->setText(constructLocationTags(ds->uuid));
|
||||
} else {
|
||||
ui.location->clear();
|
||||
clear_dive_site(&displayed_dive_site);
|
||||
|
|
Loading…
Reference in a new issue