2021-08-14 03:32:43 +00:00
|
|
|
#ifndef MAINWINDOW_H
|
|
|
|
#define MAINWINDOW_H
|
|
|
|
|
|
|
|
#include <QItemDelegate>
|
2021-08-14 16:21:08 +00:00
|
|
|
#include <QLabel>
|
2021-08-14 03:32:43 +00:00
|
|
|
#include <QListView>
|
|
|
|
#include <QMainWindow>
|
2021-08-14 16:21:08 +00:00
|
|
|
#include <QSplitter>
|
2021-08-14 03:32:43 +00:00
|
|
|
#include <QStandardItemModel>
|
|
|
|
#include <QTableView>
|
|
|
|
|
|
|
|
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;
|
|
|
|
};
|
|
|
|
|
2021-08-14 15:22:37 +00:00
|
|
|
class ItemDisplayDelegate : public QItemDelegate {
|
2021-08-14 07:50:39 +00:00
|
|
|
public:
|
2021-08-14 15:22:37 +00:00
|
|
|
ItemDisplayDelegate();
|
|
|
|
virtual ~ItemDisplayDelegate() override;
|
2021-08-14 07:50:39 +00:00
|
|
|
|
|
|
|
// 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;
|
|
|
|
};
|
|
|
|
|
2021-08-14 03:32:43 +00:00
|
|
|
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;
|
2021-08-14 16:21:08 +00:00
|
|
|
QSplitter* const details_panel;
|
|
|
|
|
|
|
|
QLabel* const cover_display;
|
|
|
|
QTableView* const details_view;
|
|
|
|
QStandardItemModel* const details_model;
|
|
|
|
QTableView* const labels_view;
|
|
|
|
QStandardItemModel* const labels_model;
|
2021-08-14 03:32:43 +00:00
|
|
|
|
|
|
|
void init_groups_list(QStandardItemModel* model);
|
2021-08-14 15:38:45 +00:00
|
|
|
void init_items_present(const QModelIndex& index);
|
2021-08-14 03:32:43 +00:00
|
|
|
};
|
|
|
|
#endif // MAINWINDOW_H
|