#pragma once #include "dmxwidget.h" #include class WidgetModel : public QAbstractItemModel { Q_OBJECT public: explicit WidgetModel(QObject *parent = nullptr); virtual ~WidgetModel(); // Header: QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override; // Basic functionality: QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const override; QModelIndex parent(const QModelIndex &index) const 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; /// @brief The Column enum enum Column { PortName, Manufacturer, Description, SerialNumber, FirmwareVersion, OperatingMode, }; Q_ENUM(Column) public slots: void rescanPorts(); private: QList> widgets_; };