Mercurial > octave-nkf
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