Summary:
The specification for FrameSvg does not require that all borders exist
or that left & right and top & bottom borders have samples with the same
size in the scalable dimension.
The old assumption in the code broke e.g. themes which had special
variants per screen side for the panel-background and left out elements
for the border side which would not be rendered anyway, but only set a
margin-hint. So e.g. for a panel on the east screen edge, without the
left border element set, leftHeight would be 0 and as result also the
right border not be painted due to an empty size.
Reviewers: #plasma, apol
Reviewed By: apol
Subscribers: kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D21106
Summary: The Q_PLUGIN_METADATA IID should be the one of the implemented interface.
Reviewers: #plasma, apol
Reviewed By: apol
Subscribers: kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D21000
Allows to flag a dialog window as critical notification that should be shown even on top of fullscreen windows
Differential Revision: https://phabricator.kde.org/D20630
Summary: Before this fix, the system tray audio widget would try to use the 32px icons where 22px icons should be used.
Reviewers: #vdg, #plasma, ngraham
Reviewed By: #vdg, ngraham
Subscribers: kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D20825
Just because the item is visible doesn't mean the window itself is. Keep track of the window it's in.
Use itemChange instead of connects and move the check for starting to startRedirect so we don't have to check the conditions
for that in every change handler (visible && enabled && window->visible). It also saves three connects in the constructor.
Also, don't unredirect if we didn't redirect in the first place to avoid warnings printed on console.
BUG: 406303
Differential Revision: https://phabricator.kde.org/D20805
Summary: The tooltip for the audio system tray widget and panel edit mode had blurry versions of these icons because the icons were being scaled to fit.
Test Plan:
audio.svg: {F6783458, size=full}
configure.svg: {F6783423, size=full}
distribute.svg: {F6783424, size=full}
Reviewers: #vdg, #plasma, ngraham
Reviewed By: #vdg, ngraham
Subscribers: ngraham, kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D20695
Summary:
When just the smooth property is changed, this also results in a call of
QQuickItem::updatePaintNode reimplementations. So always just set the
filtering flag to match the current value of the smooth property.
Reviewers: #plasma, broulik, mart
Reviewed By: #plasma, broulik
Subscribers: kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D20579
Summary:
During Pre-Plasma5 the hard-coded height of 20 of the progressbar was
changed to instead be taken from the theme via the "hint-bar-size":
commit cee9c928e3
As fallback for old themes in absence of the hint the default height
since some time later has been derived from the sum of the heights of
the elements "bar-inactive-top" & "bar-inactive-bottom".
Which though for the Air and Oxygen themes results in the small heights
of respective 10 & 4. As a result the visual appearance of the theme
differs from what people remember of the time when the themes were
designed.
Ideally the theme designer would tune the actual value to something they
prefer. Until then setting the hint to restore the visual appearance over
the currently pretty slim or even too slim one should improve things
already.
Reviewers: #plasma, #vdg
Subscribers: broulik, kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D20602
Summary: This does the same thing as D20586, but for the Breeze desktop theme. The diff shows a lot of changes because I optimized the SVG.
Test Plan: Looks exactly the same as D20586
Reviewers: #vdg, ngraham
Reviewed By: #vdg, ngraham
Subscribers: kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D20597
Summary:
QQuickItem already has a "smooth" property, which was shadowed by the
custom ones with the same name. As the property was not part of public
symbols, but instead is dynamically looked up without the class name part
of the property, we just remove the custom versions and instead switch
all custom code to use the inherited property.
While doing that the code is also fixed to properly update the
textureNodes to the current value of the "smooth" property.
As well as not set the filtering only on the texture, when it is passed
to a texturenode which will set its own filtering state to the texture
right before the bind call and thus wipe any previous direct setting
of the filter mode on the texture.
This also changed the default to smooth=true for SvgItem, though
effectively smooth was always true, as the texturenode was hardcoded
to get a QSGTexture::Linear filtering (which, as said above, is forced
onto its texture, no matter what was otherwise set before).
Reviewers: #plasma, davidedmundson, mart
Reviewed By: #plasma, davidedmundson
Subscribers: kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D20510
Summary:
The hands of the clocks still relied on the KDE4 times rule that the
position in y-axis relativ to the clock center would define the relative
rotation point for the hands.
With the default in Plasma 5 being (width/2, width/2) from topleft of the
hand shape, using hints of upcoming Plasma 5.16 allows to override that
again to match the original definition, without the need to enlarge
the pixmaps of the hand shapes.
Reviewers: #plasma, mart, ngraham
Reviewed By: ngraham
Subscribers: kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D20496
Summary:
This signal is emitted just before showing the context menu to allow
lazy-loading expensive actions like hasAlternatives.
This emitted by our code whenever we show a context menu from an event
filter, however we want to use this code from a tooltip in D17410
Test Plan:
Hovered over some applets, they correctly enabled/disabled the
alternatives button
Reviewers: #plasma
Subscribers: kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D20417
Summary:
The SVG format being based on plain text, storing the SVG in the repository
not as .svgz, but .svg, helps both VCS tools (patching, showing diffs) as
well as allows some developers to edit the SVG directly in any text editor,
not only those which support automatic conversion from/to gzip format.
While most artists will continue (and which shall be okay) to use GUI
editors like inkscape, which might rewrite the complete structure on saving,
using uncompressed format in the repo still allows the occasional direct
edit of the text, .e.g. to change a colour, which then is also easily seen
in the commit diff.
To still keep the svgz format when deployed, a build step is introduced,
which uses gzip to create svgz files in the build dir. This conversion can
be controlled using the option GZIP_DESKTOPTHEME_SVG (default: ON).
Test Plan: Themes are still working (with & without cache removed).
Reviewers: #plasma, #vdg, ngraham
Reviewed By: #vdg, ngraham
Subscribers: bruns, GB_2, ndavis, ngraham, fvogt, kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D20166
Summary:
the mobile text selection toolbar uses toolbuttons, which in turn use the
private import. This will make the components loading stuck in dependency
resolution
Test Plan: all loads correctly now
Reviewers: #plasma, hein
Reviewed By: #plasma, hein
Subscribers: hein, kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D20428
This reverts commit c72ee78bbb.
Broke PlasmaComponents3. Missing files? Error example:
MenuRepresentation.qml:172:5: Type PlasmaComponents3.TextField unavailable
file:///home/eike/devel/install/lib64/qml/org/kde/plasma/components.3/TextField.qml:27:1: "mobiletextselection": no such directory
CCMAIL:notmart@gmail.com
Summary:
The new icon was just added in D20367. The current icon is semantically and visually incorrect,
and the new one fixes that.
The current text also does not begin with an action verb, and this patch fixes that too.
Test Plan:
Before:
{F6759646, size=full}
After:
{F6759647, size=full}
{F6759649, size=full}
Reviewers: #vdg, #plasma, GB_2, filipf
Reviewed By: #vdg, GB_2, filipf
Subscribers: kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D20392
Summary:
This property allows e.g. the Plasma shell to query the shape a panel has
when defining the area for BlurBehind.
Reviewers: #plasma, mart
Reviewed By: #plasma, mart
Subscribers: kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D20202
this avoids a qml type resolution recurtion which can
in some cases stuck the component to loading forever
this was particularly visible in plasma mobile
On plasmashell shutdown when the panels are destroyed, the available screen geometry changes.
When an applet then accesses screenGeometry in response to that change, it crashes because the corona is already gone.
availableScreenRegion() and availableScreenRect() already checked for this but screenGeometry() did not
Differential Revision: https://phabricator.kde.org/D20244
Dialog has this clever way of re-sending a mouse event inside the bounardies of the dialog,
so despite visual padding, the items can be clicked on any corner following Fitt's law.
However, when the mainItem has no size, adjusting the position will adjust it inside the border
since there is no pixel inside the main item, leading to infinite recursion as the event is
processed again and again and again leading to a crash.
Differential Revision: https://phabricator.kde.org/D20200
It casted the QAction to a MenuItem which fails because it isn't such.
Instead, manually find the item with the corresponding action.
Differential Revision: https://phabricator.kde.org/D20199
Uses the one from ColorScope rather than Kirigami.
Kirigami.Theme isn't used in any other Plasma Components 3 and the opacity already changes for when it's disabled
Differential Revision: https://phabricator.kde.org/D20070
Summary:
Running anything else in parallel to this test would make it fail,
because windowAdded() would be emitted with an unrelated window.
If we couldn't find our dialog when the signal is emitted,
just keep waiting for the signal to be emitted again.
Test Plan: ctest -j 8 .
Reviewers: hein, drosca, broulik, davidedmundson, jtamate
Reviewed By: jtamate
Subscribers: jtamate, kde-frameworks-devel, #plasma
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D14724
Summary:
FrameSvg updates the margins e.g. on a Theme change already in its
internal event handling before the methods of FrameSvgItem are invoked.
Due to that CheckMarginsChange guards before this change could not detect
any changes, and thus missed to trigger an update via the margin objects
to the QtQuick world.
So when changing the theme e.g. in a Plasma shell or in the Plasma Theme
Explorer, existing FrameSvg items are using outdated margins, resulting
in broken display.
By keeping a copy of the last seen margins as part of the item and not only
per method, changes outside the FrameSvgItem items can be properly detected.
Test Plan:
Switch Plasma themes between Air, Breeze & Oxygen, see how different margins
are reflected in the widgets sizes instantly.
Switch Plasma themes in the Plasma Theme Explorer, with "Show Margins"
enabled, see how margins are always correctly updated intead of taking the
value of the last theme used.
Reviewers: #plasma, mart
Reviewed By: #plasma, mart
Subscribers: kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D19743
Summary:
Allows themes to disable the blurring of what is behind panels,
if they either do not need it (being fully opaque) or by design want
non-blurry transparency.
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D19907