23 setEditorHints(
"minimumX=-2147483647;maximumX=2147483647;minimumY=-2147483647;maximumY=2147483647;minimumZ=-2147483647;maximumZ=2147483647;");
29 if (data.isValid() && role != Qt::UserRole)
34 return tr(
"[ %1, %2, %3]").arg(data.value<btVector3>().x()).arg(data.value<btVector3>().y()).arg(data.value<btVector3>().z());
36 return tr(
"%1, %2, %3").arg(data.value<btVector3>().x()).arg(data.value<btVector3>().y()).arg(data.value<btVector3>().z());
44 if (value.type() == QVariant::String)
46 QString v = value.toString();
47 QRegExp rx(
"([+-]?([0-9]*[\\.,])?[0-9]+(e[+-]?[0-9]+)?)");
48 rx.setCaseSensitivity(Qt::CaseInsensitive);
51 float x = 0.0f,
y = 0.0f,
z = 0.0f;
52 while ((pos = rx.indexIn(v, pos)) != -1)
55 x = rx.cap(1).toDouble();
57 y = rx.cap(1).toDouble();
59 z = rx.cap(1).toDouble();
63 pos += rx.matchedLength();
65 m_x->setProperty(
"x", x);
66 m_y->setProperty(
"y",
y);
67 m_z->setProperty(
"z",
z);
83 return value().value<btVector3>().
x();
93 return value().value<btVector3>().
y();
103 return value().value<btVector3>().
z();
111 QString Vec3fProperty::parseHints(
const QString& hints,
const QChar component )
113 QRegExp rx(QString(
"(.*)(")+component+QString(
"{1})(=\\s*)(.*)(;{1})"));
116 QString componentHints;
117 while ((pos = rx.indexIn(hints, pos)) != -1)
120 if (rx.cap(1).lastIndexOf(
';') != -1)
121 componentHints += QString(
"%1=%2;").arg(rx.cap(1).remove(0, rx.cap(1).lastIndexOf(
';')+1)).arg(rx.cap(4));
123 componentHints += QString(
"%1=%2;").arg(rx.cap(1)).arg(rx.cap(4));
124 pos += rx.matchedLength();
126 return componentHints;
Property(const QString &name=QString(), QObject *propertyObject=0, QObject *parent=0)
virtual void setValue(const QVariant &value)
Vec3fProperty(const QString &name=QString(), QObject *propertyObject=0, QObject *parent=0)
void setEditorHints(const QString &hints)
QVariant value(int role=Qt::UserRole) const
virtual void setValue(const QVariant &value)
virtual QVariant value(int role=Qt::UserRole) const
virtual void setEditorHints(const QString &hints)