27 for (
const auto& x : data)
28 result = std::max(result,
static_cast<int>(x.size()));
32 const int default_header_ncols = 2;
36 : QAbstractTableModel(parent)
69 if (role == Qt::DisplayRole || role == Qt::EditRole)
73 return QBrush(Qt::lightGray);
84 return m_header->setData(index.row(), index.column(), value);
91 if (orientation == Qt::Horizontal || role != Qt::DisplayRole)
100 Qt::ItemFlags result = QAbstractItemModel::flags(index);
102 result |= Qt::ItemIsEnabled | Qt::ItemIsEditable;
104 result |= Qt::ItemIsEnabled | Qt::ItemIsSelectable;
122 if (!index.isValid())
126 return m_header->data(index.row(), index.column());
130 if (row >= 0 && row <
static_cast<int>(
m_rawData.size())) {
131 int col = index.column();
132 if (col >= 0 && col <
static_cast<int>(
m_rawData[row].size())) {
133 auto str =
m_rawData[
static_cast<int>(row)][
static_cast<int>(col)];
134 return QString::fromStdString(str);
QVariant headerData(int section, Qt::Orientation orientation, int role) const override
std::unique_ptr< ImportTableHeader > m_header
void setRawData(const raw_data_t &raw_data)
Sets content of the model.
int utilityRowCount() const
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const override
Qt::ItemFlags flags(const QModelIndex &index) const override
ImportTableModel(QObject *parent=nullptr)
~ImportTableModel() override
std::vector< ColumnInfo > columnInfo() const
bool setData(const QModelIndex &index, const QVariant &value, int role) override
int rowCount(const QModelIndex &=QModelIndex()) const override
int m_maxColumnCount
parsed column data
std::vector< std::vector< std::string > > raw_data_t
QVariant dataFromIndex(const QModelIndex &index) const
Returns data from index. Combines header data with parsed user data.
int columnCount(const QModelIndex &=QModelIndex()) const override
Based on Qt example "codeeditor" Copyright (C) 2016 The Qt Company Ltd.