both the comic and weather applet have to pick out the
_plasma_graphicsObject to access the AppletInterface
object just to set the busy property on it.
this reintroduces the busy proeprty in Applet too,
both setting it to Applet or AppletInterface
will keep them in sync
REVIEW:127411
make it possible to set icon and title from
the Applet subclass, making appletInterface (so plasmoid obj)
notice about the change and relay the notify signal
unbreak api of Applet::SetConfigurationRequired + add bindings to
appletInterface as properties.
new properties configurationRequired and configurationRequiredReason
Change-Id: I18ff01df94c1a0c5fac79ff801bfa76714c9f986
REVIEW:127218
Applet contains the menu actions, therefore reloading the menu should
happen in Applet not AppletInterface. With AppletInterface being a dumb
wrapper.
This exposes functionality to anyone who overrides Applet, but also will
also allows system tray to emit this signal without having to use
private API.
Change-Id: I95e65de315744a78a82ebba2a954e4f3ae1bd7b2
REVIEW: 127217
removal should happen in handler of
Containment::AppletDeleted, but make extra sure to remove it
in case removal happens too late and an access happens
in the meantime
make extra sure dead objects aren't in m_appletInterfaces
BUG:358551
It makes no sense and did nothing. This removes this option.
CHANGELOG: Dropping image files onto a panel will no longer offer to set them as wallpaper for the panel
REVIEW: 126159
Basically, if the "determining mimetype" QMenu is shown, and then afterwards we
re-use this menu to show the possible actions, we clear it and then it just destroys
itself on exec() returning a null QAction, rather than waiting for the user to make
a selection. It doesn't matter when, as soon as the menu becomes empty, be it because
we call clear() or we remove the action before populating it. Hence, we just populate
the menu and then remove the first action which will be the "determining mimetype" placeholder.
CHANGELOG: Fix dropping files onto the desktop/panel not offering a selection of actions to take
REVIEW: 125939
-use splitRef when converting parts of qstring to ints to avoid redundant memory allocations
-warnings--: remove redundant ';'
CCMAIL: notmart@gmail.com
The containment interface deletion order isn't clear. It can happen that
it is deleted before the application quits, and then this lambda is
called, and its accesses internals of the class even though it has been
deleted.
Reviewd-By: Marco Martin
this ports most of libplasma away from sycoca, using instead
a combination of KPluginLoader and KPackage::PackageLoader instead
(so eventually using their own little caches instead of the
global sycoca cache)
a kservicetypetrader call is left in the loading of
containmentactions since is the only way to make an older
workspace still work, but is only a fallback, so containmentactions
in plasma-workspace can be ported eventually as well
Change-Id: Ie9579c3e01284f6d97043e22d01bbe63d3c3f45a
REVIEW:123626
Given a geometry, it adjusts it moving it completely inside of the boundaries
of availableScreenRegion, returning the topLeft point of the adjusted
rectangle
reviewed-by: David Edmundson <david@davidedmundson.co.uk>
Change-Id: Ib58cbf521d5def1cd5bb34fe90366d4b628f8a89
CCBUG:345401
CCBUG:345002
forcing the current item to ungrab the mouse before showinf a modal
menu ensures the scene mouse state will be coherent and an even won't
be lost
Change-Id: Icc0a89c437184ea0b87348358827f898ad342f72
make possible for an applet to be implemented in c++ but still
have the qml package with the usual api, this was supposed to
be supported from the beginning.
if a c++ applet has been loaded, make available the property
plasmoid.nativeInterface to the qml part, exposing the subclasses
Applet instance with all eventual extra propertiels/slots.
if no c++ plugin is present, appletInterface will be dummy/not available
this (besides limiting a bit the qml import rabbit procreation)
makes available some things not available to normal private imports:
* access to applet config() to save more complex things compared to what kconfigxt allows
or save/load stuff from the c++ part
* access to containment()/corona(), may be useful for containment implementations
* easier port for old very big applets such as comics/weather
Change-Id: I65117660043de3a60ad58c77b086f686683d4d8c
in some cases richtext in the tooltip is not desired, like
in the case of klipper. export a property to set
the text format
Change-Id: Ib4e8e913e060b868188b4f0b46db2162f33d8bb1
QAction keyboard shortcuts cannot work with QML2 (and probably newver will
since in Qt qtquick and qwidgets cannot depend from each other in any way)
so do a simple keyboard shortcut matching here
BUG:336203
Change-Id: I2d7ada7dfcb0e326e63ce7f1e39573709f6fe560
in order to minimize resizes, redraws and eventual reloading of images,
try to initialize the wallpaper with the correct size already.
reviewed by: Kai Uwe Broulik <kde@privat.broulik.de>
Change-Id: I8489744cb845213195f1916bfb9328c53ec0798d
this makes sure if there is an item with focus in the applet,
it and all its parent are removed the focus when the applet is deleted.
otherwise when there is an item with focus that loses its qquickwindow,
it will never be able to gain it again
it's a workaround but i'm not sure how should be fixed in qquickitem,
or if is even appropriate
Change-Id: I72c8f01d4557003604c4261ca5a9ab49dd136b02
tjob pointer is checked for being null (result of the dynamic_cast)
and then passed to clearDataForMimeJob. The issue can be solved by
replacing tjob with job in the problematic line, but since the
mimeTypeRetrieved method called later already processes jobs that
are not KIO::TransferJob, there is no purpose in doing it here as well.
Change-Id: I863ac41ad66ac3cbceca82adeab85498315a5e42
still catalog actions by type
the order is still not exactly the same, but that's not possible, since the action order is decided in the context menu plugin and there are some actions only in the toolbox
CCBUG:338585
Setting the focus is a good thing, the problem with forceActiveFocus is
that it will not allow any child to receive the actual focus, instead
the focus is forced on to the root element of the applet which may not
be desired.
When for example trying to improve keyboard focus behavior of KickOff
without this patch I cannot get the initial focus on the list of
favorites since it gets reset after the applet is created.
REVIEW: 119872
consider a loaded package valid even if !isvalid() but does have some file
that indicates it has a valid packagestructure.
for how packages are loaded now, a package is never valid at first if has a required file:
because the path gets set only after the package is loaded
this fixes wallpaper loading
this is the little part in plasma-framework for the applet alternatives chooser.
works together the branch mart/alternativesConfig of plasma-workspace and plsma-desktop.
for how it looks and why, see the vdg forum thread:
https://forum.kde.org/viewtopic.php?f=285&t=122067&p=315919#p315919
still possible problems:
I'm not sure about using a new desktop file entry X-Plasma-Provides, maybe Categories could be enough, but it may produce many false positives as well
REVIEW:119409
This reverts commit c38e6a204e.
This causes problems on the panel toolbox.
We were already trying to set a parent; however as it's a property of a QQuickItem
it only changes the visual parent; kdeclarative has a code path that if there's
a visual parent to skip the memory management; bug is probably there instead.
While profiling plasmashell memory usage with Vishesh we realized that most
of the usage came from loading the Background image repeatedly.
We traced it back to this change, where we were connecting to
wallpaperChanged before initializing it, so it would initialize it again,
loading the wallpaper twice. It's not that we were leaking the object,
AFAIK, but loading an image using QQuickImage already raises the memory
quite a bit.
This change alone reduces by 15% the memory usage of my plasmashell (with 2
screens, that makes it a bit worse, because there's 2 DesktopViews then).
REVIEW: 119216
restore the disconnect: sometimes appletRemovedForward gets executed after
aboutToQuit is emitted, but before closingDown returns true
this prevents configuration to be forgotten
the problem is that sometimes when QCoreApplication::aboutToQuit the containment is already deleted (the order is not really deterministic), therefore appletScript::applet() will hit an assert.
using a qpointer should solve it, its data being already 0ed in the cases the containment is already deleted at :aboutToquit time.
the disabled/invisible actions already have it as properties.
this fixes the add widgets action sometimes not being available
in the toolbox
Reviewed by: Bhushan Shah <bhush94@gmail.com>
sometimes on plasma start, other context events may be triggered
while the menu is in its exec(), byt the qqmlincubator.
if so, close the already existing menu.
BUG:334562