#include "FieldStyleDelegate.h" #include "../dictionary/Field.h" #include "../field-styles/FieldStyleFactory.h" #include FieldStyleDelegate::FieldStyleDelegate(QObject *parent) : QStyledItemDelegate(parent) { } QWidget* FieldStyleDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &/*option*/, const QModelIndex &/*index*/) const { QComboBox* comboBox = new QComboBox( parent ); comboBox->insertItems( 0, FieldStyleFactory::inst()->getStyleNames() ); return comboBox; } void FieldStyleDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const { QString value = index.model()->data(index, Qt::EditRole).toString(); int cbIndex = FieldStyleFactory::inst()->getStyleNames().indexOf( value ); QComboBox* comboBox = static_cast(editor); comboBox->setCurrentIndex( cbIndex ); } void FieldStyleDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const { QComboBox* comboBox = static_cast(editor); QString value = comboBox->currentText(); model->setData(index, value, Qt::EditRole); }