Commit Graph

1171 Commits

Author SHA1 Message Date
Friedrich W. H. Kossebau
573b9a439f Enable KF_* group deprecation macros
GIT_SILENT
2019-10-20 03:46:32 +02:00
Friedrich W. H. Kossebau
df7f981890 Use ECMGenerateExportHeader to manage deprecated API better
Summary:
Allows
* projects linking to Plasma to hide deprecated API up to a
  given version or silence deprecation warnings after a given version,
  using
  * -DPLASMA_DISABLE_DEPRECATED_BEFORE_AND_AT
  * -DPLASMA_NO_DEPRECATED
  * -DPLASMA_DEPRECATED_WARNINGS_SINCE
  * -DPLASMA_NO_DEPRECATED_WARNINGS
  * -DPLASMAQUICK_DISABLE_DEPRECATED_BEFORE_AND_AT
  * -DPLASMAQUICK_NO_DEPRECATED
  * -DPLASMAQUICK_DEPRECATED_WARNINGS_SINCE
  * -DPLASMAQUICK_NO_DEPRECATED_WARNINGS

  or
  * -DKF_DISABLE_DEPRECATED_BEFORE_AND_AT
  * -DKF_NO_DEPRECATED
  * -DKF_DEPRECATED_WARNINGS_SINCE
  * -DKF_NO_DEPRECATED_WARNINGS

Reviewers: #plasma, mart, davidedmundson, apol, mlaurent

Reviewed By: #plasma, mart, mlaurent

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D24678
2019-10-19 00:42:13 +02:00
Friedrich W. H. Kossebau
ab8e63a5a5 Use new INCLUDE_DIRS with ecm_add_qch, to have doxygen see more includes
GIT_SILENT
2019-10-19 00:39:53 +02:00
David Edmundson
982c052025 [pluginloader] Use categorized logging 2019-09-30 09:29:40 +01:00
Marco Martin
c621ebe572 make editMode a corona global property
Summary:
The plans are to switch on/off the whole plasma shell into edit mode.
For this it needs to be a global corona property, rather then just
containmentInterface.
Plasmashell would expose a dbus call to set it from systemsettings

Test Plan: plasmoid.editMode=true still works

Reviewers: #plasma, #vdg, ngraham

Reviewed By: #vdg, ngraham

Subscribers: ngraham, GB_2, broulik, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D24239
2019-09-26 19:53:41 +02:00
David Faure
b466a2a211 Port away from deprecated methods in Qt 5.14
Test Plan: Builds with -DQT_DISABLE_DEPRECATED_BEFORE=0x060000 (as of today)

Reviewers: davidedmundson, broulik, apol

Reviewed By: apol

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D23970
2019-09-16 05:40:34 +02:00
Friedrich W. H. Kossebau
c88354e0ed API dox: add missing @since
GIT_SILENT
2019-09-08 23:51:04 +02:00
Friedrich W. H. Kossebau
295059675c API dox: use full signatures for autolink on overloaded methods
GIT_SILENT
2019-09-08 23:50:40 +02:00
David Edmundson
5f746ce1c2 Fix crash on teardown with Applet's ConfigLoader
Summary:
Deleting AppletPrivate will delete the ConfigLoader which will cause a
save, which can trigger a configSaved signal.

I think it is correct that the config might emit a signal just before
closing, and not at fault.

AppletPrivate is deleted by this point, but Applet is not so the
connection is still alive.

When we handle the signal, it goes into a Q_PRIVATE_SLOT that crashes.

This disconnect pattern is already used for guarding self config
changes.

BUG: 411221

Test Plan: kquitapp5 plasmashell, no longer crashes

Reviewers: #plasma, alexeymin

Reviewed By: alexeymin

