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
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
--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.
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
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
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
- 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
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
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
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
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
- 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
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
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
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
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
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
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
I guess nobody cares enough to debug why this fails on Qt 5.2, so let's
just silence this error blacklisting this particular test case on Qt
prior to 5.3.
I have no idea whether this is a good fix.
BUG: 342676
Change-Id: Ib53b70f740157e1a06383a9f0a78c3fccf5b930c
before 419b344b6 the size of the dialog was wrong, making positioning
of it actually different.
the new value, 71 is actually the correct one.
to make sure to catch similar cases, adds a test on the dialog size and margins as well
Change-Id: I035c66a6745e0e9f265f63cee450fec7a645654d
Add a test that checks all dialog flags are set when a dialog becomes
visible.
Renamed existing dialog test for clarity
Change-Id: I3677816877860cab3303122e81f9ee30fc563e39
use adjustSize in updateMinimumWidth et al.
changing tooltip content updates sizeHints
using setGeometry is immediate, and will kill the animations.
for dialogs other than tooltips there is no change since adjustGeometry
is just setGeometry
Change-Id: I3e6310f12f76e400f2663b8409a2bbc7e7398f39
when we check if a position is in a screen, we need
the whole screen geometry, panels included, otherwise if we pass
a coordinate under a panel, it will think no screen is there
Change-Id: I802a2bec4ae44b583eafdc309934e67b620cc463
As with containment, make sure Containment::applets()
is always sorted by id, to have the least sursprises possible
it adds a test
Change-Id: Ib1aeeff7c70bb6969b32b2fef8557889a43edf09
the order in which containments were restored used to be quite random:
ensure that's ordered by id this makes the shell startups be more reproduceable
from one to another, if a new containment arrives, ensure it's inserted
maintaining id order
containment::appelts() will need the same treatment
adds a test as well that checks the order is right
Change-Id: Ie1b278e5b83d7e3645f7293bf6d030aa7f43a221
if a containment's lastScreen is not -1 (and a valid screen)
*and* its activity() is not the current one, its QML
will *not* be loaded, therefore it would dangle blocking
corona::startupCompleted until the activity is selected
Change-Id: I6757d29240a012377e9ff0a22fe16541ea712ee6
As with containment, make sure Containment::applets()
is always sorted by id, to have the least sursprises possible
it adds a test
Change-Id: Ib1aeeff7c70bb6969b32b2fef8557889a43edf09
the order in which containments were restored used to be quite random:
ensure that's ordered by id this makes the shell startups be more reproduceable
from one to another, if a new containment arrives, ensure it's inserted
maintaining id order
containment::appelts() will need the same treatment
adds a test as well that checks the order is right
Change-Id: Ie1b278e5b83d7e3645f7293bf6d030aa7f43a221
if a containment's lastScreen is not -1 (and a valid screen)
*and* its activity() is not the current one, its QML
will *not* be loaded, therefore it would dangle blocking
corona::startupCompleted until the activity is selected
Change-Id: I6757d29240a012377e9ff0a22fe16541ea712ee6
Containments with no applets will emit uiReady now
It adds a test as well that checks if this is the case.
There is still a case where the corona doesn't emit startupCompleted()
that's when there is more than one activity, but that, as well the test
will be adressed by another patch on a different part.
Change-Id: I4d83aa612c29fb0f441d11681bc5aba241370bc3