From 6ad643d5994e80927f2c84999bbf3caa06ce11ff Mon Sep 17 00:00:00 2001 From: Gennady Pospelov <g.pospelov@fz-juelich.de> Date: Wed, 21 May 2014 14:39:39 +0200 Subject: [PATCH] ParameterizedItem name is added to the properties. --- GUI/coregui/Models/MultiLayerItem.cpp | 2 + GUI/coregui/Models/ParameterizedItem.cpp | 48 ++++++++++++++----- GUI/coregui/Models/ParameterizedItem.h | 8 ++-- .../MaterialEditor/MaterialVariantFactory.cpp | 7 +++ .../MaterialEditor/MaterialVariantFactory.h | 2 + .../SampleDesigner/PropertyVariantFactory.cpp | 5 ++ .../SampleDesigner/PropertyVariantFactory.h | 2 + 7 files changed, 59 insertions(+), 15 deletions(-) diff --git a/GUI/coregui/Models/MultiLayerItem.cpp b/GUI/coregui/Models/MultiLayerItem.cpp index 02c9e119c4e..7eeac5c7e17 100644 --- a/GUI/coregui/Models/MultiLayerItem.cpp +++ b/GUI/coregui/Models/MultiLayerItem.cpp @@ -23,6 +23,8 @@ MultiLayerItem::MultiLayerItem(ParameterizedItem *parent) registerProperty(P_CROSS_CORR_LENGTH, 0.0); m_valid_children.append(QString("Layer")); m_valid_children.append(QString("MultiLayer")); + + setPropertyVisibility(ParameterizedItem::P_NAME, ParameterizedItem::VisibleProperty); } MultiLayerItem::~MultiLayerItem() diff --git a/GUI/coregui/Models/ParameterizedItem.cpp b/GUI/coregui/Models/ParameterizedItem.cpp index e92f21d0bc4..531299c18cf 100644 --- a/GUI/coregui/Models/ParameterizedItem.cpp +++ b/GUI/coregui/Models/ParameterizedItem.cpp @@ -24,13 +24,37 @@ #include <QMetaEnum> #include <PropertyVariantManager.h> +const QString ParameterizedItem::P_NAME = "Name"; +ParameterizedItem::ParameterizedItem(const QString &model_type, + ParameterizedItem *parent) + : m_model_type(model_type) + , m_parent(parent) + , m_block_property_change_event(false) +{ + if (m_parent) { + m_parent->addChildItem(this); + } + + registerProperty(P_NAME, QString(), QString(), HiddenProperty); + setItemName(m_model_type); +} ParameterizedItem::~ParameterizedItem() { qDeleteAll(m_children); } +QString ParameterizedItem::itemName() const +{ + return getRegisteredProperty(P_NAME).toString(); +} + +void ParameterizedItem::setItemName(const QString &item_name) +{ + setRegisteredProperty(P_NAME, item_name); +} + ParameterizedItem *ParameterizedItem::takeChildItem(int row) { ParameterizedItem *item = m_children.takeAt(row); @@ -55,6 +79,7 @@ bool ParameterizedItem::event(QEvent * e ) if (m_sub_items.contains(name)) { updatePropertyItem(name); } + qDebug() << " xxxxxxxxxxxxxxxxx propertyChanged->e,it"; emit propertyChanged(name); } return QObject::event(e); @@ -93,18 +118,6 @@ ParameterizedItem *ParameterizedItem::createPropertyItem(QString name) return result; } -ParameterizedItem::ParameterizedItem(const QString &model_type, - ParameterizedItem *parent) - : m_model_type(model_type) - , m_parent(parent) - , m_block_property_change_event(false) -{ - if (m_parent) { - m_parent->addChildItem(this); - } - setItemName(m_model_type); -} - void ParameterizedItem::updatePropertyItem(QString name) { qDebug() << "ParameterizedItem::updatePropertyItem() "; @@ -214,3 +227,14 @@ QString ParameterizedItem::getPropertyToolTip(const QString &name) const { return m_property_tooltip[name]; } + + +void ParameterizedItem::setPropertyVisibility(const QString &name, PropertyVisibility visibility) +{ + if(m_hidden_properties.contains(name)) { + if(visibility == VisibleProperty) m_hidden_properties.removeAll(name); + } else { + if(visibility == HiddenProperty) m_hidden_properties << name; + + } +} diff --git a/GUI/coregui/Models/ParameterizedItem.h b/GUI/coregui/Models/ParameterizedItem.h index 1e72403dbbe..23775e52153 100644 --- a/GUI/coregui/Models/ParameterizedItem.h +++ b/GUI/coregui/Models/ParameterizedItem.h @@ -28,16 +28,17 @@ class ParameterizedItem : public QObject { Q_OBJECT public: + static const QString P_NAME; virtual ~ParameterizedItem(); //! retrieves the model type QString modelType() const { return m_model_type; } //! retrieves the item's name - QString itemName() const { return m_item_name; } + QString itemName() const; //! sets the item's name - void setItemName(const QString &item_name) { m_item_name = item_name; } + void setItemName(const QString &item_name); //! retrieve parent item ParameterizedItem *parent() const { return m_parent; } @@ -112,6 +113,7 @@ public: void setBlockPropertyChangeEvent(bool flag) {m_block_property_change_event = flag; } bool getBlockPropertyChangeEvent() const { return m_block_property_change_event; } + void setPropertyVisibility(const QString &name, PropertyVisibility visibility); signals: void propertyChanged(QString propertyName); void propertyItemChanged(QString propertyName); @@ -126,7 +128,7 @@ protected: private: QString m_model_type; - QString m_item_name; + //QString m_item_name; ParameterizedItem *m_parent; QList<ParameterizedItem *> m_children; QMap<QString, ParameterizedItem *> m_sub_items; diff --git a/GUI/coregui/Views/Components/MaterialEditor/MaterialVariantFactory.cpp b/GUI/coregui/Views/Components/MaterialEditor/MaterialVariantFactory.cpp index c5ef3527ec5..94683c24771 100644 --- a/GUI/coregui/Views/Components/MaterialEditor/MaterialVariantFactory.cpp +++ b/GUI/coregui/Views/Components/MaterialEditor/MaterialVariantFactory.cpp @@ -117,3 +117,10 @@ void MaterialVariantFactory::slotEditorDestroyed(QObject *object) } } + +void MaterialVariantFactory::slotPropertyAttributeChanged(QtProperty *, const QString &, const QVariant &) +{ + +} + + diff --git a/GUI/coregui/Views/Components/MaterialEditor/MaterialVariantFactory.h b/GUI/coregui/Views/Components/MaterialEditor/MaterialVariantFactory.h index 644213ba929..a430d427105 100644 --- a/GUI/coregui/Views/Components/MaterialEditor/MaterialVariantFactory.h +++ b/GUI/coregui/Views/Components/MaterialEditor/MaterialVariantFactory.h @@ -28,6 +28,8 @@ private slots: void slotPropertyChanged(QtProperty *property, const QVariant &value); void slotSetValue(const MaterialColorProperty &value); void slotEditorDestroyed(QObject *object); + void slotPropertyAttributeChanged(QtProperty *, const QString &, const QVariant &); + private: QMap<QtProperty *, QList<MaterialColorPropertyEdit *> > m_property_to_material_editors; diff --git a/GUI/coregui/Views/Components/SampleDesigner/PropertyVariantFactory.cpp b/GUI/coregui/Views/Components/SampleDesigner/PropertyVariantFactory.cpp index 91bdbd0f33c..164c1fcadef 100644 --- a/GUI/coregui/Views/Components/SampleDesigner/PropertyVariantFactory.cpp +++ b/GUI/coregui/Views/Components/SampleDesigner/PropertyVariantFactory.cpp @@ -180,3 +180,8 @@ void PropertyVariantFactory::slotEditorDestroyed(QObject *object) } } +void PropertyVariantFactory::slotPropertyAttributeChanged(QtProperty *, const QString &, const QVariant &) +{ + +} + diff --git a/GUI/coregui/Views/Components/SampleDesigner/PropertyVariantFactory.h b/GUI/coregui/Views/Components/SampleDesigner/PropertyVariantFactory.h index f099d2b77d8..b6d438dc368 100644 --- a/GUI/coregui/Views/Components/SampleDesigner/PropertyVariantFactory.h +++ b/GUI/coregui/Views/Components/SampleDesigner/PropertyVariantFactory.h @@ -32,6 +32,8 @@ private slots: void slotSetValue(const MaterialProperty &value); void slotSetValue(const GroupProperty &value); void slotEditorDestroyed(QObject *object); + void slotPropertyAttributeChanged(QtProperty *, const QString &, const QVariant &); + private: QMap<QtProperty *, QList<MaterialPropertyEdit *> > m_property_to_material_editors; -- GitLab