Subscribers: alexeymin, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D23707
2019-09-07 23:19:03 +02:00
Aleix Pol
d3b22f8828 Port trivial connects to the new style 2019-08-30 17:26:54 +02:00
Laurent Montel
f53365633c GIT_SILENT: Use QLatin1String in QString::contains etc. Fix replace
usage
2019-08-29 07:25:48 +02:00
l10n daemon script
9a3351fae5 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2019-08-20 04:58:25 +02:00
l10n daemon script
56aa6dee3a SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2019-08-17 05:07:40 +02:00
David Edmundson
af2a7fbf69 Compile package structure plugins into expected subdirectory
Summary: This means they're found by unit tests pre-installation

Test Plan:
Removed installed files
Ran make (but not make install)
ConfigModelTest now passes

Reviewers: #plasma, apol

Reviewed By: apol

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D22682
2019-07-24 17:07:29 +01:00
Aleix Pol
04c0ff5cd7 Make sure we compare paths properly 2019-07-23 19:41:05 +02:00
Marco Martin
0e859870a9 Search for the plugin of the other plasmoid
Summary:
Some applets use completely the code of another one with the key
X-Plasma-RootPath.
At the moment it doesn't work on applets that have a binary plugin portion
This makes pluginloader load the plugin of the original applet we're using

Test Plan:
an applet that falls back to one that has a binary plugin now works.
ones that fall back to applets without binary plugin still work
normal applets as well

Reviewers: #plasma, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D22675
2019-07-23 11:13:13 +02:00
Harald Sitter
a965fa4cb8 remove dangling remote widgets code
Summary:
can't be enabled anywhere + not actually doing anything as there is no
backing for it in the cpp + qca isn't even looked for by cmake

Test Plan: none

Reviewers: #plasma, broulik

Reviewed By: #plasma, broulik

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D22618
2019-07-22 10:02:03 +02:00
Marco Martin
ccceb83b10 use clearItems when an applet gets deleted
back when this was written KConfigSkeleton didn't have clearItems
and setDefaults can still leave some cruft behind
this ensures all is gone
2019-07-18 17:44:15 +02:00
Aleix Pol
e6cbea39ff Remove unused bits in ContainmentAction 2019-07-10 19:26:50 +02:00
Aleix Pol
21227e0f98 Improve plugin caching
Summary:
Extend the plasmoid startup cache to DataEngines and ContaimentActions.
Include a cache for script engines. In practice it's always the same, we don't
need to check the file system every time.

Reviewers: #plasma, davidedmundson, mart

Reviewed By: #plasma, davidedmundson, mart

Subscribers: davidedmundson, mart, broulik, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D22258
2019-07-08 13:48:05 +02:00
Kai Uwe Broulik
214838313d [Svg] Fix porting error from QRegExp::exactMatch
The CACHE_ID_NATURAL_SIZE adds stuff around the argument string, so explicitly move the ^ and $ outside.

Differential Revision: https://phabricator.kde.org/D22275
2019-07-05 08:56:38 +02:00
Aleix Pol
46f0da45c6 ContainmentAction: Fix loading from KPlugin
Summary: At the moment it was enabled in the PluginLoader but we were not using it anywhere.

Test Plan: See patch in plasma-workspace.

Reviewers: #plasma, #frameworks, mart

Reviewed By: #plasma, mart

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D22267
2019-07-05 01:04:07 +02:00
Aleix Pol
e3c6c2731e regular expression shouldn't be static 2019-07-04 12:20:42 +02:00
Aleix Pol
6c692309ed Better use of Qt APIs in Plasma::Theme
Summary:
Try not to access hashes repeatedly.
QRegExp -> QRegularExpression.

Reviewers: #plasma, #frameworks, fvogt, mart

Reviewed By: #plasma, mart

Subscribers: bruns, tcanabrava, fvogt, broulik, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D22147
2019-07-02 16:46:53 +02:00
Bhushan Shah
7ae271987c pluginloader: Change behavior of X-KDE-ParentApp
Summary:
X-KDE-ParentApp is the key in desktop file to display that given service
or application is part of the another application or extension of other
application. In KDE4 this key was used to mark applets to be used in the
specific application like plasma-desktop, kdevelop, amarok etc.

