changeset 31639:ca7d58406f82

eliminate unnecessary uses of octave_qobject in GUI classes * BaseControl.cc, BaseControl.h, ButtonControl.cc, ButtonControl.h, ButtonGroup.cc, ButtonGroup.h, Canvas.cc, Canvas.h, CheckBoxControl.cc, CheckBoxControl.h, Container.cc, Container.h, ContextMenu.cc, ContextMenu.h, EditControl.cc, EditControl.h, Figure.cc, Figure.h, GLCanvas.cc, GLCanvas.h, ListBoxControl.cc, ListBoxControl.h, Menu.cc, Menu.h, Object.cc, Object.h, Panel.cc, Panel.h, PopupMenuControl.cc, PopupMenuControl.h, PushButtonControl.cc, PushButtonControl.h, PushTool.cc, PushTool.h, RadioButtonControl.cc, RadioButtonControl.h, SliderControl.cc, SliderControl.h, Table.cc, Table.h, TextControl.cc, TextControl.h, ToggleButtonControl.cc, ToggleButtonControl.h, ToggleTool.cc, ToggleTool.h, ToolBar.cc, ToolBar.h, ToolBarButton.cc, ToolBarButton.h, annotation-dialog.cc, annotation-dialog.h, qt-graphics-toolkit.cc, qt-graphics-toolkit.h, command-widget.h, community-news.cc, community-news.h, documentation-bookmarks.cc, documentation-bookmarks.h, documentation.cc, external-editor-interface.cc, external-editor-interface.h, find-files-dialog.cc, find-files-dialog.h, graphics-init.cc, graphics-init.h, interpreter-qobject.cc, file-editor.cc, find-dialog.cc, find-dialog.h, main-window.cc, main-window.h, news-reader.cc, news-reader.h, octave-qobject.cc, release-notes.cc, resource-manager.cc, set-path-dialog.cc, set-path-dialog.h, shortcut-manager.cc, shortcut-manager.h, welcome-wizard.cc, welcome-wizard.h, workspace-model.cc: Don't store references to octave_qobject in GUI classes where it is no longer needed. Eliminate unnecessary octave_qobject constructor arguments. Change all uses.
author John W. Eaton <jwe@octave.org>
date Sun, 04 Dec 2022 22:57:02 -0500
parents 474e184321d3
children e518e1f7e944
files libgui/graphics/BaseControl.cc libgui/graphics/BaseControl.h libgui/graphics/ButtonControl.cc libgui/graphics/ButtonControl.h libgui/graphics/ButtonGroup.cc libgui/graphics/ButtonGroup.h libgui/graphics/Canvas.cc libgui/graphics/Canvas.h libgui/graphics/CheckBoxControl.cc libgui/graphics/CheckBoxControl.h libgui/graphics/Container.cc libgui/graphics/Container.h libgui/graphics/ContextMenu.cc libgui/graphics/ContextMenu.h libgui/graphics/EditControl.cc libgui/graphics/EditControl.h libgui/graphics/Figure.cc libgui/graphics/Figure.h libgui/graphics/GLCanvas.cc libgui/graphics/GLCanvas.h libgui/graphics/ListBoxControl.cc libgui/graphics/ListBoxControl.h libgui/graphics/Menu.cc libgui/graphics/Menu.h libgui/graphics/Object.cc libgui/graphics/Object.h libgui/graphics/Panel.cc libgui/graphics/Panel.h libgui/graphics/PopupMenuControl.cc libgui/graphics/PopupMenuControl.h libgui/graphics/PushButtonControl.cc libgui/graphics/PushButtonControl.h libgui/graphics/PushTool.cc libgui/graphics/PushTool.h libgui/graphics/RadioButtonControl.cc libgui/graphics/RadioButtonControl.h libgui/graphics/SliderControl.cc libgui/graphics/SliderControl.h libgui/graphics/Table.cc libgui/graphics/Table.h libgui/graphics/TextControl.cc libgui/graphics/TextControl.h libgui/graphics/ToggleButtonControl.cc libgui/graphics/ToggleButtonControl.h libgui/graphics/ToggleTool.cc libgui/graphics/ToggleTool.h libgui/graphics/ToolBar.cc libgui/graphics/ToolBar.h libgui/graphics/ToolBarButton.cc libgui/graphics/ToolBarButton.h libgui/graphics/annotation-dialog.cc libgui/graphics/annotation-dialog.h libgui/graphics/qt-graphics-toolkit.cc libgui/graphics/qt-graphics-toolkit.h libgui/src/command-widget.h libgui/src/community-news.cc libgui/src/community-news.h libgui/src/documentation-bookmarks.cc libgui/src/documentation-bookmarks.h libgui/src/documentation.cc libgui/src/external-editor-interface.cc libgui/src/external-editor-interface.h libgui/src/find-files-dialog.cc libgui/src/find-files-dialog.h libgui/src/graphics-init.cc libgui/src/graphics-init.h libgui/src/interpreter-qobject.cc libgui/src/m-editor/file-editor.cc libgui/src/m-editor/find-dialog.cc libgui/src/m-editor/find-dialog.h libgui/src/main-window.cc libgui/src/main-window.h libgui/src/news-reader.cc libgui/src/news-reader.h libgui/src/octave-qobject.cc libgui/src/release-notes.cc libgui/src/resource-manager.cc libgui/src/set-path-dialog.cc libgui/src/set-path-dialog.h libgui/src/shortcut-manager.cc libgui/src/shortcut-manager.h libgui/src/welcome-wizard.cc libgui/src/welcome-wizard.h libgui/src/workspace-model.cc
diffstat 84 files changed, 249 insertions(+), 429 deletions(-) [+]
line wrap: on
line diff
--- a/libgui/graphics/BaseControl.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/BaseControl.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -116,10 +116,9 @@
     w->setPalette (p);
   }
 
