16 #include <QApplication> 18 #include <QPushButton> 19 #include <QColorDialog> 20 #include <QMouseEvent> 27 const QModelIndex &index)
const 29 QVariant data = index.data(Qt::EditRole);
31 if (data.canConvert<QColor>())
33 QColor color = data.value<QColor>();
35 painter->fillRect(option.rect, color);
39 QStyledItemDelegate::paint(painter, option, index);
44 const QModelIndex &index)
50 Qt::ItemFlags flags = model->flags(index);
51 if (!(flags & Qt::ItemIsEditable) || !(flags & Qt::ItemIsEnabled))
57 QMouseEvent* mouseEvent =
dynamic_cast<QMouseEvent*
>(event);
64 if (mouseEvent->type() != QEvent::MouseButtonRelease || mouseEvent->button() != Qt::LeftButton)
70 QColor oldcolor = index.data(Qt::EditRole).value<QColor>();
71 QColor newColor = QColorDialog::getColor(oldcolor,
nullptr);
73 if (newColor.isValid())
75 return model->setData(index, QVariant(newColor), Qt::EditRole);
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override
QmitkDoseColorDelegate(QObject *parent=nullptr)
bool editorEvent(QEvent *event, QAbstractItemModel *model, const QStyleOptionViewItem &option, const QModelIndex &index) override