Commit Graph

1196 Commits

Author SHA1 Message Date
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
Montel Laurent
d14d50a668 Add more explicit 2017-12-13 07:52:10 +01:00
Montel Laurent
7f0c023d3f Use nullptr + add explicit 2017-12-13 07:36:22 +01:00
l10n daemon script
6195342df2 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"
2017-12-13 06:58:55 +01:00
Marco Martin
604aba0e24 reuse KPackage instance between PluginLoader and Applet
Summary:
to minimize metadata lookups, pass the kpackage created in pluginloader
to the applet itself as args. the args structure will be used only by the
internal constructor and applet sublasses will get their args unaltered

Test Plan:
plasma loads correctly, from 3 kpackage instantiation per applet to 2
(last is in the access manager)

Reviewers: #plasma, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: davidedmundson, plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D9123
2017-12-09 10:37:08 +01:00
Eike Hein
f75816a33a Initialize scale factor to the last scale factor set on any instance
Summary:
Plasma::Svg initializes SvgPrivate::scaleFactor to 1.0. On systems with
a higher value for Units:devicePixelRatio, that means Svg::setScaleFactor
gets called with a different value right after instanciation and a fair
amount of work is done twice.

This patch introduces a static SvgPrivate::s_lastScaleFactor,
initialized to 1.0 but updated in Svg::setScaleFactor.
SvgPrivate::scaleFactor is then initialized to the static every time
its instanciated. That means after the first time Svg::setScaleFactor
is called with e.g. 2.0, subsequent Svg instances get initialized
with 2.0.

This ends up shaving a decent amount of time off of startup on scaled
systems.

Reviewers: #plasma, davidedmundson, broulik

Subscribers: plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D9119
2017-12-04 04:56:19 +09:00
Eike Hein
73b6d92258 Revert "Initialize scale factor to the last scale factor set on any instance"
This reverts commit 15f470fafc.
2017-12-04 03:00:53 +09:00
Eike Hein
15f470fafc Initialize scale factor to the last scale factor set on any instance
Summary:
Plasma::Svg initializes SvgPrivate::scaleFactor to 1.0. On systems with
a higher value for Units:devicePixelRatio, that means Svg::setScaleFactor
gets called with a different value right after instanciation and a fair
amount of work is done twice.

This patch introduces a static SvgPrivate::s_lastScaleFactor,
initialized to 1.0 but updated in Svg::setScaleFactor.
SvgPrivate::scaleFactor is then initialized to the static every time
its instanciated. That means after the first time Svg::setScaleFactor
is called with e.g. 2.0, subsequent Svg instances get initialized
with 2.0.

This ends up shaving a decent amount of time off of startup on scaled
systems.

Reviewers: #plasma, davidedmundson, broulik

Subscribers: plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D9119
2017-12-04 00:03:46 +09:00
Kai Uwe Broulik
fae6558dae Move if check inside #ifdef
This way we're not doing a contains() and then not do anything
2017-12-03 15:00:14 +01:00
Eike Hein
4ce50cc61f Don't tear down renderer and other busy work when Svg::setImagePath is invoked with the same arg
Summary:
During my plasmashell startup this saves time for 17 calls. Opening
something like Simple Menu saves another ~dozen.

It's worth investigating why Svg::setImagePath gets called repeatedly
with the same args to begin with, but this is worth doing anyway.

Reviewers: #plasma, davidedmundson, mart

Subscribers: plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D9115
2017-12-03 06:45:47 +09:00
Aleix Pol
1f9b5ed657 Performance
Summary:
Remove splitting + joining of a string just to remove the beginning of a
string.
Remove double look-up.
Solves Clazy warnings

Reviewers: #frameworks, #plasma, hein

Reviewed By: #plasma, hein

Subscribers: hein, plasma-devel

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D9109
2017-12-02 16:22:03 +01:00
Aleix Pol
b8b8a69fd1 Remove implicit string casting
Summary: Follow the KF5 guidelines

Test Plan: Plasma shell starts

Reviewers: #plasma, #frameworks, sebas

Reviewed By: #plasma, sebas

