changeset 33570:c978eff7a857

maint: Merge stable to default.
author Markus Mützel <markus.muetzel@gmx.de>
date Sat, 11 May 2024 14:59:27 +0200
parents 69b9695538fb (current diff) aa773ddbe25b (diff)
children 742d8fc77688
files
diffstat 2 files changed, 46 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/etc/NEWS.9.md	Fri May 10 17:56:08 2024 -0400
+++ b/etc/NEWS.9.md	Sat May 11 14:59:27 2024 +0200
@@ -19,6 +19,13 @@
   states (bug #65595).
 - Fix segmentation fault when trying to set breakpoint in non-existent method
   of `classdef` class (bug #65610).
+- Improve default display of `classdef` properties (bug #62432).
+- Avoid crash with Qt6 6.7.0 (bug #65605).
+- `bar.m`: Catch input number validation error.
+- Prevent OOM crash or segmentation fault in `sort ()` when `dim` equals `Inf`
+  (bug #65712).
+- `legend.m`: Avoid setting more colors than coordinates for `patch` objects
+  (bug #65632).
 
 ### GUI
 
@@ -44,6 +51,10 @@
   summary.
 - Run test program for polymorphic allocators if possible instead of a simple
   build check.
+- Speed up BIST for the central part of `convn` with `'full'` shape.
+- Require Qt Widgets module when building the GUI (bug #65625).
+- `bug-53027.tst`: Delete temporary file after test is done (bug #53027).
+- Avoid build error with GCC 14 when targeting Windows.
 
 ### Documentation
 
@@ -56,6 +67,12 @@
 - Add application notes in `fminsearch`, `fminbnd`, `fminunc` indicating the
   preferred way to pass parameters is through anonymous functions.
 - Update remaining copyright statements to 2024.
+- Minor fix for `setappdata.m`.
+- Section "Assignment Expressions": Use `@emph` rather than `@i` macro for
+  better rendering in plaintext formats.
+- Section "Running Octave": Tell new users how to start Octave on their
+  computers.
+- `tsearch`: Add programming note about expected performance.
 
 ### Deprecated functions, properties, and operators
 
--- a/scripts/plot/appearance/legend.m	Fri May 10 17:56:08 2024 -0400
+++ b/scripts/plot/appearance/legend.m	Sat May 11 14:59:27 2024 +0200
@@ -1072,7 +1072,7 @@
   persistent lprops = {"color", "linestyle", "linewidth"};
   persistent mprops = {"color", "marker", "markeredgecolor", ...
                        "markerfacecolor", "markersize"};
-  persistent pprops = {"edgecolor", "facecolor", "cdata", ...
+  persistent pprops = {"edgecolor", "facecolor", ...
                        "linestyle", "linewidth", ...
                        "marker", "markeredgecolor", ...
                        "markerfacecolor", "markersize"};
@@ -1125,11 +1125,16 @@
     case {"patch", "surface"}
 
       vals = get (hplt, pprops);
+      cdata = get (hplt, "cdata");
 
-      hicon = __go_patch__ (hl, [pprops; vals]{:});
+      hicon = __go_patch__ (hl, [pprops; vals]{:}, ...
+                            "cdata", median (median (cdata, 1), 2));
 
       ## Listeners
       safe_property_link (hplt(1), hicon, pprops);
+      addlistener (hplt, "cdata", ...
+                   @(h, ~) set (hicon, "cdata", ...
+                                median (median (get (h, "cdata"), 1), 2)));
 
       setappdata (hicon, "__creator__", typ);
 
@@ -1171,7 +1176,9 @@
       ## Main patch
 
       vals = get (hplt(1), pprops);
-      hicon = __go_patch__ (hl, [pprops; vals]{:}, ...
+      cdata = get (hplt(1), "cdata");
+      hicon = __go_patch__ (hl, "cdata", cdata, ...
+                            [pprops; vals]{:}, ...
                             "pickableparts", "all", ...
                             "buttondownfcn", ...
                             {@execute_itemhit, hl, hplt, "icon"});
@@ -1181,15 +1188,17 @@
 
       ## Additional patch for the inner contour
       vals = get (hplt(end), pprops);
+      cdata = get (hplt(end), "cdata");
       htmp =  __go_patch__ (hl, "handlevisibility", "off", ...
-                            "xdata", 0, "ydata", 0, [pprops; vals]{:}, ...
+                            "xdata", 0, "ydata", 0, "cdata", cdata, ...
+                            [pprops; vals]{:}, ...
                             "pickableparts", "all", ...
                             "buttondownfcn", ...
                             {@execute_itemhit, hl, hplt, "icon"});
 
       ## Listeners
-      safe_property_link (hplt(1), hicon, pprops);
-      safe_property_link (hplt(end), htmp, pprops);
+      safe_property_link (hplt(1), hicon, [{"cdata"}, pprops]);
+      safe_property_link (hplt(end), htmp, [{"cdata"}, pprops]);
       addlistener (hicon, "ydata", ...
                    @(h, ~) set (htmp, "ydata", get (h, "innerydata")));
       addlistener (hicon, "xdata", ...
@@ -1911,6 +1920,20 @@
 %! title ("legend() works for surface objects too");
 
 %!demo
+%! clf;
+%! [x,y,z] = meshgrid (-.2:0.02:.2, -.2:0.02:.2, -.2:0.02:.2);
+%! val = (x.^2 + y.^2 + z.^2);
+%!
+%! h_axes = axes ();
+%! view (3);
+%! fv = isosurface (x, y, z, val, .039, z);
+%! h_patch = patch (fv, "FaceColor", "flat", "EdgeColor", "none");
+%! view (3);
+%! axis tight
+%! axis equal
+%! legend ({"colored patch"});
+
+%!demo
 %! clf reset;  # needed to undo colormap assignment in previous demo
 %! rand_2x3_data2 = [0.44804, 0.84368, 0.23012; 0.72311, 0.58335, 0.90531];
 %! bar (rand_2x3_data2);