Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "CustomDelegate.h"
00022 #include <QtGui>
00023
00024 #include <CustomDelegate.moc>
00025
00026 namespace Aseba
00027 {
00030
00031 SpinBoxDelegate::SpinBoxDelegate(int minValue, int maxValue, QObject *parent) :
00032 QItemDelegate(parent),
00033 minValue(minValue),
00034 maxValue(maxValue)
00035 {
00036 }
00037
00038 QWidget *SpinBoxDelegate::createEditor(QWidget *parent,
00039 const QStyleOptionViewItem &,
00040 const QModelIndex &) const
00041 {
00042 QSpinBox *editor = new QSpinBox(parent);
00043 editor->setMinimum(minValue);
00044 editor->setMaximum(maxValue);
00045 editor->installEventFilter(const_cast<SpinBoxDelegate*>(this));
00046
00047 return editor;
00048 }
00049
00050 void SpinBoxDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const
00051 {
00052 int value = index.model()->data(index, Qt::DisplayRole).toInt();
00053
00054 QSpinBox *spinBox = static_cast<QSpinBox*>(editor);
00055 spinBox->setValue(value);
00056 }
00057
00058 void SpinBoxDelegate::setModelData(QWidget *editor, QAbstractItemModel *model,
00059 const QModelIndex &index) const
00060 {
00061 QSpinBox *spinBox = static_cast<QSpinBox*>(editor);
00062 spinBox->interpretText();
00063 int value = spinBox->value();
00064
00065 model->setData(index, value);
00066 }
00067
00068 void SpinBoxDelegate::updateEditorGeometry(QWidget *editor,
00069 const QStyleOptionViewItem &option, const QModelIndex &) const
00070 {
00071 editor->setGeometry(option.rect);
00072 }
00073
00075 };