Subscribers: plasma-devel

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D9108
2017-12-02 15:44:14 +01:00
David Faure
d3ed3bcbbf GIT_SILENT remove confusing comment. There's no ref() happening here. 2017-11-25 23:19:42 +01:00
Aleix Pol
11c9206bf6 Reduce spurious signal emissions
Summary:
We were reporting that the margins were changing whenever anything changed
in a FrameSvg, this patch makes sure we are only reporting the changes
when it actually changes.
This also fixes a binding loop in Desktop.qml from plasma-desktop.

BUG: 382233

Reviewers: #plasma, davidedmundson

Reviewed By: #plasma, davidedmundson

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

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D8809
2017-11-16 16:18:04 +01:00
Andras Mantia
eab0378735 Add signals indicating if a screen was added or removed
Subscribers: #frameworks

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D8566
2017-11-13 16:35:20 +02:00
Aleix Pol
ceca6ffa01 Don't rely in includes of includes
QFontMetrics is used by theme.cpp
2017-11-07 21:16:08 +01:00
l10n daemon script
ac3cbe0397 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"
2017-10-24 05:08:50 +02:00
Kai Uwe Broulik
dea8a1ed5f [FrameSvg] Optimize updateSizes
frame->fooHeight is the same as frame->fooFixedHeight if the border is enabled, we only meddle
with margins, not heights. Thus we can just do the lookup once and re-use the value.

Also store the hintFooMargin instead of doing the same exact lookup once for fixed
and once for non-fixed margins.

Differential Revision: https://phabricator.kde.org/D8135
2017-10-16 11:38:09 +02:00
l10n daemon script
07272a2b98 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"
2017-09-27 09:05:33 +02:00
Kai Uwe Broulik
46a8d86ee8 [FrameSvg] Use new-style connect
Reviwed-By: d_ed
2017-09-21 14:33:28 +02:00
Marco Martin
3942c5279e don't recreate a null pixmap
if we already have a null pixmap, don't recreate a new one

this saves some pixmap ceation on destructors
reviewed-by:davidedmundson
2017-09-19 13:57:12 +02:00
Kai Uwe Broulik
5921b2a70c [FrameSvg] Use QPixmap::mask() instead of deprecated convoluted way via alphaChannel()
QPixmap::alphaChannel() is deprecated.

Differential Revision: https://phabricator.kde.org/D7614
2017-08-30 12:05:59 +02:00
Kai Uwe Broulik
3e284c2404 HTML-escape applet name in undo notification 2017-08-28 16:51:48 +02:00
Kai Uwe Broulik
2236c19584 [Service] Restore /dev/null usage
Accidentally removed it for testing but since I don't know why this is for,
better restore it :)
2017-08-25 11:25:20 +02:00
Kai Uwe Broulik
5137a988b1 [Service] Use KConfig::SimpleConfig
I don't get the comment on why it is /dev/null instead of QString() but using SimpleConfig at least saves 0.3ms per call for me.

Differential Revision: https://phabricator.kde.org/D7510
2017-08-25 11:24:03 +02:00
Kai Uwe Broulik
b4c1c9cdfa Drop remains of "locolor" themes
It's not being set to anything anymore and people typically don't have 256 color displays these days.

Differential Revision: https://phabricator.kde.org/D7516
2017-08-25 10:37:35 +02:00
Kai Uwe Broulik
cf8ae465e4 [Theme] Use KConfig SimpleConfig
We're passing it an absolute path to a file in our install directory anyway,
so we probably don't want inheritance.

Differential Revision: https://phabricator.kde.org/D7362
2017-08-17 12:17:15 +02:00
Fabian Vogt
883a0488f1 Avoid some unnecessary theme content lookups
Summary:
imagePath can be an absolute path into an iconTheme
-> Do not try to find it in the Plasma theme

imagePath can be empty
-> Do not try to look it up at all

Reviewers: #plasma, mart

Reviewed By: #plasma, mart

Subscribers: #frameworks

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D7250
2017-08-11 14:35:52 +02:00
l10n daemon script
24193527bf 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"
2017-08-11 04:56:36 +02:00
l10n daemon script
7b394146e5 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"
2017-07-25 04:47:04 +02:00
David Edmundson
3a0f61b559 Load translations from KPackage files if bundled
Test Plan:
Installed battery monitor locally with kpackagetool5 -i
moved x-test .po file from being installed systemwide to only being
inside the bundle
still get xx everywhere

BUG: 374825

