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
* Use header (with integrated buttons when shown as part of the system tray
Plasmoid)
* Use less space so it fits into the system tray plasmoid (at least on a
full HD screen with 96 dpi)
* Show action for internal errors only if there are internal errors (like
in the Qt Widgets based GUI)
* Port away from deprecated tab bar (which is not used in official
Plasmoids anymore as well)
* Simplify code for ensuring the minimum size as configured (still does
not work within the system tray Plasmoid)
It fits better than "view-barcode" from the icon theme. This also tests
using ForkAwesome icons via the custom icon engine. Unfortunately this
does not seem to work within the Plasmoid so far.
* FontAwesome uses a propritary build system so let's move to its fork
ForkAwesome similar to Syncthing
* See https://github.com/syncthing/syncthing/pull/5237
* Bundle the font file instead of having the SVGs directly within
Syncthing Tray's own repository
Loading the icon for the button from resources ceased to work (maybe when
switching to `PlasmaComponents3.ToolButton`). This change works around the
problem and the old icon no longer needs to be bundled.
The following uses of QCC1/PlasmaComponents2 remain:
```
…/DetailView.qml:import org.kde.plasma.components 2.0 as PlasmaComponents // for Menu and MenuItem
…/DevicesPage.qml:import org.kde.plasma.components 2.0 as PlasmaComponents // for Menu and MenuItem
…/DirectoriesPage.qml:import org.kde.plasma.components 2.0 as PlasmaComponents // for Menu and MenuItem
…/DownloadsPage.qml:import org.kde.plasma.components 2.0 as PlasmaComponents // for Menu and MenuItem
…/FullRepresentation.qml:import org.kde.plasma.components 2.0 as PlasmaComponents // for vertical TabBar
…/RecentChangesPage.qml:import org.kde.plasma.components 2.0 as PlasmaComponents // for Menu and MenuItem
…/TopLevelView.qml:import org.kde.plasma.components 2.0 as PlasmaComponents // for Highlight and DialogStatus.Closed (used with Menu and MenuItem)
```
* Use the name as sorting criteria and fall back to the ID if there's no
name
* Use new SyncthingSortFilterDirectoryModel also for Plasmoid's filtering
* See https://github.com/Martchus/syncthingtray/issues/75
* Support triggering actions via the context menu in the regular tray like
it is already possible in the Plasmoid
* Support copying via the context menu in the Plasmoid like it is already
possible in the regular tray
* Reduce repetition of coding patterns using templates
Specifying the with explicitely on every level seems to fix this. Not sure
whether it is the best solution but Qt 6 will likely mess up everything
anyways so let's not put further effort into the QML stuff at this point.