connectedFrom = NULL;\r
}\r
\r
-ConnectedInterface::ConnectedInterface(AbstractBlock* _owner, const QString& _name, const QString& _type, const QString& _width, int _direction, int _purpose, int _level) : AbstractInterface(_owner, _name, _type, _width, _direction, _purpose, _level) {\r
+ConnectedInterface::ConnectedInterface(AbstractBlock* _owner, const QString& _name, const QString& _type, const QString& _width, int _direction, int _purpose) : AbstractInterface(_owner, _name, _type, _width, _direction, _purpose) {\r
connectedFrom = NULL;\r
}\r
\r
connectedTo.clear();\r
}\r
\r
-bool ConnectedInterface::connectTo(ConnectedInterface *iface) {\r
-\r
- if (canConnectTo(iface)) {\r
- connectedTo.append(iface);\r
- return true;\r
+void ConnectedInterface::connectTo(ConnectedInterface *iface) {\r
+ \r
+ connectedTo.append(iface);\r
+ iface->connectedFrom = this;\r
+ ConnectedInterface* asso1 = (ConnectedInterface*)associatedIface;\r
+ ConnectedInterface* asso2 = (ConnectedInterface*)(iface->associatedIface);\r
+ if ((asso1 != NULL) && (asso2 != NULL)) {\r
+ asso1->connectedTo.append(asso2);\r
+ asso2->connectedFrom = asso1;\r
}\r
+}\r
\r
- return false;\r
+void ConnectedInterface::disconnectTo(ConnectedInterface *iface) {\r
+ \r
+ connectedTo.removeAll(iface);\r
+ iface->connectedFrom = NULL;\r
+ ConnectedInterface* asso1 = (ConnectedInterface*)associatedIface;\r
+ ConnectedInterface* asso2 = (ConnectedInterface*)(iface->associatedIface);\r
+ if ((asso1 != NULL) && (asso2 != NULL)) {\r
+ asso1->connectedTo.removeAll(asso2);\r
+ asso2->connectedFrom = NULL;\r
+ }\r
}\r
\r
+\r
+/*\r
bool ConnectedInterface::connectFrom(ConnectedInterface *iface) {\r
if (canConnectFrom(iface)) {\r
connectedFrom = iface;\r
}\r
return false;\r
}\r
+*/\r
\r
/* getConnectionToParentGroup() :\r
if an interface among connectedTo is an interface of the parent group\r