Reviewers: #plasma, mart

Reviewed By: mart

Subscribers: plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D5209
2017-07-11 13:19:10 +01:00
Friedrich W. H. Kossebau
0e1219d03b API dox: use @param for normal parameter listing, not @arg 2017-07-03 16:24:20 +02:00
l10n daemon script
2d4548e4d0 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"
2017-06-11 04:33:38 +02:00
Marco Martin
6ffe068b80 generate the old key before updating enabledborders
Summary:
sometimes a frame changed enabled borders causing a dangling
pointer in s_sharedFrames, since oldkey was generated
with the new enabled borders, it generated a key not present
in the hash, tryed to remove it and left the one associated
with the old key in the hash.
if the need to reuse a frame with that key ever arised again,
we had a crash
BUG:378508

Test Plan:
couldn't reproduce the crash neither with or without patch,
with the patch, if i put debug in every place a framedata is removed,
searching if the key is in the hash before removing it, now
it's always true, before sometimes it was false

Reviewers: #plasma, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D6162
2017-06-09 16:16:16 +02:00
Aleix Pol
563011436d Port a bunch of classes away from Plasma::Package
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
2017-06-06 15:11:25 +02:00
Friedrich W. H. Kossebau
0fb9732866 [FEATURE] Option to build & install QCH file with the public API dox
Using the new extra-cmake-modules module ECMAddQch (since 5.36.0)
this adds the option to automatically build and install a file
in QCH format with the docs about the public API, which then can be
used e.g. in Qt Assistant, Qt Creator or KDevelop.

Additionally the installed cmake config files will be extended
with a target KF5Plasma_QCH containing information about how to "link"
into the generated QCH file, which then can be used in the cmake build
system of other libraries building on this library, by
simply listing this target in "LINK_QCHS" of their ecm_add_qch() usage.
And a respective doxygen tag file with all the metadata about the
generated QCH file and used for the "linking" will be created and
installed.

Pass -DBUILD_QCH=ON to cmake to enable this.
2017-06-05 04:25:55 +02:00
Aleix Pol
3b303d7363 Small improvements in IconItem
Summary:
Don't construct a QUrl for every source strings. Check it's a file url
first (which is the only kind of url we support at the moment)
When extracting the path, use toLocalFile, so it works on platforms where
path!=toLocalPath (e.g. windows)
Don't split a string and get a chunk, but just extract the chunk we need
with section. Reduces allocations that are automatically discarded.
Narrow iconPath scope

Test Plan: Tests still pass, plasmashell still works

Reviewers: #frameworks, #plasma, mart

Reviewed By: #plasma, mart

Subscribers: plasma-devel

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D6014
2017-05-29 19:10:37 +02:00
Friedrich W. H. Kossebau
fcee026657 API dox: note CamelCase includes by @class tag with more classes 2017-05-26 19:55:09 +02:00
Friedrich W. H. Kossebau
8749591922 API dox: fix doxygen notation with some post-position comments 2017-05-26 19:54:11 +02:00
l10n daemon script
6622a8c713 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"
2017-05-24 08:46:29 +02:00
l10n daemon script
bef0612029 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"
2017-04-09 04:01:12 +02:00
l10n daemon script
f7e83b4bcf 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"
2017-04-01 04:05:09 +02:00
Marco Martin
088a79d131 correct maskRequestedPrefix when no prefix is used
requestedprefix requires to not have the "-", don't fail anymore in
q->hasElementPrefix(frame->requestedPrefix) in
FrameSvgPrivate::generateBackground

BUG:377893
2017-03-22 14:11:37 +01:00
Marco Martin
bbcb217b48 actually delete old theme caches
Summary:
QStandardPaths doesn't do file search by wildcards,
that code was never actually functional

Test Plan: old kcache and rects cache files get correctly removed

Reviewers: #plasma, sitter

Reviewed By: sitter

Subscribers: davidedmundson, sitter, apol, plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D4925
2017-03-07 14:13:57 +01:00
David Edmundson
586ed85561 Ref/deref DataEngines even if the metadata is invalid
Summary:
Just because the metadata is invalid doesn't mean the DataEngine
actually failed to load, we're still returning a valid object, and as
seen with the MPris DataEngine bug. It's important that we still release
it properly.

