mirror of
https://github.com/overte-org/overte.git
synced 2025-04-25 22:56:29 +02:00
Fix (hopefully) for Windows runtime error.
This commit is contained in:
parent
e9579feef5
commit
c39f9f6271
1 changed files with 26 additions and 5 deletions
|
@ -11,12 +11,12 @@
|
||||||
#include <QDoubleSpinBox>
|
#include <QDoubleSpinBox>
|
||||||
#include <QFormLayout>
|
#include <QFormLayout>
|
||||||
#include <QHBoxLayout>
|
#include <QHBoxLayout>
|
||||||
|
#include <QItemEditorCreatorBase>
|
||||||
#include <QItemEditorFactory>
|
#include <QItemEditorFactory>
|
||||||
#include <QLineEdit>
|
#include <QLineEdit>
|
||||||
#include <QMetaType>
|
#include <QMetaType>
|
||||||
#include <QPushButton>
|
#include <QPushButton>
|
||||||
#include <QScriptEngine>
|
#include <QScriptEngine>
|
||||||
#include <QStandardItemEditorCreator>
|
|
||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
#include <QtDebug>
|
#include <QtDebug>
|
||||||
|
|
||||||
|
@ -76,27 +76,48 @@ static QItemEditorFactory* getItemEditorFactory() {
|
||||||
return factory;
|
return factory;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Because Windows doesn't necessarily have the staticMetaObject available when we want to create,
|
||||||
|
/// this class simply delays the value property name lookup until actually requested.
|
||||||
|
template<class T> class LazyItemEditorCreator : public QItemEditorCreatorBase {
|
||||||
|
public:
|
||||||
|
|
||||||
|
virtual QWidget* createWidget(QWidget* parent) const { return new T(parent); }
|
||||||
|
|
||||||
|
virtual QByteArray valuePropertyName() const;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
QByteArray _valuePropertyName;
|
||||||
|
};
|
||||||
|
|
||||||
|
template<class T> QByteArray LazyItemEditorCreator<T>::valuePropertyName() const {
|
||||||
|
if (_valuePropertyName.isNull()) {
|
||||||
|
const_cast<LazyItemEditorCreator<T>*>(this)->_valuePropertyName = T::staticMetaObject.userProperty().name();
|
||||||
|
}
|
||||||
|
return _valuePropertyName;
|
||||||
|
}
|
||||||
|
|
||||||
static QItemEditorCreatorBase* createDoubleEditorCreator() {
|
static QItemEditorCreatorBase* createDoubleEditorCreator() {
|
||||||
QItemEditorCreatorBase* creator = new QStandardItemEditorCreator<DoubleEditor>();
|
QItemEditorCreatorBase* creator = new LazyItemEditorCreator<DoubleEditor>();
|
||||||
getItemEditorFactory()->registerEditor(qMetaTypeId<double>(), creator);
|
getItemEditorFactory()->registerEditor(qMetaTypeId<double>(), creator);
|
||||||
getItemEditorFactory()->registerEditor(qMetaTypeId<float>(), creator);
|
getItemEditorFactory()->registerEditor(qMetaTypeId<float>(), creator);
|
||||||
return creator;
|
return creator;
|
||||||
}
|
}
|
||||||
|
|
||||||
static QItemEditorCreatorBase* createQColorEditorCreator() {
|
static QItemEditorCreatorBase* createQColorEditorCreator() {
|
||||||
QItemEditorCreatorBase* creator = new QStandardItemEditorCreator<QColorEditor>();
|
QItemEditorCreatorBase* creator = new LazyItemEditorCreator<QColorEditor>();
|
||||||
getItemEditorFactory()->registerEditor(qMetaTypeId<QColor>(), creator);
|
getItemEditorFactory()->registerEditor(qMetaTypeId<QColor>(), creator);
|
||||||
return creator;
|
return creator;
|
||||||
}
|
}
|
||||||
|
|
||||||
static QItemEditorCreatorBase* createVec3EditorCreator() {
|
static QItemEditorCreatorBase* createVec3EditorCreator() {
|
||||||
QItemEditorCreatorBase* creator = new QStandardItemEditorCreator<Vec3Editor>();
|
QItemEditorCreatorBase* creator = new LazyItemEditorCreator<Vec3Editor>();
|
||||||
getItemEditorFactory()->registerEditor(qMetaTypeId<glm::vec3>(), creator);
|
getItemEditorFactory()->registerEditor(qMetaTypeId<glm::vec3>(), creator);
|
||||||
return creator;
|
return creator;
|
||||||
}
|
}
|
||||||
|
|
||||||
static QItemEditorCreatorBase* createParameterizedURLEditorCreator() {
|
static QItemEditorCreatorBase* createParameterizedURLEditorCreator() {
|
||||||
QItemEditorCreatorBase* creator = new QStandardItemEditorCreator<ParameterizedURLEditor>();
|
QItemEditorCreatorBase* creator = new LazyItemEditorCreator<ParameterizedURLEditor>();
|
||||||
getItemEditorFactory()->registerEditor(qMetaTypeId<ParameterizedURL>(), creator);
|
getItemEditorFactory()->registerEditor(qMetaTypeId<ParameterizedURL>(), creator);
|
||||||
return creator;
|
return creator;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue