diff --git a/src/KDDockWidgets_p.h b/src/KDDockWidgets_p.h index 48be5b98..0cebd28b 100644 --- a/src/KDDockWidgets_p.h +++ b/src/KDDockWidgets_p.h @@ -44,6 +44,21 @@ enum class WindowState { }; Q_DECLARE_FLAGS(WindowStates, WindowState) +/// @internal +enum class FloatingWindowFlag { + None = 0, + FromGlobalConfig = 1, // KDDockWidgets::Config is used instead + TitleBarHasMinimizeButton = 2, + TitleBarHasMaximizeButton = 4, + KeepAboveIfNotUtilityWindow = 8, + NativeTitleBar = 16, + HideTitleBarWhenTabsVisible = 32, + AlwaysTitleBarWhenFloating = 64, + DontUseParentForFloatingWindows = 128, + DontUseQtToolWindowsForFloatingWindows = 256 +}; +Q_DECLARE_FLAGS(FloatingWindowFlags, FloatingWindowFlag); + } #endif diff --git a/src/controllers/FloatingWindow.cpp b/src/controllers/FloatingWindow.cpp index 6fccebc3..e282980d 100644 --- a/src/controllers/FloatingWindow.cpp +++ b/src/controllers/FloatingWindow.cpp @@ -51,42 +51,42 @@ using namespace KDDockWidgets; using namespace KDDockWidgets::Controllers; -static FloatingWindow::Flags flagsForFloatingWindow(FloatingWindow::Flags requestedFlags) +static FloatingWindowFlags flagsForFloatingWindow(FloatingWindowFlags requestedFlags) { - if (!(requestedFlags & FloatingWindow::Flag::FromGlobalConfig)) { + if (!(requestedFlags & FloatingWindowFlag::FromGlobalConfig)) { // User requested specific flags for this floating window return requestedFlags; } // Use from KDDockWidgets::Config instead. This is app-wide and not per window. - FloatingWindow::Flags flags = {}; + FloatingWindowFlags flags = {}; if ((Config::self().flags() & Config::Flag_TitleBarHasMinimizeButton) == Config::Flag_TitleBarHasMinimizeButton) - flags |= FloatingWindow::Flag::TitleBarHasMinimizeButton; + flags |= FloatingWindowFlag::TitleBarHasMinimizeButton; if (Config::self().flags() & Config::Flag_TitleBarHasMaximizeButton) - flags |= FloatingWindow::Flag::TitleBarHasMaximizeButton; + flags |= FloatingWindowFlag::TitleBarHasMaximizeButton; if (Config::self().flags() & Config::Flag_KeepAboveIfNotUtilityWindow) - flags |= FloatingWindow::Flag::KeepAboveIfNotUtilityWindow; + flags |= FloatingWindowFlag::KeepAboveIfNotUtilityWindow; if (Config::self().flags() & Config::Flag_NativeTitleBar) - flags |= FloatingWindow::Flag::NativeTitleBar; + flags |= FloatingWindowFlag::NativeTitleBar; if (Config::self().flags() & Config::Flag_HideTitleBarWhenTabsVisible) - flags |= FloatingWindow::Flag::HideTitleBarWhenTabsVisible; + flags |= FloatingWindowFlag::HideTitleBarWhenTabsVisible; if (Config::self().flags() & Config::Flag_AlwaysTitleBarWhenFloating) - flags |= FloatingWindow::Flag::AlwaysTitleBarWhenFloating; + flags |= FloatingWindowFlag::AlwaysTitleBarWhenFloating; if (Config::self().internalFlags() & Config::InternalFlag_DontUseParentForFloatingWindows) - flags |= FloatingWindow::Flag::DontUseParentForFloatingWindows; + flags |= FloatingWindowFlag::DontUseParentForFloatingWindows; if (Config::self().internalFlags() & Config::InternalFlag_DontUseQtToolWindowsForFloatingWindows) - flags |= FloatingWindow::Flag::DontUseQtToolWindowsForFloatingWindows; + flags |= FloatingWindowFlag::DontUseQtToolWindowsForFloatingWindows; return flags; } @@ -94,13 +94,13 @@ static FloatingWindow::Flags flagsForFloatingWindow(FloatingWindow::Flags reques class FloatingWindow::Private { public: - Private(FloatingWindow::Flags requestedFlags) + Private(FloatingWindowFlags requestedFlags) : m_flags(flagsForFloatingWindow(requestedFlags)) { } KDBindings::ScopedConnection m_visibleWidgetCountConnection; - const FloatingWindow::Flags m_flags; + const FloatingWindowFlags m_flags; }; /** static */ @@ -166,7 +166,7 @@ MainWindow *actualParent(MainWindow *candidate) } FloatingWindow::FloatingWindow(QRect suggestedGeometry, MainWindow *parent, - FloatingWindow::Flags requestedFlags) + FloatingWindowFlags requestedFlags) : Controller(Type::FloatingWindow, Config::self().viewFactory()->createFloatingWindow(this, actualParent(parent), windowFlagsToUse())) @@ -198,7 +198,7 @@ FloatingWindow::FloatingWindow(QRect suggestedGeometry, MainWindow *parent, DockRegistry::self()->registerFloatingWindow(this); - if (d->m_flags & Flag::KeepAboveIfNotUtilityWindow) + if (d->m_flags & FloatingWindowFlag::KeepAboveIfNotUtilityWindow) view()->setFlag(Qt::WindowStaysOnTopHint, true); if (Platform::instance()->isQtWidgets()) { @@ -386,7 +386,7 @@ void FloatingWindow::setSuggestedGeometry(QRect suggestedRect, SuggestedGeometry suggestedRect.setSize(maxSize.boundedTo(suggestedRect.size())); if ((hint & SuggestedGeometryHint_GeometryIsFromDocked) - && (d->m_flags & Flag::NativeTitleBar)) { + && (d->m_flags & FloatingWindowFlag::NativeTitleBar)) { const QMargins margins = contentMargins(); suggestedRect.setHeight(suggestedRect.height() - m_titleBar->view()->height() + margins.top() + margins.bottom()); @@ -532,8 +532,8 @@ void FloatingWindow::updateTitleBarVisibility() group->updateTitleBarVisibility(); if (KDDockWidgets::usesClientTitleBar()) { - if ((d->m_flags & Flag::HideTitleBarWhenTabsVisible) - && !(d->m_flags & Flag::AlwaysTitleBarWhenFloating)) { + if ((d->m_flags & FloatingWindowFlag::HideTitleBarWhenTabsVisible) + && !(d->m_flags & FloatingWindowFlag::AlwaysTitleBarWhenFloating)) { if (hasSingleFrame()) { visible = !groups().first()->hasTabsVisible(); } @@ -775,10 +775,10 @@ void FloatingWindow::setLastWindowManagerState(WindowState state) bool FloatingWindow::supportsMinimizeButton() const { - return d->m_flags & Flag::TitleBarHasMinimizeButton; + return d->m_flags & FloatingWindowFlag::TitleBarHasMinimizeButton; } bool FloatingWindow::supportsMaximizeButton() const { - return d->m_flags & Flag::TitleBarHasMaximizeButton; + return d->m_flags & FloatingWindowFlag::TitleBarHasMaximizeButton; } diff --git a/src/controllers/FloatingWindow.h b/src/controllers/FloatingWindow.h index 839f1ef1..967d6482 100644 --- a/src/controllers/FloatingWindow.h +++ b/src/controllers/FloatingWindow.h @@ -37,22 +37,9 @@ class DOCKS_EXPORT FloatingWindow : public Controller, public Draggable { Q_OBJECT public: - enum class Flag { - None = 0, - FromGlobalConfig = 1, // KDDockWidgets::Config is used instead - TitleBarHasMinimizeButton = 2, - TitleBarHasMaximizeButton = 4, - KeepAboveIfNotUtilityWindow = 8, - NativeTitleBar = 16, - HideTitleBarWhenTabsVisible = 32, - AlwaysTitleBarWhenFloating = 64, - DontUseParentForFloatingWindows = 128, - DontUseQtToolWindowsForFloatingWindows = 256 - }; - Q_DECLARE_FLAGS(Flags, Flag); - - explicit FloatingWindow(QRect suggestedGeometry, MainWindow *parent = nullptr, - FloatingWindow::Flags requestedFlags = Flag::FromGlobalConfig); + explicit FloatingWindow( + QRect suggestedGeometry, MainWindow *parent = nullptr, + FloatingWindowFlags requestedFlags = FloatingWindowFlag::FromGlobalConfig); explicit FloatingWindow(Controllers::Group *group, QRect suggestedGeometry, MainWindow *parent = nullptr); virtual ~FloatingWindow() override;