Mercurial > octave
changeset 27643:337132e66ec2
eliminate need for global access to resource manager in uiwidget objects
* dialog.h, dialog.cc (QUIWidgetCreator::m_octave_qobj): New data member.
(QUIWidgetCreator::QUIWidgetCreator, MessageDialog::MessageDialog,
ListDialog::ListDialog, InputDialog::InputDialog,
FileDialog::FileDialog): Accept reference to base_qobject argument.
Change all uses.
(FileDialog::FileDialog): Access resource_manager through local
base_qobject object instead of using global __get_resource_manager__
function.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Tue, 05 Nov 2019 07:49:38 -0500 |
parents | 2f4213af7067 |
children | cca325162ed7 |
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, 48 insertions(+), 41 deletions(-) [+] |
line wrap: on
line diff
--- a/libgui/src/dialog.cc Tue Nov 05 12:09:52 2019 -0800 +++ b/libgui/src/dialog.cc Tue Nov 05 07:49:38 2019 -0500 @@ -44,9 +44,9 @@ namespace octave { - QUIWidgetCreator::QUIWidgetCreator (void) - : QObject (), m_dialog_result (-1), m_dialog_button (), - m_string_list (), m_list_index (), m_path_name () + QUIWidgetCreator::QUIWidgetCreator (base_qobject& oct_qobj) + : QObject (), m_octave_qobj (oct_qobj), m_dialog_result (-1), + m_dialog_button (), m_string_list (), m_list_index (), m_path_name () { connect (this, SIGNAL (create_dialog (const QString&, const QString&, @@ -205,7 +205,8 @@ const QStringList& role) { MessageDialog *message_dialog - = new MessageDialog (message, title, icon, button, defbutton, role); + = new MessageDialog (m_octave_qobj, message, title, icon, + button, defbutton, role); connect (message_dialog, SIGNAL (buttonClicked (QAbstractButton *)), this, SLOT (dialog_button_clicked (QAbstractButton *))); @@ -256,8 +257,8 @@ const QString& cancel_string) { ListDialog *list_dialog - = new ListDialog (list, mode, wd, ht, initial, name, prompt, - ok_string, cancel_string); + = new ListDialog (m_octave_qobj, list, mode, wd, ht, initial, + name, prompt, ok_string, cancel_string); connect (list_dialog, SIGNAL (finish_selection (const QIntList&, int)), this, SLOT (list_select_finished (const QIntList&, int))); @@ -288,7 +289,7 @@ const QStringList& defaults) { InputDialog *input_dialog - = new InputDialog (prompt, title, nr, nc, defaults); + = new InputDialog (m_octave_qobj, prompt, title, nr, nc, defaults); connect (input_dialog, SIGNAL (finish_input (const QStringList&, int)), this, SLOT (input_finished (const QStringList&, int))); @@ -316,7 +317,8 @@ const QString& multimode) { FileDialog *file_dialog - = new FileDialog (filters, title, filename, dirname, multimode); + = new FileDialog (m_octave_qobj, filters, title, filename, + dirname, multimode); connect (file_dialog, SIGNAL (finish_input (const QStringList&, const QString&, int)), @@ -341,9 +343,8 @@ wake_all (); } - MessageDialog::MessageDialog (const QString& message, - const QString& title, - const QString& qsicon, + MessageDialog::MessageDialog (base_qobject&, const QString& message, + const QString& title, const QString& qsicon, const QStringList& qsbutton, const QString& defbutton, const QStringList& role) @@ -414,9 +415,10 @@ } } - ListDialog::ListDialog (const QStringList& list, const QString& mode, - int wd, int ht, const QList<int>& initial, - const QString& title, const QStringList& prompt, + ListDialog::ListDialog (base_qobject&, const QStringList& list, + const QString& mode, int wd, int ht, + const QList<int>& initial, const QString& title, + const QStringList& prompt, const QString& ok_string, const QString& cancel_string) : QDialog (), m_model (new QStringListModel (list)) @@ -554,9 +556,9 @@ buttonOk_clicked (); } - InputDialog::InputDialog (const QStringList& prompt, const QString& title, - const QFloatList& nr, const QFloatList& nc, - const QStringList& defaults) + InputDialog::InputDialog (base_qobject&, const QStringList& prompt, + const QString& title, const QFloatList& nr, + const QFloatList& nc, const QStringList& defaults) : QDialog () { @@ -648,9 +650,10 @@ buttonCancel_clicked (); } - FileDialog::FileDialog (const QStringList& name_filters, const QString& title, - const QString& filename, const QString& dirname, - const QString& multimode) + FileDialog::FileDialog (base_qobject& oct_qobj, + const QStringList& name_filters, + const QString& title, const QString& filename, + const QString& dirname, const QString& multimode) : QFileDialog () { // Create a NonModal message. @@ -660,8 +663,7 @@ setDirectory (dirname); // FIXME: Remove, if for all common KDE versions (bug #54607) is resolved. - resource_manager& rmgr - = __get_resource_manager__ ("FileDialog::FileDialog"); + resource_manager& rmgr = oct_qobj.get_resource_manager (); gui_settings *settings = rmgr.get_settings (); if (! settings->value ("use_native_file_dialogs", true).toBool ()) setOption(QFileDialog::DontUseNativeDialog);
--- a/libgui/src/dialog.h Tue Nov 05 12:09:52 2019 -0800 +++ b/libgui/src/dialog.h Tue Nov 05 07:49:38 2019 -0500 @@ -42,13 +42,15 @@ namespace octave { + class base_qobject; + class QUIWidgetCreator : public QObject { Q_OBJECT public: - QUIWidgetCreator (void); + QUIWidgetCreator (base_qobject& oct_qobj); ~QUIWidgetCreator (void) = default; @@ -144,6 +146,8 @@ private: + base_qobject& m_octave_qobj; + int m_dialog_result; QString m_dialog_button; @@ -170,10 +174,10 @@ public: - explicit MessageDialog (const QString& message, const QString& title, - const QString& icon, const QStringList& button, - const QString& defbutton, - const QStringList& role); + MessageDialog (base_qobject& oct_qobj, const QString& message, + const QString& title, const QString& icon, + const QStringList& button, const QString& defbutton, + const QStringList& role); private: @@ -193,11 +197,11 @@ public: - explicit ListDialog (const QStringList& list, const QString& mode, - int width, int height, const QList<int>& initial, - const QString& name, const QStringList& prompt, - const QString& ok_string, - const QString& cancel_string); + ListDialog (base_qobject& oct_qobj, const QStringList& list, + const QString& mode, int width, int height, + const QList<int>& initial, const QString& name, + const QStringList& prompt, const QString& ok_string, + const QString& cancel_string); ~ListDialog (void); @@ -228,9 +232,9 @@ public: - explicit InputDialog (const QStringList& prompt, const QString& title, - const QFloatList& nr, const QFloatList& nc, - const QStringList& defaults); + InputDialog (base_qobject& oct_qobj, const QStringList& prompt, + const QString& title, const QFloatList& nr, + const QFloatList& nc, const QStringList& defaults); signals: @@ -251,9 +255,9 @@ public: - explicit FileDialog (const QStringList& filters, - const QString& title, const QString& filename, - const QString& dirname, const QString& multimode); + FileDialog (base_qobject& oct_qobj, const QStringList& filters, + const QString& title, const QString& filename, + const QString& dirname, const QString& multimode); signals:
--- a/libgui/src/qt-interpreter-events.cc Tue Nov 05 12:09:52 2019 -0800 +++ b/libgui/src/qt-interpreter-events.cc Tue Nov 05 07:49:38 2019 -0500 @@ -104,7 +104,8 @@ qt_interpreter_events::qt_interpreter_events (base_qobject& oct_qobj) : interpreter_events (), m_octave_qobj (oct_qobj), - m_result (), m_mutex (), m_waitcondition (), m_uiwidget_creator () + m_uiwidget_creator (oct_qobj), m_result (), m_mutex (), + m_waitcondition () { qRegisterMetaType<QIntList> ("QIntList"); qRegisterMetaType<QFloatList> ("QFloatList");
--- a/libgui/src/qt-interpreter-events.h Tue Nov 05 12:09:52 2019 -0800 +++ b/libgui/src/qt-interpreter-events.h Tue Nov 05 07:49:38 2019 -0500 @@ -257,13 +257,13 @@ base_qobject& m_octave_qobj; + QUIWidgetCreator m_uiwidget_creator; + QVariant m_result; QMutex m_mutex; QWaitCondition m_waitcondition; - - QUIWidgetCreator m_uiwidget_creator; }; }