mirror of
				https://github.com/subsurface/subsurface.git
				synced 2025-02-19 22:16:15 +00:00 
			
		
		
		
	Add a preferences option which enables or disables display of units in the main dive liste table. Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
		
			
				
	
	
		
			110 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			110 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,
 | |
| 		PHOTOS,
 | |
| 		COUNTRY,
 | |
| 		LOCATION,
 | |
| 		COLUMNS
 | |
| 	};
 | |
| 
 | |
| 	virtual QVariant data(int column, int role) const;
 | |
| 	int diveId;
 | |
| 	virtual bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole);
 | |
| 	virtual Qt::ItemFlags flags(const QModelIndex &index) const;
 | |
| 	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;
 | |
| 	int countPhotos(dive *dive) const;
 | |
| 	int weight() const;
 | |
| 	QString icon_names[4];
 | |
| };
 | |
| 
 | |
| struct TripItem : public TreeItem {
 | |
| 	Q_DECLARE_TR_FUNCTIONS(TripItem)
 | |
| public:
 | |
| 	virtual QVariant data(int column, int role) const;
 | |
| 	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,
 | |
| 		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;
 | |
| 	virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
 | |
| 	virtual bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole);
 | |
| 	DiveTripModel(QObject *parent = 0);
 | |
| 	Layout layout() const;
 | |
| 	void setLayout(Layout layout);
 | |
| 	int columnWidth(int column);
 | |
| 	void setColumnWidth(int column, int width);
 | |
| 
 | |
| private:
 | |
| 	void setupModelData();
 | |
| 	QMap<dive_trip_t *, TripItem *> trips;
 | |
| 	QVector<int> columnWidthMap;
 | |
| 	Layout currentLayout;
 | |
| };
 | |
| 
 | |
| #endif
 |