diff libgui/graphics/Canvas.cc @ 27647:2a506bc4a7af

eliminate global access to Octave interpreter in qt graphics classes Provide reference to interprerter to qt graphics classes to eliminate need for accessing it through a global variable. * qt-graphics-toolkit.cc (qt_graphics_toolkit::create_object): Pass m_interpreter to create functions for individual graphics objects. * BaseControl.h, BaseControl.cc, ButtonControl.h, ButtonControl.cc, ButtonGroup.h, ButtonGroup.cc, Canvas.h, Canvas.cc, CheckBoxControl.h, CheckBoxControl.cc, Container.h, Container.cc, ContextMenu.h, ContextMenu.cc, EditControl.h, EditControl.cc, Figure.h, Figure.cc, GLCanvas.h, GLCanvas.cc, ListBoxControl.h, ListBoxControl.cc, Menu.h, Menu.cc, Object.h, Object.cc, Panel.h, Panel.cc, PopupMenuControl.h, PopupMenuControl.cc, PushButtonControl.h, PushButtonControl.cc, PushTool.h, PushTool.cc, QtHandlesUtils.h, RadioButtonControl.h, RadioButtonControl.cc, SliderControl.h, SliderControl.cc, Table.h, Table.cc, TextControl.h, TextControl.cc, ToggleButtonControl.h, ToggleButtonControl.cc, ToggleTool.h, ToggleTool.cc, ToolBar.h, ToolBar.cc, ToolBarButton.h, ToolBarButton.cc: Accept reference to interpreter in create function and constructors for graphics objects. Eliminate global access to interpreter object and graphics_handle manager.
author John W. Eaton <jwe@octave.org>
date Wed, 06 Nov 2019 12:42:12 -0500
parents 028205a91a07
children 33219a1a6133
line wrap: on
line diff
--- a/libgui/graphics/Canvas.cc	Tue Nov 05 18:23:20 2019 -0500
+++ b/libgui/graphics/Canvas.cc	Wed Nov 06 12:42:12 2019 -0500
@@ -45,7 +45,6 @@
 
 #include "builtin-defun-decls.h"
 #include "graphics.h"
-#include "interpreter-private.h"
 #include "interpreter.h"
 #include "oct-opengl.h"
 
