Commit Graph

157 Commits

Author SHA1 Message Date
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
Kai Uwe Broulik
8875a04a1b [Icon Item] Fix updating implicit size when icon sizes change
The old code was connecting the KIconLoader signal to implicitWidth/HeightChanged
but never actually set a new implicit size.
Also, while at it use "setImplicitSize" - it's also marked internal but public
like setSize and uses qreal instead of QSizeF.

Differential Revision: https://phabricator.kde.org/D4011
2017-01-08 16:16:59 +01:00
Kai Uwe Broulik
d46a91ea57 [Icon Item] Support non-square icons
BUG: 355592

Differential Revision: https://phabricator.kde.org/D3892
2017-01-05 15:15:14 +01:00
Michail Vourlakos
6aedda94b2 Fix #374127 misplacement of popups from dock wins
--the dialogs shown from dock type windows when
the dock uses masking are placed far from the
the element that triggered them. This patch
fixes this bug and provide also an auto test.
2016-12-30 01:07:43 +02:00
Eike Hein
91eb0749ed Revert "port all output to QCDebug/QCWarning"
This reverts commit acd7ab7815.

This broke the build for me and on CI:
/home/jenkins/sources/plasma-framework/kf5-qt5/src/declarativeimports/core/datamodel.cpp:214:9:
error: 'LOG_PLASMACORE' was not declared in this scope

CCMAIL:notmart@gmail.com
2016-10-19 03:16:16 +09:00
Marco Martin
acd7ab7815 port all output to QCDebug/QCWarning
port every terminal output to appropriate QCdebug/QCwarning,
each different binary has its own logging category now, so
it's possible to enable/disable them selectively.
this should also make plasmashell a bit more quiet on
terminal by default

Change-Id: Ic0b26364f988935e990c6988f8f9375b7c9bf838
REVIEW:129210
2016-10-17 18:18:04 +02:00
David Faure
8abeceaffd Skip autotest that is broken with Qt 5.5
Eike Hein said this was fixed by David Rosca in Qt >= 5.6.1.

CCMAIL: plasma-devel@kde.org
2016-08-07 13:25:07 +02:00
Martin Gräßlin
9814aff6b9 [autotest] Extend ThemeTest with a case for compositing changes
The added test case simulates that a Compositor is started on X11
and shut down again. This should trigger the themeChanged signals
and the imagePath should return different elements.

REVIEW: 128572
2016-08-03 11:28:23 +02:00
Eike Hein
2c6dacea38 Fix the infamous 'dialogs show up on the Task Manager' bug once more.
- Initially set state (and type, and flags) in response to PlatformSurfaceCreated.
  We know reliably this will run before the window is mapped.

- Drop the comment about removing setState() form showEvent handler, as
  we need it to avoid state loss in this scenario:
  <mgraesslin> the window gets mapped first time: everything is fine
  <mgraesslin> window gets unmapped: kwin removes the state as per spec
  <mgraesslin> qt gets change event and removes the states it doesn't care about
  <mgraesslin> qt maps window again and sets states
  <mgraesslin> we lost the state
  <mgraesslin> which means we need to set the state again from our side before(!) Qt sets it
  <mgraesslin> and before Qt maps the window
2016-07-15 19:40:37 +09:00
David Rosca
80dcba46b5 IconItemTest: Set plasma theme to default rather than skipping tests if not default
Default plasma theme is installed with plasma-framework, so there
shouldn't be reason to skip tests.

REVIEW: 128408
2016-07-12 10:01:29 +02:00
Marco Martin
8919e11c6e fix test
sync the cache id generation to be in sync of the one
used internally in Svg
2016-06-01 10:58:43 +02:00
Marco Martin
1d81c83779 disable the tests when no plugins are installed
this test relies on plugins installed from plasma-workspace
so it can't reliably work on CI, it has to be run from
the desktop.
in the end it will have proably to install in this case one dummy
plugin per type
2016-05-20 12:16:21 +02:00
Anthony Fieroni
2275db4b39 [dataengine]If the DataEngine constructor is called with an invalid KPluginInfo object, make sure valid is set to false.
+ test case

REVIEW: 127795

