summaryrefslogtreecommitdiffstats
path: root/qt-ui/models.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qt-ui/models.cpp')
-rw-r--r--qt-ui/models.cpp106
1 files changed, 106 insertions, 0 deletions
diff --git a/qt-ui/models.cpp b/qt-ui/models.cpp
index 0af5c7019..25429154f 100644
--- a/qt-ui/models.cpp
+++ b/qt-ui/models.cpp
@@ -1438,3 +1438,109 @@ void YearlyStatisticsModel::update_yearly_stats()
item->parent = rootItem;
}
}
+
+/*#################################################################
+ * #
+ * # Table Print Model
+ * #
+ * ################################################################
+ */
+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()
+{
+ reset();
+}
+
+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;
+ }
+ 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:
+ list.at(index.row())->location = value.toString();
+ }
+ 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;
+}