#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include class GroupDisplayDelegate : public QItemDelegate { public: GroupDisplayDelegate(); virtual ~GroupDisplayDelegate() override; // QAbstractItemDelegate interface public: virtual QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const override; virtual void setEditorData(QWidget* editor, const QModelIndex& index) const override; virtual void setModelData(QWidget* editor, QAbstractItemModel* model, const QModelIndex& index) const override; virtual void updateEditorGeometry(QWidget* editor, const QStyleOptionViewItem& option, const QModelIndex& index) const override; virtual void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const override; virtual QSize sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index) const override; }; class ItemDisplayDelegate : public QItemDelegate { public: ItemDisplayDelegate(); virtual ~ItemDisplayDelegate() override; // QAbstractItemDelegate interface public: virtual void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const override; virtual QSize sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index) const override; virtual QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const override; virtual void setEditorData(QWidget* editor, const QModelIndex& index) const override; virtual void setModelData(QWidget* editor, QAbstractItemModel* model, const QModelIndex& index) const override; virtual void updateEditorGeometry(QWidget* editor, const QStyleOptionViewItem& option, const QModelIndex& index) const override; }; class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget* parent = nullptr); virtual ~MainWindow() override; private: QListView* const groups_view; QStandardItemModel* const groups_list; QListView* const items_view; QStandardItemModel* const items_list; void init_groups_list(QStandardItemModel* model); }; #endif // MAINWINDOW_H