changeset 27553:9b72eb111b7e

eliminate global uiwidget_creator variable * qt-interpreter-events.h, qt-interpreter-events.cc (qt_interpreter_events::m_uiwidget_creator): New member variable. Change all uses of global uiwidget_creator to reference this member variable instead. (qt_interpreter_events::qt_interpreter_events): Initialize all member variables in ctor init list. * dialog.h, dialog.cc (uiwidget_creator): Delete.
author John W. Eaton <jwe@octave.org>
date Thu, 24 Oct 2019 03:47:41 -0400
parents de5129cb0796
children d0f778462a51
files libgui/src/dialog.cc libgui/src/dialog.h libgui/src/qt-interpreter-events.cc libgui/src/qt-interpreter-events.h
diffstat 4 files changed, 32 insertions(+), 31 deletions(-) [+]
line wrap: on
line diff
--- a/libgui/src/dialog.cc	Thu Oct 24 03:40:52 2019 -0400
+++ b/libgui/src/dialog.cc	Thu Oct 24 03:47:41 2019 -0400
@@ -44,8 +44,6 @@
 
 namespace octave
 {
-  QUIWidgetCreator uiwidget_creator;
-
   QUIWidgetCreator::QUIWidgetCreator (void)
     : QObject (), m_dialog_result (-1), m_dialog_button (),
       m_string_list (), m_list_index (), m_path_name ()
--- a/libgui/src/dialog.h	Thu Oct 24 03:40:52 2019 -0400
+++ b/libgui/src/dialog.h	Thu Oct 24 03:47:41 2019 -0400
@@ -164,8 +164,6 @@
     QWaitCondition m_waitcondition;
   };
 
-  extern QUIWidgetCreator uiwidget_creator;
-
   class MessageDialog : public QMessageBox
   {
     Q_OBJECT
--- a/libgui/src/qt-interpreter-events.cc	Thu Oct 24 03:40:52 2019 -0400
+++ b/libgui/src/qt-interpreter-events.cc	Thu Oct 24 03:47:41 2019 -0400
@@ -101,7 +101,8 @@
   }
 
   qt_interpreter_events::qt_interpreter_events (void)
-    : interpreter_events (), m_shutdown_confirm_result (false)
+    : interpreter_events (), m_shutdown_confirm_result (false),
+      m_mutex (), m_waitcondition (), m_uiwidget_creator ()
   {
     qRegisterMetaType<QIntList> ("QIntList");
     qRegisterMetaType<QFloatList> ("QFloatList");
@@ -121,11 +122,11 @@
                                       const std::string& multimode)
   {
     QStringList lst
-      = uiwidget_creator.file_dialog (make_filter_list (filter),
-                                      QString::fromStdString (title),
-                                      QString::fromStdString (filename),
-                                      QString::fromStdString (dirname),
-                                      QString::fromStdString (multimode));
+      = m_uiwidget_creator.file_dialog (make_filter_list (filter),
+                                        QString::fromStdString (title),
+                                        QString::fromStdString (filename),
+                                        QString::fromStdString (dirname),
+                                        QString::fromStdString (multimode));
 
     std::list<std::string> retval;
 
@@ -143,11 +144,11 @@
                                        const std::list<std::string>& defaults)
   {
     QStringList lst
-      = uiwidget_creator.input_dialog (make_qstring_list (prompt),
-                                       QString::fromStdString (title),
-                                       QFloatList::fromStdList (nr),
-                                       QFloatList::fromStdList (nc),
-                                       make_qstring_list (defaults));
+      = m_uiwidget_creator.input_dialog (make_qstring_list (prompt),
+                                         QString::fromStdString (title),
+                                         QFloatList::fromStdList (nr),
+                                         QFloatList::fromStdList (nc),
+                                         make_qstring_list (defaults));
     std::list<std::string> retval;
 
     for (const auto& s : lst)
@@ -167,14 +168,14 @@
                                       const std::string& cancel_string)
   {
     QPair<QIntList, int> result
-      = uiwidget_creator.list_dialog (make_qstring_list (list),
-                                      QString::fromStdString (mode),
-                                      width, height,
-                                      QList<int>::fromStdList (initial),
-                                      QString::fromStdString (name),
-                                      make_qstring_list (prompt),
-                                      QString::fromStdString (ok_string),
-                                      QString::fromStdString (cancel_string));
+      = m_uiwidget_creator.list_dialog (make_qstring_list (list),
+                                        QString::fromStdString (mode),
+                                        width, height,
+                                        QList<int>::fromStdList (initial),
+                                        QString::fromStdString (name),
+                                        make_qstring_list (prompt),
+                                        QString::fromStdString (ok_string),
+                                        QString::fromStdString (cancel_string));
 
     return std::pair<std::list<int>, int> (result.first.toStdList (),
                                            result.second);
@@ -203,11 +204,11 @@
     buttons << QString::fromStdString (btn3);
 
     QString answer
-      = uiwidget_creator.message_dialog (QString::fromStdString (msg),
-                                         QString::fromStdString (title),
-                                         icon, buttons,
-                                         QString::fromStdString (btndef),
-                                         role);
+      = m_uiwidget_creator.message_dialog (QString::fromStdString (msg),
+                                           QString::fromStdString (title),
+                                           icon, buttons,
+                                           QString::fromStdString (btndef),
+                                           role);
 
     return answer.toStdString ();
   }
@@ -271,7 +272,7 @@
     role << "YesRole" << "RejectRole";
     btn << tr ("Create") << tr ("Cancel");
 
-    QString answer = uiwidget_creator.message_dialog
+    QString answer = m_uiwidget_creator.message_dialog
       (tr ("File\n%1\ndoes not exist. Do you want to create it?").
        arg (QString::fromStdString (abs_fname)),
        tr ("Octave Editor"), "quest", btn, tr ("Create"), role);
@@ -315,8 +316,8 @@
     role << "RejectRole";
 
     QString result
-      = uiwidget_creator.message_dialog (msg, title, "quest", btn,
-                                         cancel_txt, role);
+      = m_uiwidget_creator.message_dialog (msg, title, "quest", btn,
+                                           cancel_txt, role);
 
     if (result == cd_txt)
       retval = 1;
--- a/libgui/src/qt-interpreter-events.h	Thu Oct 24 03:40:52 2019 -0400
+++ b/libgui/src/qt-interpreter-events.h	Thu Oct 24 03:47:41 2019 -0400
@@ -36,6 +36,8 @@
 
 #include "event-manager.h"
 
+#include "dialog.h"
+
 // Defined for purposes of sending QList<int> as part of signal.
 typedef QList<int> QIntList;
 
@@ -186,6 +188,8 @@
 
     QWaitCondition m_waitcondition;
 
+    QUIWidgetCreator m_uiwidget_creator;
+
   signals:
 
     void copy_image_to_clipboard_signal (const QString& file, bool remove_file);