#ifndef HORIZONTALPROXYMODEL_H #define HORIZONTALPROXYMODEL_H #include class PropertyProxyModel : public QIdentityProxyModel { Q_OBJECT public: PropertyProxyModel(QObject * parent = nullptr); QModelIndex mapToSource(const QModelIndex &proxyIndex) const; QModelIndex mapFromSource(const QModelIndex &sourceIndex) const; QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const; QModelIndex parent(const QModelIndex &child) const; int rowCount(const QModelIndex &parent) const; int columnCount(const QModelIndex &parent) const; QVariant headerData(int section, Qt::Orientation orientation, int role) const; QVariant data(const QModelIndex &proxyIndex, int role) const; public Q_SLOTS: void setActiveRow(int row); private: enum Columns { propertyColumn = 0, valueColumn }; int activeRow = -1; }; #endif // HORIZONTALPROXYMODEL_H