diff libinterp/interpfcn/octave-link.h @ 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 d5ae5aa80d42
children adc150db1809
line wrap: on
line diff
--- a/libinterp/interpfcn/octave-link.h
+++ b/libinterp/interpfcn/octave-link.h
@@ -179,6 +179,19 @@
       : std::list<std::string> ();
   }
 
+  static std::list<std::string>
+  file_dialog ( const std::list< std::pair< std::string, std::string > > filter,
+                const std::string& title,
+                const std::string& filename,
+                const std::string& dirname,
+                bool multiselect)
+  {
+    return enabled ()
+      ? instance->do_file_dialog (filter, title, filename, dirname, multiselect)
+      : std::list<std::string> ();
+  }
+
+
   static int debug_cd_or_addpath_error (const std::string& file,
                                         const std::string& dir,
                                         bool addpath_option)
@@ -370,6 +383,13 @@
                    const std::list<float>& nc,
                    const std::list<std::string>& defaults) = 0;
 
+  virtual std::list<std::string>
+  do_file_dialog (const std::list< std::pair< std::string, std::string > > filter,
+                  const std::string& title,
+                  const std::string& filename,
+                  const std::string& dirname,
+                  bool multiselect) = 0;
+
   virtual int
   do_debug_cd_or_addpath_error (const std::string& file,
                                 const std::string& dir,