Bug 363895

Summary: Checked menu items that show only a tick (√) instead of a checkbox or radio button
Product: [Frameworks and Libraries] QtCurve Reporter: RJVB <rjvbertin>
Component: generalAssignee: Yichao Yu <yyc1992>
Status: RESOLVED FIXED    
Severity: wishlist CC: hein, simonandric5
Priority: NOR    
Version: git   
Target Milestone: ---   
Platform: Other   
OS: All   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: This patch implements what I had in mind for the Qt4 and Qt5 styles, unconditionally for now

Description RJVB 2016-06-03 14:14:39 UTC
I'm using QtCurve to create an alternative to the Mac OS X native theme, adhering as closely as possible to its design principles and colours.

As such, I'd like to have an option to let checked menu items display only a tick (√) instead of the current checkbox (tickbox) or radiobuttons. Currently I only see a way to do that unconditionally but I presume not all users would be happy with such a choice.

Either way:
- where should I look for the actual drawing of the tickbox/radiobutton? I could already experiment by replacing that with something that draws only the tickbox's tick.
- is anyone familiar enough with the code to give me some guidance in implementing the settings/preference UI?

Reproducible: Always

Steps to Reproduce:
NA

Actual Results:  
Checkable menu items/actions show either a tickbox or radiobuttons, the same widgets used in dialogs.

Expected Results:  
A simple tick or checkmark (√)

See

https://quickgit.kde.org/?p=scratch%2Frjvbb%2Fosx-integration.git&a=tree&h=927ec909752c9c56c2b93149f845aae8b42f69a4&hb=ddf611695a8f9c039e2687f97b6bcdc2b73013b5&f=src%2Fplatformtheme%2Fpresets 

for my current QtCurve "Mac OS X Graphite" config and accompanying colour palette
Comment 1 RJVB 2016-06-03 16:02:29 UTC
Created attachment 99342 [details]
This patch implements what I had in mind for the Qt4 and Qt5 styles, unconditionally for now
Comment 2 RJVB 2016-06-08 16:25:43 UTC
Git commit 92c01a6b3ed5b13ddbf5ecd95528915d3038b8e9 by René J.V. Bertin.
Committed on 08/06/2016 at 16:17.
Pushed by rjvbb into branch 'master'.

New option to draw checked menu items with only a check mark instead
of a checkbox or radiobutton. This kind of rendering is the default
on platforms like MS Windows and Mac OS X and is also used by Qt's
Fusion style as well as in the QtCurve GTk2 style.
The check mark (tick) is rendered with a font glyph at the same point
size as the menu item text and should thus always be scaled correctly.
The option can be de/activated on the Popup menus configuration page
in the "Configure QtCurve" KDE control module ("Check marks only").
It is stored as "onlyTicksInMenu" in the .qtcurve theme files.
The option is on by default on OS X, off by default elsewhere.
REVIEW: 128097
Committed from host : Portia.local

M  +2    -0    gtk2/common/common.h
M  +6    -0    gtk2/common/config_file.cpp
M  +1    -0    qt4/common/common.h
M  +7    -0    qt4/common/config_file.cpp
M  +11   -0    qt4/config/qtcurveconfig.cpp
M  +27   -17   qt4/config/qtcurveconfigbase.ui
M  +116  -6    qt4/config/stylepreview.ui
M  +34   -9    qt4/style/qtcurve.cpp
M  +6    -0    qt5/common/common.h
M  +8    -0    qt5/common/config_file.cpp
M  +13   -2    qt5/config/qtcurveconfig.cpp
M  +140  -49   qt5/config/qtcurveconfigbase.ui
M  +119  -9    qt5/config/stylepreview.ui
M  +3    -0    qt5/style/qtcurve.cpp
M  +1    -0    qt5/style/qtcurve.h
M  +62   -21   qt5/style/qtcurve_api.cpp
M  +31   -6    qt5/style/qtcurve_primitive.cpp

http://commits.kde.org/qtcurve/92c01a6b3ed5b13ddbf5ecd95528915d3038b8e9