SVN commit 1194750 by cfeck: Allow to hide menu icons
I tested this for three weeks, and when I wanted to revert to the old behavior, I was really shocked how cluttered the menus look with icons :) There are only two places, where I initally missed the icons: - "Classic" KDE menu - Konqueror Bookmarks menu For those places, we could request icons by using the QAction property, but this probably has to discussed with users. Actually, I now like the classic menu not showing icons, because it opens much faster without them. The bookmark menu never was a problem speedwise. See http://svn.reviewboard.kde.org/r/5609/ FEATURE: 253339 GUI: M +22 -2 kdebase/workspace/kcontrol/style/finetuning.ui M +13 -0 kdebase/workspace/kcontrol/style/kcmstyle.cpp M +2 -0 kdelibs/kdeui/kernel/kglobalsettings.cpp --- trunk/KDE/kdebase/workspace/kcontrol/style/finetuning.ui #1194749:1194750 @@ -57,7 +57,27 @@ </property> </widget> </item> - <item row="2" column="0" colspan="3"> + <item row="2" column="0"> + <widget class="QLabel" name="label_5"> + <property name="text"> + <string>Show icons in menus:</string> + </property> + <property name="alignment"> + <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set> + </property> + <property name="buddy"> + <cstring>cbIconsInMenus</cstring> + </property> + </widget> + </item> + <item row="2" column="1"> + <widget class="QCheckBox" name="cbIconsInMenus"> + <property name="text"> + <string/> + </property> + </widget> + </item> + <item row="3" column="0" colspan="3"> <widget class="QGroupBox" name="groupBox"> <property name="title"> <string>Toolbars</string> @@ -153,7 +173,7 @@ </layout> </widget> </item> - <item row="3" column="0"> + <item row="4" column="0"> <spacer name="verticalSpacer"> <property name="orientation"> <enum>Qt::Vertical</enum> --- trunk/KDE/kdebase/workspace/kcontrol/style/kcmstyle.cpp #1194749:1194750 @@ -255,6 +255,7 @@ connect(cbStyle, SIGNAL(activated(int)), this, SLOT(setStyleDirty())); connect(fineTuningUi.cbIconsOnButtons, SIGNAL(toggled(bool)), this, SLOT(setEffectsDirty())); + connect(fineTuningUi.cbIconsInMenus, SIGNAL(toggled(bool)), this, SLOT(setEffectsDirty())); connect(fineTuningUi.comboGraphicEffectsLevel, SIGNAL(activated(int)), this, SLOT(setEffectsDirty())); connect(fineTuningUi.comboToolbarIcons, SIGNAL(activated(int)), this, SLOT(setEffectsDirty())); connect(fineTuningUi.comboSecondaryToolbarIcons, SIGNAL(activated(int)), this, SLOT(setEffectsDirty())); @@ -375,11 +376,19 @@ if ( !(m_bStyleDirty | m_bEffectsDirty ) ) return; + const bool showMenuIcons = !QApplication::testAttribute(Qt::AA_DontShowIconsInMenus); + if (fineTuningUi.cbIconsInMenus->isChecked() != showMenuIcons) { + KMessageBox::information(this, + i18n("<p>Changes to the visibilty of menu icons will only affect newly started applications.</p>"), + i18nc("@title:window", "Menu Icons Changed"), "MenuIconsChanged"); + } + // Save effects. KConfig _config("kdeglobals", KConfig::NoGlobals); KConfigGroup config(&_config, "KDE"); // Effects page config.writeEntry( "ShowIconsOnPushButtons", fineTuningUi.cbIconsOnButtons->isChecked()); + config.writeEntry( "ShowIconsInMenuItems", fineTuningUi.cbIconsInMenus->isChecked()); KConfigGroup g( &_config, "KDE-Global GUI Settings" ); g.writeEntry( "GraphicEffectsLevel", fineTuningUi.comboGraphicEffectsLevel->itemData(fineTuningUi.comboGraphicEffectsLevel->currentIndex())); @@ -479,6 +488,7 @@ fineTuningUi.comboToolbarIcons->setCurrentIndex(toolbarButtonIndex("TextBesideIcon")); fineTuningUi.comboSecondaryToolbarIcons->setCurrentIndex(toolbarButtonIndex("TextBesideIcon")); fineTuningUi.cbIconsOnButtons->setChecked(true); + fineTuningUi.cbIconsInMenus->setChecked(true); fineTuningUi.comboGraphicEffectsLevel->setCurrentIndex(fineTuningUi.comboGraphicEffectsLevel->findData(((int) KGlobalSettings::graphicEffectsLevelDefault()))); emit changed(true); } @@ -710,6 +720,7 @@ configGroup = config.group("KDE"); fineTuningUi.cbIconsOnButtons->setChecked(configGroup.readEntry("ShowIconsOnPushButtons", true)); + fineTuningUi.cbIconsInMenus->setChecked(configGroup.readEntry("ShowIconsInMenuItems", true)); KConfigGroup graphicConfigGroup = config.group("KDE-Global GUI Settings"); fineTuningUi.comboGraphicEffectsLevel->setCurrentIndex(fineTuningUi.comboGraphicEffectsLevel->findData(graphicConfigGroup.readEntry("GraphicEffectsLevel", ((int) KGlobalSettings::graphicEffectsLevel())))); @@ -737,6 +748,8 @@ "Text is aligned below the icon.") ); fineTuningUi.cbIconsOnButtons->setWhatsThis( i18n( "If you enable this option, KDE Applications will " "show small icons alongside some important buttons.") ); + fineTuningUi.cbIconsInMenus->setWhatsThis( i18n( "If you enable this option, KDE Applications will " + "show small icons alongside most menu items.") ); fineTuningUi.comboGraphicEffectsLevel->setWhatsThis( i18n( "If you enable this option, KDE Applications will " "run internal animations.") ); } --- trunk/KDE/kdelibs/kdeui/kernel/kglobalsettings.cpp #1194749:1194750 @@ -1118,6 +1118,8 @@ QApplication::setStartDragDistance(num); num = cg.readEntry("WheelScrollLines", QApplication::wheelScrollLines()); QApplication::setWheelScrollLines(num); + bool showIcons = cg.readEntry("ShowIconsInMenuItems", !QApplication::testAttribute(Qt::AA_DontShowIconsInMenus)); + QApplication::setAttribute(Qt::AA_DontShowIconsInMenus, !showIcons); // KDE5: this seems fairly pointless emit q->settingsChanged(SETTINGS_QT);
