Qt4/Qt5 neutral changes:

+ change inheritance of PropertyItem to not derive from BaseClass (and QObject) any more to fix crashes with Qt5
This commit is contained in:
wmayer
2016-12-12 17:01:26 +01:00
parent e20a054328
commit 3357cd91e7
9 changed files with 136 additions and 78 deletions

View File

@@ -79,7 +79,30 @@ namespace Gui { namespace PropertyEditor {
}
}
TYPESYSTEM_SOURCE(Gui::PropertyEditor::PropertyItem, Base::BaseClass)
Gui::PropertyEditor::PropertyItemFactory* Gui::PropertyEditor::PropertyItemFactory::_singleton = NULL;
PropertyItemFactory& PropertyItemFactory::instance()
{
if (_singleton == NULL)
_singleton = new PropertyItemFactory;
return *_singleton;
}
void PropertyItemFactory::destruct ()
{
delete _singleton;
_singleton = 0;
}
PropertyItem* PropertyItemFactory::createPropertyItem (const char* sName) const
{
PropertyItem* w = static_cast<PropertyItem*>(Produce(sName));
return w;
}
// ----------------------------------------------------
PROPERTYITEM_SOURCE(Gui::PropertyEditor::PropertyItem)
PropertyItem::PropertyItem() : parentItem(0), readonly(false), cleared(false)
{
@@ -474,7 +497,7 @@ void PropertyItem::bind(const App::Property& prop) {
// --------------------------------------------------------------------
TYPESYSTEM_SOURCE(Gui::PropertyEditor::PropertyStringItem, Gui::PropertyEditor::PropertyItem)
PROPERTYITEM_SOURCE(Gui::PropertyEditor::PropertyStringItem)
PropertyStringItem::PropertyStringItem()
{
@@ -520,7 +543,7 @@ QVariant PropertyStringItem::editorData(QWidget *editor) const
// --------------------------------------------------------------------
TYPESYSTEM_SOURCE(Gui::PropertyEditor::PropertyFontItem, Gui::PropertyEditor::PropertyItem)
PROPERTYITEM_SOURCE(Gui::PropertyEditor::PropertyFontItem)
PropertyFontItem::PropertyFontItem()
{
@@ -570,7 +593,7 @@ QVariant PropertyFontItem::editorData(QWidget *editor) const
// --------------------------------------------------------------------
TYPESYSTEM_SOURCE(Gui::PropertyEditor::PropertySeparatorItem, Gui::PropertyEditor::PropertyItem)
PROPERTYITEM_SOURCE(Gui::PropertyEditor::PropertySeparatorItem)
QWidget* PropertySeparatorItem::createEditor(QWidget* parent, const QObject* receiver, const char* method) const
{
@@ -582,7 +605,7 @@ QWidget* PropertySeparatorItem::createEditor(QWidget* parent, const QObject* rec
// --------------------------------------------------------------------
TYPESYSTEM_SOURCE(Gui::PropertyEditor::PropertyIntegerItem, Gui::PropertyEditor::PropertyItem)
PROPERTYITEM_SOURCE(Gui::PropertyEditor::PropertyIntegerItem)
PropertyIntegerItem::PropertyIntegerItem()
{
@@ -649,7 +672,7 @@ QVariant PropertyIntegerItem::toString(const QVariant& v) const {
// --------------------------------------------------------------------
TYPESYSTEM_SOURCE(Gui::PropertyEditor::PropertyIntegerConstraintItem, Gui::PropertyEditor::PropertyItem)
PROPERTYITEM_SOURCE(Gui::PropertyEditor::PropertyIntegerConstraintItem)
PropertyIntegerConstraintItem::PropertyIntegerConstraintItem()
{
@@ -732,7 +755,7 @@ QVariant PropertyIntegerConstraintItem::toString(const QVariant& v) const {
// --------------------------------------------------------------------
TYPESYSTEM_SOURCE(Gui::PropertyEditor::PropertyFloatItem, Gui::PropertyEditor::PropertyItem)
PROPERTYITEM_SOURCE(Gui::PropertyEditor::PropertyFloatItem)
PropertyFloatItem::PropertyFloatItem()
{
@@ -801,7 +824,7 @@ QVariant PropertyFloatItem::editorData(QWidget *editor) const
// --------------------------------------------------------------------
TYPESYSTEM_SOURCE(Gui::PropertyEditor::PropertyUnitItem, Gui::PropertyEditor::PropertyItem)
PROPERTYITEM_SOURCE(Gui::PropertyEditor::PropertyUnitItem)
PropertyUnitItem::PropertyUnitItem()
{
@@ -875,7 +898,7 @@ QVariant PropertyUnitItem::editorData(QWidget *editor) const
// --------------------------------------------------------------------
TYPESYSTEM_SOURCE(Gui::PropertyEditor::PropertyUnitConstraintItem, Gui::PropertyEditor::PropertyUnitItem)
PROPERTYITEM_SOURCE(Gui::PropertyEditor::PropertyUnitConstraintItem)
PropertyUnitConstraintItem::PropertyUnitConstraintItem()
{
@@ -911,7 +934,7 @@ void PropertyUnitConstraintItem::setEditorData(QWidget *editor, const QVariant&
// --------------------------------------------------------------------
TYPESYSTEM_SOURCE(Gui::PropertyEditor::PropertyFloatConstraintItem, Gui::PropertyEditor::PropertyItem)
PROPERTYITEM_SOURCE(Gui::PropertyEditor::PropertyFloatConstraintItem)
PropertyFloatConstraintItem::PropertyFloatConstraintItem()
{
@@ -993,7 +1016,7 @@ QVariant PropertyFloatConstraintItem::editorData(QWidget *editor) const
// --------------------------------------------------------------------
TYPESYSTEM_SOURCE(Gui::PropertyEditor::PropertyAngleItem, Gui::PropertyEditor::PropertyFloatItem)
PROPERTYITEM_SOURCE(Gui::PropertyEditor::PropertyAngleItem)
PropertyAngleItem::PropertyAngleItem()
{
@@ -1035,7 +1058,7 @@ QVariant PropertyAngleItem::toString(const QVariant& prop) const
// --------------------------------------------------------------------
TYPESYSTEM_SOURCE(Gui::PropertyEditor::PropertyBoolItem, Gui::PropertyEditor::PropertyItem)
PROPERTYITEM_SOURCE(Gui::PropertyEditor::PropertyBoolItem)
PropertyBoolItem::PropertyBoolItem()
{
@@ -1083,7 +1106,7 @@ QVariant PropertyBoolItem::editorData(QWidget *editor) const
// ---------------------------------------------------------------
TYPESYSTEM_SOURCE(Gui::PropertyEditor::PropertyVectorItem, Gui::PropertyEditor::PropertyItem)
PROPERTYITEM_SOURCE(Gui::PropertyEditor::PropertyVectorItem)
PropertyVectorItem::PropertyVectorItem()
{
@@ -1196,7 +1219,7 @@ void PropertyVectorItem::propertyBound() {
// ---------------------------------------------------------------
TYPESYSTEM_SOURCE(Gui::PropertyEditor::PropertyVectorDistanceItem, Gui::PropertyEditor::PropertyItem)
PROPERTYITEM_SOURCE(Gui::PropertyEditor::PropertyVectorDistanceItem)
PropertyVectorDistanceItem::PropertyVectorDistanceItem()
{
@@ -1311,7 +1334,7 @@ void PropertyVectorDistanceItem::propertyBound() {
// ---------------------------------------------------------------
TYPESYSTEM_SOURCE(Gui::PropertyEditor::PropertyMatrixItem, Gui::PropertyEditor::PropertyItem)
PROPERTYITEM_SOURCE(Gui::PropertyEditor::PropertyMatrixItem)
PropertyMatrixItem::PropertyMatrixItem()
{
@@ -1732,7 +1755,7 @@ void PlacementEditor::updateValue(const QVariant& v, bool incr, bool data)
}
}
TYPESYSTEM_SOURCE(Gui::PropertyEditor::PropertyPlacementItem, Gui::PropertyEditor::PropertyItem)
PROPERTYITEM_SOURCE(Gui::PropertyEditor::PropertyPlacementItem)
PropertyPlacementItem::PropertyPlacementItem() : init_axis(false), changed_value(false), rot_angle(0), rot_axis(0,0,1)
{
@@ -1951,7 +1974,7 @@ void PropertyPlacementItem::propertyBound() {
// ---------------------------------------------------------------
TYPESYSTEM_SOURCE(Gui::PropertyEditor::PropertyEnumItem, Gui::PropertyEditor::PropertyItem)
PROPERTYITEM_SOURCE(Gui::PropertyEditor::PropertyEnumItem)
PropertyEnumItem::PropertyEnumItem()
{
@@ -2037,7 +2060,7 @@ QVariant PropertyEnumItem::editorData(QWidget *editor) const
// ---------------------------------------------------------------
TYPESYSTEM_SOURCE(Gui::PropertyEditor::PropertyStringListItem, Gui::PropertyEditor::PropertyItem)
PROPERTYITEM_SOURCE(Gui::PropertyEditor::PropertyStringListItem)
PropertyStringListItem::PropertyStringListItem()
{
@@ -2109,7 +2132,7 @@ void PropertyStringListItem::setValue(const QVariant& value)
// ---------------------------------------------------------------
TYPESYSTEM_SOURCE(Gui::PropertyEditor::PropertyFloatListItem, Gui::PropertyEditor::PropertyItem)
PROPERTYITEM_SOURCE(Gui::PropertyEditor::PropertyFloatListItem)
PropertyFloatListItem::PropertyFloatListItem()
{
@@ -2183,7 +2206,7 @@ void PropertyFloatListItem::setValue(const QVariant& value)
// ---------------------------------------------------------------
TYPESYSTEM_SOURCE(Gui::PropertyEditor::PropertyIntegerListItem, Gui::PropertyEditor::PropertyItem)
PROPERTYITEM_SOURCE(Gui::PropertyEditor::PropertyIntegerListItem)
PropertyIntegerListItem::PropertyIntegerListItem()
{
@@ -2258,7 +2281,7 @@ void PropertyIntegerListItem::setValue(const QVariant& value)
// --------------------------------------------------------------------
TYPESYSTEM_SOURCE(Gui::PropertyEditor::PropertyColorItem, Gui::PropertyEditor::PropertyItem)
PROPERTYITEM_SOURCE(Gui::PropertyEditor::PropertyColorItem)
PropertyColorItem::PropertyColorItem()
{
@@ -2345,7 +2368,7 @@ namespace Gui { namespace PropertyEditor {
Q_DECLARE_METATYPE(Gui::PropertyEditor::Material)
TYPESYSTEM_SOURCE(Gui::PropertyEditor::PropertyMaterialItem, Gui::PropertyEditor::PropertyItem)
PROPERTYITEM_SOURCE(Gui::PropertyEditor::PropertyMaterialItem)
PropertyMaterialItem::PropertyMaterialItem()
{
@@ -2657,7 +2680,7 @@ QVariant PropertyMaterialItem::editorData(QWidget *editor) const
// --------------------------------------------------------------------
TYPESYSTEM_SOURCE(Gui::PropertyEditor::PropertyMaterialListItem, Gui::PropertyEditor::PropertyItem)
PROPERTYITEM_SOURCE(Gui::PropertyEditor::PropertyMaterialListItem)
PropertyMaterialListItem::PropertyMaterialListItem()
{
@@ -3122,7 +3145,7 @@ QVariant PropertyMaterialListItem::editorData(QWidget *editor) const
// --------------------------------------------------------------------
TYPESYSTEM_SOURCE(Gui::PropertyEditor::PropertyFileItem, Gui::PropertyEditor::PropertyItem)
PROPERTYITEM_SOURCE(Gui::PropertyEditor::PropertyFileItem)
PropertyFileItem::PropertyFileItem()
{
@@ -3173,7 +3196,7 @@ QVariant PropertyFileItem::editorData(QWidget *editor) const
// --------------------------------------------------------------------
TYPESYSTEM_SOURCE(Gui::PropertyEditor::PropertyPathItem, Gui::PropertyEditor::PropertyItem)
PROPERTYITEM_SOURCE(Gui::PropertyEditor::PropertyPathItem)
PropertyPathItem::PropertyPathItem()
{
@@ -3225,7 +3248,7 @@ QVariant PropertyPathItem::editorData(QWidget *editor) const
// --------------------------------------------------------------------
TYPESYSTEM_SOURCE(Gui::PropertyEditor::PropertyTransientFileItem, Gui::PropertyEditor::PropertyItem)
PROPERTYITEM_SOURCE(Gui::PropertyEditor::PropertyTransientFileItem)
PropertyTransientFileItem::PropertyTransientFileItem()
{
@@ -3346,7 +3369,7 @@ void LinkLabel::onLinkActivated (const QString& s)
}
}
TYPESYSTEM_SOURCE(Gui::PropertyEditor::PropertyLinkItem, Gui::PropertyEditor::PropertyItem)
PROPERTYITEM_SOURCE(Gui::PropertyEditor::PropertyLinkItem)
PropertyLinkItem::PropertyLinkItem()
{

View File

@@ -29,7 +29,7 @@
#include <QItemEditorFactory>
#include <vector>
#include <Base/Type.h>
#include <Base/Factory.h>
#include <Base/Vector3D.h>
#include <Base/Matrix.h>
#include <Base/Placement.h>
@@ -49,15 +49,62 @@ Q_DECLARE_METATYPE(Base::Quantity)
Q_DECLARE_METATYPE(QList<Base::Quantity>)
#endif
#define PROPERTYITEM_HEADER \
public: \
static void *create(void); \
static void init(void);
#define PROPERTYITEM_SOURCE(_class_) \
void * _class_::create(void) { \
return new _class_ ();\
} \
void _class_::init(void) { \
(void)new Gui::PropertyEditor::PropertyItemProducer<_class_>(#_class_); \
}
namespace Gui {
namespace Dialog { class TaskPlacement; }
namespace PropertyEditor {
class PropertyItem;
/**
* The PropertyItemFactory provides methods for the dynamic creation of property items.
* \author Werner Mayer
*/
class GuiExport PropertyItemFactory : public Base::Factory
{
public:
static PropertyItemFactory& instance();
static void destruct ();
PropertyItem* createPropertyItem (const char* sName) const;
private:
static PropertyItemFactory* _singleton;
PropertyItemFactory(){}
~PropertyItemFactory(){}
};
template <class CLASS>
class PropertyItemProducer : public Base::AbstractProducer
{
public:
PropertyItemProducer(const char* className) {
PropertyItemFactory::instance().AddProducer(className, this);
}
virtual ~PropertyItemProducer() {
}
virtual void* Produce () const {
return CLASS::create();
}
};
class GuiExport PropertyItem : virtual public QObject, public Base::BaseClass, public ExpressionBinding
{
Q_OBJECT
TYPESYSTEM_HEADER();
PROPERTYITEM_HEADER
public:
~PropertyItem();
@@ -134,7 +181,7 @@ private:
*/
class GuiExport PropertyStringItem: public PropertyItem
{
TYPESYSTEM_HEADER();
PROPERTYITEM_HEADER
virtual QWidget* createEditor(QWidget* parent, const QObject* receiver, const char* method) const;
virtual void setEditorData(QWidget *editor, const QVariant& data) const;
@@ -154,7 +201,7 @@ protected:
*/
class GuiExport PropertyFontItem: public PropertyItem
{
TYPESYSTEM_HEADER();
PROPERTYITEM_HEADER
virtual QWidget* createEditor(QWidget* parent, const QObject* receiver, const char* method) const;
virtual void setEditorData(QWidget *editor, const QVariant& data) const;
@@ -174,7 +221,7 @@ protected:
*/
class GuiExport PropertySeparatorItem : public PropertyItem
{
TYPESYSTEM_HEADER();
PROPERTYITEM_HEADER
bool isSeparator() const { return true; }
QWidget* createEditor(QWidget* parent, const QObject* receiver, const char* method) const;
@@ -186,7 +233,7 @@ class GuiExport PropertySeparatorItem : public PropertyItem
*/
class GuiExport PropertyIntegerItem: public PropertyItem
{
TYPESYSTEM_HEADER();
PROPERTYITEM_HEADER
virtual QWidget* createEditor(QWidget* parent, const QObject* receiver, const char* method) const;
virtual void setEditorData(QWidget *editor, const QVariant& data) const;
@@ -207,7 +254,7 @@ protected:
*/
class GuiExport PropertyIntegerConstraintItem: public PropertyItem
{
TYPESYSTEM_HEADER();
PROPERTYITEM_HEADER
virtual QWidget* createEditor(QWidget* parent, const QObject* receiver, const char* method) const;
virtual void setEditorData(QWidget *editor, const QVariant& data) const;
@@ -228,7 +275,7 @@ protected:
*/
class GuiExport PropertyFloatItem: public PropertyItem
{
TYPESYSTEM_HEADER();
PROPERTYITEM_HEADER
virtual QWidget* createEditor(QWidget* parent, const QObject* receiver, const char* method) const;
virtual void setEditorData(QWidget *editor, const QVariant& data) const;
@@ -249,7 +296,7 @@ protected:
*/
class GuiExport PropertyUnitItem: public PropertyItem
{
TYPESYSTEM_HEADER();
PROPERTYITEM_HEADER
virtual QWidget* createEditor(QWidget* parent, const QObject* receiver, const char* method) const;
virtual void setEditorData(QWidget *editor, const QVariant& data) const;
@@ -269,7 +316,7 @@ protected:
*/
class GuiExport PropertyUnitConstraintItem: public PropertyUnitItem
{
TYPESYSTEM_HEADER();
PROPERTYITEM_HEADER
virtual void setEditorData(QWidget *editor, const QVariant& data) const;
@@ -283,7 +330,7 @@ protected:
*/
class GuiExport PropertyFloatConstraintItem: public PropertyItem
{
TYPESYSTEM_HEADER();
PROPERTYITEM_HEADER
virtual QWidget* createEditor(QWidget* parent, const QObject* receiver, const char* method) const;
virtual void setEditorData(QWidget *editor, const QVariant& data) const;
@@ -304,7 +351,7 @@ protected:
*/
class GuiExport PropertyAngleItem : public PropertyFloatItem
{
TYPESYSTEM_HEADER();
PROPERTYITEM_HEADER
protected:
virtual void setEditorData(QWidget *editor, const QVariant& data) const;
@@ -320,7 +367,7 @@ protected:
*/
class GuiExport PropertyBoolItem: public PropertyItem
{
TYPESYSTEM_HEADER();
PROPERTYITEM_HEADER
virtual QWidget* createEditor(QWidget* parent, const QObject* receiver, const char* method) const;
virtual void setEditorData(QWidget *editor, const QVariant& data) const;
@@ -345,7 +392,7 @@ class GuiExport PropertyVectorItem: public PropertyItem
Q_PROPERTY(double x READ x WRITE setX DESIGNABLE true USER true)
Q_PROPERTY(double y READ y WRITE setY DESIGNABLE true USER true)
Q_PROPERTY(double z READ z WRITE setZ DESIGNABLE true USER true)
TYPESYSTEM_HEADER();
PROPERTYITEM_HEADER
virtual QWidget* createEditor(QWidget* parent, const QObject* receiver, const char* method) const;
virtual void setEditorData(QWidget *editor, const QVariant& data) const;
@@ -384,7 +431,7 @@ class GuiExport PropertyVectorDistanceItem: public PropertyItem
Q_PROPERTY(Base::Quantity x READ x WRITE setX DESIGNABLE true USER true)
Q_PROPERTY(Base::Quantity y READ y WRITE setY DESIGNABLE true USER true)
Q_PROPERTY(Base::Quantity z READ z WRITE setZ DESIGNABLE true USER true)
TYPESYSTEM_HEADER();
PROPERTYITEM_HEADER
virtual QWidget* createEditor(QWidget* parent, const QObject* receiver, const char* method) const;
virtual void setEditorData(QWidget *editor, const QVariant& data) const;
@@ -431,7 +478,7 @@ class GuiExport PropertyMatrixItem: public PropertyItem
Q_PROPERTY(double A42 READ getA42 WRITE setA42 DESIGNABLE true USER true)
Q_PROPERTY(double A43 READ getA43 WRITE setA43 DESIGNABLE true USER true)
Q_PROPERTY(double A44 READ getA44 WRITE setA44 DESIGNABLE true USER true)
TYPESYSTEM_HEADER();
PROPERTYITEM_HEADER
virtual QWidget* createEditor(QWidget* parent, const QObject* receiver, const char* method) const;
virtual void setEditorData(QWidget *editor, const QVariant& data) const;
@@ -528,7 +575,7 @@ class GuiExport PropertyPlacementItem: public PropertyItem
Q_PROPERTY(Base::Quantity Angle READ getAngle WRITE setAngle DESIGNABLE true USER true)
Q_PROPERTY(Base::Vector3d Axis READ getAxis WRITE setAxis DESIGNABLE true USER true)
Q_PROPERTY(Base::Vector3d Position READ getPosition WRITE setPosition DESIGNABLE true USER true)
TYPESYSTEM_HEADER();
PROPERTYITEM_HEADER
virtual QWidget* createEditor(QWidget* parent, const QObject* receiver, const char* method) const;
virtual void setEditorData(QWidget *editor, const QVariant& data) const;
@@ -567,7 +614,7 @@ private:
*/
class GuiExport PropertyEnumItem: public PropertyItem
{
TYPESYSTEM_HEADER();
PROPERTYITEM_HEADER
virtual QWidget* createEditor(QWidget* parent, const QObject* receiver, const char* method) const;
virtual void setEditorData(QWidget *editor, const QVariant& data) const;
@@ -587,7 +634,7 @@ protected:
*/
class GuiExport PropertyStringListItem: public PropertyItem
{
TYPESYSTEM_HEADER();
PROPERTYITEM_HEADER
virtual QWidget* createEditor(QWidget* parent, const QObject* receiver, const char* method) const;
virtual void setEditorData(QWidget *editor, const QVariant& data) const;
@@ -608,7 +655,7 @@ protected:
*/
class GuiExport PropertyFloatListItem: public PropertyItem
{
TYPESYSTEM_HEADER();
PROPERTYITEM_HEADER
virtual QWidget* createEditor(QWidget* parent, const QObject* receiver, const char* method) const;
virtual void setEditorData(QWidget *editor, const QVariant& data) const;
@@ -629,7 +676,7 @@ protected:
*/
class GuiExport PropertyIntegerListItem: public PropertyItem
{
TYPESYSTEM_HEADER();
PROPERTYITEM_HEADER
virtual QWidget* createEditor(QWidget* parent, const QObject* receiver, const char* method) const;
virtual void setEditorData(QWidget *editor, const QVariant& data) const;
@@ -650,7 +697,7 @@ protected:
*/
class GuiExport PropertyColorItem: public PropertyItem
{
TYPESYSTEM_HEADER();
PROPERTYITEM_HEADER
virtual QWidget* createEditor(QWidget* parent, const QObject* receiver, const char* method) const;
virtual void setEditorData(QWidget *editor, const QVariant& data) const;
@@ -679,7 +726,7 @@ class GuiExport PropertyMaterialItem : public PropertyItem
Q_PROPERTY(QColor EmissiveColor READ getEmissiveColor WRITE setEmissiveColor DESIGNABLE true USER true)
Q_PROPERTY(float Shininess READ getShininess WRITE setShininess DESIGNABLE true USER true)
Q_PROPERTY(float Transparency READ getTransparency WRITE setTransparency DESIGNABLE true USER true)
TYPESYSTEM_HEADER();
PROPERTYITEM_HEADER
virtual QWidget* createEditor(QWidget* parent, const QObject* receiver, const char* method) const;
virtual void setEditorData(QWidget *editor, const QVariant& data) const;
@@ -728,7 +775,7 @@ class GuiExport PropertyMaterialListItem : public PropertyItem
Q_PROPERTY(QColor EmissiveColor READ getEmissiveColor WRITE setEmissiveColor DESIGNABLE true USER true)
Q_PROPERTY(float Shininess READ getShininess WRITE setShininess DESIGNABLE true USER true)
Q_PROPERTY(float Transparency READ getTransparency WRITE setTransparency DESIGNABLE true USER true)
TYPESYSTEM_HEADER();
PROPERTYITEM_HEADER
virtual QWidget* createEditor(QWidget* parent, const QObject* receiver, const char* method) const;
virtual void setEditorData(QWidget *editor, const QVariant& data) const;
@@ -774,7 +821,7 @@ private:
*/
class GuiExport PropertyFileItem: public PropertyItem
{
TYPESYSTEM_HEADER();
PROPERTYITEM_HEADER
virtual QWidget* createEditor(QWidget* parent, const QObject* receiver, const char* method) const;
virtual void setEditorData(QWidget *editor, const QVariant& data) const;
@@ -795,7 +842,7 @@ protected:
*/
class GuiExport PropertyPathItem: public PropertyItem
{
TYPESYSTEM_HEADER();
PROPERTYITEM_HEADER
virtual QWidget* createEditor(QWidget* parent, const QObject* receiver, const char* method) const;
virtual void setEditorData(QWidget *editor, const QVariant& data) const;
@@ -816,7 +863,7 @@ protected:
*/
class GuiExport PropertyTransientFileItem: public PropertyItem
{
TYPESYSTEM_HEADER();
PROPERTYITEM_HEADER
virtual QWidget* createEditor(QWidget* parent, const QObject* receiver, const char* method) const;
virtual void setEditorData(QWidget *editor, const QVariant& data) const;
@@ -872,7 +919,7 @@ private:
*/
class GuiExport PropertyLinkItem: public PropertyItem
{
TYPESYSTEM_HEADER();
PROPERTYITEM_HEADER
virtual QWidget* createEditor(QWidget* parent, const QObject* receiver, const char* method) const;
virtual void setEditorData(QWidget *editor, const QVariant& data) const;

View File

@@ -239,18 +239,12 @@ void PropertyModel::buildUp(const PropertyModel::PropertyList& props)
App::Property* prop = it->front();
QString editor = QString::fromLatin1(prop->getEditorName());
if (!editor.isEmpty()) {
Base::BaseClass* item = 0;
try {
item = static_cast<Base::BaseClass*>(Base::Type::
createInstanceByName(prop->getEditorName(),true));
}
catch (...) {
}
PropertyItem* item = PropertyItemFactory::instance().createPropertyItem(prop->getEditorName());
if (!item) {
qWarning("No property item for type %s found\n", prop->getEditorName());
continue;
}
if (item->getTypeId().isDerivedFrom(PropertyItem::getClassTypeId())) {
else {
PropertyItem* child = (PropertyItem*)item;
child->setParent(rootItem);
rootItem->appendChild(child);
@@ -286,17 +280,11 @@ void PropertyModel::appendProperty(const App::Property& prop)
{
QString editor = QString::fromLatin1(prop.getEditorName());
if (!editor.isEmpty()) {
Base::BaseClass* item = 0;
try {
item = static_cast<Base::BaseClass*>(Base::Type::
createInstanceByName(prop.getEditorName(),true));
}
catch (...) {
}
PropertyItem* item = PropertyItemFactory::instance().createPropertyItem(prop.getEditorName());
if (!item) {
qWarning("No property item for type %s found\n", prop.getEditorName());
}
else if (item->getTypeId().isDerivedFrom(PropertyItem::getClassTypeId())) {
else {
// notify system to add new row
int row = rootItem->childCount();
beginInsertRows(QModelIndex(), row, row);

View File

@@ -33,7 +33,7 @@
using namespace FemGui;
TYPESYSTEM_SOURCE(FemGui::PropertyFemMeshItem, Gui::PropertyEditor::PropertyItem);
PROPERTYITEM_SOURCE(FemGui::PropertyFemMeshItem)
PropertyFemMeshItem::PropertyFemMeshItem()
{

View File

@@ -41,7 +41,7 @@ class PropertyFemMeshItem : public Gui::PropertyEditor::PropertyItem
Q_PROPERTY(int Volumes READ countVolumes)
Q_PROPERTY(int Polyhedrons READ countPolyhedrons)
Q_PROPERTY(int Groups READ countGroups)
TYPESYSTEM_HEADER();
PROPERTYITEM_HEADER
virtual QWidget* createEditor(QWidget* parent, const QObject* receiver, const char* method) const;
virtual void setEditorData(QWidget *editor, const QVariant& data) const;

View File

@@ -33,7 +33,7 @@ using namespace MeshGui;
using MeshCore::MeshKernel;
TYPESYSTEM_SOURCE(MeshGui::PropertyMeshKernelItem, Gui::PropertyEditor::PropertyItem);
PROPERTYITEM_SOURCE(MeshGui::PropertyMeshKernelItem)
PropertyMeshKernelItem::PropertyMeshKernelItem()
{

View File

@@ -37,7 +37,7 @@ class MeshGuiExport PropertyMeshKernelItem : public Gui::PropertyEditor::Propert
Q_PROPERTY(int Points READ countPoints)
Q_PROPERTY(int Edges READ countEdges)
Q_PROPERTY(int Faces READ countFaces)
TYPESYSTEM_HEADER();
PROPERTYITEM_HEADER
virtual QWidget* createEditor(QWidget* parent, const QObject* receiver, const char* method) const;
virtual void setEditorData(QWidget *editor, const QVariant& data) const;

View File

@@ -36,7 +36,7 @@
using namespace SketcherGui;
using namespace Gui::PropertyEditor;
TYPESYSTEM_SOURCE(SketcherGui::PropertyConstraintListItem, Gui::PropertyEditor::PropertyItem)
PROPERTYITEM_SOURCE(SketcherGui::PropertyConstraintListItem)
PropertyConstraintListItem::PropertyConstraintListItem()
{

View File

@@ -43,7 +43,7 @@ namespace SketcherGui {
class PropertyConstraintListItem: public Gui::PropertyEditor::PropertyItem
{
Q_OBJECT
TYPESYSTEM_HEADER();
PROPERTYITEM_HEADER
virtual QWidget* createEditor(QWidget* parent, const QObject* receiver, const char* method) const;
virtual void setEditorData(QWidget *editor, const QVariant& data) const;