From f1f555d5ab7bfd017d2d00f9de593a052e2673a8 Mon Sep 17 00:00:00 2001 From: mateoconlechuga Date: Sun, 3 Jan 2021 19:36:56 -0700 Subject: [PATCH] Add support for setting toggle action icon This adds support for a custom icon to be displayed in a QMenu. --- src/DockWidgetBase.cpp | 6 ++++++ src/DockWidgetBase.h | 7 ++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/DockWidgetBase.cpp b/src/DockWidgetBase.cpp index 27ae4544..f93816b4 100644 --- a/src/DockWidgetBase.cpp +++ b/src/DockWidgetBase.cpp @@ -393,6 +393,9 @@ void DockWidgetBase::setIcon(const QIcon &icon, IconPlaces places) if (places & IconPlace::TabBar) d->tabBarIcon = icon; + if (places & IconPlace::ToggleAction) + d->toggleAction->setIcon(icon); + Q_EMIT iconChanged(); } @@ -404,6 +407,9 @@ QIcon DockWidgetBase::icon(IconPlace place) const if (place == IconPlace::TabBar) return d->tabBarIcon; + if (place == IconPlace::ToggleAction) + return d->toggleAction->icon(); + return {}; } diff --git a/src/DockWidgetBase.h b/src/DockWidgetBase.h index 47d0a9c5..c69a0143 100644 --- a/src/DockWidgetBase.h +++ b/src/DockWidgetBase.h @@ -82,7 +82,8 @@ public: enum class IconPlace { TitleBar = 1, TabBar = 2, - All = TitleBar | TabBar + ToggleAction = 4, + All = ToggleAction | TitleBar | TabBar }; Q_ENUM(IconPlace) Q_DECLARE_FLAGS(IconPlaces, IconPlace) @@ -229,7 +230,7 @@ public: /** * @brief Sets an icon to show on title bars and tab bars. - * @param places Specifies where the icon will be shown (TitleBar, TabBar or both) + * @param places Specifies where the icon will be shown (TitleBar, TabBar, ToggleAction, or All) * * By default there's no icon set. * @@ -238,7 +239,7 @@ public: void setIcon(const QIcon &icon, IconPlaces places = IconPlace::All); /** - * @brief Returns the dock widget's titlebar or tabbar icon (depending on the passed @p place) + * @brief Returns the dock widget's titlebar, tabbar, or toggle action icon (depending on the passed @p place) * * By default it's null. *