[PATCH 1/2] qt-models: remove obsolete printer related classes

Lubomir I. Ivanov neolit123 at gmail.com
Mon Nov 9 10:42:11 PST 2015


From: "Lubomir I. Ivanov" <neolit123 at gmail.com>

The profileprintmodel.cpp/.h and the
tableprintmode.cpp/.h pairs are obsolete.

The print layouting is now handled via the Grantlee library
and HTML.

Signed-off-by: Lubomir I. Ivanov <neolit123 at gmail.com>
---
 qt-models/CMakeLists.txt        |   4 +-
 qt-models/profileprintmodel.cpp | 157 ----------------------------------------
 qt-models/profileprintmodel.h   |  26 -------
 qt-models/tableprintmodel.cpp   | 127 --------------------------------
 qt-models/tableprintmodel.h     |  45 ------------
 5 files changed, 1 insertion(+), 358 deletions(-)
 delete mode 100644 qt-models/profileprintmodel.cpp
 delete mode 100644 qt-models/profileprintmodel.h
 delete mode 100644 qt-models/tableprintmodel.cpp
 delete mode 100644 qt-models/tableprintmodel.h

diff --git a/qt-models/CMakeLists.txt b/qt-models/CMakeLists.txt
index c9bcf5c..c35ca43 100644
--- a/qt-models/CMakeLists.txt
+++ b/qt-models/CMakeLists.txt
@@ -11,12 +11,10 @@ set(SUBSURFACE_MODELS_LIB_SRCS
 	weightmodel.cpp
 	divecomputermodel.cpp
 	treemodel.cpp
-	tableprintmodel.cpp
 	yearlystatisticsmodel.cpp
 	divetripmodel.cpp
 	divecomputerextradatamodel.cpp
 	completionmodels.cpp
-	profileprintmodel.cpp
 	divepicturemodel.cpp
 	diveplotdatamodel.cpp
 	divelocationmodel.cpp
@@ -26,4 +24,4 @@ set(SUBSURFACE_MODELS_LIB_SRCS
 
 source_group("Subsurface Models" FILES ${SUBSURFACE_MODELS})
 add_library(subsurface_models STATIC ${SUBSURFACE_MODELS_LIB_SRCS})
-target_link_libraries(subsurface_models ${QT_LIBRARIES})
\ No newline at end of file
+target_link_libraries(subsurface_models ${QT_LIBRARIES})
diff --git a/qt-models/profileprintmodel.cpp b/qt-models/profileprintmodel.cpp
deleted file mode 100644
index 1d01f6a..0000000
--- a/qt-models/profileprintmodel.cpp
+++ /dev/null
@@ -1,157 +0,0 @@
-#include "profileprintmodel.h"
-#include "metrics.h"
-#include "dive.h"
-#include "divetripmodel.h"
-#include "helpers.h"
-
-ProfilePrintModel::ProfilePrintModel(QObject *parent)
-{
-	fontSize = 12.0;
-}
-
-void ProfilePrintModel::setDive(struct dive *divePtr)
-{
-	diveId = divePtr->id;
-	// reset();
-}
-
-void ProfilePrintModel::setFontsize(double size)
-{
-	fontSize = size;
-}
-
-int ProfilePrintModel::rowCount(const QModelIndex &parent) const
-{
-	return 12;
-}
-
-int ProfilePrintModel::columnCount(const QModelIndex &parent) const
-{
-	return 5;
-}
-
-QVariant ProfilePrintModel::data(const QModelIndex &index, int role) const
-{
-	const int row = index.row();
-	const int col = index.column();
-
-	switch (role) {
-	case Qt::DisplayRole: {
-		struct dive *dive = get_dive_by_uniq_id(diveId);
-		struct DiveItem di;
-		di.diveId = diveId;
-
-		const QString unknown = tr("unknown");
-
-		// dive# + date, depth, location, duration
-		if (row == 0) {
-			if (col == 0)
-				return tr("Dive #%1 - %2").arg(dive->number).arg(di.displayDate());
-			if (col == 3) {
-				QString unit = (get_units()->length == units::METERS) ? "m" : "ft";
-				return tr("Max depth: %1 %2").arg(di.displayDepth()).arg(unit);
-			}
-		}
-		if (row == 1) {
-			if (col == 0)
-				return QString(get_dive_location(dive));
-			if (col == 3)
-				return QString(tr("Duration: %1 min")).arg(di.displayDuration());
-		}
-		// headings
-		if (row == 2) {
-			if (col == 0)
-				return tr("Gas used:");
-			if (col == 2)
-				return tr("Tags:");
-			if (col == 3)
-				return tr("SAC:");
-			if (col == 4)
-				return tr("Weights:");
-		}
-		// notes
-		if (col == 0) {
-			if (row == 6)
-				return tr("Notes:");
-			if (row == 7)
-				return QString(dive->notes);
-		}
-		// more headings
-		if (row == 4) {
-			if (col == 0)
-				return tr("Divemaster:");
-			if (col == 1)
-				return tr("Buddy:");
-			if (col == 2)
-				return tr("Suit:");
-			if (col == 3)
-				return tr("Viz:");
-			if (col == 4)
-				return tr("Rating:");
-		}
-		// values for gas, sac, etc...
-		if (row == 3) {
-			if (col == 0) {
-				int added = 0;
-				QString gas, gases;
-				for (int i = 0; i < MAX_CYLINDERS; i++) {
-					if (!is_cylinder_used(dive, i))
-						continue;
-					gas = dive->cylinder[i].type.description;
-					gas += QString(!gas.isEmpty() ? " " : "") + gasname(&dive->cylinder[i].gasmix);
-					// if has a description and if such gas is not already present
-					if (!gas.isEmpty() && gases.indexOf(gas) == -1) {
-						if (added > 0)
-							gases += QString(" / ");
-						gases += gas;
-						added++;
-					}
-				}
-				return gases;
-			}
-			if (col == 2) {
-				char buffer[256];
-				taglist_get_tagstring(dive->tag_list, buffer, 256);
-				return QString(buffer);
-			}
-			if (col == 3)
-				return di.displaySac();
-			if (col == 4) {
-				weight_t tw = { total_weight(dive) };
-				return get_weight_string(tw, true);
-			}
-		}
-		// values for DM, buddy, suit, etc...
-		if (row == 5) {
-			if (col == 0)
-				return QString(dive->divemaster);
-			if (col == 1)
-				return QString(dive->buddy);
-			if (col == 2)
-				return QString(dive->suit);
-			if (col == 3)
-				return (dive->visibility) ? QString::number(dive->visibility).append(" / 5") : QString();
-			if (col == 4)
-				return (dive->rating) ? QString::number(dive->rating).append(" / 5") : QString();
-		}
-		return QString();
-	}
-	case Qt::FontRole: {
-		QFont font;
-		font.setPointSizeF(fontSize);
-		if (row == 0 && col == 0) {
-			font.setBold(true);
-		}
-		return QVariant::fromValue(font);
-	}
-	case Qt::TextAlignmentRole: {
-		// everything is aligned to the left
-		unsigned int align = Qt::AlignLeft;
-		// align depth and duration right
-		if (row < 2 && col == 4)
-			align = Qt::AlignRight | Qt::AlignVCenter;
-		return QVariant::fromValue(align);
-	}
-	} // switch (role)
-	return QVariant();
-}
diff --git a/qt-models/profileprintmodel.h b/qt-models/profileprintmodel.h
deleted file mode 100644
index b15f2df..0000000
--- a/qt-models/profileprintmodel.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef PROFILEPRINTMODEL_H
-#define PROFILEPRINTMODEL_H
-
-#include <QAbstractTableModel>
-
-/* ProfilePrintModel:
- * this model is used when printing a data table under a profile. it requires
- * some exact usage of setSpan(..) on the target QTableView widget.
- */
-class ProfilePrintModel : public QAbstractTableModel {
-	Q_OBJECT
-
-private:
-	int diveId;
-	double fontSize;
-
-public:
-	ProfilePrintModel(QObject *parent = 0);
-	int rowCount(const QModelIndex &parent = QModelIndex()) const;
-	int columnCount(const QModelIndex &parent = QModelIndex()) const;
-	QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
-	void setDive(struct dive *divePtr);
-	void setFontsize(double size);
-};
-
-#endif
\ No newline at end of file
diff --git a/qt-models/tableprintmodel.cpp b/qt-models/tableprintmodel.cpp
deleted file mode 100644
index c3ed3c1..0000000
--- a/qt-models/tableprintmodel.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-#include "tableprintmodel.h"
-#include "metrics.h"
-#include "color.h"
-
-TablePrintModel::TablePrintModel()
-{
-	columns = 7;
-	rows = 0;
-}
-
-TablePrintModel::~TablePrintModel()
-{
-	for (int i = 0; i < list.size(); i++)
-		delete list.at(i);
-}
-
-void TablePrintModel::insertRow(int index)
-{
-	struct TablePrintItem *item = new struct TablePrintItem();
-	item->colorBackground = 0xffffffff;
-	if (index == -1) {
-		beginInsertRows(QModelIndex(), rows, rows);
-		list.append(item);
-	} else {
-		beginInsertRows(QModelIndex(), index, index);
-		list.insert(index, item);
-	}
-	endInsertRows();
-	rows++;
-}
-
-void TablePrintModel::callReset()
-{
-	beginResetModel();
-	endResetModel();
-}
-
-QVariant TablePrintModel::data(const QModelIndex &index, int role) const
-{
-	if (!index.isValid())
-		return QVariant();
-	if (role == Qt::BackgroundRole)
-		return QColor(list.at(index.row())->colorBackground);
-	if (role == Qt::DisplayRole)
-		switch (index.column()) {
-		case 0:
-			return list.at(index.row())->number;
-		case 1:
-			return list.at(index.row())->date;
-		case 2:
-			return list.at(index.row())->depth;
-		case 3:
-			return list.at(index.row())->duration;
-		case 4:
-			return list.at(index.row())->divemaster;
-		case 5:
-			return list.at(index.row())->buddy;
-		case 6:
-			return list.at(index.row())->location;
-		}
-	if (role == Qt::FontRole) {
-		QFont font;
-		font.setPointSizeF(7.5);
-		if (index.row() == 0 && index.column() == 0) {
-			font.setBold(true);
-		}
-		return QVariant::fromValue(font);
-	}
-	return QVariant();
-}
-
-bool TablePrintModel::setData(const QModelIndex &index, const QVariant &value, int role)
-{
-	if (index.isValid()) {
-		if (role == Qt::DisplayRole) {
-			switch (index.column()) {
-			case 0:
-				list.at(index.row())->number = value.toString();
-			case 1:
-				list.at(index.row())->date = value.toString();
-			case 2:
-				list.at(index.row())->depth = value.toString();
-			case 3:
-				list.at(index.row())->duration = value.toString();
-			case 4:
-				list.at(index.row())->divemaster = value.toString();
-			case 5:
-				list.at(index.row())->buddy = value.toString();
-			case 6: {
-				/* truncate if there are more than N lines of text,
-				 * we don't want a row to be larger that a single page! */
-				QString s = value.toString();
-				const int maxLines = 15;
-				int count = 0;
-				for (int i = 0; i < s.length(); i++) {
-					if (s.at(i) != QChar('\n'))
-						continue;
-					count++;
-					if (count > maxLines) {
-						s = s.left(i - 1);
-						break;
-					}
-				}
-				list.at(index.row())->location = s;
-			}
-			}
-			return true;
-		}
-		if (role == Qt::BackgroundRole) {
-			list.at(index.row())->colorBackground = value.value<unsigned int>();
-			return true;
-		}
-	}
-	return false;
-}
-
-int TablePrintModel::rowCount(const QModelIndex &parent) const
-{
-	Q_UNUSED(parent);
-	return rows;
-}
-
-int TablePrintModel::columnCount(const QModelIndex &parent) const
-{
-	Q_UNUSED(parent);
-	return columns;
-}
diff --git a/qt-models/tableprintmodel.h b/qt-models/tableprintmodel.h
deleted file mode 100644
index 9263d10..0000000
--- a/qt-models/tableprintmodel.h
+++ /dev/null
@@ -1,45 +0,0 @@
-#ifndef TABLEPRINTMODEL_H
-#define TABLEPRINTMODEL_H
-
-#include <QAbstractTableModel>
-
-/* TablePrintModel:
- * for now we use a blank table model with row items TablePrintItem.
- * these are pretty much the same as DiveItem, but have color
- * properties, as well. perhaps later one a more unified model has to be
- * considered, but the current TablePrintModel idea has to be extended
- * to support variadic column lists and column list orders that can
- * be controlled by the user.
- */
-struct TablePrintItem {
-	QString number;
-	QString date;
-	QString depth;
-	QString duration;
-	QString divemaster;
-	QString buddy;
-	QString location;
-	unsigned int colorBackground;
-};
-
-class TablePrintModel : public QAbstractTableModel {
-	Q_OBJECT
-
-private:
-	QList<TablePrintItem *> list;
-
-public:
-	~TablePrintModel();
-	TablePrintModel();
-
-	int rows, columns;
-	void insertRow(int index = -1);
-	void callReset();
-
-	QVariant data(const QModelIndex &index, int role) const;
-	bool setData(const QModelIndex &index, const QVariant &value, int role);
-	int rowCount(const QModelIndex &parent) const;
-	int columnCount(const QModelIndex &parent) const;
-};
-
-#endif
-- 
1.7.11.msysgit.0



More information about the subsurface mailing list