26 #include <QtCore/QMetaProperty>
27 #include <QtWidgets/QSpinBox>
31 Property::Property(
const QString& name , QObject* propertyObject , QObject* parent ) : QObject(parent),
32 m_propertyObject(propertyObject)
38 connect(
this, SIGNAL(
propertyChanged(QObject*,QString,QVariant,QVariant)),
63 if(
m_propertyObject->dynamicPropertyNames().contains( objectName().toLocal8Bit() ) )
74 switch(
value().type())
80 editor =
new QSpinBox(parent);
81 editor->setProperty(
"minimum", -INT_MAX);
82 editor->setProperty(
"maximum", INT_MAX);
83 connect(editor, SIGNAL(valueChanged(
int)),
this, SLOT(
setValue(
int)));
85 case QMetaType::Float:
86 case QVariant::Double:
87 editor =
new QDoubleSpinBox(parent);
88 editor->setProperty(
"minimum", -INT_MAX);
89 editor->setProperty(
"maximum", INT_MAX);
90 connect(editor, SIGNAL(valueChanged(
double)),
this, SLOT(
setValue(
double)));
100 switch(
value().type())
102 case QVariant::Color:
103 static_cast<ColorCombo*
>(editor)->setColor(data.value<QColor>());
106 editor->blockSignals(
true);
107 static_cast<QSpinBox*
>(editor)->
setValue(data.toInt());
108 editor->blockSignals(
false);
110 case QMetaType::Float:
111 case QVariant::Double:
112 editor->blockSignals(
true);
113 static_cast<QDoubleSpinBox*
>(editor)->
setValue(data.toDouble());
114 editor->blockSignals(
false);
124 switch(
value().type())
126 case QVariant::Color:
127 return QVariant::fromValue(static_cast<ColorCombo*>(editor)->color());
129 return QVariant(static_cast<QSpinBox*>(editor)->
value());
130 case QMetaType::Float:
131 case QVariant::Double:
132 return QVariant(static_cast<QDoubleSpinBox*>(editor)->
value());
143 for (
int i=0; i<children().size(); ++i)
void propertyChanged(QObject *, QString, QVariant, QVariant)
Property(const QString &name=QString(), QObject *propertyObject=0, QObject *parent=0)
virtual void setValue(const QVariant &value)
QObject * m_propertyObject
virtual QVariant editorData(QWidget *editor)
virtual QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option)
static EditorWindow * currentInstance
virtual bool setEditorData(QWidget *editor, const QVariant &data)
virtual QVariant value(int role=Qt::UserRole) const
Property * findPropertyObject(QObject *propertyObject)