It needs to be an add-on extending the Plasma shell. As this is a special
case it makes sense to add a special template overriding the one from
c++utilities.
* Allow using icons from freedesktop.org icon theme for most ForkAwesome
icons if available
* Let's not use it for the nested list of details in the models for now
* See https://github.com/Martchus/syncthingtray/issues/121
* Remove `0 &&` in condition for making `QPalette` from Plasma theme
* Set `WindowText`/`Window` of `QPalette` in legacy case so
`isPaletteDark()` works
* Set the icon manager's palette from the beginning (and not only if the
Plasma theme changes)
For instance, the NetworkManager Plasmoid uses these margins for its
ListView. It looks probably better than without margins (after removing
paddings with scroll page).
It is actually just the normal marging/padding Plasmoids normally have but
with the scroll bar it doesn't look good.
The margins would be automatically collapsed if the scroll view was the
immediate content item. However, that's not the case so we need to set the
according property manually using `Plasma.Representation`.
* Make the Fork Awesome image provider URL a property and change its value
if the Plasmoid's theme changes to cause Qt Quick to redraw images
* Turn caching of Image objects off so Qt Quick actually fetches the images
again from the image provider
* Change the URL only back after returning to the event loop; otherwise Qt
Quick apparently does not react to the property change
* See https://github.com/Martchus/syncthingtray/issues/126
This should avoid:
```
file:///usr/share/plasma/plasmoids/martchus.syncthingplasmoid-git/contents/ui/main.qml:13:34: QML FullRepresentation: Binding loop detected for property "implicitWidth"
…
qml: PlasmaExtras.ScrollArea is deprecated. Use PlasmaComponents3.ScrollView instead.
…
file:///usr/share/plasma/plasmoids/martchus.syncthingplasmoid-git/contents/ui/TabButton.qml:27:13: Unable to assign [undefined] to QFont
…
file:///usr/share/plasma/plasmoids/martchus.syncthingplasmoid-git/contents/ui/ToolButton.qml:23:13: Unable to assign [undefined] to QFont
```
This should prevent the following warnings:
```
file:///usr/share/plasma/plasmoids/martchus.syncthingplasmoid/contents/ui/FullRepresentation.qml:284:17: QML DevicesPage: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
file:///usr/share/plasma/plasmoids/martchus.syncthingplasmoid/contents/ui/FullRepresentation.qml:287:17: QML DownloadsPage: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
file:///usr/share/plasma/plasmoids/martchus.syncthingplasmoid/contents/ui/FullRepresentation.qml:290:17: QML RecentChangesPage: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
file:///usr/share/plasma/plasmoids/martchus.syncthingplasmoid/contents/ui/FullRepresentation.qml:281:17: QML DirectoriesPage: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
file:///usr/share/plasma/plasmoids/martchus.syncthingplasmoid/contents/ui/FullRepresentation.qml:284:17: QML DevicesPage: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
file:///usr/share/plasma/plasmoids/martchus.syncthingplasmoid/contents/ui/FullRepresentation.qml:287:17: QML DownloadsPage: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
file:///usr/share/plasma/plasmoids/martchus.syncthingplasmoid/contents/ui/FullRepresentation.qml:290:17: QML RecentChangesPage: Detected anchors on an item that is managed by a layout. This is undefined behavior; use Layout.alignment instead.
```
See https://github.com/Martchus/syncthingtray/issues/133