diff options
Diffstat (limited to 'qt-ui/completionmodels.cpp')
-rw-r--r-- | qt-ui/completionmodels.cpp | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/qt-ui/completionmodels.cpp b/qt-ui/completionmodels.cpp new file mode 100644 index 000000000..a72c1a6c5 --- /dev/null +++ b/qt-ui/completionmodels.cpp @@ -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); + |