diff libgui/src/octave-dock-widget.cc @ 27629:8b6e928e0705

in GUI objects, store reference to base_qobject instead of resource_manager We'll need access to both the resource_manager and the shortcut_manager in many objects. The shortcut_manager will be moved to be a member of the base_qobject class instead of being a singleton, so this change will make it easier to access both of these as well as any other core GUI properties in any of the Octave-specific widgets that make up the GUI. Once again, may files are affecte but the changes are straightforward: store a reference to the base_qobject object and access the resource_manager object from that instead of storing a reference to the resource_manager directly.
author John W. Eaton <jwe@octave.org>
date Mon, 04 Nov 2019 13:34:44 -0500
parents 45bb5bbaf291
children a1271c5b621a
line wrap: on
line diff
--- a/libgui/src/octave-dock-widget.cc	Mon Nov 04 11:18:28 2019 -0500
+++ b/libgui/src/octave-dock-widget.cc	Mon Nov 04 13:34:44 2019 -0500
@@ -38,12 +38,12 @@
 #include "gui-preferences-mw.h"
 #include "gui-settings.h"
 #include "octave-dock-widget.h"
-#include "resource-manager.h"
+#include "octave-qobject.h"
 
 namespace octave
 {
-  label_dock_widget::label_dock_widget (QWidget *p, resource_manager& rmgr)
-    : QDockWidget (p), m_resource_manager (rmgr),
+  label_dock_widget::label_dock_widget (QWidget *p, base_qobject& oct_qobj)
+    : QDockWidget (p), m_octave_qobj (oct_qobj),
       m_default_float_button (nullptr), m_default_close_button (nullptr)
   {
     QStyle *st = style ();
@@ -177,8 +177,8 @@
   }
 
   octave_dock_widget::octave_dock_widget (const QString& obj_name, QWidget *p,
-                                          resource_manager& rmgr)
-    : label_dock_widget (p, rmgr), m_recent_float_geom (),
+                                          base_qobject& oct_qobj)
+    : label_dock_widget (p, oct_qobj), m_recent_float_geom (),
       m_recent_dock_geom (), m_waiting_for_mouse_button_release (false)
   {
     setObjectName (obj_name);
@@ -245,7 +245,8 @@
 
     setFeatures (QDockWidget::AllDockWidgetFeatures);
 
-    handle_settings (m_resource_manager.get_settings ());
+    resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
+    handle_settings (rmgr.get_settings ());
   }
 
   // connect signal visibility changed to related slot (called from main-window)
@@ -326,7 +327,8 @@
     bool vis = isVisible ();
 
     // Since floating widget has no parent, we have to read it
-    gui_settings *settings = m_resource_manager.get_settings ();
+    resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
+    gui_settings *settings = rmgr.get_settings ();
 
     settings->setValue (mw_state.key, m_parent->saveState ());
     // Stay window, otherwise will bounce back to window by default because
@@ -517,7 +519,8 @@
   {
     // save state of this dock-widget
     QString name = objectName ();
-    gui_settings *settings = m_resource_manager.get_settings ();
+    resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
+    gui_settings *settings = rmgr.get_settings ();
 
     if (! settings)
       return;
@@ -752,19 +755,26 @@
       m_predecessor_widget->setFocus ();
 
     m_predecessor_widget = nullptr;
+
     // FIXME: Until cset bda0c5b38bda, the wrong keys "Dockwidget/..." were used
     // here.  This had no effect in Qt4, but does in Qt5.  In the following, the
     // four incorrect keys are updated if still present in the settings files.
     // The keys are also used in the settings dialog, but
     // octave_dock_widget::handle_settings is already called at program start.
     // These tests can be removed in a future version of Octave (version 6).
-    m_resource_manager.update_settings_key ("Dockwidgets/title_bg_color",
-                                           "DockWidgets/title_bg_color");
-    m_resource_manager.update_settings_key ("Dockwidgets/title_bg_color_active",
-                                           "DockWidgets/title_bg_color_active");
-    m_resource_manager.update_settings_key ("Dockwidgets/title_fg_color",
-                                           "DockWidgets/title_fg_color");
-    m_resource_manager.update_settings_key ("Dockwidgets/title_fg_color_active",
-                                           "DockWidgets/title_fg_color_active");
+
+    resource_manager& rmgr = m_octave_qobj.get_resource_manager ();
+
+    rmgr.update_settings_key ("Dockwidgets/title_bg_color",
+                              "DockWidgets/title_bg_color");
+
+    rmgr.update_settings_key ("Dockwidgets/title_bg_color_active",
+                              "DockWidgets/title_bg_color_active");
+
+    rmgr.update_settings_key ("Dockwidgets/title_fg_color",
+                              "DockWidgets/title_fg_color");
+
+    rmgr.update_settings_key ("Dockwidgets/title_fg_color_active",
+                              "DockWidgets/title_fg_color_active");
   }
 }