In KF5 world, none of this applications have applet loading mechanism
apart from plasma*, and there are likely only Plasma applet, containment
or dataengines.

Previous API, when no/empty parentApp was passed would filter out every
application which had something as parentApp. This was to ensure only
compatible plugins are loaded in Plasma. This resulted in applets
getting excluded if they suggested that org.kde.plasmashell is their
parent application. Refine this API to,

- If no/empty parentApp is provided, provide all applets
- If parentApp is provided, filter by applet

This behavior is more filter like instead of other way around.

CHANGELOG: Applet, DataEngine and containment listing methods in
Plasma::PluginLoader no longer filters the plugins with X-KDE-ParentApp
provided when empty string is passed.

Test Plan:
tested that plasma loads properly, plasmaengineexplorer lists
all engines and plasmawindowed works fine. Neverthless requires more testing

Reviewers: mart, apol

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D22049
2019-06-23 20:39:41 +05:30
Aleix Pol
097f0e83e7 Make Plasma::Svg::elementRect a bit leaner
Summary:
Don't double-access maps
Don't construct ids more times than necessary.
Make regular expression static so it's not compiled on every run.
Remove unused code.

Reviewers: #plasma, #frameworks, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: bruns, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D21788
2019-06-21 15:25:42 +02:00
Aleix Pol
52124c663e Don't notify about changing to the same state it was at
Summary:
The object tracker was telling me it's notifying the same value it
already got, and reading the code it seems to be already notifying when it
actually changes.

Test Plan: tests pass, plasma runs fine.

Reviewers: #plasma

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D21481
2019-06-13 01:04:53 +02:00
Aleix Pol
09fa87a7b7 Revert "Pass fully-qualified arguments and return values to moc"
This could break old-style connects. Let's keep it as it was until KF6
as discussed in the channel. Thanks frinring for pointing it out.

This reverts commit f631aec33f.
2019-05-30 16:05:36 +02:00
Aleix Pol
0b18d4f0b3 Don't modify a temporary object
Summary: Instead copy the object, operate it and update it into the object.

Test Plan:
just used plasma shell and ran the tests. I'm not sure who uses this.
Issue found with clazy.

Reviewers: #plasma, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D21483
2019-05-30 15:38:35 +02:00
Aleix Pol
f631aec33f Pass fully-qualified arguments and return values to moc
Summary: Otherwise it thinks it's different types.

Test Plan: tests pass, plasmashell works

Reviewers: #plasma, #frameworks, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D21480
2019-05-30 15:38:09 +02:00
Aleix Pol
756a21a6ff Fix warnings
Don't pass objects to lambdas that get unused.
Don't connect to lambdas without specifying the target object, if an object
reference is passed to the lambda.
2019-05-29 16:23:29 +02:00
Friedrich W. H. Kossebau
f008615e37 FrameSvg: also clear mask cache on clearCache()
Summary:
It can be unexpected that those are not reset when clearCache() was called.

With the current logic when a theme changes the mask cache not reset also
results in wrong lookups, as the cacheid used as key does not include the
theme name.

Reviewers: #plasma, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D21172
2019-05-14 17:08:29 +02:00
Friedrich W. H. Kossebau
8899389c9f FrameSvg: make hasElementPrefix() also handle prefix with trailing -
Summary:
there are a few places which potentially pass a prefix with a trailing -,
e.g. if using directly the value of FrameSvg::prefix() or
FrameSvg::actualPrefix(). Support the assumption in such code, unbreaking
its currently not working behaviour.

Reviewers: #plasma, mart

Reviewed By: #plasma, mart

Subscribers: apol, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D21174
2019-05-14 17:08:00 +02:00
Friedrich W. H. Kossebau
6af447a848 FrameSvgPrivate::generateBackground: generate background also if reqp != p
Summary:
d8a1a9eb08 changed the condition from
hasElementPrefix(q->prefix()) to hasElementPrefix(frame->requestedPrefix)
but it is not clear why, as the background is generated from the prefix
data & the requestedPrefix is no-where in effect.
As a result sometimes the background is not rendered for a given
not-existing requestedPrefix which was mapped to an empty prefix instead.

