Mercurial > hg > octave-nkf
changeset 18718:51a0d1c1023c stable
listdlg.m: return Octave value rather than Java int object.(bug #41931).
Make parameter list case-insensitive.
Return empty matrix rather than empty cell list on failure.
* listdlg.m: Use for loop to index into java array to get octave value.
Use strcmpi to parse input options. Correctly return an empty matrix
rather than empty list if dialog fails.
author | Philip Nienhuis <prnienhuis@users.sf.net> |
---|---|
date | Sat, 22 Mar 2014 16:04:32 +0100 |
parents | 2ce1f1966fc3 |
children | e7b347dcfc63 3e53eca42f00 |
files | scripts/gui/listdlg.m |
diffstat | 1 files changed, 16 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/scripts/gui/listdlg.m +++ b/scripts/gui/listdlg.m @@ -94,21 +94,21 @@ ## handle key, value pairs for i = 1:2:nargin-1 - if (strcmp (varargin{i}, "ListString")) + if (strcmpi (varargin{i}, "ListString")) listcell = varargin{i+1}; - elseif (strcmp (varargin{i}, "SelectionMode")) + elseif (strcmpi (varargin{i}, "SelectionMode")) selmode = varargin{i+1}; - elseif (strcmp (varargin{i}, "ListSize")) + elseif (strcmpi (varargin{i}, "ListSize")) listsize = varargin{i+1}; - elseif (strcmp (varargin{i}, "InitialValue")) + elseif (strcmpi (varargin{i}, "InitialValue")) initialvalue = varargin{i+1}; - elseif (strcmp (varargin{i}, "Name")) + elseif (strcmpi (varargin{i}, "Name")) name = varargin{i+1}; - elseif (strcmp (varargin{i}, "PromptString")) + elseif (strcmpi (varargin{i}, "PromptString")) prompt = varargin{i+1}; - elseif (strcmp (varargin{i}, "OKString")) + elseif (strcmpi (varargin{i}, "OKString")) okstring = varargin{i+1}; - elseif (strcmp (varargin{i}, "CancelString")) + elseif (strcmpi (varargin{i}, "CancelString")) cancelstring = varargin{i+1}; endif endfor @@ -130,8 +130,8 @@ if (__octave_link_enabled__ ()) [sel, ok] = __octave_link_list_dialog__ (listcell, selmode, listsize, - initialvalue, name, prompt, - okstring, cancelstring); + initialvalue, name, prompt, + okstring, cancelstring); elseif (__have_feature__ ("JAVA")) ## transform matrices to cell arrays of strings ## swap width and height to correct calling format for JDialogBox @@ -146,10 +146,14 @@ okstring, cancelstring); if (numel (ret) > 0) - sel = ret; + sel = zeros (1, numel (ret)); + ## for loop needed to convert Java array ret into Octave double sel + for i = 1:numel (ret) + sel(i) = ret(i); + endfor ok = 1; else - sel = {}; + sel = []; ok = 0; endif else