diff options
author | Doug Junkins <junkins@foghead.com> | 2019-05-04 20:51:16 -0700 |
---|---|---|
committer | bstoeger <32835590+bstoeger@users.noreply.github.com> | 2019-05-06 10:48:44 +0200 |
commit | 00ec824129ea2662ace5a4077ba9bc865ecc70ff (patch) | |
tree | c722c55a48a6c226e879e3f2e915adb6fd3b13d6 /qt-models/divesiteimportmodel.h | |
parent | 98b3a326bd952c616843694821a48e0c029db699 (diff) | |
download | subsurface-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.h | 35 |
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 |