*Bug #13375 fixed - If (Max-Min) == 1, then the multiple selection is not allowed. 78/18578/2
Adeline CARNIS [Mon, 10 Oct 2016 11:18:50 +0000 (13:18 +0200)]
Change-Id: I62a18dc4ef1f8e5b479b5083d030c89f2b4b1ca5

scilab/CHANGES.md
scilab/modules/gui/help/en_US/uicontrol_properties.xml
scilab/modules/gui/src/cpp/SetUicontrolValue.cpp
scilab/modules/gui/tests/nonreg_tests/bug_13375.dia.ref [new file with mode: 0644]
scilab/modules/gui/tests/nonreg_tests/bug_13375.tst [new file with mode: 0644]

index e0da8b8..169ef24 100644 (file)
@@ -326,6 +326,7 @@ Bug Fixes
 * [#11959](http://bugzilla.scilab.org/show_bug.cgi?id=11959): Allow "Zoom Area" to be clicked out of axes
 * [#12110](http://bugzilla.scilab.org/show_bug.cgi?id=12110): Unable to zoom multiple axes at once
 * [#13166](http://bugzilla.scilab.org/show_bug.cgi?id=13166): `l` and `b` endian flags used with `mget` and `mgeti` were sticky
+* [#13375](http://bugzilla.scilab.org/show_bug.cgi?id=13375): If (Max - Min) == 1, then the multiple selection is not allowed.
 * [#13583](http://bugzilla.scilab.org/show_bug.cgi?id=13583): `getd` loading a script including a `clear` instruction yielded an error
 * [#13597](http://bugzilla.scilab.org/show_bug.cgi?id=13597): `help format` claimed setting a number of digits instead of characters
 * [#13757](http://bugzilla.scilab.org/show_bug.cgi?id=13757): The toolbox menu dit not load properly ATOMS modules not autoloaded.
index f86356c..5fe9ad9 100644 (file)
                             </para>
                         </listitem>
                         <listitem>
-                            <para>Other uicontrols: the default value for "Relief" property is "flat".</para>
+                            <para>Other uicontrols: the default value for "Relief" property is relief by default provided by java language.</para>
                         </listitem>
                     </itemizedlist>
                 </listitem>
                             </para>
                         </listitem>
                     </itemizedlist>
-
+                    
                 </listitem>
             </varlistentry>
             <varlistentry>
index 6ee2cc5..bf76040 100644 (file)
@@ -132,6 +132,17 @@ int SetUicontrolValue(void* _pvCtx, int iObjUID, void* _pvData, int valueType, i
             return SET_PROPERTY_ERROR;
         }
 
+        getGraphicObjectProperty(iObjUID, __GO_UI_MIN__, jni_double, (void**)&pdblMinValue);
+        getGraphicObjectProperty(iObjUID, __GO_UI_MAX__, jni_double, (void**)&pdblMaxValue);
+
+        if (valueSize > maxValue - minValue)
+        {
+            Scierror(999, const_cast<char*>(_("(Max - Min) must be greater than 1 to allow the multiple selection.\n")));
+            return SET_PROPERTY_ERROR;
+        }
+
+
+
         for (int i = 0 ; i < valueSize ; i++)
         {
             if (truncatedValue[i] < 0 || truncatedValue[i] > iDataSize)
diff --git a/scilab/modules/gui/tests/nonreg_tests/bug_13375.dia.ref b/scilab/modules/gui/tests/nonreg_tests/bug_13375.dia.ref
new file mode 100644 (file)
index 0000000..a54a3ba
--- /dev/null
@@ -0,0 +1,23 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2010 - Scilab Enterprises - Adeline CARNIS
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- Non-regression test for bug 13375 -->
+// <-- TEST WITH GRAPHIC -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=13375
+//
+// <-- Short Description -->
+// If (Max - Min) == 1, then the multiple selection is not allowed.
+f=figure();
+h=uicontrol(f,'style','listbox', ...
+ 'position', [10 10 150 160]);
+set(h, 'string', 'item 1|item 2|item3');
+assert_checkfalse(execstr('set(h, ''value'', [1 3])', 'errcatch') == 0);
+// Check we got the right error message
+refMsg = msprintf(_('(Max - Min) must be greater than 1 to allow the multiple selection.\n'));
+assert_checkerror('set(h, ''value'', [1 3])', refMsg);
+close(f)
diff --git a/scilab/modules/gui/tests/nonreg_tests/bug_13375.tst b/scilab/modules/gui/tests/nonreg_tests/bug_13375.tst
new file mode 100644 (file)
index 0000000..5280414
--- /dev/null
@@ -0,0 +1,28 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2010 - Scilab Enterprises - Adeline CARNIS
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- Non-regression test for bug 13375 -->
+// <-- TEST WITH GRAPHIC -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=13375
+//
+// <-- Short Description -->
+// If (Max - Min) == 1, then the multiple selection is not allowed.
+
+f=figure();
+h=uicontrol(f,"style","listbox", ...
+"position", [10 10 150 160]);
+set(h, "string", "item 1|item 2|item3");
+
+assert_checkfalse(execstr("set(h, ''value'', [1 3])", "errcatch") == 0);
+
+// Check we got the right error message
+refMsg = msprintf(_("(Max - Min) must be greater than 1 to allow the multiple selection.\n"));
+assert_checkerror("set(h, ''value'', [1 3])", refMsg);
+
+close(f)