#ifndef BASEJSONMODEL_H #define BASEJSONMODEL_H #include #include #include #include #include #include #include "LogWarehouse.h" #include "viewmodel/table/ELogColumn.h" #include "viewmodel/displayString/DisplayProviderCreator.h" class LogTableModel : public QAbstractTableModel { Q_OBJECT public: LogTableModel(LogWarehouse_ptr warehouse); ~LogTableModel() override; int rowCount(const QModelIndex& parent = QModelIndex()) const override; int columnCount(const QModelIndex& parent = QModelIndex()) const override; QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override; QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override; void setDisplayProviderCreator(DisplayProviderCreator_ptr creator); private: QMap _columnMap; LogWarehouse_ptr _warehouse; void initColumnMap(); QMap _textProviders; QVariant providerDisplayRepresentation(const Log_ptr& log, ELogColumn column) const; }; #endif //BASEJSONMODEL_H