# HG changeset patch # User John W. Eaton # Date 1510093737 18000 # Node ID 014f470896826a8dbd6ae87898951534c75a6a11 # Parent 558de6a42ff702b6162ba4c92f2db8abbe4fe323 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. diff -r 558de6a42ff7 -r 014f47089682 libgui/graphics/Figure.cc --- a/libgui/graphics/Figure.cc Mon Nov 06 13:25:23 2017 +0100 +++ b/libgui/graphics/Figure.cc Tue Nov 07 17:28:57 2017 -0500 @@ -867,7 +867,7 @@ { prompt = true; - file = "untitled.pdf"; + file = "untitled.fig"; } if (prompt || file.isEmpty ()) @@ -877,9 +877,10 @@ file = QFileDialog::getSaveFileName (qWidget (), tr ("Save Figure As"), finfo.absoluteFilePath (), - nullptr, nullptr, + tr ("Figure File (*.fig);;Vector Image Formats (*.eps *.epsc *.pdf *.svg *.ps *.tikz);;Bitmap Image Formats (*.gif *.jpg *.png *.tiff)", + nullptr, QFileDialog::DontUseNativeDialog); - } + } if (! file.isEmpty ()) { @@ -898,7 +899,12 @@ figure::properties& fp = properties
(); octave_value fnum = fp.get___myhandle__ ().as_octave_value (); - Ffeval (ovl ("print", fnum, file)); + size_t flen = file.length (); + + if (flen > 4 && file.substr (flen-4, 4) == ".fig") + Ffeval (ovl ("hgsave", fnum, file)); + else + Ffeval (ovl ("print", fnum, file)); } void diff -r 558de6a42ff7 -r 014f47089682 scripts/plot/util/private/__add_default_menu__.m --- 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