Mercurial > octave
changeset 29758:1511b7cd3474
only close dock widgets when main window does not exist (bug #60646)
* octave-qobject.cc (base_qobject::~base_qobject): onyl close widgets if
main window does not exist, use delete instead of deleteLater
author | Torsten Lilge <ttl-octave@mailbox.org> |
---|---|
date | Mon, 14 Jun 2021 22:00:52 +0200 |
parents | f8322ca49578 |
children | ad1491462d13 |
files | libgui/src/octave-qobject.cc |
diffstat | 1 files changed, 27 insertions(+), 31 deletions(-) [+] |
line wrap: on
line diff
--- a/libgui/src/octave-qobject.cc Mon Jun 14 14:16:39 2021 -0400 +++ b/libgui/src/octave-qobject.cc Mon Jun 14 22:00:52 2021 +0200 @@ -310,45 +310,41 @@ // configuration not saved correctly if the main window is deleted // after the dock widgets? - delete m_main_window; // Calling close will cause settings to be saved. + // If m_main_window exists, the widgets are closed by the main window - if (m_documentation_widget) + if (! m_main_window) { - m_documentation_widget->close (); - m_documentation_widget->deleteLater (); + if (m_documentation_widget) + m_documentation_widget->close (); + + if (m_file_browser_widget) + m_file_browser_widget->close (); + + if (m_history_widget) + m_history_widget->close (); + + if (m_workspace_widget) + m_workspace_widget->close (); + + if (m_editor_widget) + m_editor_widget->close (); + + if (m_variable_editor_widget) + m_variable_editor_widget->close (); } - - if (m_file_browser_widget) + else { - m_file_browser_widget->close (); - m_file_browser_widget->deleteLater (); + delete m_main_window; } - if (m_history_widget) - { - m_history_widget->close (); - m_history_widget->deleteLater (); - } - - if (m_workspace_widget) - { - m_workspace_widget->close (); - m_workspace_widget->deleteLater (); - } - - if (m_editor_widget) - { - m_editor_widget->close (); - m_editor_widget->deleteLater (); - } - - if (m_variable_editor_widget) - { - m_variable_editor_widget->close (); - m_variable_editor_widget->deleteLater (); - } + delete m_documentation_widget; + delete m_file_browser_widget; + delete m_history_widget; + delete m_workspace_widget; + delete m_editor_widget; + delete m_variable_editor_widget; delete m_interpreter_qobj; delete m_qsci_tr;