BookShelf/mainwindow.h

66 lines
2.6 KiB
C
Raw Normal View History

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QItemDelegate>
2021-08-14 16:21:08 +00:00
#include <QLabel>
#include <QListView>
#include <QMainWindow>
2021-08-14 16:21:08 +00:00
#include <QSplitter>
#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;
};
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;
void init_groups_list(QStandardItemModel* model);
2021-08-14 15:38:45 +00:00
void init_items_present(const QModelIndex& index);
};
#endif // MAINWINDOW_H