diff --git a/OMEdit/OMEditGUI/Component/Component.cpp b/OMEdit/OMEditGUI/Component/Component.cpp
index 6c242d36ae9..3f5a8b3e55b 100644
--- a/OMEdit/OMEditGUI/Component/Component.cpp
+++ b/OMEdit/OMEditGUI/Component/Component.cpp
@@ -348,7 +348,7 @@ Component::Component(Component *pComponent, Component *pParentComponent)
setToolTip(tr("%1 %2
Component declared in %3").arg(mpComponentInfo->getClassName()).arg(mpComponentInfo->getName())
.arg(mpReferenceComponent->getGraphicsView()->getModelWidget()->getLibraryTreeItem()->getNameStructure()));
connect(mpReferenceComponent, SIGNAL(added()), SLOT(referenceComponentAdded()));
- connect(mpReferenceComponent, SIGNAL(transformHasChanged()), SLOT(referenceComponentChanged()));
+ connect(mpReferenceComponent, SIGNAL(transformHasChanged()), SLOT(referenceComponentTransformHasChanged()));
connect(mpReferenceComponent, SIGNAL(displayTextChanged()), SIGNAL(displayTextChanged()));
connect(mpReferenceComponent, SIGNAL(deleted()), SLOT(referenceComponentDeleted()));
}
@@ -392,10 +392,11 @@ Component::Component(Component *pComponent, GraphicsView *pGraphicsView)
connect(mpLibraryTreeItem, SIGNAL(unLoaded(LibraryTreeItem*)), SLOT(handleUnloaded()));
}
connect(mpReferenceComponent, SIGNAL(added()), SLOT(referenceComponentAdded()));
- connect(mpReferenceComponent, SIGNAL(transformHasChanged()), SLOT(referenceComponentChanged()));
+ connect(mpReferenceComponent, SIGNAL(transformHasChanged()), SLOT(referenceComponentTransformHasChanged()));
connect(mpReferenceComponent, SIGNAL(transformHasChanged()), SLOT(updateOriginItem()));
connect(mpReferenceComponent, SIGNAL(transformHasChanged()), SIGNAL(transformChange()));
connect(mpReferenceComponent, SIGNAL(displayTextChanged()), SIGNAL(displayTextChanged()));
+ connect(mpReferenceComponent, SIGNAL(changed()), SLOT(referenceComponentChanged()));
connect(mpReferenceComponent, SIGNAL(deleted()), SLOT(referenceComponentDeleted()));
}
@@ -709,6 +710,14 @@ void Component::emitTransformHasChanged()
emit transformHasChanged();
}
+void Component::emitChanged()
+{
+ if (mpGraphicsView->getViewType() == StringHandler::Icon) {
+ mpGraphicsView->getModelWidget()->getLibraryTreeItem()->handleIconUpdated();
+ }
+ emit changed();
+}
+
void Component::emitDeleted()
{
if (mpGraphicsView->getViewType() == StringHandler::Icon) {
@@ -870,6 +879,10 @@ void Component::createDefaultComponent()
mpDefaultComponentText->setVisible(false);
}
+/*!
+ * \brief Component::drawComponent
+ * Draws the Component.
+ */
void Component::drawComponent()
{
if (!mpLibraryTreeItem) { // if built in type e.g Real, Boolean etc.
@@ -1278,9 +1291,7 @@ void Component::handleShapeAdded()
Component *pComponent = getRootParentComponent();
pComponent->removeChildren();
pComponent->drawComponent();
- if (mpGraphicsView->getViewType() == StringHandler::Icon) {
- mpGraphicsView->getModelWidget()->getLibraryTreeItem()->handleIconUpdated();
- }
+ pComponent->emitChanged();
}
void Component::handleComponentAdded()
@@ -1288,9 +1299,7 @@ void Component::handleComponentAdded()
Component *pComponent = getRootParentComponent();
pComponent->removeChildren();
pComponent->drawComponent();
- if (mpGraphicsView->getViewType() == StringHandler::Icon) {
- mpGraphicsView->getModelWidget()->getLibraryTreeItem()->handleIconUpdated();
- }
+ pComponent->emitChanged();
}
/*!
@@ -1311,10 +1320,10 @@ void Component::referenceComponentAdded()
}
/*!
- * \brief Component::referenceComponentChanged
- * Updates the referenced components when reference component is changed.
+ * \brief Component::referenceComponentTransformHasChanged
+ * Updates the referenced components when reference component transform has changed.
*/
-void Component::referenceComponentChanged()
+void Component::referenceComponentTransformHasChanged()
{
Component *pComponent = qobject_cast(sender());
if (pComponent) {
@@ -1326,6 +1335,17 @@ void Component::referenceComponentChanged()
}
}
+/*!
+ * \brief Component::referenceComponentChanged
+ * Updates the referenced components when reference component is changed.
+ */
+void Component::referenceComponentChanged()
+{
+ removeChildren();
+ drawComponent();
+ emitChanged();
+}
+
/*!
* \brief Component::referenceComponentDeleted
* Delets the referenced components when reference component is deleted.
diff --git a/OMEdit/OMEditGUI/Component/Component.h b/OMEdit/OMEditGUI/Component/Component.h
index c68bec17e10..5cc4cfce0cb 100644
--- a/OMEdit/OMEditGUI/Component/Component.h
+++ b/OMEdit/OMEditGUI/Component/Component.h
@@ -177,6 +177,7 @@ class Component : public QObject, public QGraphicsItem
void emitAdded();
void emitTransformChange() {emit transformChange();}
void emitTransformHasChanged();
+ void emitChanged();
void emitDeleted();
void componentNameHasChanged();
void componentParameterHasChanged();
@@ -251,6 +252,7 @@ class Component : public QObject, public QGraphicsItem
void transformChange();
void transformHasChanged();
void displayTextChanged();
+ void changed();
void deleted();
public slots:
void updatePlacementAnnotation();
@@ -260,6 +262,7 @@ public slots:
void handleShapeAdded();
void handleComponentAdded();
void referenceComponentAdded();
+ void referenceComponentTransformHasChanged();
void referenceComponentChanged();
void referenceComponentDeleted();
void prepareResizeComponent(ResizerItem *pResizerItem);