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