From d1b2d17f7d04ca7cb3dd39bbc447c413d7c9ca1b Mon Sep 17 00:00:00 2001 From: Sergio Martins Date: Sat, 3 Oct 2020 14:58:07 +0100 Subject: [PATCH] Allow the normal/restore icon to be different than float/dock Allow we use the same icon, the user might now want to, so allow them to use a different icon --- src/FrameworkWidgetFactory.cpp | 4 ++++ src/KDDockWidgets.h | 1 + src/private/widgets/TitleBarWidget.cpp | 3 ++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/FrameworkWidgetFactory.cpp b/src/FrameworkWidgetFactory.cpp index d56cba8e..17f70d9c 100644 --- a/src/FrameworkWidgetFactory.cpp +++ b/src/FrameworkWidgetFactory.cpp @@ -142,6 +142,10 @@ QIcon DefaultWidgetFactory::iconForButtonType(TitleBarButtonType type, qreal dpr case TitleBarButtonType::Maximize: iconName = QStringLiteral("max"); break; + case TitleBarButtonType::Normal: + // We're using the same icon as dock/float + iconName = QStringLiteral("dock-float"); + break; case TitleBarButtonType::Float: iconName = QStringLiteral("dock-float"); break; diff --git a/src/KDDockWidgets.h b/src/KDDockWidgets.h index 428a0004..82469bc2 100644 --- a/src/KDDockWidgets.h +++ b/src/KDDockWidgets.h @@ -113,6 +113,7 @@ namespace KDDockWidgets Float, Minimize, Maximize, + Normal, // Restore from maximized state AutoHide, UnautoHide }; diff --git a/src/private/widgets/TitleBarWidget.cpp b/src/private/widgets/TitleBarWidget.cpp index fc53ac64..e40294c5 100644 --- a/src/private/widgets/TitleBarWidget.cpp +++ b/src/private/widgets/TitleBarWidget.cpp @@ -196,7 +196,8 @@ void TitleBarWidget::updateMaximizeButton() { if (auto fw = floatingWindow()) { auto factory = Config::self().frameworkWidgetFactory(); - const TitleBarButtonType iconType = fw->isMaximized() ? TitleBarButtonType::Float : TitleBarButtonType::Maximize; + const TitleBarButtonType iconType = fw->isMaximized() ? TitleBarButtonType::Normal + : TitleBarButtonType::Maximize; m_maximizeButton->setIcon(factory->iconForButtonType(iconType, devicePixelRatioF())); m_maximizeButton->setVisible(supportsMaximizeButton());