This fixes dragging a windowed widgets runner result on the desktop or panel to create an applet.
Differential Revision: https://phabricator.kde.org/D5257
The runner calculator isn't entitled for being a scientifically correct calculator.
This keeps seemingly innocent calculations such as "2^0.333333333" from eating all RAM until it crashes.
A hint is added to the result if it is only an approximation.
BUG: 277011
FIXED-IN: 5.8.7
CCMAIL: kde-i18n-doc@kde.org
Differential Revision: https://phabricator.kde.org/D4290
(cherry picked from commit df7f1ed1eb)
The runner calculator isn't entitled for being a scientifically correct calculator.
This keeps seemingly innocent calculations such as "2^0.333333333" from eating all RAM until it crashes.
A hint is added to the result if it is only an approximation.
BUG: 277011
FIXED-IN: 5.10.0
Differential Revision: https://phabricator.kde.org/D4290
Summary:
after the recent set of changes to disqualification we ended up with a bit
too lax disqualification. if we saw the exec OR the storageid we'd
hence forth disqualify a service with either of them being equal.
in case of system settings this causes a match problem. systemsettings
has two desktop files one !KDE and one OnlyKDE they are however exactly
the same except for a different name and storageid. as a result if the !KDE
one is encountered first it will be disqualified on account of
noDisplay=true and marked as seen. when the OnlyKDE systemsettings is then
iterated it will already have the Exec entry in the seen list and be
disqualified on account of that.
to prevent this type of confusion make it a requirement to match both
storageid AND exec before disqualifying.
it may actually be suitable to drop the exec altogether. say I copy firefox
into the user local applications dir and set it NoDisplay=true but change
the exec. this would still lead to the system-wide firefox being found as
it is not getting disqualified. long story short: maybe we should
disqualify services solely on the storageid?
Test Plan:
- new autotest case
- fails without changes
- passes with changes
Reviewers: broulik
Reviewed By: broulik
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D4415
QtScript is deprecated and at least in this place it's a straight-forward port.
The Qalculate code path also doesn't need it, so remove it from CMake there.
Differential Revision: https://phabricator.kde.org/D4472
I don't know how this ever worked but I recall it showing correct results but it only
showed the applet id which makes no sense to show to the user
Differential Revision: https://phabricator.kde.org/D3960
Summary:
- make sure that chrome apps have lower relevance than chrome itself
- makes sure that konsole has higher relevance than yakuake (latter
only references onsole in the comment entry)
Test Plan:
- it passes and at a glance doesn't seem to break my production sycoca
Would be cool if @dfaure could take a look at the ksycoca setup to make sure the test doesn't negatively impact the production cache.
Reviewers: broulik, dfaure
Reviewed By: dfaure
Subscribers: dfaure, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3707
Previously, they were created on-demand, which was the wrong approach, I think.
Kicker checks for actions() being available before it even bothers getting actions for a match.
CHANGELOG: KRunner actions like "Open containing folder" and "Run in Terminal" will now show up in the application launchers as well
Differential Revision: https://phabricator.kde.org/D3688
disqualify() checks whether the service ought to be disqualified (i.e.
not processed) and then marks it seen. this allows us to boilerplate
call disqualify(service) whenever iterating services to decide whether
the service in question should be skipped.
also means we don't have to call noDisplay once a service is disqualified
reviewed by kbroulik on irc
Summary:
KService::noDisplay() includes qualification for
- NoDisplay entry itself
- OnlyShowIn and NotShowIn
- X-KDE-OnlyShowOnQtPlatforms
- authorization WRT KCMs
as such checking nodisplay is good enough to disqualify services in all
relevant scenarios
Test Plan: - read the code of noDisplay()
Reviewers: broulik
Reviewed By: broulik
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3705
Summary:
refactor and qcdebug
::match was a super long spagetthi with multiple sub-matches.
This was supposedly primarily because it needed to be stateful across all sub-matches. To deal with this there's a new class which is taking care of the stateful service finding, this class is comprised of multiple matching functions that contribute to the full match set.
Good enough readability for now. Classes for this would be nicer though.
Also add qcdebug for this runner so we can get a better idea of why results are the way they are. Defaults to warning so it's silent by default.
Test Plan:
Careful refactoring so hopefully no problems.
- still matches binary names as best match
- still matches comments
- still matches generic names
- still matches names
Reviewers: broulik
Reviewed By: broulik
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3687