Reviewers: #plasma, mart

Reviewed By: #plasma, mart

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D21175
2019-05-14 17:07:24 +02:00
Friedrich W. H. Kossebau
193775def6 FrameSvg: prevent crash when calling mask() with no frame yet created
Reviewers: #plasma, apol

Reviewed By: apol

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D21200
2019-05-14 15:10:07 +02:00
Friedrich W. H. Kossebau
9142155b5a API dox: note for FrameSvg::prefix()/actualPrefix() the trailing '-'
Reviewers: #plasma, dhaumann

Reviewed By: dhaumann

Subscribers: apol, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D21173
2019-05-13 23:44:58 +02:00
Friedrich W. H. Kossebau
0f65c95771 API dox: point to Plasma5 versions on techbase if avail 2019-05-13 01:09:26 +02:00
Friedrich W. H. Kossebau
fca08ef241 FrameSvg: l & r borders or t & b don't need to have same height resp. width
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
2019-05-10 01:13:23 +02:00
Nate Graham
7687ffa3da Use more appropriate "Alternatives" icon and text
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
2019-04-08 15:04:02 -06:00
Friedrich W. H. Kossebau
fb1a332948 Add Theme::blurBehindEnabled()
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
2019-03-21 19:33:41 +01:00
Laurent Montel
9fc663d9f0 Make it compiles without deprecated method
Summary: compile without deprecated method

Test Plan: all autotest ok

Reviewers: dfaure, apol

Reviewed By: apol

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D19418
2019-02-28 23:01:43 +01:00
Fabian Vogt
02ec1b77c2 Show a warning if a plugin requires a newer version
Summary: Currently it just fails silently.

Test Plan: Loaded a plasmoid with an incompatible plugin, warning is shown.

Reviewers: #plasma, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: kde-frameworks-devel, plasma-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D19394
2019-02-27 18:53:23 +01:00
Kai Uwe Broulik
7ca1f01ea9 Do background contrast fallback at runtime
When a theme doesn't supply background contrast values, we take an educated guess based on whether it's a dark or light theme.
We didn't update the values when switching only color schemes at runtime (when theme follows it).
This lead to washed out Plasma popup and panel backgrounds. Instead, compute the fallback value at runtime.
Also, while at it, update complimentary colorscheme as well, which was forgotten here.

BUG: 401142

Differential Revision: https://phabricator.kde.org/D18487
2019-02-07 16:37:55 +01:00
Friedrich W. H. Kossebau
fcfc201c8d Use more https in links (& update a few urls)
GIT_SILENT
2019-01-19 16:36:59 +01:00
Kai Uwe Broulik
8c50991407 [Plasma Theme] Use new connect syntax
Saves some cycles

Differential Revision: https://phabricator.kde.org/D18356
2019-01-18 12:34:06 +01:00
l10n daemon script
8339575e58 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2019-01-06 05:32:12 +01:00
Aleix Pol
909364dfca Simplify reference counting of FrameData
Summary:
Leverages QSharedPointer for the reference counting.
Keeps the last value of the cacheId, as it can change sometimes and crash
the system.

Reviewers: #plasma, #frameworks, zzag

Reviewed By: #plasma, zzag

Subscribers: mart, zzag, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D17052
2018-11-22 19:09:13 +01:00
Kevin Funk
d13f9e6f85 ASAN: Fix memory leak in Corona
KPackagePrivate::internalPackage already existed, the re-assignment to a
new value causes a memory leak.

