diff scripts/plot/util/private/__add_default_menu__.m @ 24202:014f47089682

make .fig files the default for saving from figure menus * Figure.cc (Figure::fileSaveFigure): Update list of figure formats. Make .fig the default. (Figure::save_figure_callback): Call hgsave for .fig files. * __add_default_menu__.m (__save_as__): Update list of figure formats. Make .fig the default. (save_cb): Call hgsave for .fig files. Pass figure object to __save_as__, not handle of callback object.
author John W. Eaton <jwe@octave.org>
date Tue, 07 Nov 2017 17:28:57 -0500
parents 092078913d54
children 92acdcf72c46
line wrap: on
line diff
--- a/scripts/plot/util/private/__add_default_menu__.m	Mon Nov 06 13:25:23 2017 +0100
+++ b/scripts/plot/util/private/__add_default_menu__.m	Tue Nov 07 17:28:57 2017 -0500
@@ -67,25 +67,32 @@
   if (strcmp (lbl, "&Save"))
     fname = get (hfig, "filename");
     if (isempty (fname))
-      __save_as__ (hcbo);
+      __save_as__ (hfig);
     else
-      saveas (hcbo, fname);
+      saveas (hfig, fname);
     endif
   elseif (strcmp (lbl, "Save &As"))
-    __save_as__ (hcbo);
+    __save_as__ (hfig);
   endif
 endfunction
 
 
 function __save_as__ (caller)
-  [filename, filedir] = uiputfile ({"*.pdf;*.ps;*.gif;*.png;*.jpg",
-                                    "Supported Graphic Formats"},
-                                   "Save Figure",
-                                   [pwd, filesep, "untitled.pdf"]);
+  [filename, filedir] = uiputfile ...
+    ({"*.fig", "Figure File";
+      "*.eps;*.epsc;*.pdf;*.svg;*.ps;*.tikz", "Vector Image Formats";
+      "*.gif;*.jpg;*.png;*.tiff", "Bitmap Image Formats"},
+     "Save Figure", fullfile (pwd, "untitled.fig"));
+
   if (filename != 0)
-    fname = [filedir filesep() filename];
+    fname = fullfile (filedir, filename);
     set (gcbf, "filename", fname);
-    saveas (caller, fname);
+    flen = numel (fname);
+    if (flen > 4 && strcmp (fname(flen-3:end), ".fig"))
+      hgsave (caller, fname);
+    else
+      saveas (caller, fname);
+    endif
   endif
 endfunction