29 QObject *propertyObject , QObject *parent )
30 :
Property(name, propertyObject, parent)
33 const QMetaObject* meta = propertyObject->metaObject();
34 QMetaProperty prop = meta->property(meta->indexOfProperty(qPrintable(name)));
37 if(prop.isEnumType()){
38 QMetaEnum qenum = prop.enumerator();
39 for(
int i=0; i < qenum.keyCount(); i++){
49 if(role == Qt::DisplayRole){
55 QMetaProperty prop = meta->property(meta->indexOfProperty(qPrintable(objectName())));
56 return QVariant(prop.enumerator().valueToKey(index));
70 QComboBox* editor =
new QComboBox(parent);
73 connect(editor, SIGNAL(currentIndexChanged(
int)),
74 this, SLOT(valueChanged(
int)));
84 if(combo = qobject_cast<QComboBox*>(editor)){
85 int value = data.toInt();
87 QMetaProperty prop = meta->property(meta->indexOfProperty(qPrintable(objectName())));
89 int index = combo->findText(prop.enumerator().valueToKey(value));
93 combo->setCurrentIndex(index);
106 QComboBox* combo = 0;
107 if(combo = qobject_cast<QComboBox*>(editor)){
108 return QVariant(combo->currentText());
117 void EnumProperty::valueChanged(
int value)
virtual void setValue(const QVariant &value)
QObject * m_propertyObject
EnumProperty(const QString &name=QString(), QObject *propertyObject=0, QObject *parent=0)
virtual QVariant editorData(QWidget *editor)
virtual QVariant value(int role=Qt::UserRole) const
virtual bool setEditorData(QWidget *editor, const QVariant &data)
virtual QVariant value(int role=Qt::UserRole) const
virtual QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option)