Fix BUG#12219 : delete('all') should recreate a basic axe within figure. 27/10227/2
Bruno JOFRET [Wed, 16 Jan 2013 13:26:43 +0000 (14:26 +0100)]
Change-Id: I730c0c786f6091e37428a0b2048e59b2363c6b9e

scilab/CHANGES_5.4.X
scilab/modules/graphics/sci_gateway/c/sci_delete.c
scilab/modules/graphics/tests/nonreg_tests/bug_12219.dia.ref [new file with mode: 0644]
scilab/modules/graphics/tests/nonreg_tests/bug_12219.tst [new file with mode: 0644]

index d7c3f2a..abd0402 100644 (file)
@@ -124,7 +124,7 @@ Xcos
 
 * Bug #12014 fixed - dep_ut help was wrongly detailed.
 
-* Bug #12031 fixed - Changes in context of superblock did not always have 
+* Bug #12031 fixed - Changes in context of superblock did not always have
                      effect.
 
 * Bug #12162 fixed - tbx_build_blocks did not report errors.
@@ -275,6 +275,8 @@ Bug fixes
 
 * Bug #12204 fixed - Fix a typo in the French localization
 
+* Bug #12219 fixed - delete("all") does not recreate a basic axe within cleaned figure.
+
 
                     Changes between version 5.3.3 and 5.4.0
                     =======================================
index 3f44cac..0b71786 100644 (file)
@@ -129,6 +129,11 @@ int sci_delete(char *fname, unsigned long fname_len)
                             deleteGraphicObject(childrenUID[i]);
                         }
                     }
+                    /*
+                     * Clone a new Axes object using the Axes model which is then
+                     * attached to the 'cleaned' Figure.
+                     */
+                    cloneAxesModel(pFigureUID);
 
                     LhsVar(1) = 0;
                     PutLhsVar();
diff --git a/scilab/modules/graphics/tests/nonreg_tests/bug_12219.dia.ref b/scilab/modules/graphics/tests/nonreg_tests/bug_12219.dia.ref
new file mode 100644 (file)
index 0000000..299dcca
--- /dev/null
@@ -0,0 +1,30 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Bruno JOFRET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- TEST WITH GRAPHIC -->
+//
+// <-- Non-regression test for bug 12219 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12219
+//
+// <-- Short Description -->
+// delete('all') delete current axes and does not create a new one
+f = gcf();
+oldAxeUID = f.children(1).UID;
+delete("all");
+assert_checkequal(size(f.children, '*'), 1);
+assert_checkequal(f.children(1).type, "Axes");
+assert_checktrue(f.children(1).UID <> oldAxeUID);
+plot2d();
+a = gca();
+assert_checkequal(size(a.children, '*'), 1);
+assert_checkequal(a.children(1).type, "Compound");
+delete('all');
+a = gca();
+assert_checkequal(size(a.children, '*'), 0);
+assert_checkequal(a.children, []);
diff --git a/scilab/modules/graphics/tests/nonreg_tests/bug_12219.tst b/scilab/modules/graphics/tests/nonreg_tests/bug_12219.tst
new file mode 100644 (file)
index 0000000..3f8ce38
--- /dev/null
@@ -0,0 +1,36 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Bruno JOFRET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- TEST WITH GRAPHIC -->
+//
+// <-- Non-regression test for bug 12219 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12219
+//
+// <-- Short Description -->
+// delete('all') delete current axes and does not create a new one
+
+f = gcf();
+oldAxeUID = f.children(1).UID;
+
+delete("all");
+
+assert_checkequal(size(f.children, '*'), 1);
+assert_checkequal(f.children(1).type, "Axes");
+assert_checktrue(f.children(1).UID <> oldAxeUID);
+
+plot2d();
+a = gca();
+assert_checkequal(size(a.children, '*'), 1);
+assert_checkequal(a.children(1).type, "Compound");
+delete('all');
+
+a = gca();
+assert_checkequal(size(a.children, '*'), 0);
+assert_checkequal(a.children, []);
+