[KDE/Mac] Review Request 126369: [OS X] adaptation(s) to platform limitations (WIP)

René J.V. Bertin rjvbertin at gmail.com
Sun May 29 16:51:58 UTC 2016



> On May 29, 2016, 5:51 p.m., Kai Uwe Broulik wrote:
> >
> 
> Kai Uwe Broulik wrote:
>     Can you check whether QIcon::setIsMask works, OSX >= 10.10 tray icons are monochrome usually.
> 
> René J.V. Bertin wrote:
>     Most of Apple's own icons in the menubar have always been monochrome. This is not true for 3rd party applications. If those show an icon it's often their app icon (which I think is the general idea for icons put up through `KStatusNotifier`).
>     
>     Beyond the fact that `setIsMask` was introduced only in Qt 5.6 I see that the actual icon-setting is done by `QSystemTrayIcon::setIcon()`. I'd propose that the decision whether or not to make a monochrome version of the icon can be left to Qt (esp. if one's supposed not to change Qt's native platform theme by default O:-) )
> 
> Kai Uwe Broulik wrote:
>     Sure, I was just curious if an app opts for a monochrome icon by using setIsMask(true) if that worked when using KSNI.

setIsMask does work for the rest, but not the way you'd expect. It makes a greyscale version of the icon, so the effect depends on the icon; it can become difficult to see depending on what kind (tint) of menubar the user selected.

It looks like a nice way to distinguish the passive and active states though, so thanks for the suggestion.


- René J.V.


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/126369/#review95984
-----------------------------------------------------------


On May 29, 2016, 5:41 p.m., René J.V. Bertin wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/126369/
> -----------------------------------------------------------
> 
> (Updated May 29, 2016, 5:41 p.m.)
> 
> 
> Review request for KDE Software on Mac OS X and KDE Frameworks.
> 
> 
> Repository: knotifications
> 
> 
> Description
> -------
> 
> OS X has a number of limitations in features used by KNotifications, notably concerning the status notifier item (aka system tray icon).
> 
> This RR will likely evolve to address multiple limitations (at least also the NeedsAttention state); at the moment it only proposes an emulation of `QMenu::addSection`.
> 
> `QMenu::addSection` works by adding a QAction with a "texted separator" at the insertion location. Texted separators do not exist in menu items in the OS X "global" menubar (they become regular separators), and Qt will not provide a platform-specific implementation. Loss of the section title text is maybe not always an issue, but I think it is in the system tray menu. I therefore propose to emulate `QMenu::addSection` by replacing the texted separator with an inactive (disabled) menu item that shows the text, followed by a standard separator. Menus in the notification area are much less subject to interface guidelines, so the presence of an item icon is acceptable and IMO useful for the `titleAction`.
> 
> Testing the NeedsAttention state with the tests/kstatusnotifieritemtest application leads to disappearance of the menubar icon, i.e. the access to the notifier menu becomes invisible rather than blinking (which is what I get on Linux using the same packaging). Adding a few qDebug statements shows that the `attentionIcon` is empty.
> I'd appreciate a crash course how this feature is supposed to work, so I can see if an OS X implementation might be feasible.
> 
> 
> Diffs
> -----
> 
>   CMakeLists.txt 7cf8379 
>   src/CMakeLists.txt 7eb3125 
>   src/knotification.cpp 352cf49 
>   src/kstatusnotifieritem.cpp 27abfb8 
>   src/notifybypopup.cpp 7d69a36 
>   tests/kstatusnotifieritemtest.cpp 973fc85 
> 
> Diff: https://git.reviewboard.kde.org/r/126369/diff/
> 
> 
> Testing
> -------
> 
> On OS X 10.9.5 with Qt 5.5.1 and frameworks 5.17.0 .
> 
> 
> File Attachments
> ----------------
> 
> the systray icon & menu created by kstatusnotifieritemtest . This application has no icon to show.
>   https://git.reviewboard.kde.org/media/uploaded/files/2015/12/16/286037ae-07b3-454a-a226-1748854493a1__kstatusnotifieritemtest-systray.png
> The systray icon and menu created by the KDE4 kwalletmanager (code has an equivalent patch)
>   https://git.reviewboard.kde.org/media/uploaded/files/2015/12/16/4fc9d4e4-1537-478c-9196-94cbc17b6b7c__kwalletmanager-systray.png
> An Apple systray icon+menu that shows icons (which cannot be hidden)
>   https://git.reviewboard.kde.org/media/uploaded/files/2015/12/16/fc48a963-2e18-4396-bd38-062d41688118__Apple-systray-menu-with-icons.png
> kstatusnotifieritemtest with added appIcon
>   https://git.reviewboard.kde.org/media/uploaded/files/2015/12/17/e896e90d-f0a8-43f7-9199-847572832df7__kstatusnotifieritemtest-with-appIcon.png
> kstatusnotifieritemtest-with-appIcon+attention.png
>   https://git.reviewboard.kde.org/media/uploaded/files/2015/12/17/f41081db-8e09-4ea2-95c1-f507c62109d4__kstatusnotifieritemtest-with-appIconattention.png
> 
> 
> Thanks,
> 
> René J.V. Bertin
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-mac/attachments/20160529/6e0a9c89/attachment-0001.html>


More information about the kde-mac mailing list