Using KPlugin allows for the plugin metadata to be localized. Contains
also fallback code to be able to load the pre-KPlugin plugins so that
the plugins are not broken until next Plasma/KDE Applications release.
Differential Revision: https://phabricator.kde.org/D3811
Summary:
Though we can make the property constant, some applications still use the
signal (for example FolderView.qml) to know that one of the icons has
changed sizes and do some processing.
Whilst it would be possible to fix folderview, we should avoid public
API changes.
Reviewers: #plasma, #frameworks
Subscribers: plasma-devel
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D4092
QML sizes can be fractional. In case we're asked to load a 31.5 px pixmap it would truncate
it to 31 and then round down to 22 causing a blurry result. Instead, round the size.
Differential Revision: https://phabricator.kde.org/D4040
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
To use isMobile one need to import the QtQuickControls as well in
addition to QtQuickControls.Private
This fixes the warning flood at runtime
CCMAIL: faure@kde.org
I think p-f 5.30.0 tars need to be re-done with this.
I think it's wrong to set the flags for *every* event() but at least avoid the
string comparison Qt does internally in QX11Info::isPlatformX11()
Also, removes the need for an ifdef.
Differential Revision: https://phabricator.kde.org/D4019
The old code was connecting the KIconLoader signal to implicitWidth/HeightChanged
but never actually set a new implicit size.
Also, while at it use "setImplicitSize" - it's also marked internal but public
like setSize and uses qreal instead of QSizeF.
Differential Revision: https://phabricator.kde.org/D4011
It's not the property that changes (we don't assign a new QQmlPropertyMap) but
the properties within and it's already smart enough to signal this.
Differential Revision: https://phabricator.kde.org/D4013
Every single (Frame)SvgItem would creates its own Units instance which in turn would
create a property map for icon sizes and lots of other stuff. Avoid this.
CHANGELOG: There is now a global "Units" instance reducing memory consumption and creation time of SVG items
Differential Revision: https://phabricator.kde.org/D4012
Summary:
replace the last remaining place in pluginloader
where a string list was read as a normal string
Change-Id: I66e7f563745466e31cfb23492fdb081806b1e406
Test Plan:
related to D3902
dropping of files on containment still works
Reviewers: broulik, #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: plasma-devel, #frameworks
Tags: #plasma, #frameworks
Differential Revision: https://phabricator.kde.org/D3936
there is a single difference between command line
parameters of plasmapkg2 and kpackagetool5: plasmapkg2
had some hardcoded names like "theme", "plasmoid" etc.
kpackagetool5 requires the servicetype name to be
passed instead. in order to stay compatible convert
those parameter with the proper servicetype name.
it's parsing parameters by hand in order to just
pass anything else without further parsing
BUG:374463
REVIEW:129753
Change-Id: I6adece9b3dd351331d747505c455e0f79cd0ecf7
They are supposed to be lists. This fixes dropping folders on desktops to create a FolderView.
Dropping trash:/ also offers to create a trash applet again.
BUG: 374418
Differential Revision: https://phabricator.kde.org/D3902
This makes it consistent with the Breeze widget style.
The other themes (Air and Oxygen) didn't even have a scroll bar background.
Differential Revision: https://phabricator.kde.org/D3828
--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.
They're supposed to do the same, completely different codebases. Also some
things had to be ported.
I'd recommend everything to be ported to use kpackagetool (knsrc files!)
but still it's better to at least make sure we stick to one set of features.
REVIEW: 129704
Summary:
As Plasma::Package is deprecated API using Plasma::Package should also
be deprecated.
Reviewers: #plasma, #frameworks
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3812
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
Summary: Ref T4947
Test Plan: works on desktop at least, haven't tested on phone yet
Reviewers: #plasma, mart
Reviewed By: mart
Subscribers: plasma-devel
Tags: #plasma
Maniphest Tasks: T4947
Differential Revision: https://phabricator.kde.org/D3789
if a panel doesn't ahve applets, it can't have a "currently
loading" as the status of its applets.
this fixes panels sometimes not showing up when reconnecting screens
CCBUG:373836
Summary:
The fallback for toolTipMainText is showing the applet title.
When the applet title changes, it may result in a change of
toolTipMainText.
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3760
This introduces a new lineedit_reveal_password restriction (similar to lineedit_text_completion)
that disables the reveal password button on Plasma text fields, like the lock screen and WiFi password inputs.
Differential Revision: https://phabricator.kde.org/D3654
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
Test Plan: less warnings when compiling plasma-workspace
Reviewers: #plasma, mart
Reviewed By: mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3679
settingsFileChanged is called if the plugin metadata file changes, and
reloads the theme if the version changes.
However, if the metadata file now doesn't exist we need to check before
calling .version() otherwise it will assert.
If it doesn't exist, we want to reload the theme so that it will load
the correct thing.
BUG: 372651
REVIEW: 129436
when the tabbar is vertical, on rtl layout the tabs order should
stay as is, as is rtl, not bottom-to-top
Change-Id: Ia5f1722d5e327207cf584a997dc8073c595c905b
REVIEW:129521
When closing the launcher using Meta key, it pulls focus away and when
clicking the button to expand the applet, it won't get focus again.
BUG: 372476
REVIEW: 129404
Summary: Depends on D3299.
Test Plan: plasma still starts with all plasmoids
Reviewers: #plasma, mart
Reviewed By: mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3311
As https://bugs.kde.org/show_bug.cgi?id=369622#c5 mentioned,
if icon has both 22px and 32px sizes, the 22px one should
have prefix of 22-22- in object ID while the 32px one shouldn't.
Checked all existing icons and to correct wrong IDs.
patch by Yunhe Guo <guoyunhebrave@gmail.com>
CCMAIL:guoyunhebrave@gmail.com
BUG:369622
Change-Id: I9d8728cfa9ce47aaaaa3b0e5042ed616f142c19a
REVIEW:129329
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
doing setSource then immediately after rootContext()->setContextProperty
makes the property binding evaluated right at startup to be broken,
also fail any access to said contextproperty until the point of
Conponent.onCompleted
BUG:371763
Change-Id: Ie10afcf3c5b1693db49b5c240c9d2a4f3c47db21
And only enable it in the contextMenuAboutToShow connection.
We currently enable/disable the menu in this slot, but we default to it
on. This meant other users of actions() that can't correctly emit
contextMenuAboutToShow gain an extra entry which might not be relevant.
REVIEW: 129263
The launcher applets couldn't be closed with Meta alone and on Wayland
in general by any global shortcut, since we used for that the focusOutEvent
triggered only on X and only on global shortcuts (on default Alt+F1).
This patch introduces the new bool activationTogglesExpanded, which allowes
QML applets to decide if they wish to use the activated signal also to end
their expanded state.
The default value is false, in order to not break any legacy applets.
REVIEW: 129204
BUG: 367685
This reverts commit acd7ab7815.
This broke the build for me and on CI:
/home/jenkins/sources/plasma-framework/kf5-qt5/src/declarativeimports/core/datamodel.cpp:214:9:
error: 'LOG_PLASMACORE' was not declared in this scope
CCMAIL:notmart@gmail.com
port every terminal output to appropriate QCdebug/QCwarning,
each different binary has its own logging category now, so
it's possible to enable/disable them selectively.
this should also make plasmashell a bit more quiet on
terminal by default
Change-Id: Ic0b26364f988935e990c6988f8f9375b7c9bf838
REVIEW:129210
When appending a list to an existing list using append or operator<< each item in the list
is added individually whereas with initializer list it just adds the entire list as one entry.
This caused the applet args to never be empty usually and resulted in externalData being
emitted in init() with a QVariantList as argument.
While this didn't do much for most applets it did break FolderView (and potentially others)
which updates its URL in response to this signal and stored the "data" it got in
plasmoid.configuration.url. FolderView's model did not accept this broken data [1] so the
folder would still work initially. On next startup, however, it loaded said value from
config and just went blank.
[1] "file:///usr/share/plasma/plasmoids/org.kde.desktopcontainment/contents/ui/FolderViewLayer.qml:202:14: Unable to assign QJSValue to QString"
REVIEW: 129158
use plasmashell interface for moving the dialog,
use kwayland as well for shadows.
this is supposed to replace the waylanddialogfilter
hack in plasmashell.
REVIEW:129148
This reverts commit 2ed819f37d.
panel loading was completely broken, the patch idea was fine,
but has to be redone and tested better.
CCMAIL:aleixpol@kde.org
We were not looking into the plugin directory when figuring out the applet
path when it's load from an absolute path.
Fixes configmodeltest
REVIEW: 129101
Makes it possible to use plugins that offer a metadata.json file.
Define the service type when falling back to the desktop file parser, so
the type system is proper.
Don't destroy a KPluginMetadata tuple to instanciate it right away.
REVIEW: 129102
Commit 752626ad55 left a code path through
the switch statement where defaultActionsCfg would be an invalid group.
This is semantically correct as there is no relevant actions config for
this type of containment, however we then call methods on it which leads
to an assert in kconfig - and a failing unit test.
REVIEW: 129096
It's reasnoble to expect people to download an applet just before trying
to change an existing applet using the alternatives system.
Therefore doing the check at applet initialisation time is semantically
wrong. Especially as it doesn't just disable the action but also skips
creating it.
Finally this gives a startup performance boost; loading all the applets
metadata takes a small amount of time (~20 milliseconds) not really
noticable when you're doing it once, but it adds up if you're doing it
over multiple applets sequentially.
Show times where 0 is the beginning of the process
Use QDebug to get QVariant's values
Delay constructor print so that we know which class is being constructed
Use QJsonObject instead of going back and forth with QVariantMap
Reviewed by David Edmundson
According to [X.org
docs](http://www.x.org/releases/X11R7.7/doc/compositeproto/compositeproto.txt)
regarding NameWindowPixmap:
"This pixmap will remain allocated until freed, even if 'window' is
unmapped, reconfigured or destroyed. However, 'window' will get a new
pixmap allocated each time it is mapped or resized, so this request will
need to be reinvoked"
So, pixmap needs to be discarded not only on XCB_CONFIGURE_NOTIFY event
but on XCB_MAP_NOTIFY event also.
The svg elements cache isn't really a "configuration" and it's not
something that should be overridden by global config settings.
Loading it as a simple config skips the cascading and saves reparsing
kdeglobals.
REVIEW: 128966
when the view is in SizeRootObjectToView mode, the root
object is resized in the event handler, that is too late at startup.
resize the root object right after having announced
the new containment, so the view subclass can have
the view resized to the proper size beforehand,
removing an useless containment graphicsobject resize.
REVIEW:128915
running tasks need to have some visual indicator,
otherwise is impossible to distinguish between
tasks and launchers in icontasks
Change-Id: Ib1c319c675855a605d8a268bad2bb43ad19a6e4d
WindowThumbnail did some open GL operations, discarding old textures, in
the GUI thread. Whislt it's not going to cause a threading issue (as
updatePaintNode always ran when the main thread was blocked) we're not
meant to mix threads with openGL contexts.
It also seems to have a GL leak on nvidia, which was previously masked
by the double delete fixed in
https://git.reviewboard.kde.org/r/126131/diff/2/
It seems only one worked, and in the applied version we went with the
wrong one.
This patch makes use of QQuickItem::releaseResources to delete the GL
textures on window change and destructor; it's then removed from
stopRedirecting so that start/stop redirecting handles xcb on the GUI
thread and updatePaintNode/discardPixmap is the GL stuff on the render
thread.
See http://doc.qt.io/qt-5/qquickitem.html#graphics-resource-handling
REVIEW: 128763
BUG: 368066
The code already had logic in there but since UI ready is usually emitted later
the client (in this case plasmashell) had to manually show the panels and would
usually show them when they're not ready yet leading to visual glitches on startup.
REVIEW: 128708
setting the domain by just using kdeclarative would lead to
setting the domain on the wrong QQmlContext,
sometimes overwriting it on the global context, causing
unexpected crashes deep in qml
BUG:361513
reviewed-by: Ivan Čukić <ivan.cukic@kde.org>
Similar to KPasswordWidget in kwidgetaddons
Also fixes:
- the clear button still being clickable when not enabled
- RTL icons
- Updating the right margin correctly
REVIEW: 128660
This flips the tooltip when using right-to-left languages
CHANGELOG: The standard tooltips are now mirrored when in a right-to-left language
REVIEW: 128662
LayoutChanged causes QML to destroy all delegates and re-create them.
Since the number of days doesn't change but only the numbers, we can just call dataChanged on all roles.
Furthermore, when agenda-related data changes, only the containsEventItems role
might have changed, so only emit a change for it.
CHANGELOG: Performance when changing months in the calendar has been greatly improved
REVIEW: 128648