Improve icons consistency
KMyMoney UI currently displays random icons from different themes due to the fact that the default breeze theme does not offer KMyMoney contextual app icons, and breeze is a default theme for KDE desktop and obligatory ([1]) for macOS, Windows and AppImage packages.
This can be improved by:
-
requesting VDG team to provide missing breeze icons: http://bugs.kde.org/show_bug.cgi?id=421382 -
requesting VDG team to provide missing sidebar colorful (non-symbolic) icons. Related issue: https://phabricator.kde.org/T10165 -
Removing all of the KMM-specific icons from icons\
(Tango, Hi-Color, Oxygen) icons from kmymoney package and replacing them with modern breeze icons. These will be used in case the configured Linux/BSD [1] system theme does not offer their own KMM icons, guaranteeing the UI to present modern icons if the user's theme of choice is not compatible with up-to-date breeze theme or does not ship own set of KMM icons. -
changing the icon mapping logic to load them based on priority and availability (the latter isn't checked right now) at the time of request. Icons compatible with breeze naming scheme are to be used first, followed by any other alternative names previously used by kmymoney in order to maintain compatibility with other themes. Such list can be extended to support other major, official icon themes (Ubuntu's Yaru) at a later time.This is no longer relevant. A complete list of breeze icons will be delivered with the app, following the industry trend. Any compatibility with 3rd party icon themes will have to be handled by their maintainers. -
Addressing the redundant icon overlaying logic in MyMoneyAccount::accountPixmap() -
Refactoring Icons::icon names to reflect the actual context of usage, as opposed to current naming based on the filename of the them icon chosen to represent it (often misleading). -
Replacing the explicit QIcon::fromTheme() leftover calls with Icons::get() wrapper. -
Disable Icons configuration dialog on macOS/Windows since breeze theme is hardcoded for these platforms. -
Add new app icon to all external sources -
website -
documentation -
GitLab project -
Telegram channel
-
This will greatly reduce the codebase complexity and guarantee a best effort in displaying a modern set of icons on each of the platforms, even in case the system theme of choice (on Linux/BSD[1]) is missing KMyMoney icons.
The only potential drawback of these changes is for users who intentionally choose to use Oxygen, Tango or HiColor themes will loose the KMM-specific native icons once they upgrade to a recent KMyMoney version through a system packager. It is a very obscure scenario, though, given how no modern distribution uses any of these icon themes anyway and most users rely on distribution's choice of theming.
[1] Note that Windows/macOS packages ship complete breeze icon set, due to current KIconTheme and Craft limitations. AppImage, by definition, does too.