mirror of
https://github.com/subsurface/subsurface.git
synced 2025-01-31 20:53:23 +00:00
Added classes to handle the Completion of Dive Editions.
Added classes to handle the completion of dive editions, the classes are BuddyCompletionModel, DiveMasterCompletionModel, SuitCompletionModel and LocationCompletionModel, thanks to plain old C macros, code got really small. and I hope the logic is better than the Gtk version. :) Now next step is to integrate it to the Ui. shouldn't be hard. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
This commit is contained in:
parent
663ab6e23e
commit
84f73a5fb1
3 changed files with 74 additions and 0 deletions
2
Makefile
2
Makefile
|
@ -56,6 +56,7 @@ HEADERS = \
|
|||
qt-ui/printdialog.h \
|
||||
qt-ui/printoptions.h \
|
||||
qt-ui/printlayout.h \
|
||||
qt-ui/completionmodels.h \
|
||||
|
||||
|
||||
SOURCES = \
|
||||
|
@ -100,6 +101,7 @@ SOURCES = \
|
|||
qt-ui/printdialog.cpp \
|
||||
qt-ui/printoptions.cpp \
|
||||
qt-ui/printlayout.cpp \
|
||||
qt-ui/completionmodels.cpp \
|
||||
$(RESFILE)
|
||||
|
||||
|
||||
|
|
38
qt-ui/completionmodels.cpp
Normal file
38
qt-ui/completionmodels.cpp
Normal file
|
@ -0,0 +1,38 @@
|
|||
#include "completionmodels.h"
|
||||
#include "dive.h"
|
||||
#include <boost/graph/graph_concepts.hpp>
|
||||
|
||||
#define CREATE_SINGLETON(X) \
|
||||
X* X::instance() \
|
||||
{ \
|
||||
static X* self = new X(); \
|
||||
return self; \
|
||||
}
|
||||
|
||||
CREATE_SINGLETON(BuddyCompletionModel);
|
||||
CREATE_SINGLETON(DiveMasterCompletionModel);
|
||||
CREATE_SINGLETON(LocationCompletionModel);
|
||||
CREATE_SINGLETON(SuitCompletionModel);
|
||||
|
||||
#undef CREATE_SINGLETON
|
||||
|
||||
#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); \
|
||||
} \
|
||||
} \
|
||||
setStringList(list); \
|
||||
}
|
||||
|
||||
CREATE_UPDATE_METHOD(BuddyCompletionModel, buddy);
|
||||
CREATE_UPDATE_METHOD(DiveMasterCompletionModel, divemaster);
|
||||
CREATE_UPDATE_METHOD(LocationCompletionModel, location);
|
||||
CREATE_UPDATE_METHOD(SuitCompletionModel, suit);
|
||||
|
34
qt-ui/completionmodels.h
Normal file
34
qt-ui/completionmodels.h
Normal file
|
@ -0,0 +1,34 @@
|
|||
#ifndef COMPLETIONMODELS_H
|
||||
#define COMPLETIONMODELS_H
|
||||
|
||||
#include <QStringListModel>
|
||||
|
||||
class BuddyCompletionModel : public QStringListModel {
|
||||
Q_OBJECT
|
||||
public:
|
||||
static BuddyCompletionModel* instance();
|
||||
void updateModel();
|
||||
};
|
||||
|
||||
class DiveMasterCompletionModel : public QStringListModel {
|
||||
Q_OBJECT
|
||||
public:
|
||||
static DiveMasterCompletionModel* instance();
|
||||
void updateModel();
|
||||
};
|
||||
|
||||
class LocationCompletionModel : public QStringListModel {
|
||||
Q_OBJECT
|
||||
public:
|
||||
static LocationCompletionModel* instance();
|
||||
void updateModel();
|
||||
};
|
||||
|
||||
class SuitCompletionModel : public QStringListModel {
|
||||
Q_OBJECT
|
||||
public:
|
||||
static SuitCompletionModel* instance();
|
||||
void updateModel();
|
||||
};
|
||||
|
||||
#endif
|
Loading…
Add table
Reference in a new issue