It looks like this was designed to make sure you don't delete the null
data engine multiple times, but that shouldn't cause an issue here.

Test Plan: #plasma

Reviewers: #plasma, mart

Reviewed By: mart

Subscribers: plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D4556
2017-03-06 00:12:27 +00:00
Roman Gilg
daee27f096 [Menu] Improve available space correction for openRelative
There was already some kind of detection and adjustment if there is not enough
space for the popup available. Do some more work by placing the popup according
to its PopupPlacement enum. Do this also if the popup breaks the top or left
boundary of the screen.

Also fixes some minor problems:

* TopPosedRightAlignedPopup was the same as RightPosedTopAlignedPopup, but in
  the first case the menu should be on top of parentItem
* LeftPosedTopAlignedPopup was above parentItem and not left of it
* Small documentation error

Reviewers: #plasma, hein

Subscribers: plasma-devel, #frameworks

Tags: #frameworks, #plasma

Differential Revision: https://phabricator.kde.org/D4867
2017-03-02 21:02:32 +01:00
Marco Martin
2b3e8dfe86 move setImagePath logic into updateFrameData()
Summary:
make sure the framedata creation/destruction is
completely in updateFrameData, makes easier to track
and possible to use the repaintsblocked logic.
now only one framedata instance should be created at startup.

CCBUG:376754

Test Plan:
* autotests pass, plasma runs ok, crash on 376754 not reproducible anymore
* possible to have a plasmashell session start without the creation of a single svg renderer (startups after the first when the cache is generated)
* on qml profiler, framesvgitem creation is ~12 msecs the first one created, ~2-300 musecs the subsequent ones, seems to be a bit better than before the whole refactor started
* tried against the latest patches that remove the binding loops, still correct rendering and no binding loop
* tried with both empty and existing cache in place

Reviewers: #plasma, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: davidedmundson, plasma-devel, #frameworks

Tags: #frameworks, #plasma

Differential Revision: https://phabricator.kde.org/D4707
2017-02-28 13:35:09 +01:00
Martin Klapetek
2fea7077c8 Make the dataengine alignment timer more precise
It can and does happen that in case of two clocks, one with seconds and one without, the one without gets 1s behind. That's because the alignment is not corrected when the difference is 1s, however in case of the clock this 1s is cruicial.

REVIEW: 123300
2017-02-26 00:58:55 +01:00
David Edmundson
e301b63685 Fix binding loop regression in FrameSVGItem
Summary:
d8a1a9eb08 introduces an unintended code
change, resizeFrame() updates the margins and in turns calls
repaintNeeded. This isn't needed and is a binding loop if we ever have a
frameSVGItem whose size depends on it's own margins.

resizeFrame is different from setEnabledBorders / setElementPrefix /
theme changes because even though we need to create a new FrameData we
know any hints and margins won't change. FrameSvgItem::updateSizes
doesn't depend on the size in any way, so always gives the same result
as before. We still, however, need to call updateSizes to populate our
FrameData structure even if the results will be the same as the previous
FrameData.

This patch that introduces a flag to updateFrameData to determine if we
should emit that size hints may have changed or not.

Test Plan:
GDB showed where the loop was.

Read the old code, and looked for differences

Ran plasmashell, checked I had no binding loop, frames including button
which have
composeOverBorder which need the new FrameData all rendered correctly.

Reviewers: #plasma, #frameworks, mart

Subscribers: mart, broulik, plasma-devel

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D4713
2017-02-22 12:31:44 +00:00
Marco Martin
d8a1a9eb08 don't regenerate frames when setting every property
Summary:
give frameSvg the concept of repaintBlocked(), that enables and
disables the regeneration of the frame data when a property is set.
the use case is when often, a lot of properties are set one after
the other (such as prefix, enabled borders, size)
collapse the formely similar, but a bit different logic of frame
regeneration is a single function for better maintanability.
QML FrameSvgItem sets repaintblocked when it starts and releases it just on oncomponentCompleted

Test Plan:
plasmashell still starts, autotests still work, all frames are rendered correctly
the destruction of old frames is cutted by 50%. in the qml profiler
the creation time of a framesvgitem slightly improved, on this machine from around 26 msecs to around 21, can still be improved, but at least the code is a bit simpler

Reviewers: #plasma

