Commit Graph

1037 Commits

Author SHA1 Message Date
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