diff libgui/src/main-window.cc @ 16504:49b059bf27c7

allow loading files from file browser * files-dock-widget.h, files-dock-widget.cc (files_dock_widget::contextmenu_requested): Create menu item for loading files. (files_dock_widget::contextmenu_load): New function. (files_dock_widget::load_file_signal): New signal. * main-window.h, main-window.cc (main_window::construct): Connect file_browser_window::load_file_signal to main_window::handle_load_workspace_request. (main_window::load_workspace_callback): Update workspace after loading file. (main_window::handle_load_workspace_request): New argument for passing file name.
author John W. Eaton <jwe@octave.org>
date Fri, 12 Apr 2013 14:51:47 -0400
parents 45ae1038ee89
children 7f2395651a1c
line wrap: on
line diff
--- a/libgui/src/main-window.cc	Fri Apr 12 14:51:39 2013 -0400
+++ b/libgui/src/main-window.cc	Fri Apr 12 14:51:47 2013 -0400
@@ -134,14 +134,16 @@
 }
 
 void
-main_window::handle_load_workspace_request (void)
+main_window::handle_load_workspace_request (const QString& file_arg)
 {
-  QString selectedFile =
-    QFileDialog::getOpenFileName (this, tr ("Load Workspace"),
-                                  resource_manager::get_home_path ());
-  if (!selectedFile.isEmpty ())
+  QString file = file_arg;
+
+  if (file.isEmpty ())
+    file = QFileDialog::getOpenFileName (this, tr ("Load Workspace"),
+                                         resource_manager::get_home_path ());
+  if (! file.isEmpty ())
     octave_link::post_event (this, &main_window::load_workspace_callback,
-                             selectedFile.toStdString ());
+                             file.toStdString ());
 }
 
 void
@@ -562,6 +564,9 @@
   connect (this, SIGNAL (settings_changed (const QSettings *)),
            this, SLOT (notice_settings (const QSettings *)));
 
+  connect (file_browser_window, SIGNAL (load_file_signal (const QString&)),
+           this, SLOT (handle_load_workspace_request (const QString&)));
+
   setWindowTitle ("Octave");
 
   setDockOptions (QMainWindow::AnimatedDocks
@@ -1197,6 +1202,8 @@
 main_window::load_workspace_callback (const std::string& file)
 {
   Fload (ovl (file));
+
+  octave_link::set_workspace (true, symbol_table::workspace_info ());
 }
 
 void