summaryrefslogtreecommitdiffstats
path: root/qt-models/completionmodels.h
diff options
context:
space:
mode:
Diffstat (limited to 'qt-models/completionmodels.h')
-rw-r--r--qt-models/completionmodels.h39
1 files changed, 29 insertions, 10 deletions
diff --git a/qt-models/completionmodels.h b/qt-models/completionmodels.h
index 24ba67e5f..6d271c348 100644
--- a/qt-models/completionmodels.h
+++ b/qt-models/completionmodels.h
@@ -2,30 +2,49 @@
#ifndef COMPLETIONMODELS_H
#define COMPLETIONMODELS_H
+#include "core/subsurface-qt/divelistnotifier.h"
#include <QStringListModel>
-class BuddyCompletionModel : public QStringListModel {
+struct dive;
+
+class CompletionModelBase : public QStringListModel {
Q_OBJECT
public:
+ CompletionModelBase();
+private slots:
void updateModel();
+ void divesChanged(const QVector<dive *> &dives, DiveField field);
+protected:
+ virtual QStringList getStrings() = 0;
+ virtual bool relevantDiveField(const DiveField &f) = 0;
};
-class DiveMasterCompletionModel : public QStringListModel {
+class BuddyCompletionModel final : public CompletionModelBase {
Q_OBJECT
-public:
- void updateModel();
+private:
+ QStringList getStrings() override;
+ bool relevantDiveField(const DiveField &f) override;
};
-class SuitCompletionModel : public QStringListModel {
+class DiveMasterCompletionModel final : public CompletionModelBase {
Q_OBJECT
-public:
- void updateModel();
+private:
+ QStringList getStrings() override;
+ bool relevantDiveField(const DiveField &f) override;
};
-class TagCompletionModel : public QStringListModel {
+class SuitCompletionModel final : public CompletionModelBase {
Q_OBJECT
-public:
- void updateModel();
+private:
+ QStringList getStrings() override;
+ bool relevantDiveField(const DiveField &f) override;
+};
+
+class TagCompletionModel final : public CompletionModelBase {
+ Q_OBJECT
+private:
+ QStringList getStrings() override;
+ bool relevantDiveField(const DiveField &f) override;
};
#endif // COMPLETIONMODELS_H