Trace:
Indirect leak of 112 byte(s) in 1 object(s) allocated from:
    #0 0x544cc0 in operator new(unsigned long) (/home/kfunk/devel/install/kf5/bin/plasmashell+0x544cc0)
    #1 0x7f905829163f in KPackage::Package::Package(KPackage::PackageStructure*) /home/kfunk/devel/src/kf5/kpackage/src/kpackage/package.cpp:51:9
    #2 0x7f9058fad786 in Plasma::Package::Package(Plasma::PackageStructure*) /home/kfunk/devel/src/kf5/plasma-framework/src/plasma/package.cpp:66:34
    #3 0x7f9058f14dee in Plasma::Corona::package() const /home/kfunk/devel/src/kf5/plasma-framework/src/plasma/corona.cpp:78:13
    #4 0x5d9eb9 in ShellCorona::ShellCorona(QObject*) /home/kfunk/devel/src/kf5/plasma-workspace/shell/shellcorona.cpp:132:70
    #5 0x65c31d in ShellManager::loadHandlers() /home/kfunk/devel/src/kf5/plasma-workspace/shell/shellmanager.cpp:93:21
2018-11-20 15:15:42 +01:00
Kai Uwe Broulik
38098e96e3 Remove ComponentInstaller
When a dataengine failed to load it would ask PackageKit to install it but it's generally not how we want to distribute
plasmoid infrastructure these days and didn't work.

Differential Revision: https://phabricator.kde.org/D16301
2018-11-19 12:53:31 +01:00
Aleix Pol
069acf600c Make sure private header fields are initialized 2018-11-12 03:11:25 +01:00
Aleix Pol
768b0882e9 remove unneeded include 2018-11-07 02:45:47 +01:00
Albert Astals Cid
9b53406f23 Remove unused variables
Reviewers: apol

Reviewed By: apol

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D16575
2018-11-03 01:34:40 +01:00
l10n daemon script
3e4dbde6b0 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2018-10-24 05:58:03 +02:00
Yuri Chornoivan
72ca2f79e0 Fix minor EBN issues and typos 2018-10-22 21:05:29 +03:00
Kai Uwe Broulik
e92ed94d9d Remove PLASMA_NO_KIO option
It is a remnant of the Plasma Active days and didn't even compile.
This patch only removes those ifdefs, it doesn't fix any issues I found during (e.g. double lookups or the fact
that KRun::autoDelete is the default now)

Differential Revision: https://phabricator.kde.org/D16295
2018-10-18 16:44:27 +02:00
l10n daemon script
a600ff9aa0 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2018-10-15 05:39:14 +02:00
Aleix Pol
d9b907e953 Reduce double and triple lookups to the frames hash
Test Plan: Everything runs, tests pass

Reviewers: #plasma, davidedmundson, broulik

Reviewed By: #plasma, davidedmundson, broulik

Subscribers: broulik, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D16060
2018-10-11 17:27:02 +02:00
l10n daemon script
4b7bac26cc SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2018-10-10 06:27:59 +02:00
Aleix Pol
0698c65a83 No point in including an empty foreach when NDEBUG isn't defined 2018-10-09 01:20:10 +02:00
Aleix Pol
8c18054a0d Properly look for fallback themes
Summary:
At the moment we always look at the first fallback and load the original
theme again, rendering moot the fallback look-up.

Reviewers: #plasma, davidedmundson, hein

Reviewed By: #plasma, davidedmundson, hein

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D15970
2018-10-09 01:19:55 +02:00
Marco Martin
ff04bf0214 Revert "add a "preview" file definition for widgetexplorer"
This reverts commit 2c07878237.
2018-09-19 15:55:26 +02:00
Marco Martin
2c07878237 add a "preview" file definition for widgetexplorer 2018-09-18 17:51:59 +02:00
Friedrich W. H. Kossebau
53a2960353 Avoid potential detach on range-loops with non-const Qt containers
Seen by clazy range-loop
2018-09-18 01:11:28 +02:00
l10n daemon script
6e7239b3b1 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2018-09-08 06:12:26 +02:00
Yuri Chornoivan
38431eebfa Fix minor typos 2018-09-05 22:22:38 +03:00
Kai Uwe Broulik
938cef210c Get rid of deprecated QWeakPointer usage
Replace by QPointer

Differential Revision: https://phabricator.kde.org/D14819
2018-08-17 15:44:08 +02:00
Nathaniel Graham
2e640ce13a Improve Widgets' removal and configure text
Summary: This patch makes the text for removal and configuration actions consistent with one another.