@@ -179,7 +178,7 @@
   Canvas::updateCurrentPoint (const graphics_object& fig,
                               const graphics_object& obj, QMouseEvent *event)
   {
-    gh_manager& gh_mgr = octave::__get_gh_manager__ ("Canvas::updateCurrentPoint");
+    gh_manager& gh_mgr = m_interpreter.get_gh_manager ();
 
     octave::autolock guard (gh_mgr.graphics_lock ());
 
@@ -219,7 +218,7 @@
   Canvas::updateCurrentPoint (const graphics_object& fig,
                               const graphics_object& obj)
   {
-    gh_manager& gh_mgr = octave::__get_gh_manager__ ("Canvas::updateCurrentPoint");
+    gh_manager& gh_mgr = m_interpreter.get_gh_manager ();
 
     octave::autolock guard (gh_mgr.graphics_lock ());
 
@@ -258,10 +257,8 @@
   }
 
   static void
-  autoscale_axes (axes::properties& ap)
+  autoscale_axes (gh_manager& gh_mgr, axes::properties& ap)
   {
-    gh_manager& gh_mgr = octave::__get_gh_manager__ ("autoscale_axes");
-
     octave::autolock guard (gh_mgr.graphics_lock ());
 
     // Reset zoom stack
@@ -277,7 +274,7 @@
   {
     if (! m_redrawBlocked)
       {
-        gh_manager& gh_mgr = octave::__get_gh_manager__ ("Canvas::canvasPaintEvent");
+        gh_manager& gh_mgr = m_interpreter.get_gh_manager ();
 
         octave::autolock guard (gh_mgr.graphics_lock ());
 
@@ -345,7 +342,7 @@
     Matrix children = obj.get_properties ().get_all_children ();
     octave_idx_type num_children = children.numel ();
 
-    gh_manager& gh_mgr = octave::__get_gh_manager__ ("Canvas::select_object");
+    gh_manager& gh_mgr = m_interpreter.get_gh_manager ();
 
     for (int i = 0; i < num_children; i++)
       {
@@ -443,7 +440,7 @@
   void
   Canvas::canvasMouseMoveEvent (QMouseEvent *event)
   {
-    gh_manager& gh_mgr = octave::__get_gh_manager__ ("Canvas::canvasMouseMoveEvent");
+    gh_manager& gh_mgr = m_interpreter.get_gh_manager ();
 
     octave::autolock guard (gh_mgr.graphics_lock ());
 
@@ -578,7 +575,7 @@
   void
   Canvas::canvasMousePressEvent (QMouseEvent *event)
   {
-    gh_manager& gh_mgr = octave::__get_gh_manager__ ("Canvas::canvasMousePressEvent");
+    gh_manager& gh_mgr = m_interpreter.get_gh_manager ();
 
     octave::autolock guard (gh_mgr.graphics_lock ());
 
@@ -677,7 +674,8 @@
 
               // Show context menu of the selected object
               if (currentObj && event->button () == Qt::RightButton)
-                ContextMenu::executeAt (currentObj.get_properties (),
+                ContextMenu::executeAt (m_interpreter,
+                                        currentObj.get_properties (),
                                         event->globalPos ());
             }
             break;
@@ -712,7 +710,7 @@
                       {
                         axes::properties& ap = Utils::properties<axes> (axesObj);
 
-                        autoscale_axes (ap);
+                        autoscale_axes (gh_mgr, ap);
                       }
                     else
                       {
@@ -746,7 +744,7 @@
                           axes::properties& ap =
                             Utils::properties<axes> (axesObj);
 
-                          autoscale_axes (ap);
+                          autoscale_axes (gh_mgr, ap);
                         }
                         break;
 
@@ -790,7 +788,7 @@
   void
   Canvas::canvasMouseReleaseEvent (QMouseEvent *event)
   {
-    gh_manager& gh_mgr = octave::__get_gh_manager__ ("Canvas::canvasMouseReleaseEvent");
+    gh_manager& gh_mgr = m_interpreter.get_gh_manager ();
 
     if ((m_mouseMode == ZoomInMode || m_mouseMode == ZoomOutMode)
         && m_mouseAxes.ok ())
@@ -900,7 +898,7 @@
   void
   Canvas::canvasWheelEvent (QWheelEvent *event)
   {
-    gh_manager& gh_mgr = octave::__get_gh_manager__ ("Canvas::canvasWheelEvent");
+    gh_manager& gh_mgr = m_interpreter.get_gh_manager ();
 
     octave::autolock guard (gh_mgr.graphics_lock ());
 
@@ -1025,7 +1023,7 @@
   {
     if (m_eventMask & KeyPress)
       {
-        gh_manager& gh_mgr = octave::__get_gh_manager__ ("Canvas::canvasKeyPressEvent");
+        gh_manager& gh_mgr = m_interpreter.get_gh_manager ();
 
         octave::autolock guard (gh_mgr.graphics_lock ());
 
@@ -1056,7 +1054,7 @@
   {
     if (! event->isAutoRepeat () && (m_eventMask & KeyRelease))
       {
-        gh_manager& gh_mgr = octave::__get_gh_manager__ ("Canvas::canvasKeyReleaseEvent");
+        gh_manager& gh_mgr = m_interpreter.get_gh_manager ();
 
         octave::autolock guard (gh_mgr.graphics_lock ());
 
@@ -1075,13 +1073,13 @@
     return false;
   }
 
-  Canvas*
-  Canvas::create (octave::base_qobject& oct_qobj,
+  Canvas *
+  Canvas::create (octave::base_qobject& oct_qobj, octave::interpreter& interp,
                   const graphics_handle& handle, QWidget *parent,
                   const std::string& /* name */)
   {
     // Only OpenGL
-    return new GLCanvas (oct_qobj, handle, parent);
+    return new GLCanvas (oct_qobj, interp, handle, parent);
   }
 
 }