summaryrefslogtreecommitdiffstats
path: root/qt-models/divesiteimportmodel.h
diff options
context:
space:
mode:
authorGravatar Doug Junkins <junkins@foghead.com>2019-05-04 20:51:16 -0700
committerGravatar bstoeger <32835590+bstoeger@users.noreply.github.com>2019-05-06 10:48:44 +0200
commit00ec824129ea2662ace5a4077ba9bc865ecc70ff (patch)
treec722c55a48a6c226e879e3f2e915adb6fd3b13d6 /qt-models/divesiteimportmodel.h
parent98b3a326bd952c616843694821a48e0c029db699 (diff)
downloadsubsurface-00ec824129ea2662ace5a4077ba9bc865ecc70ff.tar.gz
Create DivesiteImportDialog to select sites to import
Creates the dialog box to select which sites to import from the file selected in mainwindow.cpp. The DivesiteImportModel is created as a table to display and select which sites are to be imported. Once the sites are selected, the Command::importDiveSites command is called to add the sites to the core dive site table with undo/redo functions. Signed-off-by: Doug Junkins <junkins@foghead.com>
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