Mercurial > octave
changeset 29773:5f404ae822ee
allow variable renaming in workspace_view to work without main_window
* octave-qobject.cc (base_qobject::workspace_widget): Connect
workspace_view::edit_variable_signal to lambda expression that emits
interpreter event.
* main-window.h, main-window.cc (main_window::construct): Don't
connect workspace_view::rename_variable_signal to
main_window::handle_rename_variable_request slot.
(main_window::handle_rename_variable_request): Delete unnecessary slot.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 17 Jun 2021 14:11:04 -0400 |
parents | fdbba73edde2 |
children | aa46787ed8b7 |
files | libgui/src/main-window.cc libgui/src/main-window.h libgui/src/octave-qobject.cc |
diffstat | 3 files changed, 25 insertions(+), 35 deletions(-) [+] |
line wrap: on
line diff
--- a/libgui/src/main-window.cc Fri Dec 11 14:45:39 2020 -0500 +++ b/libgui/src/main-window.cc Thu Jun 17 14:11:04 2021 -0400 @@ -647,36 +647,6 @@ emit undo_signal (); } - void main_window::handle_rename_variable_request (const QString& old_name_arg, - const QString& new_name_arg) - - { - std::string old_name = old_name_arg.toStdString (); - std::string new_name = new_name_arg.toStdString (); - - emit interpreter_event - ([=] (interpreter& interp) - { - // INTERPRETER THREAD - - symbol_scope scope = interp.get_current_scope (); - - if (scope) - { - scope.rename (old_name, new_name); - - tree_evaluator& tw = interp.get_evaluator (); - - event_manager& xevmgr = interp.get_event_manager (); - - xevmgr.set_workspace (true, tw.get_symbol_info ()); - } - - // FIXME: if this action fails, do we need a way to display that info - // in the GUI? - }); - } - void main_window::modify_path (const octave_value_list& dir_list, bool rm, bool subdirs) { @@ -2051,9 +2021,6 @@ qt_interpreter_events *qt_link = interp_qobj->qt_link (); - connect (m_workspace_window, &workspace_view::rename_variable_signal, - this, &main_window::handle_rename_variable_request); - construct_menu_bar (); construct_tool_bar ();
--- a/libgui/src/main-window.h Fri Dec 11 14:45:39 2020 -0500 +++ b/libgui/src/main-window.h Thu Jun 17 14:11:04 2021 -0400 @@ -143,8 +143,6 @@ void handle_clear_command_window_request (void); void handle_clear_history_request (void); void handle_undo_request (void); - void handle_rename_variable_request (const QString& old_name, - const QString& new_name); void modify_path (const octave_value_list& dir_list, bool rm, bool subdirs); void edit_mfile (const QString&, int); void file_remove_proxy (const QString& o, const QString& n);
--- a/libgui/src/octave-qobject.cc Fri Dec 11 14:45:39 2020 -0500 +++ b/libgui/src/octave-qobject.cc Thu Jun 17 14:11:04 2021 -0400 @@ -510,6 +510,31 @@ connect (m_workspace_widget, &workspace_view::edit_variable_signal, this, &base_qobject::show_variable_editor_window); + + connect (m_workspace_widget, &workspace_view::rename_variable_signal, + [=] (const QString& old_name, const QString& new_name) { + emit interpreter_event + ([=] (interpreter& interp) { + // INTERPRETER THREAD + + symbol_scope scope = interp.get_current_scope (); + + if (scope) + { + scope.rename (old_name.toStdString (), + new_name.toStdString ()); + + tree_evaluator& tw = interp.get_evaluator (); + + event_manager& xevmgr = interp.get_event_manager (); + + xevmgr.set_workspace (true, tw.get_symbol_info ()); + } + + // FIXME: if this action fails, do we need a way to + // display that info in the GUI? + }); + }); } return m_workspace_widget;