mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-30 22:20:21 +00:00
76a5a38f5e
The WeightModel always acted on the displayed dive. To support undo of weightsystem changes, operate on an arbitrary dive. This is in line with other models, where the updateDive() function resets the model to represent a certain dive. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
42 lines
1 KiB
C++
42 lines
1 KiB
C++
// SPDX-License-Identifier: GPL-2.0
|
|
#ifndef WEIGHTMODEL_H
|
|
#define WEIGHTMODEL_H
|
|
|
|
#include "cleanertablemodel.h"
|
|
#include "core/dive.h"
|
|
|
|
/* Encapsulation of the Weight Model, that represents
|
|
* the current weights on a dive. */
|
|
class WeightModel : public CleanerTableModel {
|
|
Q_OBJECT
|
|
public:
|
|
enum Column {
|
|
REMOVE,
|
|
TYPE,
|
|
WEIGHT
|
|
};
|
|
|
|
explicit WeightModel(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 passInData(const QModelIndex &index, const QVariant &value);
|
|
void add();
|
|
void clear();
|
|
void updateDive(dive *d);
|
|
weightsystem_t *weightSystemAt(const QModelIndex &index);
|
|
bool changed;
|
|
|
|
public
|
|
slots:
|
|
void remove(QModelIndex index);
|
|
void weightsystemsReset(const QVector<dive *> &dives);
|
|
|
|
private:
|
|
dive *d;
|
|
int rows;
|
|
};
|
|
|
|
#endif
|