27 lines
716 B
C++
Executable File
27 lines
716 B
C++
Executable File
#pragma once
|
|
|
|
#include "abstract_display_widget.h"
|
|
|
|
#include <QStyledItemDelegate>
|
|
|
|
namespace LtsDataView
|
|
{
|
|
class IconViewDelegate final : public QStyledItemDelegate
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
using QStyledItemDelegate::QStyledItemDelegate;
|
|
void setDisplayWidgetCreator(const std::function<AbstractDisplayWidget*()> &customDisplayWidgetCreator);
|
|
|
|
QSize sizeHint(const QStyleOptionViewItem &option,
|
|
const QModelIndex &index) const;
|
|
void paint(QPainter *painter,
|
|
const QStyleOptionViewItem &option,
|
|
const QModelIndex &index) const;
|
|
|
|
private:
|
|
std::function<AbstractDisplayWidget*()> m_customDisplayWidgetCreator;
|
|
QSize m_displayWidgetSize;
|
|
};
|
|
} // namespace LtsDataView
|