Summary:
This allows us to run the plasma-tests repo on your system without it
destroying all your real activities. Even though one run tests in a
nested
dbus sessions, kactivities will still load and meddle with your real
database
at the same time as the real daemon is. That gets messy and broken.
It also allows us to remove a hack in the plasma-tests script.
Test Plan:
Ran normal plasma, everything is the same.
Ran plasma-tests everything there now works properly
Reviewers: #plasma, hein
Reviewed By: #plasma, hein
Subscribers: apol, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D6133
if any kscreen related activities occurred
during startup, the panel wouldn't be visible
yet, and this would assert. This often happens
when a screen gets disabled at startup
CCBUG:377280
if any kscreen related activities occurred
during startup, the panel wouldn't be visible
yet, and this would assert. This often happens
when a screen gets disabled at startup
CCBUG:377280
Summary:
this is for the following setup:
the primary screen is at position 0,0 and gets disconnected.
the other screen will be moved at 0,0 and becomes primary
the screen is reconnected, the events arrive in the followin order:
1) a new screen gets added, at 0,0 position
(not primary yet, it may be markedredundant)
2) the screen becomes primary, both screens still at 0,0
3) the old screen gets moved out of the way
in the end result none of the two need to be redundant.
adding the old one in the redundant list, will cause reconsideroutputs
to consider it and create a view for it.
BUG: 377808
Test Plan:
added and removed sevaral times a primary screen at 0,0
also tried other positions of screens to check it doesn't make regressions
Reviewers: #plasma, sebas, subdiff, broulik
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D5323
Summary:
this is for the following setup:
the primary screen is at position 0,0 and gets disconnected.
the other screen will be moved at 0,0 and becomes primary
the screen is reconnected, the events arrive in the followin order:
1) a new screen gets added, at 0,0 position
(not primary yet, it may be markedredundant)
2) the screen becomes primary, both screens still at 0,0
3) the old screen gets moved out of the way
in the end result none of the two need to be redundant.
adding the old one in the redundant list, will cause reconsideroutputs
to consider it and create a view for it.
Test Plan: added and removed sevaral times a primary screen at 0,0
Reviewers: #plasma, broulik, sebas
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D5323
Summary:
add global immutability/setImmutability in scripting
there was a locked property in containment, but
didn't make much sense as the lock/unlock state is
always global. a global function would be better.
containment.locked may also be changed to lock the corona instead
(doesn't seem reliable now) but should probably be deprecated.
Test Plan:
correctly locked nd unlocked widgets from the console.
i'm not sure wether allowing systemimmutable as is dangerous and not
easily reversible, but does have an use for first
time setup of kiosk environments
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D5009
if applets react to it it can cause a crash, because the corona
may not be valid anymore, and we don't want to relayout
things anyways when tearing down
reviewed-by: kbroulik
Summary:
connect to Plasma::Corona::availableScreenRectChanged
instead of using kscreen, this way we should be more sure
that signal is emitted when it's safe to call
corona()->availableScreenRect() as the change of rect
may happen after a screen removal, so may mean
accessing a desktop view while being deleted
BUG:377298
Test Plan:
notifications still pop up in the proper place,
couldn't reproduce the crash neither before nor after tough
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D4991
The panel length might not actually change depending on minimum and maximum size constraints
and this is the wrong place to do this in the first place.
Differential Revision: https://phabricator.kde.org/D4590
requestActivate() doesn't raise the window. The same had been done in PanelView but not
for DesktopView. This way a minimized config dialog (e.g. you want look at the wallpaper
in its full glory) will be raised if you open it again through the applet/desktop context menu.
CHANGELOG: A minimized config dialog on the desktop (e.g. wallpaper settings) will now be un-minimized when trying to open it multiple times
Reviewed-By: David Edmundson
Use iterators and their key() and value() methods.
This codepath is hit 200+ times on plasmashell startup for me
Before: 420,000 ns
After: 200,000 ns
Differential Revision: https://phabricator.kde.org/D4349
Summary:
isOutputRedundant badly failed when two screens had
the exact same geometry (that should be, the base
case for "cloning" screens.
now the logic is:
a screen is redundant if:
* its geometry is contained in another one
* if their resolutions are different, the "biggest" one wins
* if they have the same geometry, the one with the lowest id wins (arbitrary, but gives reproducible behavior and makes the primary
BUG:375507
Test Plan:
tested with two screens:
* overlapping, same resolution: the lowest id (0, the primary) wins, the other one doesn't get a view
* overlapping, different resolutions: the biggest one wins
* not overlapping: both get a view
Reviewers: sebas, #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D4309
Summary:
isOutputRedundant badly failed when two screens had
the exact same geometry (that should be, the base
case for "cloning" screens.
now the logic is:
a screen is redundant if:
* its geometry is contained in another one
* if their resolutions are different, the "biggest" one wins
* if they have the same geometry, the one with the lowest id wins (arbitrary, but gives reproducible behavior and makes the primary
BUG:375507
Test Plan:
tested with two screens:
* overlapping, same resolution: the lowest id (0, the primary) wins, the other one doesn't get a view
* overlapping, different resolutions: the biggest one wins
* not overlapping: both get a view
Reviewers: sebas, #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D4309
Summary:
isOutputRedundant badly failed when two screens had
the exact same geometry (that should be, the base
case for "cloning" screens.
now the logic is:
a screen is redundant if:
* its geometry is contained in another one
* if their resolutions are different, the "biggest" one wins
* if they have the same geometry, the one with the lowest id wins (arbitrary, but gives reproducible behavior and makes the primary
BUG:375507
Test Plan:
tested with two screens:
* overlapping, same resolution: the lowest id (0, the primary) wins, the other one doesn't get a view
* overlapping, different resolutions: the biggest one wins
* not overlapping: both get a view
Reviewers: sebas, #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D4309
Summary:
ContainmentConfigView has a special code path for wallpaper configs
where, if you change wallpaper type, it will create a temporary config
ConfigPropertyMap, then copy it over to the real config when the
containment actually changes.
ConfigPropertyMap does not call valueChanged() on insertion (See
QQmlPropertyMap), and we only write the value into the actual
KConfigSkeleton on valueChange.
BUG: 375532
Test Plan:
Start plasma with image wallpaper
Set to colour wallpaper and save colour
Hit apply
Close plasma
Start plasma
Before the correct colour wouldn't be loaded. Now it is.
Reviewers: #plasma, mart
Reviewed By: mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D4285
when the screen is resized, emit
screenGeometryChanged
availableScreenRegionChanged
availableScreenRectChanged
to notify all the applets
reviewd-by: Eike Hein
Summary:
If we changed containment with the config open, relaunch the config
dialog but for the new containment.
This provides a somewhat seamless changing desktop types.
BUG: 355642
Test Plan:
Opened config, changed type, hit apply -> dialog was replaced
Opened config, changed activity -> Dialog was replaced
Opened config, Closed Config, changed activity -> Nothing happened
Reviewers: #plasma, mart
Reviewed By: mart
Subscribers: mart, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D4086
Summary:
panel size and position in pixel is dependent from screen resolution,
this saved in different config groups, as it should.
but two properies of panelview shouldn't change between resolution,
that are visibility and alignment, otherwise the panel changes
behavior in an unpredictable way when resolution changes.
BUG:372064
Test Plan:
started plasmashell with old config, values have been correctly
migrated to the parent group that's common for all resolutions
Reviewers: davidedmundson, #plasma
Reviewed By: davidedmundson, #plasma
Subscribers: davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D4087
Summary:
due to old multiscreen bugs, sometimes the appletsrc file
gets polluted with a lot of containments with same activity id
and lastScreen, in some cases even hundreds
(see https://bugs.kde.org/show_bug.cgi?id=371858)
in that case we can't be 100% sure what containment will be loaded
at startup, leading to an herratical behavior.
it was trying to clean up duplicates but wasn't really effective
now base upon lastScreen (so we catch other activities as well)
and manually remove the destroyed containment from
m_desktopContainments (which may sole some multiscreen
related bug, such as 371991)
BUG:371858
CCBUG:371991
Test Plan:
started a session with the corrupted appletsrc from the bugreport,
file gets cleaned out of duplicates
Reviewers: davidedmundson, #plasma
Reviewed By: davidedmundson, #plasma
Subscribers: davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3981
Summary:
due to old multiscreen bugs, sometimes the appletsrc file
gets polluted with a lot of containments with same activity id
and lastScreen, in some cases even hundreds
(see https://bugs.kde.org/show_bug.cgi?id=371858)
in that case we can't be 100% sure what containment will be loaded
at startup, leading to an herratical behavior.
it was trying to clean up duplicates but wasn't really effective
now base upon lastScreen (so we catch other activities as well)
and manually remove the destroyed containment from
m_desktopContainments (which may sole some multiscreen
related bug, such as 371991)
BUG:371858
CCBUG:371991
Test Plan:
started a session with the corrupted appletsrc from the bugreport,
file gets cleaned out of duplicates
Reviewers: davidedmundson, #plasma
Reviewed By: davidedmundson, #plasma
Subscribers: davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3981
Summary:
It's exported and we're including the include path in our cmake so we
had two paths to the same thing included.
Test Plan: Compiled
Reviewers: #plasma, markg
Reviewed By: markg
Subscribers: markg, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D4030
Summary:
It's not used, and it doesn't even have any docs saying what it's
supposedly for.
Removing.
Test Plan: Compiles and checked it's not exported.
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3945
Test Plan:
Now get a populated Panel's menu
(this doesn't answer why Marco and Kai said it worked for them though?)
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3944
Summary:
Both when exporting and importing plasma layout to json
consider the panel visibility as well together the other
properties
BUG:374226
Test Plan: tried an exported layout with autohide panel
Reviewers: davidedmundson, #plasma
Reviewed By: davidedmundson, #plasma
Subscribers: davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3852
Summary:
this replaces the approach with the expose event in
20b439a4f4 by directly monitoring the xcb screen change
notify native event
Test Plan:
attaching and detaching the external screen on a laptop
configured to deactivate the internal screen upon connection
same behavior as D3777
Reviewers: sebas, davidedmundson, #plasma
Reviewed By: davidedmundson, #plasma
Subscribers: pmuralidharan, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3822