16 #include <QApplication> 18 #include <QMouseEvent> 19 #include <QListWidget> 26 const QStyleOptionViewItem& option,
const QModelIndex& index)
const 28 QVariant data = index.data(Qt::DisplayRole);
29 QStyleOptionViewItem opt = option;
30 initStyleOption(&opt, index);
31 QStyle* style = QApplication::style();
33 QString text =
"Invalid data";
37 QStringList names = data.toStringList();
40 for (QStringList::const_iterator pos = names.begin(); pos != names.end(); ++pos)
42 if (pos != names.begin())
51 style->drawItemText(painter, opt.rect.adjusted(0, 0, -5, 0), Qt::AlignRight | Qt::AlignVCenter,
52 opt.palette,
true, text);
56 const QStyleOptionViewItem&
57 ,
const QModelIndex& index)
const 59 QVariant data = index.data(Qt::EditRole);
60 QVariant displayData = index.data(Qt::DisplayRole);
64 QListWidget* list =
new QListWidget(parent);
65 list->setFixedSize(100, 100);
67 list->installEventFilter(const_cast<QmitkSimpleBarrierParametersDelegate*>(
this));
74 return new QLabel(displayData.toString(), parent);
79 const QModelIndex& index)
const 81 QVariant data = index.data(Qt::EditRole);
82 QVariant displayData = index.data(Qt::DisplayRole);
84 if (data.isValid() && displayData.isValid())
87 QListWidget* list = qobject_cast<QListWidget*>(editor);
93 QStringList names = data.toStringList();
94 QStringList checkedNames = displayData.toStringList();
96 for (QStringList::const_iterator pos = names.begin(); pos != names.end(); ++pos)
98 QListWidgetItem* item =
new QListWidgetItem(*pos, list);
99 item->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled);
101 if (checkedNames.contains(*pos))
103 item->setCheckState(Qt::Checked);
107 item->setCheckState(Qt::Unchecked);
113 QStyledItemDelegate::setEditorData(editor, index);
119 ,
const QModelIndex& index)
const 121 QVariant data = index.data(Qt::EditRole);
125 QListWidget* list = qobject_cast<QListWidget*>(editor);
126 QStringList selectedItems;
130 for (
int row = 0; row < list->count(); ++row)
132 QListWidgetItem* item = list->item(row);
134 if (item->checkState() == Qt::Checked)
136 selectedItems.append(item->text());
141 QVariant selectedVariant(selectedItems);
142 model->setData(index, selectedVariant);
146 QStyledItemDelegate::setModelData(editor, model, index);
void setEditorData(QWidget *editor, const QModelIndex &index) const override
void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override
QmitkSimpleBarrierParametersDelegate(QObject *parent=nullptr)
QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override