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