subsurface/qt-models/weightmodel.h
Berthold Stoeger 9fd87fa080 Undo: update cylinder and weight models on paste
When pasting (or undoing paste) the cylinders or weights may change.
Send the appropriate signals and update the models accordingly.
Currently, this means copying from current dive to displayed dive,
but hopefully we can get rid of "displayed_dive" in the not so
distant future.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2019-04-12 18:19:07 +03:00

41 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();
weightsystem_t *weightSystemAt(const QModelIndex &index);
bool changed;
public
slots:
void remove(const QModelIndex &index);
void weightsystemsReset(dive_trip *trip, const QVector<dive *> &dives);
private:
int rows;
};
#endif