mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-18 01:26:16 +00:00
The keyword "virtual" signalizes that the function is virtual, i.e. the function of the derived class is called, even if the call is on the parent class. It is not necessary to repeat the "virtual" keyword in derived classes. To highlight derived virtual functions, the keyword "override" should be used instead. It results in a hard compile- error, if no function is overridden, thus avoiding subtle bugs. Replace "virtual" by "override" where appropriate. Moreover, replace Q_DECL_OVERRIDE by override, since we require reasonably recent compilers anyway. Likewise, replace /* reimp */ by "override" for consistency and compiler support. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
109 lines
2.1 KiB
C++
109 lines
2.1 KiB
C++
// SPDX-License-Identifier: GPL-2.0
|
|
#ifndef DIVETRIPMODEL_H
|
|
#define DIVETRIPMODEL_H
|
|
|
|
#include "treemodel.h"
|
|
#include "core/dive.h"
|
|
#include <string>
|
|
|
|
struct DiveItem : public TreeItem {
|
|
Q_DECLARE_TR_FUNCTIONS(TripItem)
|
|
public:
|
|
enum Column {
|
|
NR,
|
|
DATE,
|
|
RATING,
|
|
DEPTH,
|
|
DURATION,
|
|
TEMPERATURE,
|
|
TOTALWEIGHT,
|
|
SUIT,
|
|
CYLINDER,
|
|
GAS,
|
|
SAC,
|
|
OTU,
|
|
MAXCNS,
|
|
TAGS,
|
|
PHOTOS,
|
|
COUNTRY,
|
|
LOCATION,
|
|
COLUMNS
|
|
};
|
|
|
|
QVariant data(int column, int role) const override;
|
|
int diveId;
|
|
bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override;
|
|
Qt::ItemFlags flags(const QModelIndex &index) const override;
|
|
QString displayDate() const;
|
|
QString displayDuration() const;
|
|
QString displayDepth() const;
|
|
QString displayDepthWithUnit() const;
|
|
QString displayTemperature() const;
|
|
QString displayTemperatureWithUnit() const;
|
|
QString displayWeight() const;
|
|
QString displayWeightWithUnit() const;
|
|
QString displaySac() const;
|
|
QString displaySacWithUnit() const;
|
|
QString displayTags() const;
|
|
int countPhotos(dive *dive) const;
|
|
int weight() const;
|
|
};
|
|
|
|
struct TripItem : public TreeItem {
|
|
Q_DECLARE_TR_FUNCTIONS(TripItem)
|
|
public:
|
|
QVariant data(int column, int role) const override;
|
|
dive_trip_t *trip;
|
|
};
|
|
|
|
class DiveTripModel : public TreeModel {
|
|
Q_OBJECT
|
|
public:
|
|
enum Column {
|
|
NR,
|
|
DATE,
|
|
RATING,
|
|
DEPTH,
|
|
DURATION,
|
|
TEMPERATURE,
|
|
TOTALWEIGHT,
|
|
SUIT,
|
|
CYLINDER,
|
|
GAS,
|
|
SAC,
|
|
OTU,
|
|
MAXCNS,
|
|
TAGS,
|
|
PHOTOS,
|
|
COUNTRY,
|
|
LOCATION,
|
|
COLUMNS
|
|
};
|
|
|
|
enum ExtraRoles {
|
|
STAR_ROLE = Qt::UserRole + 1,
|
|
DIVE_ROLE,
|
|
TRIP_ROLE,
|
|
SORT_ROLE,
|
|
DIVE_IDX
|
|
};
|
|
enum Layout {
|
|
TREE,
|
|
LIST,
|
|
CURRENT
|
|
};
|
|
|
|
Qt::ItemFlags flags(const QModelIndex &index) const;
|
|
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
|
|
bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override;
|
|
DiveTripModel(QObject *parent = 0);
|
|
Layout layout() const;
|
|
void setLayout(Layout layout);
|
|
|
|
private:
|
|
void setupModelData();
|
|
QMap<dive_trip_t *, TripItem *> trips;
|
|
Layout currentLayout;
|
|
};
|
|
|
|
#endif
|