From c8e7cb678214fc8a984813e604b7dd31b640f625 Mon Sep 17 00:00:00 2001
From: Gennady Pospelov <g.pospelov@fz-juelich.de>
Date: Tue, 15 Mar 2016 18:01:42 +0100
Subject: [PATCH] onSiblingsChange propagated to IView to update labels

---
 .../Views/SampleDesigner/ConnectableView.cpp     | 16 ++++++++--------
 .../Views/SampleDesigner/ConnectableView.h       |  4 ++--
 GUI/coregui/Views/SampleDesigner/IView.cpp       | 13 +++++++++++++
 GUI/coregui/Views/SampleDesigner/IView.h         |  1 +
 Tests/UnitTests/TestGUI/TestMapperForItem.h      |  1 -
 5 files changed, 24 insertions(+), 11 deletions(-)

diff --git a/GUI/coregui/Views/SampleDesigner/ConnectableView.cpp b/GUI/coregui/Views/SampleDesigner/ConnectableView.cpp
index c97ae870bb9..9521b7c3ef6 100644
--- a/GUI/coregui/Views/SampleDesigner/ConnectableView.cpp
+++ b/GUI/coregui/Views/SampleDesigner/ConnectableView.cpp
@@ -112,14 +112,14 @@ int ConnectableView::getInputPortIndex(NodeEditorPort *port)
     return m_input_ports.indexOf(port);
 }
 
-void ConnectableView::onSiblingsChanged()
-{
-    if (m_item) {
-        Q_ASSERT(0);
-        setLabel( hyphenate(m_item->itemName()) );
-        update();
-    }
-}
+//void ConnectableView::onSiblingsChanged()
+//{
+//    if (m_item) {
+//        Q_ASSERT(0);
+//        setLabel( hyphenate(m_item->itemName()) );
+//        update();
+//    }
+//}
 
 // calculation of y-pos for ports
 void ConnectableView::setPortCoordinates()
diff --git a/GUI/coregui/Views/SampleDesigner/ConnectableView.h b/GUI/coregui/Views/SampleDesigner/ConnectableView.h
index 1d918bf2e2a..67f121c4152 100644
--- a/GUI/coregui/Views/SampleDesigner/ConnectableView.h
+++ b/GUI/coregui/Views/SampleDesigner/ConnectableView.h
@@ -60,8 +60,8 @@ public:
     virtual void setColor(const QColor &color) { m_color = color; }
 
 
-public slots:
-    virtual void onSiblingsChanged();
+//public slots:
+//    virtual void onSiblingsChanged();
 
 protected:
     virtual void setPortCoordinates();
diff --git a/GUI/coregui/Views/SampleDesigner/IView.cpp b/GUI/coregui/Views/SampleDesigner/IView.cpp
index 8b2a5c5ebf4..9f28b2099ee 100644
--- a/GUI/coregui/Views/SampleDesigner/IView.cpp
+++ b/GUI/coregui/Views/SampleDesigner/IView.cpp
@@ -46,6 +46,14 @@ void IView::setParameterizedItem(SessionItem *item)
         {
             onPropertyChange(name);
         });
+
+        mapper()->setOnSiblingsChange(
+                    [this]()
+        {
+            onSiblingsChange();
+        });
+
+
         update_appearance();
     }
 }
@@ -90,3 +98,8 @@ void IView::onPropertyChange(const QString &propertyName)
         setY(m_item->getItemValue(SessionGraphicsItem::P_YPOS).toReal());
     }
 }
+
+void IView::onSiblingsChange()
+{
+    update_appearance();
+}
diff --git a/GUI/coregui/Views/SampleDesigner/IView.h b/GUI/coregui/Views/SampleDesigner/IView.h
index 48317c0bb63..ca283f60197 100644
--- a/GUI/coregui/Views/SampleDesigner/IView.h
+++ b/GUI/coregui/Views/SampleDesigner/IView.h
@@ -52,6 +52,7 @@ protected:
     ModelMapper *mapper();
     virtual void update_appearance();
     virtual void onPropertyChange(const QString &propertyName);
+    virtual void onSiblingsChange();
 
     SessionItem *m_item;
     std::unique_ptr<ModelMapper> m_mapper;
diff --git a/Tests/UnitTests/TestGUI/TestMapperForItem.h b/Tests/UnitTests/TestGUI/TestMapperForItem.h
index 5325e3ba8bf..aba4625591b 100644
--- a/Tests/UnitTests/TestGUI/TestMapperForItem.h
+++ b/Tests/UnitTests/TestGUI/TestMapperForItem.h
@@ -255,7 +255,6 @@ inline void TestMapperForItem::test_onSiblingsChange()
 
     multilayer->takeRow(layer2->parentRow());
     QVERIFY(m_onSiblingsChangeCount == 2);
-
 }
 
 
-- 
GitLab