Move FloatingWindow::Flag enum to KDDockWidgets namespace level

This commit is contained in:
Sergio Martins
2022-09-19 04:05:01 +01:00
parent 3f34d12805
commit c52ecb65b6
3 changed files with 38 additions and 36 deletions

View File

@@ -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

View File

@@ -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;
}

View File

@@ -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;