<div dir="ltr"><div>No complaints so I've moved it to Plasma.  It has been included in the Plasma 5.21 beta.</div><div><br></div><div>Jonathan</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 7 Jan 2021 at 09:29, Noah Davis <<a href="mailto:noahadvs@gmail.com">noahadvs@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><a href="https://invent.kde.org/plasma/qqc2-breeze-style/" rel="noreferrer" target="_blank">https://invent.kde.org/plasma/qqc2-breeze-style/</a><br>
<br>
qqc2-breeze-style is a Qt Quick Controls 2 style made with Qt Quick<br>
and Kirigami. It has a visual style that is meant to match the Visual<br>
Design Group's vision for Breeze.<br>
<br>
My motivations for making this include the following reasons.<br>
<br>
- Creating, iterating on and maintaining a Qt Quick/Kirigami based<br>
QQC2 style is relatively easy.<br>
<br>
- Plasma Mobile needs an efficient QQC2 style.<br>
    - qqc2-breeze-style has better graphical performance than Plasma<br>
style/PC3 and qqc2-desktop-style. It doesn't depend on the speed of<br>
the Qt SVG renderer when rendering elements for the 1st time and most<br>
graphical elements are drawn with the GPU.<br>
    - It has much better RAM usage than PC3, slightly better RAM usage<br>
than qqc2-desktop-style and about the same RAM usage as Material.<br>
After opening all pages of Kirigami Gallery, PC3 used 254MB,<br>
qqc2-desktop-style used 185MB, qqc2-breeze-style used 182MB and<br>
Material used 180MB. Take those numbers with a grain of salt since the<br>
absolute amount of RAM used can vary based on how much free RAM there<br>
is.<br>
    - Its loading times are much better than PC3. I don't remember the<br>
exact number, but I'm pretty sure it took half as long to load Index<br>
(Maui file manager) on a PinePhone compared to PC3.<br>
<br>
- We occasionally have QQC2 style compatibility issues with 3rd party<br>
apps that don't force a specific QQC2 style and have been designed<br>
using other QQC2 styles. qqc2-breeze-style is much more compatible<br>
with the Default (Basic in Qt 6), Fusion and Material QQC2 styles than<br>
Plasma style/PC3 and qqc2-desktop-style, so 3rd party apps should be<br>
less likely to have issues with it. The Fusion QQC2 style will become<br>
the default QQC2 style on Linux in Qt 6, so I'd expect to see more<br>
apps designed for it in the future. Unless GNOME starts shipping an<br>
Adwaita QQC2 style, Fusion will probably be the QQC2 style that 3rd<br>
party desktop environment users see by default.<br>
<br>
- I'd like 3rd party app developers to be able to adopt the look of<br>
KDE apps even if they aren't part of KDE. As far as I know, there<br>
aren't that many open source QQC2 styles out there. The visuals of the<br>
Qt QQC2 styles are not terrible, but not very impressive either and<br>
the Material QQC2 style is not up to date with Material Design.<br>
qqc2-breeze-style could gain some popularity outside of KDE if it's<br>
easy for developers to use and proven on low power platforms like<br>
Plasma Mobile on the PinePhone.<br>
<br>
- Plasma style/PC3 is unfortunately limited by needing to be<br>
compatible with PC2 in order to not break existing Plasma themes. This<br>
makes it a fairly poor choice for anything but Plasmoids and anything<br>
else that doesn't need to be cross-platform or compatible with<br>
multiple QQC2 styles. Using SVGs for UI graphics has its advantages<br>
when you want to make something that isn't easy to make with just<br>
Rectangle/ShadowedRectangle. However, it seriously gets in the way for<br>
anything that can easily be made with just rectangles, which is most<br>
UI graphics in the style of Breeze. Plus, manually editing SVGs in a<br>
text editor to get the element IDs and CSS classes right is never fun.<br>
<br>
- qqc2-desktop-style is unfortunately limited by the fact that it gets<br>
most of its visuals from the system QStyle. This means there's no way<br>
for it to do things that would be basic in Qt Quick, such as<br>
animations and drawing shadows/glows/focus rings outside the bounds of<br>
buttons. Changing the visuals at all is harder in general due to the<br>
facts that the Breeze QStyle is massive and it's very easy to create<br>
serious issues in many apps that are hard to fix. See the struggles<br>
that went into making the new header area of the Breeze QStyle. In<br>
QML, this would have been easy.<br>
</blockquote></div>