Commit Graph

14818 Commits

Author SHA1 Message Date
Marco Martin
af00946f81 don't multiply svg sizes by devicepixelratio
Summary:
when the native high dpi scaling is enabled, some things gets scaled two times,
as sizes taken from svgs should *not* be manually scaled by devicePixelRatio

Test Plan:
works correctly on wayland, svg.elementSize will have to be tweaked in x11 to
return a value scaled by scalefactor, to homogenize the behavior compared to
native qt high dpi scaling.
to return a value scaled by scalefactor for this qml code to work there too.
I advise everybody with high dpi laptops to test this on both wayland and x11

Reviewers: #plasma, davidedmundson

Reviewed By: #plasma, davidedmundson

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

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D9286
2018-01-23 15:58:55 +01:00
Kai Uwe Broulik
f3cd5d55fa [Plasma Dialog] Call window effects only if visible
It spends 160ms in total on plasmashell startup for me here.

Differential Revision: https://phabricator.kde.org/D9223
2018-01-23 12:45:53 +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
Alexander Akulich
55efe5ae63 [Calendar] Adjust the calendar toolbar anchors
Summary:
Horizontally align the toolbar row to the days/month/etc grid canvas.

(The bar was used to be a few pixels wider)

Test Plan:
Before: {F5514329}

After: {F5514330}

Reviewers: #plasma, broulik

Reviewed By: #plasma, broulik

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

Tags: #frameworks, #plasma

Maniphest Tasks: T7499

Differential Revision: https://phabricator.kde.org/D9019
2018-01-16 13:57:22 +03:00
Friedrich W. H. Kossebau
85193f8c75 API dox: Use code markup for described dataUpdated slot signature 2018-01-16 11:42:20 +01:00
l10n daemon script
b5b4f2d3b8 GIT_SILENT Upgrade KF5 version to 5.43.0. 2018-01-15 14:55:25 +00:00
Kai Uwe Broulik
94b91f723a [ConfigModel] Set QML context on ConfigModule
This will have the ConfigModule use the same engine as we do, ensuring we use the correct QtQuick Controls style.

BUG: 388766

Differential Revision: https://phabricator.kde.org/D9785
2018-01-15 10:32:40 +01:00
Kai Uwe Broulik
639e8684e3 [Icon Item] Treat sources starting with a slash as local file
We have a special case for sources starting with "file://" but a "/" also represents an absolute path and shouldn't
conflict with icon theme names.
Kicker sets a custom image as local path and then we would end up trying to load it as a QIcon::fromTheme eventually.
This will cause the implicit size of the icon item to stay at its default as we only check a custom implicit size
for a source QImage or an SVG. Moreover, this potentially introduces scaling artefacts.

Differential Revision: https://phabricator.kde.org/D9812
2018-01-15 10:22:18 +01:00
Michail Vourlakos
547dade2f8 fix RTL appearance for ComboBox
Summary:
--PlasmaComponents3.ComboBox now appears correctly
its list items in RTL environments by aligning them
to the right

BUG: 387558

Test Plan:
check the combobox list both in RTL and LTR environments
in order to confirm that the list items are aligned correctly

Reviewers: #plasma, mart

Reviewed By: #plasma, mart

Subscribers: mart, plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D9275
2018-01-13 03:24:14 +02:00
l10n daemon script
fab4cdd95b GIT_SILENT Upgrade ECM and KF5 version requirements for 5.42.0 release. 2018-01-05 23:42:40 +00:00
Laurent Montel
d50ec03f90 Remove obsolete reviewboardrc file 2018-01-05 13:24:26 +01:00
Laurent Montel
d1949d9149 Const'ify, use nullptr 2017-12-25 18:41:50 +01:00
Friedrich W. H. Kossebau
f78eee320c Prevent cmake 3.10+ warning about moc include & Plasma plugin macros 2017-12-23 16:46:04 +01:00
Kai Uwe Broulik
3889edd6d6 [Air theme] Add task bar progress graphic
This adds a dedicated, green, task bar progress graphic.
Currently there isn't and as a fallback it uses the hover graphic.

BUG: 368215

Differential Revision: https://phabricator.kde.org/D9324
2017-12-22 11:17:31 +01:00
Friedrich W. H. Kossebau
a5496161ac Templates: remove stray * from license headers 2017-12-19 02:06:11 +01:00
Marco Martin
c318fde313 make packageurlinterceptor as noop as possible
Summary:
minimize file access during url rewrite

we still need it for accessing stuff under code/

Test Plan: plasma still loads, seems to save ~2%

Reviewers: #plasma, davidedmundson

Reviewed By: #plasma, davidedmundson

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

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D9124
2017-12-18 13:00:31 +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
l10n daemon script
421172bd3d 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-16 04:44:14 +01:00
Marco Martin
e3fba25754 move kirigami plasma styles here
solves a nasty dependency loop
(and kirigami is supposed to be tier1)
2017-12-14 12:56:06 +01: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
b2f61f8e3c disappearing scrollbars on mobile
Summary:
like other platforms, on mobile devices make scrollbars visible only when
dragging/flicking, behavior on desktop unchanged
it introduces a runtime dependency on kirigami, but was already kinda there
but broken as the Settings singleton was already used.
if this can't be done, i'll add something in plasmacore which reads as well the
QT_QUICK_CONTROLS_MOBILE environment variable

Test Plan: scrollbar disappearing with the variable set, normal behavior otherwise

