mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-28 05:00:20 +00:00
338c0f22aa
This is an attempt to help share code between the desktop version of Subsurface and the mobile version. More code will be moved around and the models will be split in a way that will help recompile times and also creation of different interfaces for different form-factors. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
69 lines
2.9 KiB
C++
69 lines
2.9 KiB
C++
#include "completionmodels.h"
|
|
#include "dive.h"
|
|
#include "mainwindow.h"
|
|
|
|
#define CREATE_UPDATE_METHOD(Class, diveStructMember) \
|
|
void Class::updateModel() \
|
|
{ \
|
|
QStringList list; \
|
|
struct dive *dive; \
|
|
int i = 0; \
|
|
for_each_dive (i, dive) \
|
|
{ \
|
|
QString buddy(dive->diveStructMember); \
|
|
if (!list.contains(buddy)) { \
|
|
list.append(buddy); \
|
|
} \
|
|
} \
|
|
std::sort(list.begin(), list.end()); \
|
|
setStringList(list); \
|
|
}
|
|
|
|
#define CREATE_CSV_UPDATE_METHOD(Class, diveStructMember) \
|
|
void Class::updateModel() \
|
|
{ \
|
|
QSet<QString> set; \
|
|
struct dive *dive; \
|
|
int i = 0; \
|
|
for_each_dive (i, dive) \
|
|
{ \
|
|
QString buddy(dive->diveStructMember); \
|
|
foreach (const QString &value, buddy.split(",", QString::SkipEmptyParts)) \
|
|
{ \
|
|
set.insert(value.trimmed()); \
|
|
} \
|
|
} \
|
|
QStringList setList = set.toList(); \
|
|
std::sort(setList.begin(), setList.end()); \
|
|
setStringList(setList); \
|
|
}
|
|
|
|
CREATE_CSV_UPDATE_METHOD(BuddyCompletionModel, buddy);
|
|
CREATE_CSV_UPDATE_METHOD(DiveMasterCompletionModel, divemaster);
|
|
CREATE_UPDATE_METHOD(SuitCompletionModel, suit);
|
|
|
|
void LocationCompletionModel::updateModel()
|
|
{
|
|
QStringList list;
|
|
struct dive_site *ds;
|
|
int i = 0;
|
|
for_each_dive_site(i, ds) {
|
|
if (!list.contains(ds->name))
|
|
list.append(ds->name);
|
|
}
|
|
std::sort(list.begin(), list.end());
|
|
setStringList(list);
|
|
}
|
|
|
|
void TagCompletionModel::updateModel()
|
|
{
|
|
if (g_tag_list == NULL)
|
|
return;
|
|
QStringList list;
|
|
struct tag_entry *current_tag_entry = g_tag_list->next;
|
|
while (current_tag_entry != NULL) {
|
|
list.append(QString(current_tag_entry->tag->name));
|
|
current_tag_entry = current_tag_entry->next;
|
|
}
|
|
setStringList(list);
|
|
}
|