comparison 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
comparison
equal deleted inserted replaced
16503:c1ff738d606d 16504:49b059bf27c7
132 octave_link::post_event (this, &main_window::save_workspace_callback, 132 octave_link::post_event (this, &main_window::save_workspace_callback,
133 selectedFile.toStdString ()); 133 selectedFile.toStdString ());
134 } 134 }
135 135
136 void 136 void
137 main_window::handle_load_workspace_request (void) 137 main_window::handle_load_workspace_request (const QString& file_arg)
138 { 138 {
139 QString selectedFile = 139 QString file = file_arg;
140 QFileDialog::getOpenFileName (this, tr ("Load Workspace"), 140
141 resource_manager::get_home_path ()); 141 if (file.isEmpty ())
142 if (!selectedFile.isEmpty ()) 142 file = QFileDialog::getOpenFileName (this, tr ("Load Workspace"),
143 resource_manager::get_home_path ());
144 if (! file.isEmpty ())
143 octave_link::post_event (this, &main_window::load_workspace_callback, 145 octave_link::post_event (this, &main_window::load_workspace_callback,
144 selectedFile.toStdString ()); 146 file.toStdString ());
145 } 147 }
146 148
147 void 149 void
148 main_window::handle_clear_workspace_request (void) 150 main_window::handle_clear_workspace_request (void)
149 { 151 {
560 this, SLOT (prepare_to_exit ())); 562 this, SLOT (prepare_to_exit ()));
561 563
562 connect (this, SIGNAL (settings_changed (const QSettings *)), 564 connect (this, SIGNAL (settings_changed (const QSettings *)),
563 this, SLOT (notice_settings (const QSettings *))); 565 this, SLOT (notice_settings (const QSettings *)));
564 566
567 connect (file_browser_window, SIGNAL (load_file_signal (const QString&)),
568 this, SLOT (handle_load_workspace_request (const QString&)));
569
565 setWindowTitle ("Octave"); 570 setWindowTitle ("Octave");
566 571
567 setDockOptions (QMainWindow::AnimatedDocks 572 setDockOptions (QMainWindow::AnimatedDocks
568 | QMainWindow::AllowNestedDocks 573 | QMainWindow::AllowNestedDocks
569 | QMainWindow::AllowTabbedDocks); 574 | QMainWindow::AllowTabbedDocks);
1195 1200
1196 void 1201 void
1197 main_window::load_workspace_callback (const std::string& file) 1202 main_window::load_workspace_callback (const std::string& file)
1198 { 1203 {
1199 Fload (ovl (file)); 1204 Fload (ovl (file));
1205
1206 octave_link::set_workspace (true, symbol_table::workspace_info ());
1200 } 1207 }
1201 1208
1202 void 1209 void
1203 main_window::clear_workspace_callback (void) 1210 main_window::clear_workspace_callback (void)
1204 { 1211 {