Signed-off-by: Anthony Fieroni <bvbfan@abv.bg>
2016-05-19 22:45:29 +03:00
Harald Sitter
6ad988cb3d force icon themes explicitly via new testing helper function
REVIEW: 127954
2016-05-18 13:50:11 +02:00
Marco Martin
5405a97a70 add some more tests to debug what's going wrong
test on ci is failing atm, add some more tests to debug
what's going wrong there

Change-Id: I963e01263e7bd2399eacc7773968423f95decfe3
2016-05-16 12:48:35 +02:00
Marco Martin
f0c119696d highlight/highlightedText from proper color group
lately the highlight color of plasma became a very
washed-out blue, (since it switched to use the
global system colors) that was because it actually
taken the highlight color (and highlightedText)
from the wrong source.
there is a correct color group in kcolorscheme for
that, that is Selection, take those two colors
from that (also means highlight and highlightedtext
always be the same in all plasma::theme::colorgroups
but that's not a problem)

update test to reflect that

REVIEW:127842
2016-05-05 12:22:44 +02:00
David Rosca
f336f80039 ConfigModel: Don't try to resolve empty source path from package
ConfigModel may contain ConfigCategory for both QML pages and KCM pages.
The source property will be empty for KCM pages.  This fixes correctly
returning empty source for KCM pages.
Also return the same value from get().

REVIEW: 127702
2016-05-04 17:34:02 +02:00
Harald Sitter
c9e8c4b38c warn about need for production data, skip tests that depend on them
numerous icon tests expect the actual production plasma theme to be present
it won't however be resolved because we disable qstandardpaths' default
fallbacks by switching it into testing mode. this ultimately means the
test run needs to have XDG_DATA_DIRS in the environment, if it doesn't
test data will not be present

furthermore QSKIP tests that depend on:
- hicolor icon theme to be present
- production plasma themes

this allows the entire test to pass in less than optimal environments by
means of skipping but also gives a reasonable hint as to why tests are
skipped in the first place. also moving forward if a test isn't guarded
we still have the warning about failure potential allowing someone to
quickly figure out why things failed

REVIEW: 127764
2016-04-27 15:29:54 +02:00
Harald Sitter
e8d09dd42b add missing include 2016-04-27 13:37:45 +02:00
Harald Sitter
0a45d9792d reload icon theme for iconitemtest as well 2016-04-27 13:34:43 +02:00
Harald Sitter
94943e21e8 sync the config so reparsing works 2016-04-27 13:33:52 +02:00
Harald Sitter
e54d75fb80 reload icon theme properly
- reparse the global config (needed because the curren theme cache is
  refreshed from there)
- reconfigure the global curren-theme cache
- reconfigure the global loader

reviewed on IRC
2016-04-27 13:25:59 +02:00
Marco Martin
1cf145861b add Positive, Neutral, Negative text colors
add named colors for positive (usually green)
neutral(usually yellow) negative(usually red)
foreground objects, such as text or parts of
svg icons/themes

REVIEW:127696
Change-Id: I646306339f1684cdc062da3d3af1489af6092372
2016-04-20 18:25:50 +02:00
Marco Martin
553a9bfe53 bind highlightedText color in Plasma::Theme
we have a color in the Plasma theme "highlight" that is basically
an accent color used around.. but one of the uses is to use it as
a background, such as highlighted text. in that case we don't know
what color would be safe for contrasting on top of it for things
like the highlighted text color (plasma style used the background
color for that, which is incorrect)

REVIEW:127637
2016-04-13 12:28:53 +02:00
Marco Martin
944c7e60dc cache svg icons from icon theme
cache as well svg icons from the icon theme
(invalidating as well when the icon theme is updated)

REVIEW:127260
2016-04-04 17:47:30 +02:00
David Rosca
974a2b5071 FrameSvg: Fix dangling pointers in sharedFrames when theme changes
Store theme pointer in FrameData and set it when adding to sharedFrames.

REVIEW: 127344
2016-03-12 13:02:34 +01:00
David Rosca
fd46322300 IconItem: Schedule pixmap update when window changes
QQuickItem::polish is not called when window changes.

Regression from 344d04e230

REVIEW: 127342
2016-03-12 13:01:07 +01:00
David Rosca
46a1181587 IconItem: Animate active and enabled change even with animations disabled
animated: false should disable only animation when changing source,
we still want the hover and enabled animations.
Also fix docs.

REVIEW: 127302
2016-03-11 14:10:59 +01:00
Kai Uwe Broulik
344d04e230 [Icon Item] Don't animate from previous pixmap when it has been invisible
We have a lot of reusable singletons that are just hidden when not needed, such
as the OSD. IconItem, however, will always fade from the previous state, even if
the previous action happened minutes ago.

This fixes for example changing the volume and then later changing the brightness
where you could see the OSD animating from the volume icon.

REVIEW: 122859
2016-03-10 13:01:29 +01:00
Kai Uwe Broulik
3b115e6d90 [Icon Item] Don't call loadPixmap in setColorGroup
Changing the color group of an Svg emits repaintNeeded which will then
cause it to schedule a pixmap update anyway. Includes a unittest.

REVIEW: 127313
2016-03-10 12:58:18 +01:00
David Rosca
ab302872d3 Fix iconitem test - second try 2016-03-06 16:13:54 +01:00
David Rosca
fa1ca80281 Fix iconitem test
Icon name for QIcon must be from test-theme
2016-03-05 11:05:52 +01:00
David Rosca
978b8b3b87 IconItem: Don't overwrite source when using QIcon::name()
source should always return the same value as it was assigned.
Also removed duplicated code (empty sourceString is now handled
as if the source couldn't be converted to any type).

REVIEW: 127282
2016-03-04 23:44:57 +01:00
David Edmundson
929d1fe008 Add missing file for iconitem test 2016-03-04 15:50:10 +00:00
David Edmundson
531b7f3a95 Add unit test for loading QPixmaps and QImages into IconItem
REVIEW: 127269
2016-03-04 00:20:35 +00:00
David Rosca
37fde3974e IconItemTest: Skip when grabToImage fails 2016-02-29 22:29:51 +01:00
David Rosca
30368e1d45 IconItem: Fix changing color of svg icons loaded from icon theme
Connect to repaintNeeded when creating Plasma::Svg.

REVIEW: 127207
2016-02-29 22:28:58 +01:00
Weng Xuetian
066cf0a0d7 Fix svg iconPath resolving in IconItem
This fixes iconPath is not correctly set when its size changes.

REVIEW: 127201
2016-02-29 13:05:48 -08:00
Aleix Pol
06c7b9c050 Remove some warnings
Unused variables
Unused code
Unused arguments
Unnecessarily complex code
Initialization order
Duplicated properties

REVIEW: 127214
2016-02-29 00:59:44 +01:00
Aleix Pol
9f62532674 Fix most of Clazy warnings in plasma-framework
REVIEW: 126672
2016-02-29 00:13:41 +01:00
David Rosca
3c8cb82d44 Fix build with Qt < 5.6 2016-02-28 10:36:57 +01:00
David Rosca
526915895b Add autotests for IconItem
Add some tests for IconItem.
Also found one issue in animation when quickly changing source, first frame
will be rendered with wrong icon.

REVIEW: 127103
2016-02-27 21:24:45 +01:00
Martin Klapetek
76186339f6 [libplasma] Add categorized debug output 2015-12-15 16:56:40 -05:00
l10n daemon script
694131fdb6 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"
2015-11-14 12:52:39 +00:00
Marco Martin
d6dd74ce39 adjust test values
framesvg margins have been changed, influencing sizes
and pos of the dialog

Change-Id: I23b6a8416de8ec7c17b04b97a6c2772bd44b4d7b
2015-11-10 11:01:14 +01:00
l10n daemon script
01f4cf59ea 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"
2015-11-04 17:07:45 +00:00
l10n daemon script
c718ba4b48 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"
2015-08-26 10:19:25 +00:00
David Faure
396f9a656f Use QBENCHMARK instead of a hard requirement on the machine's performance
https://build.kde.org/job/plasma-framework%20master%20kf5-qt5/PLATFORM=Linux,Variation=All,compiler=gcc/52/console
failed due to the CI machine being a bit slow/busy.
2015-08-01 13:45:29 +02:00
l10n daemon script
a989a77a0d 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"
2015-06-03 10:14:00 +00:00
l10n daemon script
9ea35bd26d 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"
2015-05-27 10:14:57 +00:00