Reviewers: #plasma, bshah, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: davidedmundson, plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D9287
2017-12-12 15:42:47 +01:00
l10n daemon script
adc10bb30c 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-11 04:39:09 +01:00
l10n daemon script
f2614c3a7d GIT_SILENT Upgrade KF5 version to 5.42.0. 2017-12-10 09:40:22 +00: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
Montel Laurent
dfac32f0e4 test return value from QTest::qWaitForWindowExposed 2017-12-06 08:17:42 +01:00
Kai Uwe Broulik
3ad4798ca6 [AppletQuickItem] Only set QtQuick Controls 1 style once per engine
The style is global per engine, there's no need to set it for every applet created
as the engines are shared.
Since this entire thing is just a hack, just setting a dynamic property to identify
that we've set a style is valid imho.
Also turn it into a plain QtObject since we don't need a fully-fledged Item.

Differential Revision: https://phabricator.kde.org/D4362
2017-12-05 23:35:07 +01:00
Eike Hein
78f83f5c77 Don't set a window icon in Plasma::Dialog
Summary:
Setting a window icon is costly enough to be worth avoiding when it's
not actually needed.

This is a resurrection of David's old patch:

https://git.reviewboard.kde.org/r/128484/

The concerns in the old discussion that led to its rejection are no
longer valid today: In the meantime we implemented a way for apps to
announce their .desktop file in a window hint, which KWin (and libtm)
will fall back to to look up an icon if not set. As plasmashell does
this, we can drop the setIcon call here and won't regress.

Test Plan:
The pinned systray popup dialog still gets the Plasma icon in the
Present Windows effect.

Reviewers: #plasma, #frameworks, davidedmundson, graesslin

Subscribers: plasma-devel

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D9209
2017-12-06 02:28:47 +09:00
Michail Vourlakos
71f8f16fea [RTL] - align properly the selected text for RTL
Summary:
--align selected text correctly for
PlasmaComponents2.ComboBox taking into account
RTL.

BUG: 387415

Test Plan:
use ComboBoxes in RTL and LTR in order
to check a proper behavior

Reviewers: #plasma, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: broulik, plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D9126
2017-12-05 19:13:40 +02: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
a570254e1a Don't update when the underlying FrameSvg is repaint-blocked
Summary:
When the component completes `FrameSvg::setRepaintBlocked(false)`
is called, which calls `updateFrameData`, which emits
`repaintNeeded`, which is connected to `doUpdate` anyway.

This saves one `doUpdate` per instanciation. The reason for that
is as follows:
* The concept or repaint blocking is implemented in `FrameSvg`,
  which inherits from `Svg`.
* The `repaintNeeded` signal connected to `doUpdate` is the one
  in `Svg`.
* `Svg` code emits `repaintNeeded` liberally even when repaints
  are blocked, since it doesn't know anything about this.

Hence we check if repaints are blocked in doUpdate and abort,
implementing the QQmlParserStatus interface in the right class.

Reviewers: #plasma, davidedmundson, mart

Subscribers: plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D9138
2017-12-04 00:12:11 +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
Kai Uwe Broulik
ab8915bc12 [FrameSvgItem] Don't create unneccessary nodes
If a border isn't enabled there's no point in creating a node for itIf a border isn't enabled there's no point in creating a node for it.

Differential Revision: https://phabricator.kde.org/D9121
2017-12-03 12:40:31 +01:00
l10n daemon script
09442205e7 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-03 04:47:26 +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
Ben Cooksley
df09180d31 The #warning directive is not universal and in particular is NOT supported by MSVC
Remove the directive to restore compilation on Windows.
Ref D9108

CCMAIL: aleixpol@kde.org
2017-12-03 07:03:09 +13:00
Kai Uwe Broulik
f8e3a16040 [IconItem] Use ItemSceneHasChanged rather than connect on windowChanged
Saves a connection and also only schedule if we actually have a window.

Differential Revision: https://phabricator.kde.org/D9111
2017-12-02 18:13:19 +01:00
Kai Uwe Broulik
da2b6e270f [Icon Item] Explicitly emit overlaysChanged in the setter rather than connecting to it
There's literally just one place where this thing changes so just emit the signal
there and call it a day.

Differential Revision: https://phabricator.kde.org/D9112
2017-12-02 18:13:19 +01: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
Kai Uwe Broulik
cfcf8a61d5 [Dialog] Use KWindowSystem::isPlatformX11()
Rather than doing a string comparison and doing it every time

Differential Revision: https://phabricator.kde.org/D9105
2017-12-02 12:54:48 +01:00
Aleix Pol
f8047e86b2 Reduce the amount of spurious property changes on ColorScope
Summary:
At the moment whenever something changed we were emitting colorGroupChanged
and then every color would recompute. This would end up being emitted
over 10 times at plasma startup so far.
This patch makes sure that the property will only be emitted if the color
group actually changes.

Test Plan:
Ran plasma, didn't notice issues.
I don't see all of the changes on the property anymore

Reviewers: #plasma, mart, davidedmundson

Reviewed By: #plasma, mart

Subscribers: davidedmundson, plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D8917
2017-12-02 12:45:57 +01:00
Kai Uwe Broulik
9066c232b4 [Icon Item] Emit validChanged only if it actually changed
Differential Revision: https://phabricator.kde.org/D9102
2017-12-02 11:40:02 +01:00
l10n daemon script
a0b79949ad GIT_SILENT Upgrade ECM and KF5 version requirements for 5.41.0 release. 2017-12-02 10:22:15 +00:00
Eike Hein
4779f9564a Suppress unnecessary scroll indicators if the flickable is a ListView with known orientation
Summary:
ListView.atYEnd is notoriously buggy and sometimes will cause indicators
to blink in and out of existence where not needed.

Reviewers: #plasma, mart

Subscribers: plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D9089
2017-12-01 23:35:19 +09:00
Kai Uwe Broulik
fa3a389925 [AppletInterface] Emit change signals for configurationRequired and -Reason
Differential Revision: https://phabricator.kde.org/D9066
2017-11-30 16:51:26 +01:00