Subscribers: davidedmundson, plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D4414
2017-02-07 13:08:27 +01:00
l10n daemon script
bba40b9b9d 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"
2017-02-05 06:07:10 +01:00
Aleix Pol
6659517bce Specify NoDisplay type
Summary:
Otherwise toBool doesn't work.
I didn't see it called anywhere as property("NoDisplay") == "true", so it
shouldn't be a problem like similar cases before

Test Plan: See upcoming patches

Reviewers: #plasma, #frameworks, davidedmundson, mart

Reviewed By: mart

Subscribers: plasma-devel

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D4396
2017-02-02 17:26:18 +01:00
Kai Uwe Broulik
d38be811e8 [FrameData] Avoid iterating keys()
Instead use iterators. Could be changed to using keyBegin or something like that potentially.

The destructor is called 400 times on plasmashell startup for me.
Before: 250,000ns
After: 110,000ns

Differential Revision: https://phabricator.kde.org/D4350
2017-01-30 15:08:09 +01:00
Marco Martin
46c87d5ac3 it must also be possible for the status to be decreased again
this fixes the autohide panel being broken the first time an applet
like kickoff opens. when it closes again, the status has to be
decreased again
2017-01-19 14:30:13 +01:00
Eike Hein
2c69d22546 Add missing screenGeometryChanged signal; use in AppletInterface; fix typos.
Reviewed-by: Marco Martin

BUG:373075
2017-01-19 03:43:49 +09:00
Marco Martin
47ec9b84db correctly forward status from applets to containment
Summary:
unfortunately hiddenvisibility is the "biggest" status
that makes computing the proper status tricky.
if an applet in the containment is hidden, we must not mark as
hidden the whole containment, because it's as if hidden was
(as it should be) the smallest in the enum

BUG:372062

Test Plan: touchpad plasmoid no longer hides the systray

Reviewers: #plasma, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D4174
2017-01-17 18:07:10 +01:00
Kevin Funk
f8a7b418d5 Prefer nullptr over Q_NULLPTR 2017-01-16 18:17:34 +01:00
Albert Astals Cid
5c46e32993 Q_ENUMS -> Q_ENUM and Q_FLAGS -> Q_FLAG
REVIEW: 129826
2017-01-14 01:06:28 +01:00
Marco Martin
94edfa149f use KPluginMetaData::readStringList()
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
2017-01-03 17:19:10 +01:00
Marco Martin
642db25fb9 search/replace old hardcoded types from plasmapkg2
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
2017-01-03 13:25:02 +01:00
Kai Uwe Broulik
a0f3d2429d Fix X-Plasma-Drop* types
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
2017-01-03 09:31:21 +01:00
Martin Gräßlin
4798310ed7 Deprecate Plasma::Package API in PluginLoader
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
2016-12-27 18:20:35 +01:00
l10n daemon script
9581ada651 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"
2016-12-23 05:42:04 +01:00
l10n daemon script
2f4e59e902 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"
2016-12-22 05:52:51 +01:00
Marco Martin
6ae3a073db consider an empty panel always "applets loaded"
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
2016-12-21 18:11:51 +01:00
l10n daemon script
8431ef6e03 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"
2016-12-21 05:49:49 +01:00
l10n daemon script
793441b77b 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"
2016-12-20 12:53:44 +01:00
l10n daemon script
4a97989f0f 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"
2016-12-16 05:40:59 +01:00
Aleix Pol
7b5f5b57b0 Introduce undefined fields
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
2016-12-14 15:50:33 +01:00
Marco Martin
862a19b758 make X-Plasma-NotificationArea a string
due to wrong checking in systray client code, which checks the string "true"

reviewed-by:apol
2016-12-14 15:43:42 +01:00
l10n daemon script
86569bcdcd 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"
2016-12-13 04:07:30 +01:00
l10n daemon script
a92fa79cc0 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"
2016-12-02 04:31:48 +01:00
l10n daemon script
3962e29b61 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"
2016-11-30 04:25:52 +01:00
l10n daemon script
711e7b4a94 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"
2016-11-25 04:59:58 +01:00
l10n daemon script
0bcaf4f529 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"
2016-11-23 04:19:18 +01:00
David Edmundson
760fb53e7d Check for metadata validty in settingsFileChanged
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
2016-11-22 10:44:07 +00:00