-  BaseControl::BaseControl (octave::base_qobject& oct_qobj,
-                            octave::interpreter& interp,
+  BaseControl::BaseControl (octave::interpreter& interp,
                             const graphics_object& go, QWidget *w)
-    : Object (oct_qobj, interp, go, w), m_normalizedFont (false),
+    : Object (interp, go, w), m_normalizedFont (false),
       m_keyPressHandlerDefined (false)
   {
     qObject ()->setObjectName ("UIControl");
--- a/libgui/graphics/BaseControl.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/BaseControl.h	Sun Dec 04 22:57:02 2022 -0500
@@ -33,7 +33,6 @@
 
 namespace octave
 {
-  class base_qobject;
   class interpreter;
 }
 
@@ -43,7 +42,7 @@
   class BaseControl : public Object
   {
   public:
-    BaseControl (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+    BaseControl (octave::interpreter& interp,
                  const graphics_object& go, QWidget *w);
     ~BaseControl (void);
 
--- a/libgui/graphics/ButtonControl.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/ButtonControl.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -40,11 +40,10 @@
 namespace octave
 {
 
-  ButtonControl::ButtonControl (octave::base_qobject& oct_qobj,
-                                octave::interpreter& interp,
+  ButtonControl::ButtonControl (octave::interpreter& interp,
                                 const graphics_object& go,
                                 QAbstractButton *btn)
-    : BaseControl (oct_qobj, interp, go, btn), m_blockCallback (false)
+    : BaseControl (interp, go, btn), m_blockCallback (false)
   {
     uicontrol::properties& up = properties<uicontrol> ();
 
--- a/libgui/graphics/ButtonControl.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/ButtonControl.h	Sun Dec 04 22:57:02 2022 -0500
@@ -32,7 +32,6 @@
 
 namespace octave
 {
-  class base_qobject;
   class interpreter;
 }
 
@@ -44,7 +43,7 @@
     Q_OBJECT
 
   public:
-    ButtonControl (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+    ButtonControl (octave::interpreter& interp,
                    const graphics_object& go, QAbstractButton *btn);
     ~ButtonControl (void);
 
--- a/libgui/graphics/ButtonGroup.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/ButtonGroup.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -45,7 +45,6 @@
 #include "QtHandlesUtils.h"
 #include "qt-graphics-toolkit.h"
 
-#include "octave-qobject.h"
 #include "octave-qtutils.h"
 
 #include "interpreter.h"
@@ -100,8 +99,7 @@
   }
 
   ButtonGroup *
-  ButtonGroup::create (octave::base_qobject& oct_qobj,
-                       octave::interpreter& interp, const graphics_object& go)
+  ButtonGroup::create (octave::interpreter& interp, const graphics_object& go)
   {
     Object *parent = parentObject (interp, go);
 
@@ -112,7 +110,7 @@
         if (container)
           {
             QFrame *frame = new QFrame (container);
-            return new ButtonGroup (oct_qobj, interp, go,
+            return new ButtonGroup (interp, go,
                                     new QButtonGroup (frame), frame);
           }
       }
@@ -120,11 +118,10 @@
     return nullptr;
   }
 
-  ButtonGroup::ButtonGroup (octave::base_qobject& oct_qobj,
-                            octave::interpreter& interp,
+  ButtonGroup::ButtonGroup (octave::interpreter& interp,
                             const graphics_object& go,
                             QButtonGroup *buttongroup, QFrame *frame)
-    : Object (oct_qobj, interp, go, frame), m_hiddenbutton (nullptr),
+    : Object (interp, go, frame), m_hiddenbutton (nullptr),
       m_container (nullptr), m_title (nullptr), m_blockUpdates (false)
   {
     uibuttongroup::properties& pp = properties<uibuttongroup> ();
@@ -144,7 +141,7 @@
     m_hiddenbutton->hide ();
     m_buttongroup->addButton (m_hiddenbutton);
 
-    m_container = new Container (frame, oct_qobj, interp);
+    m_container = new Container (frame, interp);
     m_container->canvas (m_handle);
 
     connect (m_container, SIGNAL (interpeter_event (const fcn_callback&)),
--- a/libgui/graphics/ButtonGroup.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/ButtonGroup.h	Sun Dec 04 22:57:02 2022 -0500
@@ -36,7 +36,6 @@
 
 namespace octave
 {
-  class base_qobject;
   class interpreter;
 }
 
@@ -50,7 +49,7 @@
     Q_OBJECT
 
   public:
-    ButtonGroup (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+    ButtonGroup (octave::interpreter& interp,
                  const graphics_object& go, QButtonGroup *buttongroup,
                  QFrame *frame);
     ~ButtonGroup (void);
@@ -60,7 +59,7 @@
     bool eventFilter (QObject *watched, QEvent *event);
 
     static ButtonGroup *
-    create (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+    create (octave::interpreter& interp,
             const graphics_object& go);
 
     void addButton (QAbstractButton *btn);
--- a/libgui/graphics/Canvas.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/Canvas.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -44,7 +44,6 @@
 
 #include "annotation-dialog.h"
 #include "gui-settings.h"
-#include "octave-qobject.h"
 #include "qt-interpreter-events.h"
 
 #include "builtin-defun-decls.h"
@@ -870,7 +869,7 @@
 
                 octave_value_list props = ovl ("textbox", bb);
 
-                annotation_dialog anno_dlg (m_octave_qobj, w, props);
+                annotation_dialog anno_dlg (w, props);
 
                 if (anno_dlg.exec () == QDialog::Accepted)
                   {
@@ -1087,12 +1086,12 @@
   }
 
   Canvas *
-  Canvas::create (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+  Canvas::create (octave::interpreter& interp,
                   const graphics_handle& handle, QWidget *parent,
                   const std::string& /* name */)
   {
     // Only OpenGL
-    return new GLCanvas (oct_qobj, interp, handle, parent);
+    return new GLCanvas (interp, handle, parent);
   }
 
 }
--- a/libgui/graphics/Canvas.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/Canvas.h	Sun Dec 04 22:57:02 2022 -0500
@@ -43,7 +43,6 @@
 
 namespace octave
 {
-  class base_qobject;
   class interpreter;
 }
 
@@ -82,9 +81,8 @@
     virtual QWidget * qWidget (void) = 0;
 
     static Canvas *
-    create (octave::base_qobject& oct_qobj, octave::interpreter& interp,
-            const graphics_handle& handle, QWidget *parent,
-            const std::string& name);
+    create (octave::interpreter& interp, const graphics_handle& handle,
+            QWidget *parent, const std::string& name);
 
     virtual uint8NDArray getPixels (void) { return do_getPixels (m_handle); };
 
@@ -118,10 +116,8 @@
                            const graphics_handle& handle) = 0;
 
   protected:
-    Canvas (octave::base_qobject& oct_qobj, octave::interpreter& interp,
-            const graphics_handle& handle)
-      : m_octave_qobj (oct_qobj),
-        m_interpreter (interp),
+    Canvas (octave::interpreter& interp, const graphics_handle& handle)
+      : m_interpreter (interp),
         m_handle (handle),
         m_redrawBlocked (false),
         m_mouseMode (NoMode),
@@ -153,7 +149,7 @@
                         std::vector<std::string> omit = std::vector<std::string> ());
 
   protected:
-    octave::base_qobject& m_octave_qobj;
+
     octave::interpreter& m_interpreter;
 
   private:
--- a/libgui/graphics/CheckBoxControl.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/CheckBoxControl.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -32,14 +32,11 @@
 #include "CheckBoxControl.h"
 #include "Container.h"
 
-#include "octave-qobject.h"
-
 namespace octave
 {
 
   CheckBoxControl *
-  CheckBoxControl::create (octave::base_qobject& oct_qobj,
-                           octave::interpreter& interp,
+  CheckBoxControl::create (octave::interpreter& interp,
                            const graphics_object& go)
   {
     Object *parent = parentObject (interp, go);
@@ -49,17 +46,16 @@
         Container *container = parent->innerContainer ();
 
         if (container)
-          return new CheckBoxControl (oct_qobj, interp, go,
+          return new CheckBoxControl (interp, go,
                                       new QCheckBox (container));
       }
 
     return nullptr;
   }
 
-  CheckBoxControl::CheckBoxControl (octave::base_qobject& oct_obj,
-                                    octave::interpreter& interp,
+  CheckBoxControl::CheckBoxControl (octave::interpreter& interp,
                                     const graphics_object& go, QCheckBox *box)
-    : ButtonControl (oct_obj, interp, go, box)
+    : ButtonControl (interp, go, box)
   {
     uicontrol::properties& up = properties<uicontrol> ();
 
--- a/libgui/graphics/CheckBoxControl.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/CheckBoxControl.h	Sun Dec 04 22:57:02 2022 -0500
@@ -32,7 +32,6 @@
 
 namespace octave
 {
-  class base_qobject;
   class interpreter;
 }
 
@@ -42,13 +41,12 @@
   class CheckBoxControl : public ButtonControl
   {
   public:
-    CheckBoxControl (octave::base_qobject& oct_qobj,
-                     octave::interpreter& interp, const graphics_object& go,
+    CheckBoxControl (octave::interpreter& interp, const graphics_object& go,
                      QCheckBox *box);
     ~CheckBoxControl (void);
 
     static CheckBoxControl *
-    create (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+    create (octave::interpreter& interp,
             const graphics_object& go);
 
   protected:
--- a/libgui/graphics/Container.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/Container.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -41,10 +41,8 @@
 namespace octave
 {
 
-  Container::Container (QWidget *xparent, octave::base_qobject& oct_qobj,
-                        octave::interpreter& interp)
-    : ContainerBase (xparent), m_octave_qobj (oct_qobj),
-      m_interpreter (interp),  m_canvas (nullptr)
+  Container::Container (QWidget *xparent, octave::interpreter& interp)
+    : ContainerBase (xparent), m_interpreter (interp),  m_canvas (nullptr)
   {
     setFocusPolicy (Qt::ClickFocus);
   }
@@ -67,7 +65,7 @@
           {
             graphics_object fig = go.get_ancestor ("figure");
 
-            m_canvas = Canvas::create (m_octave_qobj, m_interpreter, gh, this,
+            m_canvas = Canvas::create (m_interpreter, gh, this,
                                        fig.get ("renderer").string_value ());
 
             connect (m_canvas, QOverload<const octave::fcn_callback&>::of (&Canvas::interpreter_event),
--- a/libgui/graphics/Container.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/Container.h	Sun Dec 04 22:57:02 2022 -0500
@@ -35,11 +35,6 @@
 
 namespace octave
 {
-  class base_qobject;
-}
-
-namespace octave
-{
 
   DECLARE_GENERICEVENTNOTIFY_SENDER(ContainerBase, QWidget);
 
@@ -50,8 +45,7 @@
     Q_OBJECT
 
   public:
-    Container (QWidget *parent, octave::base_qobject& oct_qobj,
-               octave::interpreter& interp);
+    Container (QWidget *parent, octave::interpreter& interp);
     ~Container (void);
 
     Canvas * canvas (const graphics_handle& handle, bool create = true);
@@ -81,7 +75,6 @@
     void resizeEvent (QResizeEvent *event);
 
   private:
-    octave::base_qobject& m_octave_qobj;
     octave::interpreter& m_interpreter;
     Canvas *m_canvas;
   };
--- a/libgui/graphics/ContextMenu.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/ContextMenu.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -33,16 +33,13 @@
 #include "QtHandlesUtils.h"
 #include "qt-graphics-toolkit.h"
 
-#include "octave-qobject.h"
-
 #include "interpreter.h"
 
 namespace octave
 {
 
   ContextMenu *
-  ContextMenu::create (octave::base_qobject& oct_qobj,
-                       octave::interpreter& interp, const graphics_object& go)
+  ContextMenu::create (octave::interpreter& interp, const graphics_object& go)
   {
     Object *xparent = parentObject (interp, go);
 
@@ -50,16 +47,15 @@
       {
         QWidget *w = xparent->qWidget<QWidget> ();
 
-        return new ContextMenu (oct_qobj, interp, go, new QMenu (w));
+        return new ContextMenu (interp, go, new QMenu (w));
       }
 
     return nullptr;
   }
 
-  ContextMenu::ContextMenu (octave::base_qobject& oct_qobj,
-                            octave::interpreter& interp,
+  ContextMenu::ContextMenu (octave::interpreter& interp,
                             const graphics_object& go, QMenu *xmenu)
-    : Object (oct_qobj, interp, go, xmenu)
+    : Object (interp, go, xmenu)
   {
     xmenu->setAutoFillBackground (true);
 
--- a/libgui/graphics/ContextMenu.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/ContextMenu.h	Sun Dec 04 22:57:02 2022 -0500
@@ -35,7 +35,6 @@
 
 namespace octave
 {
-  class base_qobject;
   class interpreter;
 }
 
@@ -47,12 +46,12 @@
     Q_OBJECT
 
   public:
-    ContextMenu (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+    ContextMenu (octave::interpreter& interp,
                  const graphics_object& go, QMenu *menu);
     ~ContextMenu (void);
 
     static ContextMenu *
-    create (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+    create (octave::interpreter& interp,
             const graphics_object& go);
 
     static void executeAt (octave::interpreter& interp,
--- a/libgui/graphics/EditControl.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/EditControl.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -34,14 +34,11 @@
 #include "TextEdit.h"
 #include "QtHandlesUtils.h"
 
-#include "octave-qobject.h"
-
 namespace octave
 {
 
   EditControl *
-  EditControl::create (octave::base_qobject& oct_qobj,
-                       octave::interpreter& interp, const graphics_object& go)
+  EditControl::create (octave::interpreter& interp, const graphics_object& go)
   {
     Object *parent = parentObject (interp, go);
 
@@ -54,10 +51,10 @@
             uicontrol::properties& up = Utils::properties<uicontrol> (go);
 
             if ((up.get_max () - up.get_min ()) > 1)
-              return new EditControl (oct_qobj, interp, go,
+              return new EditControl (interp, go,
                                       new TextEdit (container));
             else
-              return new EditControl (oct_qobj, interp, go,
+              return new EditControl (interp, go,
                                       new QLineEdit (container));
           }
       }
@@ -65,10 +62,9 @@
     return nullptr;
   }
 
-  EditControl::EditControl (octave::base_qobject& oct_qobj,
-                            octave::interpreter& interp,
+  EditControl::EditControl (octave::interpreter& interp,
                             const graphics_object& go, QLineEdit *edit)
-    : BaseControl (oct_qobj, interp, go, edit), m_multiLine (false),
+    : BaseControl (interp, go, edit), m_multiLine (false),
       m_textChanged (false)
   {
     init (edit);
@@ -101,10 +97,9 @@
              this, &EditControl::returnPressed);
   }
 
-  EditControl::EditControl (octave::base_qobject& oct_qobj,
-                            octave::interpreter& interp,
+  EditControl::EditControl (octave::interpreter& interp,
                             const graphics_object& go, TextEdit *edit)
-    : BaseControl (oct_qobj, interp, go, edit), m_multiLine (true),
+    : BaseControl (interp, go, edit), m_multiLine (true),
       m_textChanged (false)
   {
     init (edit);
--- a/libgui/graphics/EditControl.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/EditControl.h	Sun Dec 04 22:57:02 2022 -0500
@@ -33,7 +33,6 @@
 
 namespace octave
 {
-  class base_qobject;
   class interpreter;
 }
 
@@ -47,16 +46,16 @@
     Q_OBJECT
 
   public:
-    EditControl (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+    EditControl (octave::interpreter& interp,
                  const graphics_object& go, QLineEdit *edit);
 
-    EditControl (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+    EditControl (octave::interpreter& interp,
                  const graphics_object& go, TextEdit *edit);
 
     ~EditControl (void);
 
     static EditControl *
-    create (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+    create (octave::interpreter& interp,
             const graphics_object& go);
 
   protected:
--- a/libgui/graphics/Figure.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/Figure.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -110,19 +110,19 @@
   }
 
   Figure *
-  Figure::create (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+  Figure::create (octave::interpreter& interp,
                   const graphics_object& go)
   {
-    return new Figure (oct_qobj, interp, go, new FigureWindow ());
+    return new Figure (interp, go, new FigureWindow ());
   }
 
-  Figure::Figure (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+  Figure::Figure (octave::interpreter& interp,
                   const graphics_object& go, FigureWindow *win)
-    : Object (oct_qobj, interp, go, win), m_blockUpdates (false),
+    : Object (interp, go, win), m_blockUpdates (false),
       m_figureToolBar (nullptr), m_menuBar (nullptr), m_innerRect (),
       m_outerRect (), m_previousHeight (0), m_resizable (true)
   {
-    m_container = new Container (win, oct_qobj, interp);
+    m_container = new Container (win, interp);
     win->setCentralWidget (m_container);
 
     connect (m_container, QOverload<const octave::fcn_callback&>::of (&Container::interpreter_event),
--- a/libgui/graphics/Figure.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/Figure.h	Sun Dec 04 22:57:02 2022 -0500
@@ -39,7 +39,6 @@
 
 namespace octave
 {
-  class base_qobject;
   class interpreter;
 }
 
@@ -72,12 +71,12 @@
     friend class ToolBar;
 
   public:
-    Figure (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+    Figure (octave::interpreter& interp,
             const graphics_object& go, FigureWindow *win);
     ~Figure (void);
 
     static Figure *
-    create (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+    create (octave::interpreter& interp,
             const graphics_object& go);
 
     QString fileName (void);
--- a/libgui/graphics/GLCanvas.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/GLCanvas.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -50,11 +50,10 @@
 #  endif
 #endif
 
-  GLCanvas::GLCanvas (octave::base_qobject& oct_qobj,
-                      octave::interpreter& interp,
+  GLCanvas::GLCanvas (octave::interpreter& interp,
                       const graphics_handle& gh, QWidget *xparent)
     : OCTAVE_QT_OPENGL_WIDGET (OCTAVE_QT_OPENGL_WIDGET_FORMAT_ARGS xparent),
-      Canvas (oct_qobj, interp, gh), m_glfcns (), m_renderer (m_glfcns)
+      Canvas (interp, gh), m_glfcns (), m_renderer (m_glfcns)
   {
     setFocusPolicy (Qt::ClickFocus);
     setFocus ();
--- a/libgui/graphics/GLCanvas.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/GLCanvas.h	Sun Dec 04 22:57:02 2022 -0500
@@ -51,7 +51,6 @@
 
 namespace octave
 {
-  class base_qobject;
 }
 
 namespace octave
@@ -59,7 +58,7 @@
   class GLCanvas : public OCTAVE_QT_OPENGL_WIDGET, public Canvas
   {
   public:
-    GLCanvas (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+    GLCanvas (octave::interpreter& interp,
               const graphics_handle& handle, QWidget *parent);
     ~GLCanvas (void);
 
--- a/libgui/graphics/ListBoxControl.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/ListBoxControl.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -35,8 +35,6 @@
 #include "ListBoxControl.h"
 #include "QtHandlesUtils.h"
 
-#include "octave-qobject.h"
-
 namespace octave
 {
 
@@ -70,8 +68,7 @@
   }
 
   ListBoxControl *
-  ListBoxControl::create (octave::base_qobject& oct_qobj,
-                          octave::interpreter& interp,
+  ListBoxControl::create (octave::interpreter& interp,
                           const graphics_object& go)
   {
     Object *parent = parentObject (interp, go);
@@ -81,17 +78,16 @@
         Container *container = parent->innerContainer ();
 
         if (container)
-          return new ListBoxControl (oct_qobj, interp, go,
+          return new ListBoxControl (interp, go,
                                      new QListWidget (container));
       }
 
     return nullptr;
   }
 
-  ListBoxControl::ListBoxControl (octave::base_qobject& oct_qobj,
-                                  octave::interpreter& interp,
+  ListBoxControl::ListBoxControl (octave::interpreter& interp,
                                   const graphics_object& go, QListWidget *list)
-    : BaseControl (oct_qobj, interp, go, list), m_blockCallback (false),
+    : BaseControl (interp, go, list), m_blockCallback (false),
       m_selectionChanged (false)
   {
     uicontrol::properties& up = properties<uicontrol> ();
--- a/libgui/graphics/ListBoxControl.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/ListBoxControl.h	Sun Dec 04 22:57:02 2022 -0500
@@ -34,7 +34,6 @@
 
 namespace octave
 {
-  class base_qobject;
   class interpreter;
 }
 
@@ -46,13 +45,12 @@
     Q_OBJECT
 
   public:
-    ListBoxControl (octave::base_qobject& oct_qobj,
-                    octave::interpreter& interp, const graphics_object& go,
+    ListBoxControl (octave::interpreter& interp, const graphics_object& go,
                     QListWidget *list);
     ~ListBoxControl (void);
 
     static ListBoxControl *
-    create (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+    create (octave::interpreter& interp,
             const graphics_object& go);
 
   protected:
--- a/libgui/graphics/Menu.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/Menu.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -36,8 +36,6 @@
 #include "Menu.h"
 #include "QtHandlesUtils.h"
 
-#include "octave-qobject.h"
-
 namespace octave
 {
 
@@ -63,7 +61,7 @@
   }
 
   Menu *
-  Menu::create (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+  Menu::create (octave::interpreter& interp,
                 const graphics_object& go)
   {
     Object *parent_obj = parentObject (interp, go);
@@ -73,16 +71,16 @@
         QObject *qObj = parent_obj->qObject ();
 
         if (qObj)
-          return new Menu (oct_qobj, interp, go, new QAction (qObj),
+          return new Menu (interp, go, new QAction (qObj),
                            parent_obj);
       }
 
     return nullptr;
   }
 
-  Menu::Menu (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+  Menu::Menu (octave::interpreter& interp,
               const graphics_object& go, QAction *action, Object *xparent)
-    : Object (oct_qobj, interp, go, action), m_parent (nullptr),
+    : Object (interp, go, action), m_parent (nullptr),
       m_separator (nullptr)
   {
     uimenu::properties& up = properties<uimenu> ();
--- a/libgui/graphics/Menu.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/Menu.h	Sun Dec 04 22:57:02 2022 -0500
@@ -35,7 +35,6 @@
 
 namespace octave
 {
-  class base_qobject;
   class interpreter;
 }
 
@@ -47,12 +46,12 @@
     Q_OBJECT
 
   public:
-    Menu (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+    Menu (octave::interpreter& interp,
           const graphics_object& go, QAction *action, Object *parent);
     ~Menu (void);
 
     static Menu *
-    create (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+    create (octave::interpreter& interp,
             const graphics_object& go);
 
     Container * innerContainer (void) { return nullptr; }
--- a/libgui/graphics/Object.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/Object.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -32,7 +32,6 @@
 
 #include "Object.h"
 #include "QtHandlesUtils.h"
-#include "octave-qobject.h"
 #include "qt-graphics-toolkit.h"
 
 #include "graphics.h"
@@ -41,10 +40,10 @@
 namespace octave
 {
 
-  Object::Object (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+  Object::Object (octave::interpreter& interp,
                   const graphics_object& go, QObject *obj)
-    : QObject (), m_octave_qobj (oct_qobj), m_interpreter (interp),
-      m_go (go), m_handle (go.get_handle ()), m_qobject (nullptr)
+    : QObject (), m_interpreter (interp), m_go (go),
+      m_handle (go.get_handle ()), m_qobject (nullptr)
   {
     gh_manager& gh_mgr = m_interpreter.get_gh_manager ();
 
--- a/libgui/graphics/Object.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/Object.h	Sun Dec 04 22:57:02 2022 -0500
@@ -37,7 +37,6 @@
 
 namespace octave
 {
-  class base_qobject;
   class interpreter;
 }
 
@@ -52,8 +51,8 @@
     Q_OBJECT
 
   public:
-    Object (octave::base_qobject& qobj, octave::interpreter& interp,
-            const graphics_object& go, QObject *obj = nullptr);
+    Object (octave::interpreter& interp, const graphics_object& go,
+            QObject *obj = nullptr);
 
     virtual ~Object (void);
 
@@ -136,7 +135,6 @@
 
   protected:
 
-    octave::base_qobject& m_octave_qobj;
     octave::interpreter& m_interpreter;
 
     // Store the graphics object directly so that it will exist when
--- a/libgui/graphics/Panel.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/Panel.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -39,8 +39,6 @@
 #include "Panel.h"
 #include "QtHandlesUtils.h"
 
-#include "octave-qobject.h"
-
 #include "graphics.h"
 #include "interpreter.h"
 
@@ -93,7 +91,7 @@
   }
 
   Panel *
-  Panel::create (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+  Panel::create (octave::interpreter& interp,
                  const graphics_object& go)
   {
     Object *parent = parentObject (interp, go);
@@ -103,15 +101,15 @@
         Container *container = parent->innerContainer ();
 
         if (container)
-          return new Panel (oct_qobj, interp, go, new QFrame (container));
+          return new Panel (interp, go, new QFrame (container));
       }
 
     return nullptr;
   }
 
-  Panel::Panel (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+  Panel::Panel (octave::interpreter& interp,
                 const graphics_object& go, QFrame *frame)
-    : Object (oct_qobj, interp, go, frame), m_container (nullptr),
+    : Object (interp, go, frame), m_container (nullptr),
       m_title (nullptr), m_blockUpdates (false),
       m_previous_bbox (Matrix (1, 4, 0))
   {
@@ -128,7 +126,7 @@
     setupPalette (pp, pal);
     frame->setPalette (pal);
 
-    m_container = new Container (frame, oct_qobj, interp);
+    m_container = new Container (frame, interp);
     m_container->canvas (m_handle);
 
     connect (m_container, SIGNAL (interpeter_event (const fcn_callback&)),
--- a/libgui/graphics/Panel.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/Panel.h	Sun Dec 04 22:57:02 2022 -0500
@@ -33,7 +33,6 @@
 
 namespace octave
 {
-  class base_qobject;
   class interpreter;
 }
 
@@ -45,7 +44,7 @@
   class Panel : public Object
   {
   public:
-    Panel (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+    Panel (octave::interpreter& interp,
            const graphics_object& go, QFrame *frame);
     ~Panel (void);
 
@@ -54,7 +53,7 @@
     bool eventFilter (QObject *watched, QEvent *event);
 
     static Panel *
-    create (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+    create (octave::interpreter& interp,
             const graphics_object& go);
 
     void do_connections (const QObject *receiver,
--- a/libgui/graphics/PopupMenuControl.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/PopupMenuControl.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -33,15 +33,13 @@
 #include "PopupMenuControl.h"
 #include "QtHandlesUtils.h"
 
-#include "octave-qobject.h"
 #include "octave-qtutils.h"
 
 namespace octave
 {
 
   PopupMenuControl *
-  PopupMenuControl::create (octave::base_qobject& oct_qobj,
-                            octave::interpreter& interp,
+  PopupMenuControl::create (octave::interpreter& interp,
                             const graphics_object& go)
   {
     Object *parent = parentObject (interp, go);
@@ -51,18 +49,17 @@
         Container *container = parent->innerContainer ();
 
         if (container)
-          return new PopupMenuControl (oct_qobj, interp, go,
+          return new PopupMenuControl (interp, go,
                                        new QComboBox (container));
       }
 
     return nullptr;
   }
 
-  PopupMenuControl::PopupMenuControl (octave::base_qobject& oct_qobj,
-                                      octave::interpreter& interp,
+  PopupMenuControl::PopupMenuControl (octave::interpreter& interp,
                                       const graphics_object& go,
                                       QComboBox *box)
-    : BaseControl (oct_qobj, interp, go, box), m_blockUpdate (false)
+    : BaseControl (interp, go, box), m_blockUpdate (false)
   {
     uicontrol::properties& up = properties<uicontrol> ();
 
--- a/libgui/graphics/PopupMenuControl.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/PopupMenuControl.h	Sun Dec 04 22:57:02 2022 -0500
@@ -32,7 +32,6 @@
 
 namespace octave
 {
-  class base_qobject;
   class interpreter;
 }
 
@@ -44,13 +43,12 @@
     Q_OBJECT
 
   public:
-    PopupMenuControl (octave::base_qobject& oct_qobj,
-                      octave::interpreter& interp, const graphics_object& go,
+    PopupMenuControl (octave::interpreter& interp, const graphics_object& go,
                       QComboBox *box);
     ~PopupMenuControl (void);
 
     static PopupMenuControl *
-    create (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+    create (octave::interpreter& interp,
             const graphics_object& go);
 
   protected:
--- a/libgui/graphics/PushButtonControl.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/PushButtonControl.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -34,14 +34,11 @@
 #include "Container.h"
 #include "QtHandlesUtils.h"
 
-#include "octave-qobject.h"
-
 namespace octave
 {
 
   PushButtonControl *
-  PushButtonControl::create (octave::base_qobject& oct_qobj,
-                             octave::interpreter& interp,
+  PushButtonControl::create (octave::interpreter& interp,
                              const graphics_object& go)
   {
     Object *parent = parentObject (interp, go);
@@ -51,18 +48,17 @@
         Container *container = parent->innerContainer ();
 
         if (container)
-          return new PushButtonControl (oct_qobj, interp, go,
+          return new PushButtonControl (interp, go,
                                         new QPushButton (container));
       }
 
     return nullptr;
   }
 
-  PushButtonControl::PushButtonControl (octave::base_qobject& oct_qobj,
-                                        octave::interpreter& interp,
+  PushButtonControl::PushButtonControl (octave::interpreter& interp,
                                         const graphics_object& go,
                                         QPushButton *btn)
-    : ButtonControl (oct_qobj, interp, go, btn)
+    : ButtonControl (interp, go, btn)
   {
     uicontrol::properties& up = properties<uicontrol> ();
 
--- a/libgui/graphics/PushButtonControl.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/PushButtonControl.h	Sun Dec 04 22:57:02 2022 -0500
@@ -32,7 +32,6 @@
 
 namespace octave
 {
-  class base_qobject;
   class interpreter;
 }
 
@@ -42,13 +41,12 @@
   class PushButtonControl : public ButtonControl
   {
   public:
-    PushButtonControl (octave::base_qobject& oct_qobj,
-                       octave::interpreter& interp, const graphics_object& go,
+    PushButtonControl (octave::interpreter& interp, const graphics_object& go,
                        QPushButton *btn);
     ~PushButtonControl (void);
 
     static PushButtonControl *
-    create (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+    create (octave::interpreter& interp,
             const graphics_object& go);
 
   protected:
--- a/libgui/graphics/PushTool.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/PushTool.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -31,14 +31,11 @@
 
 #include "ToolBarButton.cc"
 
-#include "octave-qobject.h"
-
 namespace octave
 {
 
   PushTool *
-  PushTool::create (octave::base_qobject& oct_qobj,
-                    octave::interpreter& interp, const graphics_object& go)
+  PushTool::create (octave::interpreter& interp, const graphics_object& go)
   {
     Object *parent = parentObject (interp, go);
 
@@ -47,17 +44,16 @@
         QWidget *parentWidget = parent->qWidget<QWidget> ();
 
         if (parentWidget)
-          return new PushTool (oct_qobj, interp, go,
+          return new PushTool (interp, go,
                                new QAction (parentWidget));
       }
 
     return nullptr;
   }
 
-  PushTool::PushTool (octave::base_qobject& oct_qobj,
-                      octave::interpreter& interp,
+  PushTool::PushTool (octave::interpreter& interp,
                       const graphics_object& go, QAction *action)
-    : ToolBarButton<uipushtool> (oct_qobj, interp, go, action)
+    : ToolBarButton<uipushtool> (interp, go, action)
   {
     connect (action, &QAction::triggered, this, &PushTool::clicked);
   }
--- a/libgui/graphics/PushTool.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/PushTool.h	Sun Dec 04 22:57:02 2022 -0500
@@ -30,7 +30,6 @@
 
 namespace octave
 {
-  class base_qobject;
   class interpreter;
 }
 
@@ -42,12 +41,12 @@
     Q_OBJECT
 
   public:
-    PushTool (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+    PushTool (octave::interpreter& interp,
               const graphics_object& go, QAction *action);
     ~PushTool (void);
 
     static PushTool *
-    create (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+    create (octave::interpreter& interp,
             const graphics_object& go);
 
   protected:
--- a/libgui/graphics/RadioButtonControl.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/RadioButtonControl.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -34,14 +34,11 @@
 #include "Container.h"
 #include "QtHandlesUtils.h"
 
-#include "octave-qobject.h"
-
 namespace octave
 {
 
   RadioButtonControl *
-  RadioButtonControl::create (octave::base_qobject& oct_qobj,
-                              octave::interpreter& interp,
+  RadioButtonControl::create (octave::interpreter& interp,
                               const graphics_object& go)
   {
     Object *parent = parentObject (interp, go);
@@ -51,18 +48,17 @@
         Container *container = parent->innerContainer ();
 
         if (container)
-          return new RadioButtonControl (oct_qobj, interp, go,
+          return new RadioButtonControl (interp, go,
                                          new QRadioButton (container));
       }
 
     return nullptr;
   }
 
-  RadioButtonControl::RadioButtonControl (octave::base_qobject& oct_qobj,
-                                          octave::interpreter& interp,
+  RadioButtonControl::RadioButtonControl (octave::interpreter& interp,
                                           const graphics_object& go,
                                           QRadioButton *radio)
-    : ButtonControl (oct_qobj, interp, go, radio)
+    : ButtonControl (interp, go, radio)
   {
     Object *parent = parentObject (interp, go);
     ButtonGroup *btnGroup = dynamic_cast<ButtonGroup *>(parent);
--- a/libgui/graphics/RadioButtonControl.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/RadioButtonControl.h	Sun Dec 04 22:57:02 2022 -0500
@@ -32,7 +32,6 @@
 
 namespace octave
 {
-  class base_qobject;
   class interpreter;
 }
 
@@ -42,13 +41,11 @@
   class RadioButtonControl : public ButtonControl
   {
   public:
-    RadioButtonControl (octave::base_qobject& oct_qobj,
-                        octave::interpreter& interp, const graphics_object& go,
+    RadioButtonControl (octave::interpreter& interp, const graphics_object& go,
                         QRadioButton *box);
     ~RadioButtonControl (void);
 
-    static RadioButtonControl * create (octave::base_qobject& oct_qobj,
-                                        octave::interpreter& interp,
+    static RadioButtonControl * create (octave::interpreter& interp,
                                         const graphics_object& go);
 
   protected:
--- a/libgui/graphics/SliderControl.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/SliderControl.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -33,8 +33,6 @@
 #include "SliderControl.h"
 #include "QtHandlesUtils.h"
 
-#include "octave-qobject.h"
-
 #include "graphics.h"
 #include "interpreter.h"
 
@@ -44,8 +42,7 @@
 {
 
   SliderControl *
-  SliderControl::create (octave::base_qobject& oct_qobj,
-                         octave::interpreter& interp,
+  SliderControl::create (octave::interpreter& interp,
                          const graphics_object& go)
   {
     Object *parent = parentObject (interp, go);
@@ -55,18 +52,17 @@
         Container *container = parent->innerContainer ();
 
         if (container)
-          return new SliderControl (oct_qobj, interp, go,
+          return new SliderControl (interp, go,
                                     new QScrollBar (container));
       }
 
     return nullptr;
   }
 
-  SliderControl::SliderControl (octave::base_qobject& oct_qobj,
-                                octave::interpreter& interp,
+  SliderControl::SliderControl (octave::interpreter& interp,
                                 const graphics_object& go,
                                 QAbstractSlider *slider)
-    : BaseControl (oct_qobj, interp, go, slider), m_blockUpdates (false)
+    : BaseControl (interp, go, slider), m_blockUpdates (false)
   {
     uicontrol::properties& up = properties<uicontrol> ();
 
--- a/libgui/graphics/SliderControl.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/SliderControl.h	Sun Dec 04 22:57:02 2022 -0500
@@ -32,7 +32,6 @@
 
 namespace octave
 {
-  class base_qobject;
   class interpreter;
 }
 
@@ -44,12 +43,12 @@
     Q_OBJECT
 
   public:
-    SliderControl (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+    SliderControl (octave::interpreter& interp,
                    const graphics_object& go, QAbstractSlider *slider);
     ~SliderControl (void);
 
     static SliderControl *
-    create (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+    create (octave::interpreter& interp,
             const graphics_object& go);
 
   protected:
--- a/libgui/graphics/Table.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/Table.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -48,8 +48,6 @@
 #include "Table.h"
 #include "QtHandlesUtils.h"
 
-#include "octave-qobject.h"
-
 #include "graphics.h"
 #include "interpreter.h"
 #include "oct-map.h"
@@ -436,7 +434,7 @@
   }
 
   Table *
-  Table::create (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+  Table::create (octave::interpreter& interp,
                  const graphics_object& go)
   {
     Object *parent = parentObject (interp, go);
@@ -446,15 +444,15 @@
         Container *container = parent->innerContainer ();
 
         if (container)
-          return new Table (oct_qobj, interp, go, new QTableWidget (container));
+          return new Table (interp, go, new QTableWidget (container));
       }
 
     return 0;
   }
 
-  Table::Table (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+  Table::Table (octave::interpreter& interp,
                 const graphics_object& go, QTableWidget *tableWidget)
-    : Object (oct_qobj, interp, go, tableWidget), m_tableWidget (tableWidget),
+    : Object (interp, go, tableWidget), m_tableWidget (tableWidget),
       m_curData (), m_blockUpdates (false)
   {
     qObject ()->setObjectName ("UItable");
--- a/libgui/graphics/Table.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/Table.h	Sun Dec 04 22:57:02 2022 -0500
@@ -34,7 +34,6 @@
 
 namespace octave
 {
-  class base_qobject;
   class interpreter;
 }
 
@@ -48,7 +47,7 @@
     Q_OBJECT
 
   public:
-    Table (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+    Table (octave::interpreter& interp,
            const graphics_object& go, QTableWidget *tableWidget);
     ~Table (void);
 
@@ -57,7 +56,7 @@
     bool eventFilter (QObject *watched, QEvent *event);
 
     static Table *
-    create (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+    create (octave::interpreter& interp,
             const graphics_object& go);
 
   protected:
--- a/libgui/graphics/TextControl.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/TextControl.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -33,14 +33,11 @@
 #include "TextControl.h"
 #include "QtHandlesUtils.h"
 
-#include "octave-qobject.h"
-
 namespace octave
 {
 
   TextControl *
-  TextControl::create (octave::base_qobject& oct_qobj,
-                       octave::interpreter& interp, const graphics_object& go)
+  TextControl::create (octave::interpreter& interp, const graphics_object& go)
   {
     Object *parent = parentObject (interp, go);
 
@@ -49,16 +46,15 @@
         Container *container = parent->innerContainer ();
 
         if (container)
-          return new TextControl (oct_qobj, interp, go, new QLabel (container));
+          return new TextControl (interp, go, new QLabel (container));
       }
 
     return nullptr;
   }
 
-  TextControl::TextControl (octave::base_qobject& oct_qobj,
-                            octave::interpreter& interp,
+  TextControl::TextControl (octave::interpreter& interp,
                             const graphics_object& go, QLabel *label)
-    : BaseControl (oct_qobj, interp, go, label)
+    : BaseControl (interp, go, label)
   {
     uicontrol::properties& up = properties<uicontrol> ();
 
--- a/libgui/graphics/TextControl.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/TextControl.h	Sun Dec 04 22:57:02 2022 -0500
@@ -32,7 +32,6 @@
 
 namespace octave
 {
-  class base_qobject;
   class interpreter;
 }
 
@@ -42,12 +41,12 @@
   class TextControl : public BaseControl
   {
   public:
-    TextControl (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+    TextControl (octave::interpreter& interp,
                  const graphics_object& go, QLabel *label);
     ~TextControl (void);
 
     static TextControl *
-    create (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+    create (octave::interpreter& interp,
             const graphics_object& go);
 
   protected:
--- a/libgui/graphics/ToggleButtonControl.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/ToggleButtonControl.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -34,14 +34,11 @@
 #include "Container.h"
 #include "QtHandlesUtils.h"
 
-#include "octave-qobject.h"
-
 namespace octave
 {
 
   ToggleButtonControl *
-  ToggleButtonControl::create (octave::base_qobject& oct_qobj,
-                               octave::interpreter& interp,
+  ToggleButtonControl::create (octave::interpreter& interp,
                                const graphics_object& go)
   {
     Object *parent = parentObject (interp, go);
@@ -51,18 +48,17 @@
         Container *container = parent->innerContainer ();
 
         if (container)
-          return new ToggleButtonControl (oct_qobj, interp, go,
+          return new ToggleButtonControl (interp, go,
                                           new QPushButton (container));
       }
 
     return nullptr;
   }
 
-  ToggleButtonControl::ToggleButtonControl (octave::base_qobject& oct_qobj,
-                                            octave::interpreter& interp,
+  ToggleButtonControl::ToggleButtonControl (octave::interpreter& interp,
                                             const graphics_object& go,
                                             QPushButton *btn)
-    : ButtonControl (oct_qobj, interp, go, btn)
+    : ButtonControl (interp, go, btn)
   {
     Object *parent = parentObject (interp, go);
     ButtonGroup *btnGroup = dynamic_cast<ButtonGroup *>(parent);
--- a/libgui/graphics/ToggleButtonControl.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/ToggleButtonControl.h	Sun Dec 04 22:57:02 2022 -0500
@@ -32,7 +32,6 @@
 
 namespace octave
 {
-  class base_qobject;
   class interpreter;
 }
 
@@ -42,13 +41,12 @@
   class ToggleButtonControl : public ButtonControl
   {
   public:
-    ToggleButtonControl (octave::base_qobject& oct_qobj,
-                         octave::interpreter& interp,
+    ToggleButtonControl (octave::interpreter& interp,
                          const graphics_object& go, QPushButton *box);
     ~ToggleButtonControl (void);
 
     static ToggleButtonControl *
-    create (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+    create (octave::interpreter& interp,
             const graphics_object& go);
 
   protected:
--- a/libgui/graphics/ToggleTool.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/ToggleTool.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -31,14 +31,11 @@
 
 #include "ToolBarButton.cc"
 
-#include "octave-qobject.h"
-
 namespace octave
 {
 
   ToggleTool *
-  ToggleTool::create (octave::base_qobject& oct_qobj,
-                      octave::interpreter& interp, const graphics_object& go)
+  ToggleTool::create (octave::interpreter& interp, const graphics_object& go)
   {
     Object *parent = parentObject (interp, go);
 
@@ -47,17 +44,16 @@
         QWidget *parentWidget = parent->qWidget<QWidget> ();
 
         if (parentWidget)
-          return new ToggleTool (oct_qobj, interp, go,
+          return new ToggleTool (interp, go,
                                  new QAction (parentWidget));
       }
 
     return nullptr;
   }
 
-  ToggleTool::ToggleTool (octave::base_qobject& oct_qobj,
-                          octave::interpreter& interp,
+  ToggleTool::ToggleTool (octave::interpreter& interp,
                           const graphics_object& go, QAction *action)
-    : ToolBarButton<uitoggletool> (oct_qobj, interp, go, action)
+    : ToolBarButton<uitoggletool> (interp, go, action)
   {
     uitoggletool::properties& tp = properties<uitoggletool> ();
 
--- a/libgui/graphics/ToggleTool.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/ToggleTool.h	Sun Dec 04 22:57:02 2022 -0500
@@ -30,7 +30,6 @@
 
 namespace octave
 {
-  class base_qobject;
   class interpreter;
 }
 
@@ -42,13 +41,13 @@
     Q_OBJECT
 
   public:
-    ToggleTool (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+    ToggleTool (octave::interpreter& interp,
                 const graphics_object& go,
                 QAction *action);
     ~ToggleTool (void);
 
     static ToggleTool *
-    create (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+    create (octave::interpreter& interp,
             const graphics_object& go);
 
   protected:
--- a/libgui/graphics/ToolBar.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/ToolBar.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -42,7 +42,6 @@
 #include "QtHandlesUtils.h"
 
 #include "gui-preferences-global.h"
-#include "octave-qobject.h"
 
 namespace octave
 {
@@ -69,7 +68,7 @@
   }
 
   ToolBar *
-  ToolBar::create (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+  ToolBar::create (octave::interpreter& interp,
                    const graphics_object& go)
   {
     Object *parent = parentObject (interp, go);
@@ -79,16 +78,16 @@
         QWidget *parentWidget = parent->qWidget<QWidget> ();
 
         if (parentWidget)
-          return new ToolBar (oct_qobj, interp, go,
+          return new ToolBar (interp, go,
                               new QToolBar (parentWidget));
       }
 
     return nullptr;
   }
 
-  ToolBar::ToolBar (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+  ToolBar::ToolBar (octave::interpreter& interp,
                     const graphics_object& go, QToolBar *bar)
-    : Object (oct_qobj, interp, go, bar), m_empty (nullptr), m_figure (nullptr)
+    : Object (interp, go, bar), m_empty (nullptr), m_figure (nullptr)
   {
     uitoolbar::properties& tp = properties<uitoolbar> ();
 
--- a/libgui/graphics/ToolBar.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/ToolBar.h	Sun Dec 04 22:57:02 2022 -0500
@@ -33,7 +33,6 @@
 
 namespace octave
 {
-  class base_qobject;
   class interpreter;
 }
 
@@ -47,12 +46,12 @@
     Q_OBJECT
 
   public:
-    ToolBar (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+    ToolBar (octave::interpreter& interp,
              const graphics_object& go, QToolBar *bar);
     ~ToolBar (void);
 
     static ToolBar *
-    create (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+    create (octave::interpreter& interp,
             const graphics_object& go);
 
     Container * innerContainer (void) { return nullptr; }
--- a/libgui/graphics/ToolBarButton.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/ToolBarButton.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -34,16 +34,14 @@
 
 #include "ToolBarButton.h"
 #include "QtHandlesUtils.h"
-#include "octave-qobject.h"
 #include "gui-preferences-global.h"
 
 namespace octave
 {
   template <typename T>
-  ToolBarButton<T>::ToolBarButton (octave::base_qobject& oct_qobj,
-                                   octave::interpreter& interp,
+  ToolBarButton<T>::ToolBarButton (octave::interpreter& interp,
                                    const graphics_object& go, QAction *action)
-    : Object (oct_qobj, interp, go, action), m_separator (nullptr)
+    : Object (interp, go, action), m_separator (nullptr)
   {
     typename T::properties& tp = properties<T> ();
 
--- a/libgui/graphics/ToolBarButton.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/ToolBarButton.h	Sun Dec 04 22:57:02 2022 -0500
@@ -33,7 +33,6 @@
 
 namespace octave
 {
-  class base_qobject;
   class interpreter;
 }
 
@@ -46,7 +45,7 @@
   class ToolBarButton : public Object
   {
   public:
-    ToolBarButton (octave::base_qobject& oct_qobj, octave::interpreter& interp,
+    ToolBarButton (octave::interpreter& interp,
                    const graphics_object& go, QAction *action);
     ~ToolBarButton (void);
 
--- a/libgui/graphics/annotation-dialog.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/annotation-dialog.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -34,17 +34,13 @@
 #include "gui-settings.h"
 #include "gui-preferences-gp.h"
 #include "gui-settings.h"
-#include "octave-qobject.h"
 
 #include "QtHandlesUtils.h"
 #include "annotation-dialog.h"
 #include "ui-annotation-dialog.h"
 
-using namespace octave;
-
-annotation_dialog::annotation_dialog (octave::base_qobject& oct_qobj,
-                                      QWidget *p, const octave_value_list& pr):
-  QDialog (p), m_octave_qobj (oct_qobj), ui (new Ui::annotation_dialog)
+annotation_dialog::annotation_dialog (QWidget *p, const octave_value_list& pr):
+  QDialog (p), ui (new Ui::annotation_dialog)
 {
   props = pr;
 
@@ -160,7 +156,7 @@
                      ui->cb_font_bold->isChecked () ? "bold" : "normal"));
   props.append (ovl ("fontangle",
                      ui->cb_font_italic->isChecked () ? "italic" : "normal"));
-  props.append (ovl ("color", Utils::toRgb (ui->btn_color->palette ().
+  props.append (ovl ("color", octave::Utils::toRgb (ui->btn_color->palette ().
                      color (QPalette::Button))));
 
   // FIXME: only "none" linestyle is selectable, change the code bellow
@@ -245,7 +241,7 @@
         {
           QColor color;
           if (props(1*i +1).is_matrix_type ())
-            color = Utils::fromRgb (props(2*i +1).matrix_value ());
+            color = octave::Utils::fromRgb (props(2*i +1).matrix_value ());
           else
             color.setNamedColor (props(2*i +1).string_value ().c_str ());
 
--- a/libgui/graphics/annotation-dialog.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/annotation-dialog.h	Sun Dec 04 22:57:02 2022 -0500
@@ -32,11 +32,6 @@
 
 #include "ovl.h"
 
-namespace octave
-{
-  class base_qobject;
-}
-
 namespace Ui
 {
   class annotation_dialog;
@@ -46,8 +41,7 @@
 {
   Q_OBJECT
 public:
-  annotation_dialog (octave::base_qobject& oct_qobj, QWidget *parent,
-                     const octave_value_list& pr);
+  annotation_dialog (QWidget *parent, const octave_value_list& pr);
   ~annotation_dialog ();
 
   octave_value_list get_properties () const;
@@ -64,7 +58,6 @@
   void get_gui_props ();
   void set_gui_props ();
 
-  octave::base_qobject& m_octave_qobj;
   Ui::annotation_dialog *ui;
   octave_value_list props;
 };
--- a/libgui/graphics/qt-graphics-toolkit.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/qt-graphics-toolkit.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -57,8 +57,6 @@
 #include "ToolBar.h"
 #include "qt-graphics-toolkit.h"
 
-#include "octave-qobject.h"
-
 #include "event-manager.h"
 #include "graphics.h"
 #include "interpreter.h"
@@ -98,10 +96,8 @@
     return "";
   }
 
-  qt_graphics_toolkit::qt_graphics_toolkit (octave::interpreter& interp,
-                                            octave::base_qobject& oct_qobj)
-    : QObject (), base_graphics_toolkit ("qt"), m_interpreter (interp),
-      m_octave_qobj (oct_qobj)
+  qt_graphics_toolkit::qt_graphics_toolkit (octave::interpreter& interp)
+    : QObject (), base_graphics_toolkit ("qt"), m_interpreter (interp)
   {
     // Implemented with a signal/slot connection in order to properly
     // cross from the interpreter thread (where requests to create
@@ -412,47 +408,47 @@
     Object *obj = nullptr;
 
     if (go.isa ("figure"))
-      obj = Figure::create (m_octave_qobj, m_interpreter, go);
+      obj = Figure::create (m_interpreter, go);
     else if (go.isa ("uicontrol"))
       {
         uicontrol::properties& up =
           Utils::properties<uicontrol> (go);
 
         if (up.style_is ("pushbutton"))
-          obj = PushButtonControl::create (m_octave_qobj, m_interpreter, go);
+          obj = PushButtonControl::create (m_interpreter, go);
         else if (up.style_is ("edit"))
-          obj = EditControl::create (m_octave_qobj, m_interpreter, go);
+          obj = EditControl::create (m_interpreter, go);
         else if (up.style_is ("checkbox"))
-          obj = CheckBoxControl::create (m_octave_qobj, m_interpreter, go);
+          obj = CheckBoxControl::create (m_interpreter, go);
         else if (up.style_is ("radiobutton"))
-          obj = RadioButtonControl::create (m_octave_qobj, m_interpreter, go);
+          obj = RadioButtonControl::create (m_interpreter, go);
         else if (up.style_is ("togglebutton"))
-          obj = ToggleButtonControl::create (m_octave_qobj, m_interpreter, go);
+          obj = ToggleButtonControl::create (m_interpreter, go);
         else if (up.style_is ("text"))
-          obj = TextControl::create (m_octave_qobj, m_interpreter, go);
+          obj = TextControl::create (m_interpreter, go);
         else if (up.style_is ("popupmenu"))
-          obj = PopupMenuControl::create (m_octave_qobj, m_interpreter, go);
+          obj = PopupMenuControl::create (m_interpreter, go);
         else if (up.style_is ("slider"))
-          obj = SliderControl::create (m_octave_qobj, m_interpreter, go);
+          obj = SliderControl::create (m_interpreter, go);
         else if (up.style_is ("listbox"))
-          obj = ListBoxControl::create (m_octave_qobj, m_interpreter, go);
+          obj = ListBoxControl::create (m_interpreter, go);
       }
     else if (go.isa ("uibuttongroup"))
-      obj = ButtonGroup::create (m_octave_qobj, m_interpreter, go);
+      obj = ButtonGroup::create (m_interpreter, go);
     else if (go.isa ("uipanel"))
-      obj = Panel::create (m_octave_qobj, m_interpreter, go);
+      obj = Panel::create (m_interpreter, go);
     else if (go.isa ("uimenu"))
-      obj = Menu::create (m_octave_qobj, m_interpreter, go);
+      obj = Menu::create (m_interpreter, go);
     else if (go.isa ("uicontextmenu"))
-      obj = ContextMenu::create (m_octave_qobj, m_interpreter, go);
+      obj = ContextMenu::create (m_interpreter, go);
     else if (go.isa ("uitable"))
-      obj = Table::create (m_octave_qobj, m_interpreter, go);
+      obj = Table::create (m_interpreter, go);
     else if (go.isa ("uitoolbar"))
-      obj = ToolBar::create (m_octave_qobj, m_interpreter, go);
+      obj = ToolBar::create (m_interpreter, go);
     else if (go.isa ("uipushtool"))
-      obj = PushTool::create (m_octave_qobj, m_interpreter, go);
+      obj = PushTool::create (m_interpreter, go);
     else if (go.isa ("uitoggletool"))
-      obj = ToggleTool::create (m_octave_qobj, m_interpreter, go);
+      obj = ToggleTool::create (m_interpreter, go);
     else
       qWarning ("qt_graphics_toolkit::create_object: unsupported type '%s'",
                 go.type ().c_str ());
--- a/libgui/graphics/qt-graphics-toolkit.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/graphics/qt-graphics-toolkit.h	Sun Dec 04 22:57:02 2022 -0500
@@ -34,7 +34,6 @@
 namespace octave
 {
   class interpreter;
-  class base_qobject;
 }
 
 namespace octave
@@ -49,8 +48,7 @@
 
   public:
 
-    qt_graphics_toolkit (octave::interpreter& interp,
-                         octave::base_qobject& oct_qobj);
+    qt_graphics_toolkit (octave::interpreter& interp);
 
     ~qt_graphics_toolkit (void) = default;
 
@@ -122,8 +120,6 @@
   private:
 
     octave::interpreter& m_interpreter;
-
-    octave::base_qobject& m_octave_qobj;
   };
 }
 
--- a/libgui/src/command-widget.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/src/command-widget.h	Sun Dec 04 22:57:02 2022 -0500
@@ -30,7 +30,11 @@
 
 #include <Qsci/qsciscintilla.h>
 
-#include "octave-qobject.h"
+// FIXME: We need the following header for the fcn_callback and
+// meth_callback typedefs.  Maybe it would be better to declare those in
+// a separate file because inclding "event-manager.h" pulls in a lot of
+// other unnecessary declarations.
+#include "event-manager.h"
 
 class QsciScintilla;
 
--- a/libgui/src/community-news.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/src/community-news.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -37,26 +37,23 @@
 #include "gui-preferences-nr.h"
 #include "gui-settings.h"
 #include "news-reader.h"
-#include "octave-qobject.h"
 
 namespace octave
 {
-  community_news::community_news (base_qobject& oct_qobj, int serial)
+  community_news::community_news (int serial)
     : QWidget (nullptr), m_browser (nullptr)
   {
-    construct (oct_qobj, "https://octave.org", "community-news.html", serial);
+    construct ("https://octave.org", "community-news.html", serial);
   }
 
-  community_news::community_news (base_qobject& oct_qobj, QWidget *parent,
-                                  const QString& base_url, const QString& page,
-                                  int serial)
+  community_news::community_news (QWidget *parent, const QString& base_url,
+                                  const QString& page, int serial)
     : QWidget (parent), m_browser (nullptr)
   {
-    construct (oct_qobj, base_url, page, serial);
+    construct (base_url, page, serial);
   }
 
-  void community_news::construct (base_qobject& oct_qobj,
-                                  const QString& base_url, const QString& page,
+  void community_news::construct (const QString& base_url, const QString& page,
                                   int serial)
   {
     m_browser = new QTextBrowser (this);
@@ -96,8 +93,8 @@
 
     QThread *worker_thread = new QThread;
 
-    news_reader *reader = new news_reader (oct_qobj, base_url, page,
-                                           serial, connect_to_web);
+    news_reader *reader
+      = new news_reader (base_url, page, serial, connect_to_web);
 
     reader->moveToThread (worker_thread);
 
--- a/libgui/src/community-news.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/src/community-news.h	Sun Dec 04 22:57:02 2022 -0500
@@ -33,17 +33,15 @@
 
 namespace octave
 {
-  class base_qobject;
-
   class community_news : public QWidget
   {
     Q_OBJECT
 
   public:
 
-    community_news (base_qobject& oct_qobj, int serial);
+    community_news (int serial);
 
-    community_news (base_qobject& oct_qobj, QWidget *parent = nullptr,
+    community_news (QWidget *parent = nullptr,
                     const QString& base_url = "https://octave.org",
                     const QString& page = "community-news.html",
                     int serial = -1);
@@ -58,8 +56,7 @@
 
   private:
 
-    void construct (base_qobject& oct_qobj, const QString& base_url,
-                    const QString& page, int serial);
+    void construct (const QString& base_url, const QString& page, int serial);
 
     QTextBrowser *m_browser;
   };
--- a/libgui/src/documentation-bookmarks.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/src/documentation-bookmarks.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -28,7 +28,10 @@
 #endif
 
 #include <QCompleter>
+#include <QDir>
+#include <QFileInfo>
 #include <QMenu>
+#include <QMessageBox>
 #include <QShortcut>
 #include <QVBoxLayout>
 #include <QWidget>
@@ -49,12 +52,10 @@
 
 namespace octave
 {
-  documentation_bookmarks::documentation_bookmarks (
-                      documentation *doc, documentation_browser *browser,
-                      base_qobject& oct_qobj, QWidget *p)
-    : QWidget (p),
-      m_doc (doc), m_browser (browser), m_octave_qobj (oct_qobj),
-      m_ctx_menu_item (nullptr)
+  documentation_bookmarks::documentation_bookmarks (documentation *doc,
+                                                    documentation_browser *browser,
+                                                    QWidget *p)
+    : QWidget (p), m_doc (doc), m_browser (browser), m_ctx_menu_item (nullptr)
   {
     setObjectName ("documentation_tab_bookmarks");
 
--- a/libgui/src/documentation-bookmarks.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/src/documentation-bookmarks.h	Sun Dec 04 22:57:02 2022 -0500
@@ -28,16 +28,14 @@
 
 #include <QCheckBox>
 #include <QComboBox>
+#include <QFile>
 #include <QTreeWidget>
 #include <QXmlStreamWriter>
 
 #include "documentation.h"
-#include "octave-qobject.h"
-
 
 namespace octave
 {
-  class base_qobject;
   class documentation;
 
   class documentation_bookmarks : public QWidget
@@ -46,9 +44,9 @@
 
   public:
 
-    documentation_bookmarks (
-      documentation *doc, documentation_browser *browser,
-      base_qobject& oct_qobj, QWidget *p = nullptr);
+    documentation_bookmarks (documentation *doc,
+                             documentation_browser *browser,
+                             QWidget *p = nullptr);
 
     ~documentation_bookmarks (void) = default;
 
@@ -103,7 +101,6 @@
 
     documentation *m_doc;
     documentation_browser *m_browser;
-    base_qobject& m_octave_qobj;
 
     QComboBox *m_filter;
     QTreeWidget *m_tree;
--- a/libgui/src/documentation.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/src/documentation.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -265,8 +265,7 @@
                  this, &documentation::filter_update_history);
 
         // Bookmarks (own class)
-        m_bookmarks
-          = new documentation_bookmarks (this, m_doc_browser, m_octave_qobj, navi);
+        m_bookmarks = new documentation_bookmarks (this, m_doc_browser, navi);
         navi->addTab (m_bookmarks, tr ("Bookmarks"));
 
         connect (m_action_bookmark, &QAction::triggered,
--- a/libgui/src/external-editor-interface.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/src/external-editor-interface.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -33,13 +33,11 @@
 #include "external-editor-interface.h"
 #include "gui-settings.h"
 #include "gui-preferences-global.h"
-#include "octave-qobject.h"
 
 namespace octave
 {
-  external_editor_interface::external_editor_interface (QWidget *p,
-                                                        base_qobject& oct_qobj)
-    : QWidget (p), m_octave_qobj (oct_qobj)
+  external_editor_interface::external_editor_interface (QWidget *p)
+    : QWidget (p)
   { }
 
   // Calling the external editor
--- a/libgui/src/external-editor-interface.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/src/external-editor-interface.h	Sun Dec 04 22:57:02 2022 -0500
@@ -31,15 +31,13 @@
 
 namespace octave
 {
-  class base_qobject;
-
   class external_editor_interface : public QWidget
   {
     Q_OBJECT
 
   public:
 
-    external_editor_interface (QWidget *main_win, base_qobject& oct_qobj);
+    external_editor_interface (QWidget *main_win);
 
     ~external_editor_interface (void) = default;
 
@@ -64,8 +62,6 @@
   private:
 
     QString external_editor (void);
-
-    base_qobject& m_octave_qobj;
   };
 }
 
--- a/libgui/src/find-files-dialog.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/src/find-files-dialog.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -50,12 +50,11 @@
 #include "gui-preferences-global.h"
 #include "gui-preferences-ff.h"
 #include "gui-settings.h"
-#include "octave-qobject.h"
 
 namespace octave
 {
-  find_files_dialog::find_files_dialog (QWidget *p, base_qobject& oct_qobj)
-    : QDialog (p), m_octave_qobj (oct_qobj)
+  find_files_dialog::find_files_dialog (QWidget *p)
+    : QDialog (p)
   {
     gui_settings settings;
 
--- a/libgui/src/find-files-dialog.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/src/find-files-dialog.h	Sun Dec 04 22:57:02 2022 -0500
@@ -39,15 +39,13 @@
 
 namespace octave
 {
-  class base_qobject;
-
   class find_files_dialog : public QDialog
   {
     Q_OBJECT
 
   public:
 
-    find_files_dialog (QWidget *parent, base_qobject& oct_qobj);
+    find_files_dialog (QWidget *parent);
 
     virtual ~find_files_dialog (void);
 
@@ -75,8 +73,6 @@
 
     bool is_match (const QFileInfo& info);
 
-    base_qobject& m_octave_qobj;
-
     QLineEdit *m_start_dir_edit;
     QLineEdit *m_file_name_edit;
     QPushButton *m_stop_button;
--- a/libgui/src/graphics-init.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/src/graphics-init.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -32,7 +32,6 @@
 #include <QThread>
 
 #include "graphics-init.h"
-#include "octave-qobject.h"
 #include "qt-graphics-toolkit.h"
 #include "QtHandlesUtils.h"
 
@@ -42,7 +41,7 @@
 
 namespace octave
 {
-  void graphics_init (interpreter& interp, base_qobject& oct_qobj)
+  void graphics_init (interpreter& interp)
   {
 #if defined (HAVE_QT_GRAPHICS)
 
@@ -54,7 +53,7 @@
 
     gh_mgr.enable_event_processing (true);
 
-    qt_graphics_toolkit *qt_gtk = new qt_graphics_toolkit (interp, oct_qobj);
+    qt_graphics_toolkit *qt_gtk = new qt_graphics_toolkit (interp);
 
     if (QThread::currentThread ()
         != QApplication::instance ()->thread ())
--- a/libgui/src/graphics-init.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/src/graphics-init.h	Sun Dec 04 22:57:02 2022 -0500
@@ -34,9 +34,7 @@
 {
   class interpreter;
 
-  class base_qobject;
-
-  extern void graphics_init (interpreter& interp, base_qobject& oct_qobj);
+  extern void graphics_init (interpreter& interp);
 }
 
 #endif
--- a/libgui/src/interpreter-qobject.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/src/interpreter-qobject.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -82,7 +82,7 @@
 
             emit ready ();
 
-            graphics_init (interp, m_octave_qobj);
+            graphics_init (interp);
 
             // Start executing commands in the command window.
 
--- a/libgui/src/m-editor/file-editor.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/src/m-editor/file-editor.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -904,9 +904,9 @@
       m_find_dialog->close ();
 
     if (isFloating ())
-      m_find_dialog = new find_dialog (m_octave_qobj, this, this);
+      m_find_dialog = new find_dialog (this, this);
     else
-      m_find_dialog = new find_dialog (m_octave_qobj, this, parentWidget ());
+      m_find_dialog = new find_dialog (this, parentWidget ());
 
     // Add required actions
     m_find_dialog->addAction (m_find_next_action);
--- a/libgui/src/m-editor/find-dialog.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/src/m-editor/find-dialog.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -84,14 +84,12 @@
 #include "gui-preferences-ed.h"
 #include "gui-utils.h"
 #include "resource-manager.h"
-#include "octave-qobject.h"
 
 namespace octave
 {
-  find_dialog::find_dialog (base_qobject& oct_qobj,
-                            octave_dock_widget *ed, QWidget *p)
-    : QDialog (p), m_octave_qobj (oct_qobj), m_editor (ed),
-      m_in_sel (false), m_sel_beg (-1), m_sel_end (-1)
+  find_dialog::find_dialog (octave_dock_widget *ed, QWidget *p)
+    : QDialog (p), m_editor (ed), m_in_sel (false),
+      m_sel_beg (-1), m_sel_end (-1)
   {
     setWindowTitle (tr ("Editor: Find and Replace"));
 
--- a/libgui/src/m-editor/find-dialog.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/src/m-editor/find-dialog.h	Sun Dec 04 22:57:02 2022 -0500
@@ -79,7 +79,6 @@
 
 namespace octave
 {
-  class base_qobject;
   class file_editor;
 
   class find_dialog : public QDialog
@@ -88,7 +87,7 @@
 
   public:
 
-    find_dialog (base_qobject& oct_qobj, octave_dock_widget *ed, QWidget *p);
+    find_dialog (octave_dock_widget *ed, QWidget *p);
 
     //! Set dialog visible or not and storing the new visibility state
     void set_visible (bool visible);
@@ -122,8 +121,6 @@
 
   private:
 
-    base_qobject& m_octave_qobj;
-
     //! Save position and the search options in the given settings
     void save_settings ();
 
--- a/libgui/src/main-window.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/src/main-window.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -100,7 +100,7 @@
       m_file_browser_window (nullptr),
       m_editor_window (nullptr),
       m_workspace_window (nullptr),
-      m_external_editor (new external_editor_interface (this, m_octave_qobj)),
+      m_external_editor (new external_editor_interface (this)),
       m_active_editor (m_external_editor), m_settings_dlg (nullptr),
       m_find_files_dlg (nullptr), m_set_path_dlg (nullptr),
       m_clipboard (QApplication::clipboard ()),
@@ -118,7 +118,7 @@
         // Before wizard.
         m_octave_qobj.config_translators ();
 
-        welcome_wizard welcomeWizard (m_octave_qobj);
+        welcome_wizard welcomeWizard;
 
         if (welcomeWizard.exec () == QDialog::Rejected)
           exit (1);
@@ -1802,7 +1802,7 @@
     if (m_set_path_dlg)  // m_set_path_dlg is a guarded pointer!
       return;
 
-    m_set_path_dlg = new set_path_dialog (this, m_octave_qobj);
+    m_set_path_dlg = new set_path_dialog (this);
 
     m_set_path_dlg->setModal (false);
     m_set_path_dlg->setAttribute (Qt::WA_DeleteOnClose);
@@ -1838,7 +1838,7 @@
 
     if (! m_find_files_dlg)
       {
-        m_find_files_dlg = new find_files_dialog (this, m_octave_qobj);
+        m_find_files_dlg = new find_files_dialog (this);
 
         connect (m_find_files_dlg, &find_files_dialog::finished,
                  this, &main_window::find_files_finished);
--- a/libgui/src/main-window.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/src/main-window.h	Sun Dec 04 22:57:02 2022 -0500
@@ -52,7 +52,6 @@
 #include "interpreter-qobject.h"
 #include "led-indicator.h"
 #include "octave-dock-widget.h"
-#include "octave-qobject.h"
 #include "qt-interpreter-events.h"
 #include "set-path-dialog.h"
 #include "terminal-dock-widget.h"
@@ -65,6 +64,7 @@
 {
   class interpreter;
 
+  class base_qobject;
   class settings_dialog;
 
   //! Represents the main window.
--- a/libgui/src/news-reader.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/src/news-reader.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -33,7 +33,6 @@
 #include <QString>
 
 #include "news-reader.h"
-#include "octave-qobject.h"
 #include "gui-preferences-nr.h"
 #include "gui-settings.h"
 
--- a/libgui/src/news-reader.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/src/news-reader.h	Sun Dec 04 22:57:02 2022 -0500
@@ -31,18 +31,15 @@
 
 namespace octave
 {
-  class base_qobject;
-
   class news_reader : public QObject
   {
     Q_OBJECT
 
   public:
 
-    news_reader (base_qobject& oct_qobj, const QString& base_url,
-                 const QString& page, int serial = -1,
-                 bool connect_to_web = false)
-      : QObject (), m_octave_qobj (oct_qobj), m_base_url (base_url),
+    news_reader (const QString& base_url, const QString& page,
+                 int serial = -1, bool connect_to_web = false)
+      : QObject (), m_base_url (base_url),
         m_page (page), m_serial (serial), m_connect_to_web (connect_to_web)
     { }
 
@@ -58,8 +55,6 @@
 
   private:
 
-    base_qobject& m_octave_qobj;
-
     QString m_base_url;
     QString m_page;
     int m_serial;
--- a/libgui/src/octave-qobject.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/src/octave-qobject.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -177,7 +177,7 @@
       m_argv (m_app_context.sys_argv ()),
       m_qapplication (new octave_qapplication (m_argc, m_argv)),
       m_resource_manager (),
-      m_shortcut_manager (*this),
+      m_shortcut_manager (),
       m_qt_tr (new QTranslator ()),
       m_gui_tr (new QTranslator ()),
       m_qsci_tr (new QTranslator ()),
@@ -730,7 +730,7 @@
   {
     if (! m_community_news)
       m_community_news
-        = QPointer<community_news> (new community_news (*this, serial));
+        = QPointer<community_news> (new community_news (serial));
 
     return m_community_news;
   }
--- a/libgui/src/release-notes.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/src/release-notes.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -42,7 +42,6 @@
 #include "gui-preferences-nr.h"
 #include "gui-settings.h"
 #include "news-reader.h"
-#include "octave-qobject.h"
 
 #include "defaults.h"
 
--- a/libgui/src/resource-manager.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/src/resource-manager.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -33,6 +33,7 @@
 #include <array>
 #include <string>
 
+#include <QApplication>
 #include <QDir>
 #include <QFile>
 #include <QLibraryInfo>
@@ -46,7 +47,6 @@
 #include "gui-preferences-ed.h"
 #include "gui-preferences-global.h"
 #include "gui-settings.h"
-#include "octave-qobject.h"
 #include "resource-manager.h"
 #include "variable-editor.h"
 #include "workspace-model.h"
--- a/libgui/src/set-path-dialog.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/src/set-path-dialog.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -51,7 +51,6 @@
 
 #include "gui-preferences-pd.h"
 #include "gui-settings.h"
-#include "octave-qobject.h"
 #include "octave-qtutils.h"
 #include "set-path-dialog.h"
 #include "set-path-model.h"
@@ -60,8 +59,8 @@
 
 namespace octave
 {
-  set_path_dialog::set_path_dialog (QWidget *parent, base_qobject& oct_qobj)
-    : QDialog (parent), m_octave_qobj (oct_qobj)
+  set_path_dialog::set_path_dialog (QWidget *parent)
+    : QDialog (parent)
   {
     setWindowTitle (tr ("Set Path"));
 
--- a/libgui/src/set-path-dialog.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/src/set-path-dialog.h	Sun Dec 04 22:57:02 2022 -0500
@@ -41,8 +41,6 @@
 
 namespace octave
 {
-  class base_qobject;
-
   class set_path_dialog : public QDialog
   {
     Q_OBJECT
@@ -53,7 +51,7 @@
     // in the dialog.  That may only be done after the intepreter_event
     // signal connections are made to the Octave interpreter.
 
-    set_path_dialog (QWidget *parent, base_qobject& oct_qobj);
+    set_path_dialog (QWidget *parent);
 
     virtual ~set_path_dialog (void) = default;
 
@@ -96,8 +94,6 @@
 
     void add_dir_common (bool subdirs);
 
-    base_qobject& m_octave_qobj;
-
     QLabel *m_info_label;
     QPushButton *m_reload_button;
     QPushButton *m_save_button;
--- a/libgui/src/shortcut-manager.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/src/shortcut-manager.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -42,7 +42,6 @@
 #include <QVBoxLayout>
 #include <QtCore>
 
-#include "octave-qobject.h"
 #include "shortcut-manager.h"
 #include "gui-preferences-global.h"
 #include "gui-preferences-sc.h"
@@ -110,8 +109,7 @@
   }
 
 
-  shortcut_manager::shortcut_manager (base_qobject& oct_qobj)
-    : m_octave_qobj (oct_qobj)
+  shortcut_manager::shortcut_manager (void)
   {
     setObjectName ("Shortcut_Manager");
 
--- a/libgui/src/shortcut-manager.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/src/shortcut-manager.h	Sun Dec 04 22:57:02 2022 -0500
@@ -62,7 +62,6 @@
   };
 
   class gui_settings;
-  class base_qobject;
 
   class shortcut_manager : public QWidget
   {
@@ -77,7 +76,7 @@
       OSC_DEFAULT = 2
     };
 
-    shortcut_manager (base_qobject& oct_qobj);
+    shortcut_manager (void);
 
     // No copying!
 
@@ -157,8 +156,6 @@
       QKeySequence m_default_sc;
     };
 
-    base_qobject& m_octave_qobj;
-
     QList<shortcut_t> m_sc;
     QHash<QString, int> m_shortcut_hash;
     QHash<QString, int> m_action_hash;
--- a/libgui/src/welcome-wizard.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/src/welcome-wizard.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -40,7 +40,6 @@
 #include "gui-preferences-dw.h"
 #include "gui-preferences-nr.h"
 #include "gui-settings.h"
-#include "octave-qobject.h"
 #include "welcome-wizard.h"
 
 namespace octave
@@ -54,10 +53,9 @@
     return logo;
   };
 
-  welcome_wizard::welcome_wizard (base_qobject& oct_qobj, QWidget *p)
-    : QDialog (p), m_octave_qobj (oct_qobj), m_page_ctor_list (),
-      m_page_list_iterator (),
-      m_current_page (initial_page::create (oct_qobj, this)),
+  welcome_wizard::welcome_wizard (QWidget *p)
+    : QDialog (p), m_page_ctor_list (), m_page_list_iterator (),
+      m_current_page (initial_page::create (this)),
       m_allow_web_connect_state (false),
       m_max_height (0), m_max_width (0)
   {
@@ -118,7 +116,7 @@
     delete m_current_page;
     delete layout ();
 
-    m_current_page = (*m_page_list_iterator) (m_octave_qobj, this);
+    m_current_page = (*m_page_list_iterator) (this);
 
     QVBoxLayout *new_layout = new QVBoxLayout ();
     setLayout (new_layout);
@@ -146,17 +144,14 @@
 
     gui_settings settings;
 
-    settings.reload ();
-
-    settings.setValue (nr_allow_connection.key,
-                       m_allow_web_connect_state);
+    settings.setValue (nr_allow_connection.key, m_allow_web_connect_state);
 
     settings.sync ();
 
     QDialog::accept ();
   }
 
-  initial_page::initial_page (base_qobject&, welcome_wizard *wizard)
+  initial_page::initial_page (welcome_wizard *wizard)
     : QWidget (wizard),
       m_title (new QLabel (tr ("Welcome to Octave!"), this)),
       m_message (new QLabel (this)),
@@ -214,8 +209,7 @@
     connect (m_cancel, &QPushButton::clicked, wizard, &welcome_wizard::reject);
   }
 
-  setup_community_news::setup_community_news (base_qobject&,
-                                              welcome_wizard *wizard)
+  setup_community_news::setup_community_news (welcome_wizard *wizard)
     : QWidget (wizard),
       m_title (new QLabel (tr ("Community News"), this)),
       m_message (new QLabel (this)),
@@ -308,7 +302,7 @@
     connect (m_cancel, &QPushButton::clicked, wizard, &welcome_wizard::reject);
   }
 
-  final_page::final_page (base_qobject&, welcome_wizard *wizard)
+  final_page::final_page (welcome_wizard *wizard)
     : QWidget (wizard),
       m_title (new QLabel (tr ("Enjoy!"), this)),
       m_message (new QLabel (this)),
--- a/libgui/src/welcome-wizard.h	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/src/welcome-wizard.h	Sun Dec 04 22:57:02 2022 -0500
@@ -32,17 +32,15 @@
 
 namespace octave
 {
-  class base_qobject;
-
   class welcome_wizard : public QDialog
   {
     Q_OBJECT
 
   public:
 
-    typedef QWidget *(*page_creator_fptr) (base_qobject&, welcome_wizard *);
+    typedef QWidget *(*page_creator_fptr) (welcome_wizard *);
 
-    welcome_wizard (base_qobject& oct_qobj, QWidget *parent = nullptr);
+    welcome_wizard (QWidget *parent = nullptr);
 
     ~welcome_wizard (void) = default;
 
@@ -50,8 +48,6 @@
 
   private:
 
-    base_qobject& m_octave_qobj;
-
     QList<page_creator_fptr> m_page_ctor_list;
     QList<page_creator_fptr>::iterator m_page_list_iterator;
     QWidget *m_current_page;
@@ -77,14 +73,14 @@
 
   public:
 
-    initial_page (base_qobject& oct_qobj, welcome_wizard *wizard);
+    initial_page (welcome_wizard *wizard);
 
     ~initial_page (void) = default;
 
     static QWidget *
-    create (base_qobject& oct_qobj, welcome_wizard *wizard)
+    create (welcome_wizard *wizard)
     {
-      return new initial_page (oct_qobj, wizard);
+      return new initial_page (wizard);
     }
 
   private:
@@ -103,14 +99,14 @@
 
   public:
 
-    setup_community_news (base_qobject& oct_qobj, welcome_wizard *wizard);
+    setup_community_news (welcome_wizard *wizard);
 
     ~setup_community_news (void) = default;
 
     static QWidget *
-    create (base_qobject& oct_qobj, welcome_wizard *wizard)
+    create (welcome_wizard *wizard)
     {
-      return new setup_community_news (oct_qobj, wizard);
+      return new setup_community_news (wizard);
     }
 
   private:
@@ -132,14 +128,14 @@
 
   public:
 
-    final_page (base_qobject& oct_qobj, welcome_wizard *wizard);
+    final_page (welcome_wizard *wizard);
 
     ~final_page (void) = default;
 
     static QWidget *
-    create (base_qobject& oct_qobj, welcome_wizard *wizard)
+    create (welcome_wizard *wizard)
     {
-      return new final_page (oct_qobj, wizard);
+      return new final_page (wizard);
     }
 
   private:
--- a/libgui/src/workspace-model.cc	Sun Dec 04 22:56:23 2022 -0500
+++ b/libgui/src/workspace-model.cc	Sun Dec 04 22:57:02 2022 -0500
@@ -33,7 +33,6 @@
 
 #include "gui-preferences-ws.h"
 #include "gui-settings.h"
-#include "octave-qobject.h"
 #include "workspace-model.h"
 
 #include "syminfo.h"