Summary:
Calls the existing quit signal on a running plasma then tries to start
in the normal way.
It's meant partly to make my own development workflow a bit easier, but
also to make it one less line on bugzilla when I want people to give me
debug output.
Test Plan:
Ran with existing plasma running
Ran without an existing plasma running
Reviewers: #plasma, apol
Reviewed By: apol
Subscribers: apol, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D12092
Summary:
As discussed the env variables are no longer exported. Thus Qt
applications follow the default qpa platform they are compiled with and
thus still function if they are packaged with a Qt without QtWayland.
Plasma's internal processes pick the qpa platform depending on the
session type as well as our flatpak apps.
KRunner and Plasmashell are adjusted to not leak the env variable they
set for themselves.
Test Plan:
Started a wayland session, verified with KWin's debug console
that plasmashell and krunner are wayland. Launched kwrite from both plasma
and krunner and verified that it's xcb
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D11447
Summary:
This is a preparation step to unset QT_QPA_PLATFORM from the wayland
startup session script. Setting QT_QPA_PLATFORM breaks 3rd-party Qt
software which does not bundle QtWayland. Most prominent example is
the Qt installer itself (see
https://bugreports.qt.io/browse/QTBUG-60222).
On the other hand our Plasma workspace applications need to be forced to
Wayland on a Wayland system. So we have a conflict between we want to
set QT_QPA_PLATFORM and we don't want to set QT_QPA_PLATFORM.
This change adds new API to KWorkspace to address this problem. The new
method adjusts the QT_QPA_PLATFORM based on the XDG_SESSION_TYPE
enviornment variable. It is completely opt-in. Meaning applications need
to explicitly add the call prior to creating the QGuiApplication and if
the user specifies either QT_QPA_PLATFORM env variable or any of the
-platform command line argument variants, the platform detection is
skipped.
The change also adjusts all plasma-workspace applications which should
use Wayland on Wayland to use the new API. The startup script on the
other hand still sets QT_QPA_PLATFORM. We also have applications outside
of plasma-workspace which needs this detection. Examples are:
* powerdevil
* systemsettings
* kinfocenter
Once this change is merged those applications can be adjusted by linking
against PW::KWorkspace and afterwards QT_QPA_PLATFORM can be unset from
startplasmacompositor.
Test Plan: See added autotest
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D10816
Summary:
Setting a window icon is surprisingly costly and a decent chunk of
startup time. The shell doesn't need one. The only place I could
find where this icon is visible is in the KSysguard process list :).
Some people may be reminded of this rejected request:
https://git.reviewboard.kde.org/r/128484/
But that's Plasma::Dialog in plasma-framework, which (currently)
still sets an icon. This is about the shell.
Reviewers: #plasma, davidedmundson, mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D9196
Summary:
The directory containing the main application (read through argv[0]) is
by default added to the list of paths containing libraries.
This causes various methods to iterate through all entries of the plasmashell
install location, usually /usr/bin.
By explicitly removing the path, those unnecessary lookups can be avoided,
resulting in around 100ms quicker startup on a system with 4000 entries in
/usr/bin.
Test Plan:
Ran plasmashell with and without this fix, no changes except for a slightly
quicker startup and much less strace noise.
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D7255
Summary:
KWindowSystem::platform() cannot be used before QApplication is
constructed.
QCoreApplication::setAttribute needs to be called before QApplication is
constructed.
We need a different method. I've used an explicit new env variable so
that some users can also opt in to use this when on X.
Test Plan:
Logged in.
Plasma panels all work. Look to be native resolution.
Reviewers: #plasma, mart
Reviewed By: #plasma, mart
Subscribers: mart, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D7200
Summary:
I've done this only when on Wayland because:
On X, our own scaling to font generally works well.
There are bugs on older Qt, especially when it comes to fractional
scaling, and we can't support per screen scales anyway.
There's advantages to disabling, and (other than small context menu
icons) few advantages in enabling
On wayland, it's different. Everything is simpler as all co-ordinates
are in the same co-ordinate system
we don't have fractional scaling on the client so don't hit most the
remaining bugs and
even if we don't use Qt scaling the compositor will try to scale us
anyway so we have no choice
CCBUG: 356446
Test Plan:
Had this for about a week on my laptop.
Haven't noticed a single problem.
Reviewers: #plasma, mart
Reviewed By: #plasma, mart
Subscribers: mart, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D7188
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
Makes it possible to test how/if a plasmoid behaves correctly on the most
similar environment possible to what the user would find on a production
system.
* Loads a plasmoid on a panel and the desktop.
* Lets it test his own stuff (loading test/test.qml within the plasma
package)
* Terminates with an error if it wasn't successful
REVIEW: 127346
Make use of Qt5.5 API QQuickWindow::sceneGraphError rather than catching
the errors in a message filter.
I also merged with existing warning where contexts could be created, but
compiling shaders would not work.
BUG: 358869
REVIEW: 127254
Devive pixel ratio has some problems in plasmashell currently.
In particular:
- dialog continually expands (347951)
- Text element text is screwed (QTBUG-42606)
- Panel struts (350614)
It's also not a /huge/ deal as we do our own thing anyway, so the
experience is better to just turn off this scaling.
I've had this patch in my local code since forever.We should revert this
when all 3 are fixed.
CCBUG: 347951
REVIEW: 124463
Notifications dataengine checks the applicationDisplayName() against the
event title and if it same it allows to 'spam' aka it will not merge
similar notifications. But when we started to use KAboutData this broke
functionality. KAboutData will set only properties available in
QCoreApplication and hence applicationDisplayName will be different.
This fixes it by setting applicationDisplayName.
BUG: 345149
FIXED-IN: 5.2.2
creating the corona on the stack makes the app crash on close, because
the corona tries to delete itself when the window closes.
this also meand this code will *not* leak
BUG:340191
parser says nothing about what it does. it could be a json parser.
crash, dgb, win, etc says the wrong thing: they don't communicate
that they are options