Refactored and unified icon rendering, implemented per-icon fallback logic

Authored by nmel on Apr 22 2018, 10:00 PM.

Description

Refactored and unified icon rendering, implemented per-icon fallback logic

Merge branch 'fix-missing-icons'

The merged branch contains implementation of per-icon fallback logic:

  1. Search icon in the active icon theme — if found, use it.
  2. Search it in the icon theme that is specified in Krusader config — if found, use it.
  3. Search it in Breeze or Oxygen (in case any of these installed) — if found, use it.
  4. Otherwise use a default "icon-missing" icon bundled with Krusader.

FIXED: [ 372964 ] At least one Oxygen icon in Krusader is not correctly seen (using Kubuntu 16.04)
BUG: 372964

FIXED: [ 372966 ] Some icons are not seen using a plain Ubuntu (not Kubuntu) 16.04
BUG: 372966

CCBUG: 376699
CCBUG: 381676
CCBUG: 386554
CCBUG: 388691
CCBUG: 391899

Differential Revision: https://phabricator.kde.org/D10352

Merged Changes

CommitAuthorDetailsCommitted
95a0ba17cc2fnmel
Fixed an icon variable name. 
Apr 21 2018
36ec531a0dacnmel
Added text fallback to some Synchronizer buttons 
Apr 21 2018
3387a181317cnmel
Icon: improved a method name and a comment 
Apr 18 2018
0a89152c8260nmel
Added workaround for Breeze variant selection based on theme lightness 
Apr 18 2018
753d508d270cnmel
Replaced KIconLoader::loadMimeTypeIcon with Icon 
Apr 18 2018
508675633016nmel
Added dynamic selection of light or dark Breeze fallback theme 
Apr 18 2018
86115e3b688dnmel
Updated icon-missing icon to be similar in style to the Breeze icon theme 
Apr 18 2018
297338f6de21nmel
Fixed missing icons in the file list (KrView) 
Apr 18 2018
4864e38a23beD10352nmel
Fixed names of variables, functions, members, methods related to icons 
Apr 14 2018
85de0cec2734D10352nmel
Icon: Added overlay support and replaced KDE::icon in the project 
Apr 14 2018
8612eddd542eD10352nmel
Fixed icon for dragging multiple items between panels 
Apr 13 2018
e90ea0ec104dD10352nmel
Icon: don't apply fallback in case of empty icon name 
Apr 13 2018
5d64608bc6a8D10352nmel
Removed KrGlobal::iconLoader and cleaned up KIconLoader includes 
Apr 13 2018
0ccf0748e534D10352nmel
Icon: improved comments and messages 
Apr 13 2018
9da2a28d6dd8D10352nmel
Used KIconLoader in icon search to improve mime icons 
Apr 13 2018
44d37ecbada1D10352nmel
Replaced SmallIcon with Icon 
Apr 13 2018
0b4df738799fD10352nmel
Replaced FL_LOADICON with FileListIcon::pixmap 
Apr 13 2018
9b5d31904fdeD10352nmel
Fixed misuse of FL_LOADICON 
Apr 13 2018
02100ceabaa2D10352nmel
Switched from KIconLoader to Icon in ActionMan 
Apr 13 2018
c741229623c1D10352nmel
Switched krLoader->loadIcon to Icon in case it's used as QPixmap 
Apr 13 2018
575f3e00a54dD10352nmel
Switched krLoader->loadIcon to Icon in case it's used as QIcon 
Apr 13 2018
b475b1ac15f0D10352nmel
Fixed icons on Synchronizer buttons 
Apr 13 2018
5f5f7477a603D10352nmel
Replaced QIcon::hasThemeIcon calls with Icon::exists; refactored icon search 
Apr 13 2018
ab5226f0aebaD10352nmel
Switched app icon to Icon 
Apr 11 2018
580ac5efe6b0D10352nmel
+ Konfigurator option to specify a fallback icon theme 
Apr 11 2018
aeae6781ef02D10352nmel
Implemented icon cache and system theme change handling 
Apr 11 2018
27d4082dcc6eD10352nmel
Fixed icons in User Action Examples 
Apr 11 2018
e1828f60ccc8D10352nmel
Added loading fallback icon from resource file 
Apr 11 2018
10caec54a1d1D10352nmel
Replaced QIcon::fromTheme with Icon instances 
Apr 11 2018
218489c8cd1bD10352nmel
Added Icon class that implements per-icon fallback logic 
Apr 11 2018
0a53a37417e2D10352martinkostolny/nmel
Removed old commented code for handling icons 
Apr 11 2018