mirror of
https://github.com/subsurface/subsurface.git
synced 2024-12-11 03:21:29 +00:00
a93c303b8b
Add section headers to the dive summaries on mobile by adding a section-property. Of course, this will not work on desktop. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
59 lines
1.4 KiB
C++
59 lines
1.4 KiB
C++
// SPDX-License-Identifier: GPL-2.0
|
|
#ifndef DIVESUMMARYMODEL_H
|
|
#define DIVESUMMARYMODEL_H
|
|
|
|
#include <QAbstractTableModel>
|
|
#include <vector>
|
|
|
|
class DiveSummaryModel : public QAbstractTableModel {
|
|
Q_OBJECT
|
|
public:
|
|
enum Row {
|
|
DIVES,
|
|
DIVES_EAN,
|
|
DIVES_DEEP,
|
|
PLANS,
|
|
TIME,
|
|
TIME_MAX,
|
|
TIME_AVG,
|
|
DEPTH_MAX,
|
|
DEPTH_AVG,
|
|
SAC_MIN,
|
|
SAC_MAX,
|
|
SAC_AVG,
|
|
NUM_ROW
|
|
};
|
|
|
|
// Roles for QML. Amazingly it appears that QML before Qt 5.12 *cannot*
|
|
// display run-of-the-mill tabular data.
|
|
// Therefore we transform a fixed number of columns, including the header
|
|
// into roles that can be displayed by QML. The mind boggles.
|
|
enum QMLRoles {
|
|
HEADER_ROLE = Qt::UserRole + 1,
|
|
COLUMN0_ROLE,
|
|
COLUMN1_ROLE,
|
|
SECTION_ROLE,
|
|
};
|
|
|
|
struct Result {
|
|
QString dives, divesEAN, divesDeep, plans;
|
|
QString time, time_max, time_avg;
|
|
QString depth_max, depth_avg;
|
|
QString sac_min, sac_max, sac_avg;
|
|
};
|
|
|
|
Q_INVOKABLE void setNumData(int num);
|
|
Q_INVOKABLE void calc(int column, int period);
|
|
private:
|
|
int rowCount(const QModelIndex &parent) const override;
|
|
int columnCount(const QModelIndex &parent) const override;
|
|
QVariant data(const QModelIndex &index, int role) const override;
|
|
QHash<int, QByteArray> roleNames() const override;
|
|
QVariant headerData(int section, Qt::Orientation orientation, int role) const override;
|
|
|
|
QVariant dataDisplay(int row, int col) const;
|
|
|
|
std::vector<Result> results;
|
|
};
|
|
|
|
#endif
|