Test Plan: {F6191533}

Reviewers: #plasma, #vdg, abetts

Reviewed By: #plasma, #vdg, abetts

Subscribers: abetts, broulik, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D14810
2018-08-14 00:00:04 +02:00
l10n daemon script
5663500132 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2018-08-01 05:51:51 +02:00
Marco Martin
56f0df4127 if an applet is invalid, it has immediately UiReadyConstraint
Summary:
mirroring the behavior when the applet is created by restorecontents,
invalid applets get immediately uireadyconstraint.
This solves the problem of panels not appearing when the setup js contains an non existent applet,
as the panel was waiting forever for applets to finish loading, which never happens

Test Plan: now js startup scripts with an invalid applet have panels loading correctly.

Reviewers: #plasma, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: davidedmundson, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D14341
2018-07-26 13:10:34 +02:00
Kai Uwe Broulik
af01c2e953 [Plasma PluginLoader] Cache plugins during startup
Similar to KPackage's cache this speeds up startup where plugins are repeatedly looked up.
Especially the fallback path of looking in the plugin root directly causes quite some slowdown.

Differential Revision: https://phabricator.kde.org/D14009
2018-07-23 16:24:27 +02:00
Kai Uwe Broulik
0351ea74b2 [Containment] Don't load containment actions with plasma/containment_actions KIOSK restriction
Allows disabling all containment actions, such as context menus, middle click paste, wheel desktop switch, etc.

Differential Revision: https://phabricator.kde.org/D14045
2018-07-17 15:52:55 +02:00
Friedrich W. H. Kossebau
30cbc2dc33 Use more nullptr 2018-07-02 00:16:21 +02:00
Vlad Zagorodniy
0c8dd9dc2b FrameSvg: Update mask frame if image path has been changed
Summary:
A FrameSvg can have wrong mask frame if image path has been changed after
the mask frame was generated. Take image path into account when deciding
whether the mask frame should be updated to address that problem.

Depends on D13384

Reviewers: #plasma, #frameworks, mart

Reviewed By: #plasma, mart

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D13496
2018-06-27 15:37:05 +03:00
Vlad Zagorodniy
412a517576 FrameSvg: Do not wreck shared mask frames
Summary:
When trying to update the maskFrame, there is a chance that it is already
shared by several instances of FrameSvg. In that case, do not wreck maskFrame
and instead act as follows:

* deref it
* try to lookup a matching frame in the shared frames
* if there is the matching frame, use it
* otherwise create a new one

Reviewers: #plasma, #frameworks, mart

Reviewed By: #plasma, mart

Subscribers: mart, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D13384
2018-06-27 15:36:59 +03:00
Vlad Zagorodniy
acdaefa221 FrameSvg: Simplify updateSizes
Summary:
```lang=cpp
if (hintXXXMargin > -1) {
    // ...
} else {
    // ...
}
```

are redundant because fixedXXXMargin already hold correct margin values.

Test Plan: Manually

Reviewers: #plasma, #frameworks, mart

Reviewed By: #plasma, mart

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D13402
2018-06-27 15:34:25 +03:00
l10n daemon script
099592d38c SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2018-06-18 05:29:43 +02:00
Vlad Zagorodniy
dce258bee3 FrameSvg: Recache maskFrame if enabledBorders has been changed
Summary:
In some cases, when rendering frame svg background, measures & margins
do not correspond to `enabledBorders`. I.e. `bottomHeight` may be equal to 5,
but the bottom border is disabled. This causes visual artifacts like this

{F5878318, layout=center, size=full}

//Pay close attention to the bottom of the Task switcher. It has a transparent strip at the bottom, which shouldn't be there.//

The cause of this problem is that FrameSVGPrivate::alphaMask doesn't take enabledBorders
into account when it's making decision whether it should update maskFrame.

Just for reference, this is "after"

{F5878319, layout=center, size=full}

