Mercurial > octave
diff libgui/src/main-window.cc @ 27261:dccdc3b001a2
eliminate static functions from octave_link class
* octave-link.h, octave-link. (class octave_link): Convert all static
data and functions to normal data members and member functions.
Change all uses.
* interpreter-private.h, interpreter-private.cc (__get_octave_link__):
New function.
* interpreter.h, interpreter.cc (interpreter::m_octave_link):
New data member.
(interpreter::get_octave_link): New function.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Wed, 17 Jul 2019 14:09:20 -0400 |
parents | 5ac60319575b |
children | 99aa1bcb8848 |
line wrap: on
line diff
--- a/libgui/src/main-window.cc Thu Jul 18 01:15:21 2019 -0400 +++ b/libgui/src/main-window.cc Wed Jul 17 14:09:20 2019 -0400 @@ -336,7 +336,10 @@ if (! file.isEmpty ()) { - octave_link::post_event + octave_link& olnk + = __get_octave_link__ ("main_window::handle_save_workspace_request"); + + olnk.post_event ([file] (void) { // INTERPRETER THREAD @@ -365,7 +368,10 @@ if (! file.isEmpty ()) { - octave_link::post_event + octave_link& olnk + = __get_octave_link__ ("main_window::handle_load_workspace_request"); + + olnk.post_event ([file] (void) { // INTERPRETER THREAD @@ -377,7 +383,9 @@ tree_evaluator& tw = interp.get_evaluator (); - octave_link::set_workspace (true, tw.get_symbol_info ()); + octave_link& xolnk = interp.get_octave_link (); + + xolnk.set_workspace (true, tw.get_symbol_info ()); }); } } @@ -388,26 +396,36 @@ { std::string file = file_arg.toStdString (); - octave_link::post_event + octave_link& olnk + = __get_octave_link__ ("main_window::handle_open_any_request"); + + olnk.post_event ([file] (void) { // INTERPRETER THREAD + interpreter& interp + = __get_interpreter__ ("main_window::handle_open_any_request"); + feval ("open", ovl (file)); // Update the workspace since open.m may have loaded new // variables. - tree_evaluator& tw - = __get_evaluator__ ("main_window::handle_open_any_request"); - - octave_link::set_workspace (true, tw.get_symbol_info ()); + tree_evaluator& tw = interp.get_evaluator (); + + octave_link& xolnk = interp.get_octave_link (); + + xolnk.set_workspace (true, tw.get_symbol_info ()); }); } } void main_window::handle_clear_workspace_request (void) { - octave_link::post_event + octave_link& olnk + = __get_octave_link__ ("main_window::handle_clear_workspace_request"); + + olnk.post_event ([] (void) { // INTERPRETER THREAD @@ -421,7 +439,10 @@ void main_window::handle_clear_command_window_request (void) { - octave_link::post_event + octave_link& olnk + = __get_octave_link__ ("main_window::handle_clear_command_window_request"); + + olnk.post_event ([] (void) { // INTERPRETER THREAD @@ -433,7 +454,10 @@ void main_window::handle_clear_history_request (void) { - octave_link::post_event + octave_link& olnk + = __get_octave_link__ ("main_window::handle_clear_history_request"); + + olnk.post_event ([] (void) { // INTERPRETER THREAD @@ -449,7 +473,10 @@ { if (command_window_has_focus ()) { - octave_link::post_event + octave_link& olnk + = __get_octave_link__ ("main_window::handle_undo_request"); + + olnk.post_event ([] (void) { // INTERPRETER THREAD @@ -469,22 +496,28 @@ std::string old_name = old_name_arg.toStdString (); std::string new_name = new_name_arg.toStdString (); - octave_link::post_event + octave_link& olnk + = __get_octave_link__ ("main_window::handle_rename_variable_request"); + + olnk.post_event ([old_name, new_name] (void) { // INTERPRETER THREAD - symbol_scope scope - = __get_current_scope__ ("main_window::rename_variable_request"); + interpreter& interp + = __get_interpreter__ ("main_window::rename_variable_request"); + + symbol_scope scope = interp.get_current_scope (); if (scope) { scope.rename (old_name, new_name); - tree_evaluator& tw - = __get_evaluator__ ("main_window::rename_variable_request"); - - octave_link::set_workspace (true, tw.get_symbol_info ()); + tree_evaluator& tw = interp.get_evaluator (); + + octave_link& xolnk = interp.get_octave_link (); + + xolnk.set_workspace (true, tw.get_symbol_info ()); } // FIXME: if this action fails, do we need a way to display that info @@ -853,7 +886,10 @@ { m_default_encoding = new_default_encoding; - octave_link::post_event + octave_link& olnk + = __get_octave_link__ ("main_window::notice_settings"); + + olnk.post_event ([this] (void) { // INTERPRETER THREAD @@ -974,7 +1010,10 @@ if (fileInfo.exists () && fileInfo.isDir ()) { - octave_link::post_event + octave_link& olnk + = __get_octave_link__ ("main_window::set_current_working_directory"); + + olnk.post_event ([xdir] (void) { // INTERPRETER THREAD @@ -1009,7 +1048,10 @@ void main_window::execute_command_in_terminal (const QString& command) { - octave_link::post_event + octave_link& olnk + = __get_octave_link__ ("main_window::execute_command_in_terminal"); + + olnk.post_event ([command] (void) { // INTERPRETER THREAD @@ -1028,7 +1070,10 @@ void main_window::run_file_in_terminal (const QFileInfo& info) { - octave_link::post_event + octave_link& olnk + = __get_octave_link__ ("main_window::run_file_in_terminal"); + + olnk.post_event ([info] (void) { // INTERPRETER THREAD @@ -1074,7 +1119,10 @@ void main_window::handle_new_figure_request (void) { - octave_link::post_event + octave_link& olnk + = __get_octave_link__ ("main_window::handle_new_figure_request"); + + olnk.post_event ([] (void) { // INTERPRETER THREAD @@ -1119,7 +1167,10 @@ void main_window::debug_continue (void) { - octave_link::post_event + octave_link& olnk + = __get_octave_link__ ("main_window::debug_continue"); + + olnk.post_event ([this] (void) { // INTERPRETER THREAD @@ -1136,7 +1187,10 @@ void main_window::debug_step_into (void) { - octave_link::post_event + octave_link& olnk + = __get_octave_link__ ("main_window::debug_step_into"); + + olnk.post_event ([this] (void) { // INTERPRETER THREAD @@ -1157,7 +1211,10 @@ { // We are in debug mode, just call dbstep. - octave_link::post_event + octave_link& olnk + = __get_octave_link__ ("main_window::debug_step_over"); + + olnk.post_event ([this] (void) { // INTERPRETER THREAD @@ -1180,7 +1237,9 @@ void main_window::debug_step_out (void) { - octave_link::post_event + octave_link& olnk = __get_octave_link__ ("main_window::debug_step_out"); + + olnk.post_event ([this] (void) { // INTERPRETER THREAD @@ -1197,7 +1256,9 @@ void main_window::debug_quit (void) { - octave_link::post_event + octave_link& olnk = __get_octave_link__ ("main_window::debug_quit"); + + olnk.post_event ([this] (void) { // INTERPRETER THREAD @@ -1744,7 +1805,9 @@ void main_window::set_screen_size (int ht, int wd) { - octave_link::post_event + octave_link& olnk = __get_octave_link__ ("main_window::set_screen_size"); + + olnk.post_event ([ht, wd] (void) { // INTERPRETER THREAD @@ -1830,15 +1893,22 @@ // interpreter. That will eventually cause the workspace view in the // GUI to be updated. - octave_link::post_event + octave_link& olnk + = __get_octave_link__ ("main_window::handle_variable_editor_update"); + + olnk.post_event ([] (void) { // INTERPRETER THREAD - tree_evaluator& tw - = __get_evaluator__ ("main_window::handle_variable_editor_update"); - - octave_link::set_workspace (true, tw.get_symbol_info (), false); + interpreter& interp + = __get_interpreter__ ("main_window::handle_variable_editor_update"); + + tree_evaluator& tw = interp.get_evaluator (); + + octave_link& xolnk = interp.get_octave_link (); + + xolnk.set_workspace (true, tw.get_symbol_info (), false); }); } @@ -1846,12 +1916,16 @@ { e->ignore (); - octave_link::post_event + octave_link& olnk = __get_octave_link__ ("main_window::closeEvent"); + + olnk.post_event ([] (void) { // INTERPRETER THREAD - Fquit (); + interpreter& interp = __get_interpreter__ ("main_window::closeEvent"); + + Fquit (interp); }); } @@ -2054,14 +2128,6 @@ SIGNAL (file_remove_signal (const QString&, const QString&)), this, SLOT (file_remove_proxy (const QString&, const QString&))); - octave_link::post_event - ([] (void) - { - // INTERPRETER THREAD - - command_editor::resize_terminal (); - }); - configure_shortcuts (); }