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 ();
   }