Isolate more Config flags in FloatingWindow

This commit is contained in:
Sergio Martins
2022-09-16 12:04:54 +01:00
parent 9916032981
commit ff200950aa
2 changed files with 20 additions and 5 deletions

View File

@@ -113,6 +113,18 @@ static FloatingWindow::Flags flagsForFloatingWindow()
if (Config::self().flags() & Config::Flag_TitleBarHasMaximizeButton)
flags |= FloatingWindow::Flag::TitleBarHasMaximizeButton;
if (Config::self().flags() & Config::Flag_KeepAboveIfNotUtilityWindow)
flags |= FloatingWindow::Flag::KeepAboveIfNotUtilityWindow;
if (Config::self().flags() & Config::Flag_NativeTitleBar)
flags |= FloatingWindow::Flag::NativeTitleBar;
if (Config::self().flags() & Config::Flag_HideTitleBarWhenTabsVisible)
flags |= FloatingWindow::Flag::HideTitleBarWhenTabsVisible;
if (Config::self().flags() & Config::Flag_AlwaysTitleBarWhenFloating)
flags |= FloatingWindow::Flag::AlwaysTitleBarWhenFloating;
return flags;
}
@@ -140,7 +152,7 @@ FloatingWindow::FloatingWindow(QRect suggestedGeometry, MainWindowBase *parent)
DockRegistry::self()->registerFloatingWindow(this);
if (Config::self().flags() & Config::Flag_KeepAboveIfNotUtilityWindow)
if (m_flags & Flag::KeepAboveIfNotUtilityWindow)
setWindowFlag(Qt::WindowStaysOnTopHint, true);
if (kddwUsesQtWidgets()) {
@@ -319,7 +331,7 @@ void FloatingWindow::setSuggestedGeometry(QRect suggestedRect, SuggestedGeometry
suggestedRect.setSize(maxSize.boundedTo(suggestedRect.size()));
if ((hint & SuggestedGeometryHint_GeometryIsFromDocked)
&& (Config::self().flags() & Config::Flag_NativeTitleBar)) {
&& (m_flags & Flag::NativeTitleBar)) {
const QMargins margins = contentMargins();
suggestedRect.setHeight(suggestedRect.height() - m_titleBar->height() + margins.top()
+ margins.bottom());
@@ -465,8 +477,7 @@ void FloatingWindow::updateTitleBarVisibility()
frame->updateTitleBarVisibility();
if (KDDockWidgets::usesClientTitleBar()) {
const auto flags = Config::self().flags();
if ((flags & Config::Flag_HideTitleBarWhenTabsVisible) && !(flags & Config::Flag_AlwaysTitleBarWhenFloating)) {
if ((m_flags & Flag::HideTitleBarWhenTabsVisible) && !(m_flags & Flag::AlwaysTitleBarWhenFloating)) {
if (hasSingleFrame()) {
visible = !frames().first()->hasTabsVisible();
}

View File

@@ -44,7 +44,11 @@ public:
enum class Flag {
None = 0,
TitleBarHasMinimizeButton = 1,
TitleBarHasMaximizeButton = 2
TitleBarHasMaximizeButton = 2,
KeepAboveIfNotUtilityWindow = 4,
NativeTitleBar = 8,
HideTitleBarWhenTabsVisible = 16,
AlwaysTitleBarWhenFloating = 32
};
Q_DECLARE_FLAGS(Flags, Flag);