summaryrefslogtreecommitdiffstats
path: root/qt-models/divesiteimportmodel.h
diff options
context:
space:
mode:
Diffstat (limited to 'qt-models/divesiteimportmodel.h')
-rw-r--r--qt-models/divesiteimportmodel.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/qt-models/divesiteimportmodel.h b/qt-models/divesiteimportmodel.h
new file mode 100644
index 000000000..5c7fb27fe
--- /dev/null
+++ b/qt-models/divesiteimportmodel.h
@@ -0,0 +1,35 @@
+#ifndef DIVESITEIMPORTEDMODEL_H
+#define DIVESITEIMPORTEDMODEL_H
+
+#include <QAbstractTableModel>
+#include <vector>
+#include "core/divesite.h"
+
+class DivesiteImportedModel : public QAbstractTableModel
+{
+ Q_OBJECT
+public:
+ enum columnNames { NAME, LOCATION, COUNTRY, NEAREST, DISTANCE, SELECTED };
+
+ DivesiteImportedModel(QObject *parent = 0);
+ int columnCount(const QModelIndex& index = QModelIndex()) const;
+ int rowCount(const QModelIndex& index = QModelIndex()) const;
+ QVariant data(const QModelIndex& index, int role) const;
+ QVariant headerData(int section, Qt::Orientation orientation, int role) const;
+ Qt::ItemFlags flags(const QModelIndex &index) const;
+ void repopulate(dive_site_table_t *sites);
+public
+slots:
+ void changeSelected(QModelIndex clickedIndex);
+ void selectRow(int row);
+ void selectAll();
+ void selectNone();
+
+private:
+ int firstIndex;
+ int lastIndex;
+ std::vector<char> checkStates; // char instead of bool to avoid silly pessimization of std::vector.
+ struct dive_site_table *importedSitesTable;
+};
+
+#endif