diff --git a/src/DockRegistry.cpp b/src/DockRegistry.cpp index 51128186..8718017f 100644 --- a/src/DockRegistry.cpp +++ b/src/DockRegistry.cpp @@ -26,6 +26,8 @@ #include "kddockwidgets/controllers/DockWidget_p.h" #include "kddockwidgets/controllers/DropArea.h" +#include "kdbindings/signal.h" + #include #include #include @@ -33,16 +35,24 @@ using namespace KDDockWidgets; using namespace KDDockWidgets::Controllers; +class DockRegistry::Private +{ +public: + KDBindings::ConnectionHandle m_connection; +}; + DockRegistry::DockRegistry(QObject *parent) : QObject(parent) + , d(new Private()) { qGuiApp->installEventFilter(this); - m_connection = Platform::instance()->focusedViewChanged.connect(&DockRegistry::onFocusedViewChanged, this); + d->m_connection = Platform::instance()->focusedViewChanged.connect(&DockRegistry::onFocusedViewChanged, this); } DockRegistry::~DockRegistry() { - m_connection.disconnect(); + d->m_connection.disconnect(); + delete d; } void DockRegistry::maybeDelete() diff --git a/src/DockRegistry.h b/src/DockRegistry.h index 23cc9f40..13a080d9 100644 --- a/src/DockRegistry.h +++ b/src/DockRegistry.h @@ -18,8 +18,6 @@ #include #include -#include "kdbindings/signal.h" - /** * DockRegistry is a singleton that knows about all DockWidgets. * It's used so we can restore layouts. @@ -255,6 +253,9 @@ private: void maybeDelete(); void setFocusedDockWidget(Controllers::DockWidget *); + class Private; + Private *const d; + bool m_isProcessingAppQuitEvent = false; QVector m_dockWidgets; QVector m_mainWindows; @@ -262,7 +263,6 @@ private: QVector m_floatingWindows; QVector m_layouts; QPointer m_focusedDockWidget; - KDBindings::ConnectionHandle m_connection; ///@brief Dock widget id remapping, used by LayoutSaver ///