EHM DAL 0.2.3
Data abstraction layer for Eastside Hockey Manager
Loading...
Searching...
No Matches
abstract_base_model.h
1#pragma once
2
3// Application headers
4#include "include/column_data/column_data.h"
5
6// Qt headers
7#include <QAbstractTableModel>
8#include <QSortFilterProxyModel>
9
10namespace ehm_dal::tables {
11
12// --- Abstract base class for model classes --- //
13// --- Formerly known as ContainerModelBaseClass --- //
14class AbstractBaseModel : public QAbstractTableModel
15{
16public:
19 QObject *parent = nullptr);
20 virtual ~AbstractBaseModel() override;
21
22 // Column data
28 ehm_dal::column_data::ColumnData *constColumnData() const;
29
30 // Get data - counts
36 qint32 columnCount(const QModelIndex &parent = QModelIndex()) const override;
37 inline qint32 size() const { return rowCount(); }
38
39 // Get data - flags
45 Qt::ItemFlags flags(const QModelIndex &index) const override;
46
47 // Get data - header
57 QVariant headerData(qint32 section,
58 Qt::Orientation orientation,
59 qint32 role = Qt::DisplayRole) const override;
60
61 // Proxy
62 std::unique_ptr<QSortFilterProxyModel> proxy();
63
64 // Table model type
65 enum class AbstractTableModelType : quint8 {
66 AbstractClass,
70 };
71
72 inline virtual QString modelName() const { return QStringLiteral("Abstract class"); }
73 inline virtual constexpr AbstractTableModelType modelType() const
74 {
75 return AbstractTableModelType::AbstractClass;
76 }
77
78protected:
79 // Modified columns
80 bool emitModifiedColumns(const qint32 row,
81 const std::vector<qint32> &modified_columns,
82 const QList<qint32> &modified_roles = QList<qint32>());
83
84private:
85 // Column data
86 std::unique_ptr<ehm_dal::column_data::ColumnData> column_data_;
87 enum ENUM_FLAGS { LARGE_TABLE_THRESHOLD = 100 };
88
89 // Reset
90 inline virtual bool clearAllData() { return false; }
91};
92
93} // namespace ehm_dal::tables
The ColumnData class represents a container of ehm_dal::column_data::Column and attributes relating t...
Definition: column_data.h:18
Definition: abstract_base_model.h:15
qint32 columnCount(const QModelIndex &parent=QModelIndex()) const override
Returns the number of columns in the table.
QVariant headerData(qint32 section, Qt::Orientation orientation, qint32 role=Qt::DisplayRole) const override
Returns the data for the given role and section in the header with the specified orientation....
Qt::ItemFlags flags(const QModelIndex &index) const override
Returns the item flags for the given index.
ehm_dal::column_data::ColumnData * columnData()
Returns the ehm_dal::column_data::ColumnData.
The GameChildTable class is a model for child data of a parent table. Each parent item has a single c...
Definition: game_child_table.h:20
The GameChildTreeTable class is a model for child data of a parent table. Each parent item can have m...
Definition: game_child_tree_table.h:21
Definition: game_table.h:23
namespace ehm_dal::tables
Definition: column.h:4