BookShelf/mainwindow.h

44 lines
1.4 KiB
C
Raw Normal View History

#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QItemDelegate>
#include <QListView>
#include <QMainWindow>
#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;
private:
QIcon* const default_cover;
};
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