zzag added a comment.
Alright here's a patch which would make possible to turn off reserving space. Yet, a checkbox should be added in "Fine tuning" tab. From 45be224b2fb31966a3117aa1f226f8ea711f8109 Mon Sep 17 00:00:00 2001 From: Vlad Zagorodniy <vladz...@gmail.com> Date: Tue, 13 Feb 2018 17:44:43 +0200 Subject: [PATCH] add reserve space from checkboxes option --- kstyle/breezestyle.cpp | 20 +++++++++++++++++--- kstyle/breezestyle.h | 3 +++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/kstyle/breezestyle.cpp b/kstyle/breezestyle.cpp index 07f0be7d..02189575 100644 --- a/kstyle/breezestyle.cpp +++ b/kstyle/breezestyle.cpp @@ -2728,7 +2728,11 @@ namespace Breeze leftColumnWidth += Metrics::MenuItem_ItemSpacing; // add checkbox indicator width - leftColumnWidth += Metrics::CheckBox_Size + Metrics::MenuItem_ItemSpacing; + if( menuItemOption->menuHasCheckableItems || reserveSpaceForCheckboxesInMenus() ) + { + leftColumnWidth += Metrics::CheckBox_Size + + Metrics::MenuItem_ItemSpacing; + } // add spacing for accelerator /* @@ -4697,8 +4701,11 @@ namespace Breeze // define relevant rectangles // checkbox QRect checkBoxRect; - checkBoxRect = QRect( contentsRect.left(), contentsRect.top() + (contentsRect.height()-Metrics::CheckBox_Size)/2, Metrics::CheckBox_Size, Metrics::CheckBox_Size ); - contentsRect.setLeft( checkBoxRect.right() + Metrics::MenuItem_ItemSpacing + 1 ); + if( menuItemOption->menuHasCheckableItems || reserveSpaceForCheckboxesInMenus() ) + { + checkBoxRect = QRect( contentsRect.left(), contentsRect.top() + (contentsRect.height()-Metrics::CheckBox_Size)/2, Metrics::CheckBox_Size, Metrics::CheckBox_Size ); + contentsRect.setLeft( checkBoxRect.right() + Metrics::MenuItem_ItemSpacing + 1 ); + } // render checkbox indicator if( menuItemOption->checkType == QStyleOptionMenuItem::NonExclusive ) @@ -7074,6 +7081,13 @@ namespace Breeze return g.readEntry("ShowIconsInMenuItems", true); } + //____________________________________________________________________ + bool Style::reserveSpaceForCheckboxesInMenus() const + { + const KConfigGroup g(KSharedConfig::openConfig(), "KDE"); + return g.readEntry("ReserveSpaceForCheckboxesInMenus", true); + } + //____________________________________________________________________ bool Style::showIconsOnPushButtons() const { diff --git a/kstyle/breezestyle.h b/kstyle/breezestyle.h index 12548c92..031a1225 100644 --- a/kstyle/breezestyle.h +++ b/kstyle/breezestyle.h @@ -468,6 +468,9 @@ namespace Breeze //* return true if icons should be shown in menus bool showIconsInMenuItems() const; + //* return true if space is reserved for checkboxes in menus + bool reserveSpaceForCheckboxesInMenus() const; + //* return true if icons should be shown on buttons bool showIconsOnPushButtons() const; -- 2.16.1 But, I would like to have D10480 <https://phabricator.kde.org/D10480> in master so I could complete the patch above. REPOSITORY R31 Breeze REVISION DETAIL https://phabricator.kde.org/D10438 To: zzag, #breeze, #vdg, ngraham, hpereiradacosta Cc: alake, colomar, januz, fabianr, mmustac, abetts, anemeth, plasma-devel, ZrenBot, progwolff, lesliezhai, ali-mohamed, jensreuterberg, sebas, apol, mart