Mercurial > hg > octave-lyh
changeset 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 | c1ff738d606d |
children | ff061068a66c |
files | libgui/src/files-dock-widget.cc libgui/src/files-dock-widget.h libgui/src/main-window.cc libgui/src/main-window.h |
diffstat | 4 files changed, 35 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/libgui/src/files-dock-widget.cc +++ b/libgui/src/files-dock-widget.cc @@ -283,6 +283,7 @@ QFileInfo info = _file_system_model->fileInfo(index); menu.addAction(tr("Open"), this, SLOT(contextmenu_open(bool))); + menu.addAction(tr("Load Data"), this, SLOT(contextmenu_load(bool))); menu.addSeparator(); menu.addAction(tr("Rename"), this, SLOT(contextmenu_rename(bool))); menu.addAction(tr("Delete"), this, SLOT(contextmenu_delete(bool))); @@ -313,6 +314,22 @@ } void +files_dock_widget::contextmenu_load (bool) +{ + QItemSelectionModel *m = _file_tree_view->selectionModel (); + QModelIndexList rows = m->selectedRows (); + + if (rows.size () > 0) + { + QModelIndex index = rows[0]; + + QFileInfo info = _file_system_model->fileInfo(index); + + emit load_file_signal (info.fileName ()); + } +} + +void files_dock_widget::contextmenu_rename (bool) { QItemSelectionModel *m = _file_tree_view->selectionModel ();
--- a/libgui/src/files-dock-widget.h +++ b/libgui/src/files-dock-widget.h @@ -85,6 +85,7 @@ /* context menu actions */ void contextmenu_open (bool); + void contextmenu_load (bool); void contextmenu_rename (bool); void contextmenu_delete (bool); void contextmenu_newfile (bool); @@ -98,6 +99,9 @@ /** Emitted, whenever the currently displayed directory changed. */ void displayed_directory_changed (const QString& dir); + /** Emitted, whenever the user requested to load a file. */ + void load_file_signal (const QString& fileName); + private: // TODO: Add toolbar with buttons for navigating the path, creating dirs, etc
--- a/libgui/src/main-window.cc +++ b/libgui/src/main-window.cc @@ -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
--- a/libgui/src/main-window.h +++ b/libgui/src/main-window.h @@ -81,7 +81,7 @@ public slots: void report_status_message (const QString& statusMessage); void handle_save_workspace_request (void); - void handle_load_workspace_request (void); + void handle_load_workspace_request (const QString& file = QString ()); void handle_clear_workspace_request (void); void handle_clear_history_request (void); void handle_rename_variable_request (const QString& old_name,