diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 04251c7a..9290e465 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -46,14 +46,14 @@ set(DOCKSLIBS_SRCS multisplitter/MultiSplitterLayout_p.h multisplitter/MultiSplitterWidget.cpp multisplitter/MultiSplitterWidget_p.h - multisplitter/SeparatorWidget.cpp - multisplitter/SeparatorWidget_p.h # indicators/AnimatedIndicators.cpp indicators/ClassicIndicators.cpp FrameworkWidgetFactory.cpp widgets/FrameWidget.cpp + widgets/SeparatorWidget.cpp + widgets/SeparatorWidget_p.h widgets/TabWidgetWidget.cpp widgets/TabBarWidget.cpp widgets/TitleBarWidget.cpp diff --git a/src/FrameworkWidgetFactory.cpp b/src/FrameworkWidgetFactory.cpp index f80a4707..27437834 100644 --- a/src/FrameworkWidgetFactory.cpp +++ b/src/FrameworkWidgetFactory.cpp @@ -24,6 +24,7 @@ #include "widgets/TitleBarWidget_p.h" #include "widgets/TabBarWidget_p.h" #include "widgets/TabWidgetWidget_p.h" +#include "widgets/SeparatorWidget_p.h" using namespace KDDockWidgets; @@ -55,3 +56,8 @@ TabWidget *DefaultWidgetFactory::createTabWidget(QWidget *parent) const { return new TabWidgetWidget(parent); } + +SeparatorWidget *DefaultWidgetFactory::createSeparator(Anchor *anchor, QWidget *parent) const +{ + return new SeparatorWidget(anchor, parent); +} diff --git a/src/FrameworkWidgetFactory.h b/src/FrameworkWidgetFactory.h index 6d032ba7..d87c9816 100644 --- a/src/FrameworkWidgetFactory.h +++ b/src/FrameworkWidgetFactory.h @@ -24,6 +24,7 @@ #include "Frame_p.h" #include "TitleBar_p.h" #include "TabWidget_p.h" +#include "widgets/SeparatorWidget_p.h" // TODO: remove namespace KDDockWidgets { @@ -36,6 +37,7 @@ public: virtual TitleBar* createTitleBar(FloatingWindow *) const = 0; virtual TabBar* createTabBar(TabWidget *parent = nullptr) const = 0; virtual TabWidget* createTabWidget(QWidget *parent) const = 0; + virtual SeparatorWidget* createSeparator(Anchor *anchor, QWidget *parent = nullptr) const = 0; }; class DefaultWidgetFactory : public FrameworkWidgetFactory @@ -46,6 +48,7 @@ public: TitleBar *createTitleBar(FloatingWindow *) const override; TabBar *createTabBar(TabWidget *parent) const override; TabWidget *createTabWidget(QWidget *parent) const override; + SeparatorWidget* createSeparator(Anchor *anchor, QWidget *parent = nullptr) const override; }; } diff --git a/src/multisplitter/Anchor.cpp b/src/multisplitter/Anchor.cpp index 16828a34..95ae8849 100644 --- a/src/multisplitter/Anchor.cpp +++ b/src/multisplitter/Anchor.cpp @@ -22,8 +22,8 @@ #include "MultiSplitterLayout_p.h" #include "MultiSplitterWidget_p.h" #include "Logging_p.h" -#include "SeparatorWidget_p.h" #include "LayoutSaver.h" +#include "Config.h" #include #include @@ -42,7 +42,7 @@ Anchor::Anchor(Qt::Orientation orientation, MultiSplitterLayout *multiSplitter, , m_orientation(orientation) , m_type(type) , m_layout(multiSplitter) - , m_separatorWidget(new SeparatorWidget(this, multiSplitter->multiSplitter())) + , m_separatorWidget(Config::self().frameWorkWidgetFactory()->createSeparator(this, multiSplitter->multiSplitter())) { multiSplitter->insertAnchor(this); connect(this, &QObject::objectNameChanged, m_separatorWidget, &QObject::setObjectName); diff --git a/src/multisplitter/MultiSplitterLayout.cpp b/src/multisplitter/MultiSplitterLayout.cpp index a981208b..ef8b5cd5 100644 --- a/src/multisplitter/MultiSplitterLayout.cpp +++ b/src/multisplitter/MultiSplitterLayout.cpp @@ -25,7 +25,6 @@ #include "FloatingWindow_p.h" #include "DockWidget.h" #include "LastPosition_p.h" -#include "SeparatorWidget_p.h" #include "DockRegistry_p.h" #include "Config.h" diff --git a/src/multisplitter/SeparatorWidget.cpp b/src/widgets/SeparatorWidget.cpp similarity index 97% rename from src/multisplitter/SeparatorWidget.cpp rename to src/widgets/SeparatorWidget.cpp index 0a4e2876..875af67e 100644 --- a/src/multisplitter/SeparatorWidget.cpp +++ b/src/widgets/SeparatorWidget.cpp @@ -19,8 +19,8 @@ */ #include "SeparatorWidget_p.h" -#include "MultiSplitterLayout_p.h" -#include "Anchor_p.h" +#include "multisplitter/MultiSplitterLayout_p.h" +#include "multisplitter/Anchor_p.h" #include "Logging_p.h" #include diff --git a/src/multisplitter/SeparatorWidget_p.h b/src/widgets/SeparatorWidget_p.h similarity index 100% rename from src/multisplitter/SeparatorWidget_p.h rename to src/widgets/SeparatorWidget_p.h