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
|
device.c
|
||||||
dive.c
|
dive.c
|
||||||
divesite.c
|
divesite.c
|
||||||
|
divesite.cpp # some new stuff that is not c code but belongs to divesite.
|
||||||
divelist.c
|
divelist.c
|
||||||
equipment.c
|
equipment.c
|
||||||
file.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>
|
#include <stdlib.h>
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
#include <QString>
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#else
|
#else
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
@ -72,6 +73,8 @@ void merge_dive_sites(uint32_t ref, uint32_t *uuids, int count);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
QString constructLocationTags(uint32_t ds_uuid);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif // DIVESITE_H
|
#endif // DIVESITE_H
|
||||||
|
|
|
@ -487,29 +487,8 @@ void MainTab::updateDiveInfo(bool clear)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ds) {
|
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.location->setCurrentDiveSiteUuid(ds->uuid);
|
||||||
ui.locationTags->setText(locationTag);
|
ui.locationTags->setText(constructLocationTags(ds->uuid));
|
||||||
} else {
|
} else {
|
||||||
ui.location->clear();
|
ui.location->clear();
|
||||||
clear_dive_site(&displayed_dive_site);
|
clear_dive_site(&displayed_dive_site);
|
||||||
|
|
Loading…
Reference in a new issue