mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-17 20:36:15 +00:00
Add a small proxy-model on top of DiveComputerModel so that clicking on table headers makes the table sortable. The UI feature here is not as important as the fact that the UI does its own sorting and we can keep the device-table in the core sorted differently. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
40 lines
1,000 B
C++
40 lines
1,000 B
C++
// SPDX-License-Identifier: GPL-2.0
|
|
#ifndef DIVECOMPUTERMODEL_H
|
|
#define DIVECOMPUTERMODEL_H
|
|
|
|
#include "qt-models/cleanertablemodel.h"
|
|
#include "core/device.h"
|
|
#include <QSortFilterProxyModel>
|
|
|
|
class DiveComputerModel : public CleanerTableModel {
|
|
Q_OBJECT
|
|
public:
|
|
enum {
|
|
REMOVE,
|
|
MODEL,
|
|
ID,
|
|
NICKNAME
|
|
};
|
|
DiveComputerModel(QObject *parent = 0);
|
|
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
|
|
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
|
|
Qt::ItemFlags flags(const QModelIndex &index) const override;
|
|
bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override;
|
|
void keepWorkingList();
|
|
|
|
public
|
|
slots:
|
|
void remove(const QModelIndex &index);
|
|
|
|
private:
|
|
QVector<device> dcs;
|
|
};
|
|
|
|
class DiveComputerSortedModel : public QSortFilterProxyModel {
|
|
public:
|
|
using QSortFilterProxyModel::QSortFilterProxyModel;
|
|
private:
|
|
bool lessThan(const QModelIndex &i1, const QModelIndex &i2) const;
|
|
};
|
|
|
|
#endif
|