The style is global per engine, there's no need to set it for every applet created
as the engines are shared.
Since this entire thing is just a hack, just setting a dynamic property to identify
that we've set a style is valid imho.
Also turn it into a plain QtObject since we don't need a fully-fledged Item.
Differential Revision: https://phabricator.kde.org/D4362
Summary:
Setting a window icon is costly enough to be worth avoiding when it's
not actually needed.
This is a resurrection of David's old patch:
https://git.reviewboard.kde.org/r/128484/
The concerns in the old discussion that led to its rejection are no
longer valid today: In the meantime we implemented a way for apps to
announce their .desktop file in a window hint, which KWin (and libtm)
will fall back to to look up an icon if not set. As plasmashell does
this, we can drop the setIcon call here and won't regress.
Test Plan:
The pinned systray popup dialog still gets the Plasma icon in the
Present Windows effect.
Reviewers: #plasma, #frameworks, davidedmundson, graesslin
Subscribers: plasma-devel
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D9209
We know we have a QQuickItem so we can just use its methods directly and then also use setSize
which does both at once, saving intermediate signal emission and potential re-layouting
Differential Revision: https://phabricator.kde.org/D9068
Summary:
The OSDs are positioned by the Wayland compositor. This fixed the issue
found in D8268.
Reviewers: #frameworks, #plasma
Subscribers: plasma-devel
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D8304
The appendCategory(ConfigCategory*) allows to add a category created by e.g. an Instantiator
that can use bindings rather than fixed arguments.
The removeCategory methods allow to remove a category when e.g. the model in an Instantiator resets.
CCBUG: 372090
Differential Revision: https://phabricator.kde.org/D7602
Summary:
using the qml url interceptor, rewrite imports in order
to load always the plasma styled qqc2 controls in plasmoids
and plasma views. As is per-engine, is possible to load
controls with qstyle theme in configuration dialogs
and plasma style in plasmoids.
Note: this replaces just the style org.kde.desktop
to Plasma and not every style (so with Material
set as QT_QUICK_CONTROLS_STYLE environment variable
plasma would load controls with material style) because
we can control both org.kde.desktop and Plasma styles:
they must have the same subdirectories as unlike files,
their existence is checked before the rewrite (in our case,
"private"), so in order to work they must exist in both
styles
Test Plan:
a qqc2 button in a plasmoid has the plasma style, in
a config dialog has the qwidget style. rewrite works
only from org.kde.desktop to Plasma and not from other
styles, due to the existence of the "private" subdirectory
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: davidedmundson, plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D6964
Summary: createObjectFromSource can return a null on error. This needs guarding.
Reviewers: #plasma, mart
Reviewed By: #plasma, mart
Subscribers: plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D7532
Summary:
on multiscreen systems, the notification dialog gets resized to 0x0
right after componentcomplete by someone else (either kwin, notification
applet or Qt code) causing 382340, resizing a window to a null size is not correct anyways
and should never happen.
with this, all other resize events are correct and notifications are ok on multiscreen
systems
BUG:382340
Test Plan:
system with primary monitor and panel in the external monitor
at the right of a panel, notifications are fine
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: davidedmundson, broulik, plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D7127
Summary:
fd2e850156ac7aa9c9dc2cf46652b2a1f1fc3a07 introduces some behaviour
changes that affect X even though they should be only Wayland related.
BUG: 381130
Reviewers: #plasma
Subscribers: graesslin, plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D6776
The code wants to check whether we're not a tooltip. This wasn't done properly and didn't work
when other flags were present.
Differential Revision: https://phabricator.kde.org/D6554
PlasmaQuick::Dialog::WindowType uses KWindowSystem's API, so removing
it from the list of the public libraries causes compilation issues in
projects that depend on plasma-framework (such as plasma-desktop) which
no longer find KWindowSystem's includes.
This reverts commit f8de13c67421e0fec216e9d471266d26be94b22e.
CCMAIL: kde@davidedmundson.co.uk
Summary: We don't use it in public API
Reviewers: #plasma
Subscribers: plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D6495
This fixes the build of plasma-framework on KDE CI. Without this it will
error out as,
dialog.cpp(309): error C2065: 'shellSurface': undeclared identifier
dialog.cpp(310): error C2065: 'shellSurface': undeclared identifier
dialog.cpp(310): error C2227: left of '->setPosition' must point to
class/struct/union/generic type
Signed-off-by: Bhushan Shah <bhush94@gmail.com>
Summary:
* make sure after a showevent the size is final and the
dialog can be safely repositioned.
* set mainItem visible in :setVisible() so that is executed before showEvent:
resizing windows in their show event is definitely not enough, causes events to arrive to
reset to the old geometry in race with the setgeometry done there, don't know yet
if it's the qpa, qwindow, or the windowmanager
* make synctomaintem and updatelayoutparameters working even if
the dialog is not visible as we need to resize beforehand
* move the plasmasurface window also in the show event as if there was no moveevent
after an hide/show, its position would be resetted to 0,0
Test Plan:
current dialog users behave the same (like pre-D6216 notifications applet), tests still pass
notifications applet reworked to use this works as expected
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: sebas, hein, davidedmundson, plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D6215
Even though this change is probably technically correct, it breaks
things in workspace which aren't really setting focus properly.
Better to revert now and merge again later when things work.
This reverts commit e65d7b98be3fbf0db148ded1cdf57a007e83c665.
Summary:
Now that applets are their own focus scope (which makes sense) we've
also made containments their own focus scope.
We therefore need to also say the containment FocusScope has the focus
within the view.
BUG: 381124
Test Plan:
Renamed something in folderview
Used cursor nav
Reviewers: #plasma
Subscribers: plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D6192
Summary:
Like Loaders an applet should be a focus scope. It allows an applet to
set an item to have focus which will then have activeFocus when that
applet gets focus.
Also makes it easy to test if any item within the plasmoid has
activeFocus.
Test Plan:
Keyboard nav in kicker/klipper still work
Added opacity: Plasmoid.activeFocus ? 1 : 0 in an applet and it worked
as expected
Reviewers: #plasma
Subscribers: plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D6152
Summary: Ported away some classes, removes many unneeded casts that happen when starting.
Test Plan: Tests still pass, plasma starts properly
Reviewers: #frameworks, #plasma, mart
Reviewed By: #plasma, mart
Subscribers: davidedmundson, mart, plasma-devel
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D6041
Summary:
take into account size hints also when adjusting with synctomainitemsize
which sometimes has to be executed right before adjusting from the layout
hints, giving one wrong resize
introduce geometryUpdatesBlocked, which stops the dialog
from syncing which is useful when both visual parent and item
contents gets updated in one go (the tooltip) it is not
yet exported to qml and it shouldn't as is dangerous, but
kicker may make use of it between changing the submenu model and
the visualparent
alternative implementations may be:
* a method that takes both main item and visual parent
* delaying with a timer setGeometry (ouch)
this part can also be left behind for now and see if the rest is good enough
Test Plan:
no visual glitches visible anymore in wayland when moving the tooltip
in the taskbar, x11 ok too
Reviewers: #plasma, hein, davidedmundson
Reviewed By: #plasma, hein, davidedmundson
Subscribers: broulik, davidedmundson, plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D5912
Summary:
every time the window gets shown the wayland surfaces
get created, when hidden, they get destroyed
showevent is too early for it as they aren't there yet,
use :Exposed instead, but only the first time when the surface
isn't there yet
Test Plan:
popup applets always have correct blur in a wayland
session
Reviewers: #plasma, #plasma_on_wayland, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: davidedmundson, plasma-devel, #frameworks
Tags: #frameworks, #plasma_on_wayland
Differential Revision: https://phabricator.kde.org/D5745
It is deprecated. Instead re-implement roleNames().
Done in places where only static roles were used.
Differential Revision: https://phabricator.kde.org/D4891
when we go from full to compact repr, if the compact
doesn't export a Layout attached property, the hints shouldn't
remain those of the full repr, so reset to default values
BUG:377153
Reviewed-by:Eike Hein
Summary:
it will still have no visible effect, but
is possible to read and write the property if
containments make use of it (the systray uses it for
opening/closing its popup)
Test Plan: setting expanded : false to containments doesn't break them
Reviewers: #plasma, broulik
Reviewed By: #plasma, broulik
Subscribers: plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D4866
There's no point in going on.
I already fixed that in Applet a while ago but forgot that in Dialog and ConfigView.
Differential Revision: https://phabricator.kde.org/D4017
--the dialogs shown from dock type windows when
the dock uses masking are placed far from the
the element that triggered them. This patch
fixes this bug and provide also an auto test.
Summary:
Appmenu quite neatly has a config option for which should be the
preferred representation, which is needed as both things are quite
viable in a panel and can't be done automatically.
AppletQuickItem needs to update which representation to use when this is
set at runtime. We already check on every single geometry change, so
one extra check won't have a huge impact.
Test Plan:
Appmenu changes dynamically
All other applets (both compact and normal) still seem fine
Reviewers: #plasma, mart
Reviewed By: mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3794
Now that we can have C++ applet we can make use of setLaunchErrorMessage
to communicate a fatal error in the applet initialization.
Differential Revision: https://phabricator.kde.org/D3725
an OSD can't be a Dialog, as qt xcb would attempt to set a
transient parent for it, same as panels, which in turn will
make for invisible osd on autohide panels
Change-Id: I5afea6d4bfa0bfee8b3453e78a1c214a3a0894ec
reviewed-by: Martin Graesslin <mgraesslin@kde.org>
CCMAIL:distributions@kde.org
BUG:370433