diff scripts/plot/uigetfile.m @ 16579:7f8db1942dc0

Add Qt link uigetfile dialog implementation. * libgui/src/octave-qt-link.cc, libgui/src/octave-qt-link.h, (octave_qt_link::do_file_dialog): New function. (make_filter_list): New function. * libinterp/interpfcn/octave-link.cc (__octave_link_file_dialog__): New function. * libinterp/interpfcn/octave-link.h: (octave_link::file_dialog): New function. (octave_link::do_file_dialog): New virtual function. * scripts/plot/uigetfile.m: update to call octave_link file dialog if octave link is present. * libgui/src/dialog.cc, libgui/src/dialog.h (class FileDialog): New class. (QUIWidgetCreator::QUIWidgetCreator): added initialization of new var path_name. (QUIWidgetCreator::signal_filedialog): New function. (QUIWidgetCreator::create_filedialog): New function. (QUIWidgetCreator::filedialog_finished): New function. (QUIWidgetCreator::get_dialog_path): New function. * libgui/src/main-window.cc, libgui/src/main-window.h (main_window::connect_uiwidget_links): Added connect for handle_file_dialog. (main_window::handle_create_filedialog): New function.
author John Donoghue <john.donoghue@ieee.org>
date Sun, 28 Apr 2013 09:45:19 -0400
parents 95d7475a0a89
children adc150db1809
line wrap: on
line diff
--- a/scripts/plot/uigetfile.m
+++ b/scripts/plot/uigetfile.m
@@ -65,19 +65,21 @@
 
 function [retfile, retpath, retindex] = uigetfile (varargin)
 
-  defaulttoolkit = get (0, "defaultfigure__graphics_toolkit__");
-  funcname = ["__uigetfile_", defaulttoolkit, "__"];
-  functype = exist (funcname);
-  if (! __is_function__ (funcname))
-    funcname = "__uigetfile_fltk__";
+  if (! __octave_link_enabled__ ())
+    defaulttoolkit = get (0, "defaultfigure__graphics_toolkit__");
+    funcname = ["__uigetfile_", defaulttoolkit, "__"];
+    functype = exist (funcname);
     if (! __is_function__ (funcname))
-      error ("uigetfile: fltk graphics toolkit required");
-    elseif (! strcmp (defaulttoolkit, "gnuplot"))
-      warning ("uigetfile: no implementation for toolkit '%s', using 'fltk' instead",
+      funcname = "__uigetfile_fltk__";
+      if (! __is_function__ (funcname))
+        error ("uigetfile: fltk graphics toolkit required");
+      elseif (! strcmp (defaulttoolkit, "gnuplot"))
+        warning ("uigetfile: no implementation for toolkit '%s', using 'fltk' instead",
                defaulttoolkit);
+      endif
     endif
   endif
-
+  
   if (nargin > 7)
     error ("uigetfile: number of input arguments must be less than eight");
   endif
@@ -183,7 +185,11 @@
     endfor
   endif
 
-  [retfile, retpath, retindex] = feval (funcname, outargs{:});
+  if (__octave_link_enabled__ ())
+    [retfile, retpath, retindex] = __octave_link_file_dialog__ (outargs{:});
+  else
+    [retfile, retpath, retindex] = feval (funcname, outargs{:});
+  endif
 
 endfunction