From 3bcfcc40c0eaf15dfc43eb2544498edbff8d8d6b Mon Sep 17 00:00:00 2001 From: Sergio Martins Date: Tue, 9 Feb 2021 16:23:49 +0000 Subject: [PATCH] Minor decoupling between DropArea and DockWidgetBase --- src/DockWidgetBase.cpp | 3 +-- src/private/DebugWindow.cpp | 8 ++++---- src/private/FloatingWindow.cpp | 6 ++++++ src/private/FloatingWindow_p.h | 4 ++++ 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/DockWidgetBase.cpp b/src/DockWidgetBase.cpp index c8df76c9..f2af12de 100644 --- a/src/DockWidgetBase.cpp +++ b/src/DockWidgetBase.cpp @@ -16,7 +16,6 @@ #include "Logging_p.h" #include "Utils_p.h" #include "DockRegistry_p.h" -#include "DropArea_p.h" #include "Config.h" #include "TitleBar_p.h" #include "FrameworkWidgetFactory.h" @@ -133,7 +132,7 @@ void DockWidgetBase::addDockWidgetToContainingWindow(DockWidgetBase *other, d->morphIntoFloatingWindow(); if (auto fw = floatingWindow()) { - fw->dropArea()->addDockWidget(other, location, relativeTo, initialOption); + fw->addDockWidget(other, location, relativeTo, initialOption); } else { qWarning() << Q_FUNC_INFO << "Couldn't find floating nested window"; } diff --git a/src/private/DebugWindow.cpp b/src/private/DebugWindow.cpp index bf5db887..0b7a3b8d 100644 --- a/src/private/DebugWindow.cpp +++ b/src/private/DebugWindow.cpp @@ -17,12 +17,12 @@ */ #include "DebugWindow_p.h" -#include "ObjectViewer_p.h" #include "DockRegistry_p.h" #include "FloatingWindow_p.h" -#include "DropArea_p.h" -#include "MainWindow.h" #include "LayoutSaver.h" +#include "LayoutWidget_p.h" +#include "MainWindow.h" +#include "ObjectViewer_p.h" #include "Qt5Qt6Compat_p.h" #include @@ -314,7 +314,7 @@ void DebugWindow::dumpDockWidgetInfo() for (FloatingWindow *fw : floatingWindows) { qDebug() << fw << "; affinities=" << fw->affinities(); - fw->dropArea()->dumpLayout(); + fw->layoutWidget()->dumpLayout(); } for (MainWindowBase *mw : mainWindows) { diff --git a/src/private/FloatingWindow.cpp b/src/private/FloatingWindow.cpp index 854f6c01..f3811f6b 100644 --- a/src/private/FloatingWindow.cpp +++ b/src/private/FloatingWindow.cpp @@ -570,3 +570,9 @@ bool FloatingWindow::anyDockWidgetsHas(DockWidgetBase::LayoutSaverOption option) return frame->anyDockWidgetsHas(option); }); } + +void FloatingWindow::addDockWidget(DockWidgetBase *dw, Location location, + DockWidgetBase *relativeTo, InitialOption option) +{ + m_dropArea->addDockWidget(dw, location, relativeTo, option); +} diff --git a/src/private/FloatingWindow_p.h b/src/private/FloatingWindow_p.h index eebe6275..4ac18680 100644 --- a/src/private/FloatingWindow_p.h +++ b/src/private/FloatingWindow_p.h @@ -152,6 +152,10 @@ public: ///@brief Returns whether at least one dock widget has the specified layout saver option set bool anyDockWidgetsHas(DockWidgetBase::LayoutSaverOption) const; + /// @brief Adds the dock widget to the specified location + void addDockWidget(DockWidgetBase *, KDDockWidgets::Location location, + DockWidgetBase *relativeTo, InitialOption = {}); + ///@brief Allows the user app to specify which window flags to use, instead of KDDWs default ones ///Bugs caused by this won't be supported, as the amount of combinations that could go wrong can ///be open ended