2 #include "comboboxdelegate.h"
3 #include "emufrontquerymodel.h"
4 #include "emufrontobject.h"
6 ComboBoxDelegate::ComboBoxDelegate(int column, EmuFrontQueryModel *model, QWidget *parent) :
7 QStyledItemDelegate(parent), column(column), model(model)
10 void ComboBoxDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
12 if (index.column() != column) {
13 QStyledItemDelegate::paint(painter, option, index);
17 int objid = index.model()->data(index, Qt::DisplayRole).toInt();
18 EmuFrontObject *efo = model->getObject(objid);
19 QString txt = efo->getName();
21 //initStyleOption(&option, index);
22 painter->drawText(option.rect, txt);
26 //QSize ComboBoxDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const { }
28 QWidget* ComboBoxDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const
30 if (index.column() != column) {
31 return QStyledItemDelegate::createEditor(parent, option, index);
34 QComboBox *editor = new QComboBox(parent);
35 editor->setEditable(false);
36 editor->setModel(model);
37 connect(editor, SIGNAL(editingFinished()), this, SLOT(commitAndCloseEditor()));
41 void ComboBoxDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const
46 void ComboBoxDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const
50 void ComboBoxDelegate::commitAndCloseEditor()