Xcos writers: sort the children 79/17479/1
Clément DAVID [Wed, 18 Nov 2015 11:04:12 +0000 (12:04 +0100)]
Sort the children preserving their relative order to preserve the order of
the scs_m accross multiple load and save operations.

Change-Id: I33b209718c8ad90fb69f9cecdc6ecb7a649e22b3

scilab/modules/scicos/src/cpp/Controller.cpp
scilab/modules/xcos/src/java/org/scilab/modules/xcos/io/writer/CustomWriter.java

index bad20a5..ad8f013 100644 (file)
@@ -479,7 +479,7 @@ void Controller::sortAndFillKind(std::vector<ScicosID>& uids, std::vector<int>&
     }
 
     // sort according to the kinds
-    std::sort(container.begin(), container.end(), [] (const local_pair & a, const local_pair & b)
+    std::stable_sort(container.begin(), container.end(), [] (const local_pair & a, const local_pair & b)
     {
         return a.second < b.second;
     });
index 0168859..f869493 100644 (file)
@@ -100,7 +100,6 @@ public class CustomWriter extends ScilabWriter {
     }
 
     private void writeDiagramAndSuperDiagramContent(long uid, Kind kind, VectorOfScicosID children) throws XMLStreamException {
-
         VectorOfInt colors = new VectorOfInt();
         shared.controller.getObjectProperty(uid, kind, ObjectProperties.COLOR, colors);
         shared.stream.writeAttribute("background", Integer.toString(colors.get(0)));