BUG: 382324
BUG: 390632
BUG: 391659

Test Plan:
* Triggered the Breeze task switcher (with compositing on and off)
* Didn't see any transparent strips

---

* Tried running FrameSvgTest, still passes

Reviewers: #plasma, #frameworks, mart

Reviewed By: #plasma, mart

Subscribers: abetts, mart, aseigo, broulik, kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D13215
2018-06-06 20:52:01 +03:00
Vlad Zagorodniy
a46cd14553 FrameSvg: Draw corners only if both borders in both directions are enabled
Summary:
FrameSVG documentation states

> ... topleft and topright will be ignored if top does not exist,
> and similarly for bottomleft and bottomright ...

Someone would assume that the same behaviour applies to the case
when left(or right) does not exist.

This change makes FrameSVG to comply with such expected behaviour.

### Before

{F5878439, layout=center, size=full}

The bottom border doesn't exist so the bottom-right corner should not
be drawn.

### After

{F5878440, layout=center, size=full}

Reviewers: #plasma, #frameworks, mart

Reviewed By: #plasma, mart

Subscribers: mart, kde-frameworks-devel

Tags: #frameworks, #plasma

Differential Revision: https://phabricator.kde.org/D13218
2018-06-06 20:51:40 +03:00
Vlad Zagorodniy
b169aa50f9 FrameSVG: Delete redundant checks
Summary:
There is no need to check whether `cachedBackground` is null, and if
it's null, return a null pixmap.

Reviewers: #plasma, #frameworks, apol

Reviewed By: apol

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D13287
2018-06-04 19:41:32 +03:00
Vlad Zagorodniy
a363815a79 FrameSVG: Fix QObject include
Summary: See Frameworks coding style: https://techbase.kde.org/Policies/Frameworks_Coding_Style#Qt_Includes_and_KDE_Frameworks_Includes

Reviewers: #plasma, #frameworks, apol

Reviewed By: apol

Subscribers: kde-frameworks-devel

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D13286
2018-06-04 19:41:00 +03:00
Laurent Montel
70a274ad3a Use override 2018-05-23 08:05:40 +02:00
Friedrich W. H. Kossebau
7c15af4138 Use "Configure %1..." for text of applet configure action
Summary:
Follows HIG in using verb-based name, also starting the text with the most
important objective first.
As result also consistent with default text for similar action in menu of a
normal app (when using KStandardAction).

Reviewers: #vdg, #plasma, ngraham

Reviewed By: #vdg, ngraham

Subscribers: ngraham, #frameworks

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D12562
2018-04-30 18:07:14 +02:00
l10n daemon script
cf462de7b1 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2018-04-22 05:39:03 +02:00
Marco Martin
0e013db633 call addContainment with proper paramenters 2018-04-18 12:31:12 +02:00
Marco Martin
2de1bda33a ensure the containment we created has the activity we asked for 2018-04-16 13:36:07 +02:00
Marco Martin
bfa19dbc8f add a version containmentForScreen with activity
Summary:
add a version of containmentForScreen which it has the activity.
which is correct as the activity id of containments in in libplasma side.
this ensure the correctness of shellCorona createContainmentForActivity
as now it works also for activities different from the current one.
to make multimonitor a tad safer with it, when creating containments for an activity, initialize their lastScreen to the asked screen.

Test Plan: tried with an old plasmashell and is perfectly retrocompatible

Reviewers: #plasma, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: davidedmundson, #frameworks

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D11361
2018-04-16 11:22:25 +02:00
Laurent Montel
e690c4726e Warning-- 2018-04-13 13:58:44 +02:00
l10n daemon script
d93ecddd14 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2018-03-30 05:21:16 +02:00
Jaime Torres
33ddaaa23f Reduce plasmashell frozen time
Summary:
Third part of https://phabricator.kde.org/D10627

According to the documentation at http://doc.qt.io/qt-5/qabstractnativeeventfilter.html

The type of event eventType is specific to the platform plugin chosen
at run-time, and can be used to cast message to the right type.

