Xcos MVC: partially revert b667d7aa 31/17931/1
Paul Bignier [Tue, 15 Mar 2016 10:53:49 +0000 (11:53 +0100)]
 * Now the Electrical demos scs_m look much better (no dangling Links, correct blocks' pin/pout, notably split blocks)
 * This is based on the fact that implicit blocks actually use in & out directions, even if it looks the same
 * About the test: since Ground uses its "pin" to connect, it is normal that setting a from=[1 1 0] creates a new port.
However, setting from=[1 1 1] (or to) does connect to the pin

Change-Id: I34f6c2d1fb9ad83296741362eaf7bcb37bf52aa6

scilab/modules/scicos/src/cpp/view_scilab/LinkAdapter.cpp
scilab/modules/scicos/tests/unit_tests/model/Implicit_link.dia.ref
scilab/modules/scicos/tests/unit_tests/model/Implicit_link.tst

index 865a6d6..b04439b 100644 (file)
@@ -589,8 +589,14 @@ void setLinkEnd(const ScicosID id, Controller& controller, const object_properti
         else // model::implicit
         {
             newPortIsImplicit = true;
-            sourceBlockPorts = in;
-            sourceBlockPorts.insert(sourceBlockPorts.end(), out.begin(), out.end());
+            if (v.kind == Start)
+            {
+                sourceBlockPorts = out;
+            }
+            else // End
+            {
+                sourceBlockPorts = in;
+            }
 
             // Rule out the explicit ports
             for (size_t i = 0; i < sourceBlockPorts.size(); ++i)
index 975b030..3dba7dc 100644 (file)
@@ -151,7 +151,7 @@ Xcos debug: objectReferenced( 7 , LINK ) : 1
 Xcos trace: propertyUpdated( 7 , LINK , SOURCE_PORT ) : NO_CHANGES
 Xcos trace: propertyUpdated( 7 , LINK , DESTINATION_PORT ) : NO_CHANGES
 Xcos trace: propertyUpdated( 4 , DIAGRAM , VERSION_NUMBER ) : NO_CHANGES
-d.objs(2).to = [1 1 0];
+d.objs(2).to = [1 1 1];
 Xcos debug: objectReferenced( 5 , BLOCK ) : 2
 Xcos debug: objectReferenced( 5 , BLOCK ) : 3
 Xcos debug: objectUnreferenced( 5 , BLOCK ) : 2
@@ -346,7 +346,7 @@ Xcos debug: objectDeleted( 6 , PORT )
 Xcos debug: objectDeleted( 5 , BLOCK )
 Xcos debug: objectDeleted( 7 , LINK )
 Xcos debug: objectDeleted( 4 , DIAGRAM )
-d.objs(2).from = [1 1 0];
+d.objs(2).from = [1 1 1];
 Xcos debug: objectReferenced( 12 , BLOCK ) : 2
 Xcos debug: objectReferenced( 12 , BLOCK ) : 3
 Xcos debug: objectUnreferenced( 12 , BLOCK ) : 2
index c3e4a04..fc43f90 100644 (file)
@@ -13,7 +13,7 @@ scicos_log("TRACE");
 o = Ground("define");
 l = scicos_link(ct=[1 2]);
 d = scicos_diagram(objs=list(o,l));
-d.objs(2).to = [1 1 0];
+d.objs(2).to = [1 1 1];
 
 assert_checkequal(d.objs(1).graphics.pin,  2);
 assert_checkequal(d.objs(1).graphics.pout, []);
@@ -21,7 +21,7 @@ assert_checkequal(d.objs(1).graphics.pout, []);
 o = Ground("define");
 l = scicos_link(ct=[1 2]);
 d = scicos_diagram(objs=list(o,l));
-d.objs(2).from = [1 1 0];
+d.objs(2).from = [1 1 1];
 
 assert_checkequal(d.objs(1).graphics.pin,  2);
 assert_checkequal(d.objs(1).graphics.pout, []);