File indexing completed on 2024-05-12 05:39:50
0001 #ifndef GENERICMODEL_H 0002 #define GENERICMODEL_H 0003 0004 #include <QAbstractTableModel> 0005 #include <core_global.h> 0006 class CharacterField; 0007 class CORE_EXPORT GenericModel : public QAbstractTableModel 0008 { 0009 Q_OBJECT 0010 0011 public: 0012 explicit GenericModel(QStringList cols, QVector<int> readOnlyCols= QVector<int>(), QObject* parent= nullptr); 0013 0014 // Header: 0015 QVariant headerData(int section, Qt::Orientation orientation, int role= Qt::DisplayRole) const override; 0016 0017 // Basic functionality: 0018 int rowCount(const QModelIndex& parent= QModelIndex()) const override; 0019 int columnCount(const QModelIndex& parent= QModelIndex()) const override; 0020 0021 QVariant data(const QModelIndex& index, int role= Qt::DisplayRole) const override; 0022 0023 // Editable: 0024 bool setData(const QModelIndex& index, const QVariant& value, int role= Qt::EditRole) override; 0025 0026 Qt::ItemFlags flags(const QModelIndex& index) const override; 0027 0028 void addData(CharacterField* type); 0029 void removeData(const QModelIndex&); 0030 0031 QList<CharacterField*>::iterator begin(); 0032 QList<CharacterField*>::iterator end(); 0033 0034 void resetData(QList<CharacterField*> list); 0035 const QList<CharacterField*>& fields() const; 0036 0037 private: 0038 QList<CharacterField*> m_data; 0039 QStringList m_columnList; 0040 QVector<int> m_readOnlyCols; 0041 }; 0042 0043 #endif // GENERICMODEL_H