subsurface/qt-models/diveimportedmodel.h
Tomaz Canabrava 03e771066b QML UI: show selection box on the Download from DC list
QML and C++ model don't interact too much, a new Rule
should be created and used on the QML

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-06-04 07:11:01 -07:00

39 lines
1.1 KiB
C++

#ifndef DIVEIMPORTEDMODEL_H
#define DIVEIMPORTEDMODEL_H
#include <QAbstractTableModel>
#include "core/dive.h"
class DiveImportedModel : public QAbstractTableModel
{
Q_OBJECT
public:
enum roleTypes { DateTime = Qt::UserRole + 1, Duration, Depth, Selected};
DiveImportedModel(QObject *parent = 0);
void setDiveTable(struct dive_table *table);
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;
void setImportedDivesIndexes(int first, int last);
Qt::ItemFlags flags(const QModelIndex &index) const;
void clearTable();
QHash<int, QByteArray> roleNames() const;
Q_INVOKABLE void repopulate();
Q_INVOKABLE void recordDives();
public
slots:
void changeSelected(QModelIndex clickedIndex);
void selectRow(int row);
void selectAll();
void selectNone();
private:
int firstIndex;
int lastIndex;
bool *checkStates;
struct dive_table *diveTable;
};
#endif