Move FloatingWindow::Flag enum to KDDockWidgets namespace level
This commit is contained in:
@@ -288,6 +288,21 @@ enum TabWidgetOption {
|
||||
Q_DECLARE_FLAGS(TabWidgetOptions, TabWidgetOption)
|
||||
Q_ENUM_NS(TabWidgetOptions)
|
||||
|
||||
/// @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);
|
||||
|
||||
///@internal
|
||||
inline QString locationStr(Location loc)
|
||||
{
|
||||
|
||||
@@ -103,46 +103,46 @@ MainWindowBase *actualParent(MainWindowBase *candidate)
|
||||
: candidate;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
FloatingWindow::FloatingWindow(QRect suggestedGeometry, MainWindowBase *parent,
|
||||
FloatingWindow::Flags requestedFlags)
|
||||
FloatingWindowFlags requestedFlags)
|
||||
: QWidgetAdapter(actualParent(parent), windowFlagsToUse())
|
||||
, Draggable(this, KDDockWidgets::usesNativeDraggingAndResizing()) // FloatingWindow is only draggable when using a native title bar. Otherwise the KDDockWidgets::TitleBar is the draggable
|
||||
, m_flags(flagsForFloatingWindow(requestedFlags))
|
||||
@@ -166,7 +166,7 @@ FloatingWindow::FloatingWindow(QRect suggestedGeometry, MainWindowBase *parent,
|
||||
|
||||
DockRegistry::self()->registerFloatingWindow(this);
|
||||
|
||||
if (m_flags & Flag::KeepAboveIfNotUtilityWindow)
|
||||
if (m_flags & FloatingWindowFlag::KeepAboveIfNotUtilityWindow)
|
||||
setWindowFlag(Qt::WindowStaysOnTopHint, true);
|
||||
|
||||
if (kddwUsesQtWidgets()) {
|
||||
@@ -345,7 +345,7 @@ void FloatingWindow::setSuggestedGeometry(QRect suggestedRect, SuggestedGeometry
|
||||
suggestedRect.setSize(maxSize.boundedTo(suggestedRect.size()));
|
||||
|
||||
if ((hint & SuggestedGeometryHint_GeometryIsFromDocked)
|
||||
&& (m_flags & Flag::NativeTitleBar)) {
|
||||
&& (m_flags & FloatingWindowFlag::NativeTitleBar)) {
|
||||
const QMargins margins = contentMargins();
|
||||
suggestedRect.setHeight(suggestedRect.height() - m_titleBar->height() + margins.top()
|
||||
+ margins.bottom());
|
||||
@@ -491,7 +491,7 @@ void FloatingWindow::updateTitleBarVisibility()
|
||||
frame->updateTitleBarVisibility();
|
||||
|
||||
if (KDDockWidgets::usesClientTitleBar()) {
|
||||
if ((m_flags & Flag::HideTitleBarWhenTabsVisible) && !(m_flags & Flag::AlwaysTitleBarWhenFloating)) {
|
||||
if ((m_flags & FloatingWindowFlag::HideTitleBarWhenTabsVisible) && !(m_flags & FloatingWindowFlag::AlwaysTitleBarWhenFloating)) {
|
||||
if (hasSingleFrame()) {
|
||||
visible = !frames().first()->hasTabsVisible();
|
||||
}
|
||||
@@ -772,10 +772,10 @@ void FloatingWindow::ensureRectIsOnScreen(QRect &geometry)
|
||||
|
||||
bool FloatingWindow::supportsMinimizeButton() const
|
||||
{
|
||||
return m_flags & Flag::TitleBarHasMinimizeButton;
|
||||
return m_flags & FloatingWindowFlag::TitleBarHasMinimizeButton;
|
||||
}
|
||||
|
||||
bool FloatingWindow::supportsMaximizeButton() const
|
||||
{
|
||||
return m_flags & Flag::TitleBarHasMaximizeButton;
|
||||
return m_flags & FloatingWindowFlag::TitleBarHasMaximizeButton;
|
||||
}
|
||||
|
||||
@@ -41,22 +41,8 @@ class DOCKS_EXPORT FloatingWindow
|
||||
Q_PROPERTY(KDDockWidgets::TitleBar *titleBar READ titleBar CONSTANT)
|
||||
Q_PROPERTY(KDDockWidgets::DropArea *dropArea READ dropArea CONSTANT)
|
||||
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, MainWindowBase *parent = nullptr,
|
||||
FloatingWindow::Flags requestedFlags = Flag::FromGlobalConfig);
|
||||
FloatingWindowFlags requestedFlags = FloatingWindowFlag::FromGlobalConfig);
|
||||
explicit FloatingWindow(Frame *frame, QRect suggestedGeometry, MainWindowBase *parent = nullptr);
|
||||
~FloatingWindow() override;
|
||||
|
||||
@@ -258,7 +244,7 @@ protected:
|
||||
bool event(QEvent *ev) override;
|
||||
void onCloseEvent(QCloseEvent *) override;
|
||||
|
||||
const FloatingWindow::Flags m_flags;
|
||||
const FloatingWindowFlags m_flags;
|
||||
QPointer<DropArea> m_dropArea;
|
||||
TitleBar *const m_titleBar;
|
||||
Qt::WindowState m_lastWindowManagerState = Qt::WindowNoState;
|
||||
|
||||
Reference in New Issue
Block a user