diff --git a/src/lib_gui/qt/window/QtMainWindow.cpp b/src/lib_gui/qt/window/QtMainWindow.cpp index f355ddd7..6e8a84a3 100644 --- a/src/lib_gui/qt/window/QtMainWindow.cpp +++ b/src/lib_gui/qt/window/QtMainWindow.cpp @@ -63,14 +63,25 @@ QtViewToggle::QtViewToggle(View* view, QWidget *parent) { } +void QtViewToggle::clear() +{ + m_view = nullptr; +} + void QtViewToggle::toggledByAction() { - dynamic_cast(parent())->toggleView(m_view, true); + if (m_view) + { + dynamic_cast(parent())->toggleView(m_view, true); + } } void QtViewToggle::toggledByUI() { - dynamic_cast(parent())->toggleView(m_view, false); + if (m_view) + { + dynamic_cast(parent())->toggleView(m_view, false); + } } @@ -149,6 +160,11 @@ QtMainWindow::~QtMainWindow() { delete [] m_recentProjectAction; } + + for (DockWidget& dockWidget : m_dockWidgets) + { + dockWidget.toggle->clear(); + } } void QtMainWindow::addView(View* view) diff --git a/src/lib_gui/qt/window/QtMainWindow.h b/src/lib_gui/qt/window/QtMainWindow.h index 0a457997..fe08dfa2 100644 --- a/src/lib_gui/qt/window/QtMainWindow.h +++ b/src/lib_gui/qt/window/QtMainWindow.h @@ -23,6 +23,7 @@ class QtViewToggle public: QtViewToggle(View* view, QWidget *parent = nullptr); + void clear(); public slots: void toggledByAction();