[graphics/krita] libs/ui: Add option to show or not icons in menu
Timothée Giet <[email protected]>
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git commit a997f4adabc4d40f0ce70074c15e3d211037518e by Timothée Giet.
Committed on 27/07/2026 at 15:24.
Pushed by timotheegiet into branch 'master'.
Add option to show or not icons in menu
Add option to override the native convention and let users decide if they want
icons in menu.
M +7 -0 libs/ui/KisApplication.cpp
M +11 -0 libs/ui/dialogs/kis_dlg_preferences.cc
M +1 -0 libs/ui/dialogs/kis_dlg_preferences.h
M +64 -3 libs/ui/forms/wdggeneralsettings.ui
M +10 -0 libs/ui/kis_config.cc
M +8 -0 libs/ui/kis_config.h
https://invent.kde.org/graphics/krita/-/commit/a997f4adabc4d40f0ce70074c15e3d211037518e
diff --git a/libs/ui/KisApplication.cpp b/libs/ui/KisApplication.cpp
index 83f65f04234..cf9b5ba8e8d 100644
--- a/libs/ui/KisApplication.cpp
+++ b/libs/ui/KisApplication.cpp
@@ -486,6 +486,13 @@ bool KisApplication::start(const KisApplicationArguments &args)
KisConfig cfg(false);
+ auto iconsInMenuMode = cfg.iconsInMenu();
+ if (iconsInMenuMode == KisConfig::IIM_Yes) {
+ QCoreApplication::setAttribute(Qt::AA_DontShowIconsInMenus, false);
+ } else if (iconsInMenuMode == KisConfig::IIM_No) {
+ QCoreApplication::setAttribute(Qt::AA_DontShowIconsInMenus, true);
+ }
+
#if defined(Q_OS_WIN)
#ifdef ENV32BIT
diff --git a/libs/ui/dialogs/kis_dlg_preferences.cc b/libs/ui/dialogs/kis_dlg_preferences.cc
index e94200edfa9..5bbab4f626c 100644
--- a/libs/ui/dialogs/kis_dlg_preferences.cc
+++ b/libs/ui/dialogs/kis_dlg_preferences.cc
@@ -558,6 +558,11 @@ GeneralTab::GeneralTab(QWidget *_parent, const char *_name)
chkIgnoreHighFunctionKeys->setVisible(false);
#endif
+ cmbIconsInMenu->addItem(i18n("Default"));
+ cmbIconsInMenu->addItem(i18n("Yes"));
+ cmbIconsInMenu->addItem(i18n("No"));
+ cmbIconsInMenu->setCurrentIndex(cfg.iconsInMenu());
+
//
// Resources
//
@@ -972,6 +977,11 @@ KisConfig::SessionOnStartup GeneralTab::sessionOnStartup() const
return (KisConfig::SessionOnStartup)cmbStartupSession->currentIndex();
}
+KisConfig::IconsInMenu GeneralTab::iconsInMenu() const
+{
+ return (KisConfig::IconsInMenu)cmbIconsInMenu->currentIndex();
+}
+
bool GeneralTab::saveSessionOnQuit() const
{
return chkSaveSessionOnQuit->isChecked();
@@ -3060,6 +3070,7 @@ bool KisDlgPreferences::editPreferences(std::optional<PageDesc>page)
cfg.setForceAlwaysFullSizedEraserOutline(!m_general->m_changeEraserBrushOutline->isChecked());
cfg.setSessionOnStartup(m_general->sessionOnStartup());
cfg.setSaveSessionOnQuit(m_general->saveSessionOnQuit());
+ cfg.setIconsInMenu(m_general->iconsInMenu());
KConfigGroup group = KSharedConfig::openConfig()->group("File Dialogs");
group.writeEntry("DontUseNativeFileDialog", !m_general->m_chkNativeFileDialog->isChecked());
diff --git a/libs/ui/dialogs/kis_dlg_preferences.h b/libs/ui/dialogs/kis_dlg_preferences.h
index b0e9e26a462..881a8b2bed3 100644
--- a/libs/ui/dialogs/kis_dlg_preferences.h
+++ b/libs/ui/dialogs/kis_dlg_preferences.h
@@ -75,6 +75,7 @@ public:
bool colorSamplerPreviewCircleExtraCirclesEnabled() const;
KisConfig::SessionOnStartup sessionOnStartup() const;
+ KisConfig::IconsInMenu iconsInMenu() const;
bool saveSessionOnQuit() const;
bool showRootLayer();
diff --git a/libs/ui/forms/wdggeneralsettings.ui b/libs/ui/forms/wdggeneralsettings.ui
index 7664abbd2b4..4f42fdca340 100644
--- a/libs/ui/forms/wdggeneralsettings.ui
+++ b/libs/ui/forms/wdggeneralsettings.ui
@@ -495,7 +495,68 @@
</layout>
</widget>
</item>
- <item row="2" column="0" colspan="2">
+ <item row="2" column="0">
+ <widget class="QLabel" name="label_23">
+ <property name="text">
+ <string>Icons in menu:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QFrame" name="frame2">
+ <layout class="QHBoxLayout" name="horizontalLayout_5">
+ <property name="leftMargin">
+ <number>0</number>
+ </property>
+ <property name="topMargin">
+ <number>0</number>
+ </property>
+ <property name="rightMargin">
+ <number>0</number>
+ </property>
+ <property name="bottomMargin">
+ <number>0</number>
+ </property>
+ <item>
+ <widget class="QComboBox" name="cmbIconsInMenu">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer_6">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Fixed</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>0</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_24">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>(Needs restart)</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="3" column="0" colspan="2">
<widget class="QGroupBox" name="chkUseCustomFont">
<property name="title">
<string>Use custom interface font</string>
@@ -545,7 +606,7 @@
</layout>
</widget>
</item>
- <item row="3" column="0" colspan="2">
+ <item row="4" column="0" colspan="2">
<widget class="QGroupBox" name="m_chkHiDPI">
<property name="title">
<string>Enable HiDPI support</string>
@@ -605,7 +666,7 @@
</layout>
</widget>
</item>
- <item row="4" column="0" colspan="2">
+ <item row="5" column="0" colspan="2">
<spacer name="verticalSpacer_4">
<property name="orientation">
<enum>Qt::Vertical</enum>
diff --git a/libs/ui/kis_config.cc b/libs/ui/kis_config.cc
index df6b47be7db..4354b9d4d7f 100644
--- a/libs/ui/kis_config.cc
+++ b/libs/ui/kis_config.cc
@@ -1479,6 +1479,16 @@ void KisConfig::setSessionOnStartup(SessionOnStartup value)
m_cfg.writeEntry("sessionOnStartup", (int)value);
}
+KisConfig::IconsInMenu KisConfig::iconsInMenu(bool defaultValue) const
+{
+ int value = defaultValue ? IIM_Default : m_cfg.readEntry("iconsInMenu", (int)IIM_Default);
+ return (KisConfig::IconsInMenu)value;
+}
+void KisConfig::setIconsInMenu(IconsInMenu value)
+{
+ m_cfg.writeEntry("iconsInMenu", (int)value);
+}
+
bool KisConfig::saveSessionOnQuit(bool defaultValue) const
{
return defaultValue ? false : m_cfg.readEntry("saveSessionOnQuit", false);
diff --git a/libs/ui/kis_config.h b/libs/ui/kis_config.h
index f2440ff937d..78b01aac01e 100644
--- a/libs/ui/kis_config.h
+++ b/libs/ui/kis_config.h
@@ -374,6 +374,14 @@ public:
SessionOnStartup sessionOnStartup(bool defaultValue = false) const;
void setSessionOnStartup(SessionOnStartup value);
+ enum IconsInMenu {
+ IIM_Default,
+ IIM_Yes,
+ IIM_No
+ };
+ IconsInMenu iconsInMenu(bool defaultValue = false) const;
+ void setIconsInMenu(IconsInMenu value);
+
bool saveSessionOnQuit(bool defaultValue) const;
void setSaveSessionOnQuit(bool value);