diff libgui/src/welcome-wizard.cc @ 27620:45bb5bbaf291

don't use singleton pattern for resource manager in GUI Move ownership of the resource_manager object to the base_qobject class. Store reference to resource_manager object as a member variable in most objects that need to access it. Eliminate static member functions in resource_managar class. Provide a get_resource_manager method in the base_qboject class and a global __get_resource_manager__ function for those instances where we can't easily provide local access to the resource_manager object. There are many changes to many files, but most are straightforward.
author John W. Eaton <jwe@octave.org>
date Fri, 01 Nov 2019 18:16:49 -0400
parents deb8877f2c34
children a2b147e2b603
line wrap: on
line diff
--- a/libgui/src/welcome-wizard.cc	Sat Nov 02 15:24:14 2019 -0400
+++ b/libgui/src/welcome-wizard.cc	Fri Nov 01 18:16:49 2019 -0400
@@ -36,9 +36,9 @@
   #include <windows.h>
 #endif
 
+#include "gui-preferences-nr.h"
 #include "resource-manager.h"
 #include "welcome-wizard.h"
-#include "gui-preferences-nr.h"
 
 namespace octave
 {
@@ -51,9 +51,9 @@
     return logo;
   };
 
-  welcome_wizard::welcome_wizard (QWidget *p)
-    : QDialog (p), m_page_ctor_list (), m_page_list_iterator (),
-      m_current_page (initial_page::create (this)),
+  welcome_wizard::welcome_wizard (resource_manager& rmgr, QWidget *p)
+    : QDialog (p), m_resource_manager (rmgr), 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)
   {
@@ -140,9 +140,9 @@
   {
     // Create default settings file.
 
-    resource_manager::reload_settings ();
+    m_resource_manager.reload_settings ();
 
-    gui_settings *settings = resource_manager::get_settings ();
+    gui_settings *settings = m_resource_manager.get_settings ();
 
     if (settings)
       {
@@ -167,13 +167,16 @@
     ft.setPointSize (20);
     m_title->setFont (ft);
 
+    resource_manager& rmgr
+      = __get_resource_manager__ ("shortcut_manager::shortcut_manager");
+
     m_message->setText
       (tr ("<html><body>\n"
            "<p>You seem to be using the Octave graphical interface for the first time on this computer.\n"
            "Click 'Next' to create a configuration file and launch Octave.</p>\n"
            "<p>The configuration file is stored in<br>%1.</p>\n"
            "</body></html>").
-       arg (resource_manager::get_settings_file ()));
+       arg (rmgr.get_settings_file ()));
     m_message->setWordWrap (true);
     m_message->setMinimumWidth (400);