On X11, eventType is set to "xcb_generic_event_t", and the message can
be casted to a xcb_generic_event_t pointer.

The other eventType are "windows_generic_MSG" and "mac_generic_NSEvent".

No other eventType starts with an 'x'.

Reviewers: #frameworks, #plasma, mwolff, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: mwolff, plasma-devel, davidedmundson

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D10670
2018-03-21 19:26:45 +01:00
l10n daemon script
f65393c68e SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2018-03-13 05:18:02 +01:00
Friedrich W. H. Kossebau
9168e1c79f API dox: remove duplicated deprecated comment 2018-02-27 23:25:11 +01:00
Friedrich W. H. Kossebau
f82d764ad7 API dox: Use @deprecated tag for deprecation comment 2018-02-27 23:24:57 +01:00
l10n daemon script
e80ebab9db SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2018-02-25 05:27:39 +01:00
Marco Martin
6cbea20bf9 try to preload certain applets in a smart way
Summary:
preload popups of some applets after init in the background
based on a value of X-Plasma-PreloadWeight in the desktop file
if present, otherwise some default values based on the applet
type (Provides)

Save the weight in the config, if an applet is never opened,
slowly decrease the weight, when it reaches 0 don't preload it
next start, increase every time it gets opened, so at the moment
it's quite aggressive about preloading, in order to not do it
a lot of plasma startups without touching the applet are needed

Applet with a very big weigth will be preloaded immediately,
therefore having an impact on the time it will take to have
a panel visible and usable, while lesser weigths will preload
after a random number of seconds between 2 and 10, so will load
in the background after everything is started

Test Plan:
Plasma starts up correctly, applets load correctly and can be added
correctly both those expanded or collapsed.
plasmashell appears correctly usable without too big hiccups even
while it's loading things in the background

some numbers:
without preloading, plasma takes around 64 mb of memory after startup
when preloading everything about 94, so it's a cost of about 30 mb
which is not negligible.
don't have precise timing, but if everything gets preloaded immediately,
the time to get an usable desktop appears to be at least doubled,
while the delayed preloading (except just a couple of applets) doesn't
seem to have a big impact on the time needed to get an usable desktop

Reviewers: #plasma

Subscribers: davidedmundson, broulik, apol, ngraham, plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D10512
2018-02-19 18:34:24 +01:00
l10n daemon script
fde1a97636 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2018-02-04 05:15:50 +01:00
Kai Uwe Broulik
9870027494 [Plasma Theme] Guard against invalid KPluginInfo object
BUG: 389152

Differential Revision: https://phabricator.kde.org/D9961
2018-01-22 11:10:11 +01:00
Randy Kron
5eece6769f Fix one source of log spam referenced in Bug 388389 (Empty filename passed to function)
Summary:
I found two places in plasma-framework svg.cpp (Plasma::Svg) that were triggering this message.

path variable was not being checked for empty before passing to QFile::exists().

This seems to be one source of the issue reported in [[ https://bugs.kde.org/show_bug.cgi?id=388389 | Bug 388389 ]]

Test Plan: Found that kicker was triggering this message and also plasmashell tooltips.

Reviewers: #frameworks, davidedmundson

Reviewed By: davidedmundson

Subscribers: ngraham, alexeymin, aacid, #frameworks

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D9928
2018-01-20 22:26:16 +00:00
Friedrich W. H. Kossebau
85193f8c75 API dox: Use code markup for described dataUpdated slot signature 2018-01-16 11:42:20 +01:00
Laurent Montel
d1949d9149 Const'ify, use nullptr 2017-12-25 18:41:50 +01:00
Eike Hein
2956419c7e Revert "Don't tear down renderer and other busy work when Svg::setImagePath is invoked with the same arg"
This reverts commit 4ce50cc61f.

This caused a regression with toggling compositing, causing SVG reloads
with the same path to switch to opague elements. As this revision was
meant as a performance optimization, it can be reverted with no other
consequence for now.
2017-12-16 20:16:38 +09:00