diff --git a/GUI/coregui/Models/MultiLayerItem.cpp b/GUI/coregui/Models/MultiLayerItem.cpp index 02c9e119c4e05d2facd13329f5e783e0bfdcf80a..7eeac5c7e17fab054841347497d1e95b5225f467 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 e92f21d0bc4dc964db13f7445d24b5c1bdefc25d..531299c18cf44ec9f26c5ef6680ad58fd6222e27 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 1e72403dbbe067ce124c8e2b7ddf262319c10b58..23775e52153ad6878433dcaf437208435697f398 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 c5ef3527ec5dd36f9940c5d6b09e9599f2c127e4..94683c24771a9d01be100d920ff2a8414e79ea97 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 644213ba92925045ab43a1492636b76c070116ea..a430d427105d069672bd3b3138bf67271f311ac5 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 91bdbd0f33c85e72e4b759ee56e5217ccfd1ce7f..164c1fcadef8dc7bed838974fc2de51e2f2182b4 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 f099d2b77d807b68c42ae4c8fb211790757cd1c7..b6d438dc3684af11d7956ba52eb10ce44a09449d 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;