On wayland we don't want to use the env vars as we send the scale via
wl_output scale.
If a user logs into X first we set these in our activation env to a
scaled value. If they then log into wayland afterwards they are still
set. Calling qunsetenv won't work as then we won't remove them from the
activation env.
Arguably it's working round a bug, but we don't have other options.
BUG: 438971
We get `sourceRemoved` emitted before the source is actually removed
from the list.
This is a change from 5984d4960fa5ecf60a20b1fbc782fb841faa4af7
in plasma-framework but better be safe than sorry.
BUG: 439309
FIXED-IN: 5.23.3
Because we did not have this property the adaptor used a default
constructed empty path. An empty path is invalid though and Qt
would refuse to marshall it.
Unconditionally advertise '/' as the menu path even though we don't have
one. Callers looking for a menu there will receive an error that there's
not the interface that they expected at the path.
BUG:439229
FIXED-IN:5.22.3
The plugins are loaded from their namespace and not using the service
types.
Querying them using KServiceTypeTrader would not work, because the
X-KDE-Library property does not contain the namespace.
Considering that nobody complained about that we can stop installing
them.
Normally you wouldn't see this because a copy job has a `destUrl`
(which is why I didn't notice) but when removing the filename to "go up"
we need to strip the trailing slash, too.
Allows us to run executables, e.g. downloaded installers.
Also moves some of the logic to the C++ side.
It also indicates "openwith" Kiosk restriction in the UI now by hiding
the button.
This commit increases the default clipboard size from 7 to 20, that
way it could be more useful, allowing user to recover older
clipboard contents by default.
ShellCorona is created before KDBusService which registers the name.
This causes a problem as we register global shortcuts before plasmashell
--replace has kiled the old application, which in turn deregisters
everything.
We want everything before KDBusService to be as light as possible.
Moving ShellCorona construction is not trivial as some argument parsing
uses that.
BUG: 408310
in the hopes of increasing code clarity.
previously we had three distinct models. the model of languages, the
subset model of available languages (!selected), and the inverse model
of selected languages (!available).
this does make a lot of sense conceptually but also complicated the code
a whole lot because data needs to be shuffled and shared between the
three models. this lead to partial duplication in the data() function,
as well as the need for excess book keeping of the lists.
the new design takes a different approach: there is a single model of
all translations now. in the UI it gets filtered into the visual
incarnations: available and selected - these simply sort and filter as
necessary.
the actual languages are now objects to encapsulate their newly found
statefulness with the new languagecompleter tech. this also allows us to
move the actual mutation logic into the language itself. to on-demand
complete a language by installing missing packages one now calls
complete() on the language which in turn internally defers to the
various abstraction systems.
one unfortunate aspect is that the requirements for selected languages
is kind of divergent from available languages. for selected languages
their *configured* order matters. to enable this there is a secondary
list of languages purely for establishing the selection and selection
preference (i.e. order of use). this is a bit awkward but considering
this very minor divergent in requirements I didn't see justification to
make selected languages a completely separate model.
the refactor also, rather by accident, repairs the handling of missing
languages which probably broke at some point because of the excessive
book keeping work (the missing languages never showed up in the model)
the visualization of missing languages is also streamlined now by not
treating them as part of the model but rather a secondary list of codes
that are configured but not actually available on the system. this
reduces the visual presentation a bit (not that it was particularly
useful since you can't do anything with a missing language anyway) but
has the advantage that it means we can consider the base model of
languages const (Language instance are loaded at startup only) and also
removes some cruft from the qml code that purely existed to visualize
missing languages.
to be clear: the languages are still listed in a warning, but no longer
displayed in the listview.
As described here https://github.com/sddm/sddm/issues/751#issuecomment-847347450
SDDM provides the `needsPassword` property, which can be used to hide the
password prompt for passwordless accounts.
This merge request provides a basic implementation for the breeze SDDM theme.
This header needs to be shown only when not in the System Tray and also
when there are multiple mounted removable devices. That's the only
circumstance under which it actually has anything in it.
BUG: 438351
FIXED-IN: 5.22.1
The logic for handling the active window when it is a transient, added in
https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/509, had
a bug (fixed in 67003f740888fa9d1bcee60cd28ce9a862d2452a).
This reworks the implementation and actually makes the original feature work
(a signal also wasn't properly handled).
BUG: 438222
FIXED-IN: 5.22.1
When calling cleanUpComponent KGlobalAccel checks if there are no
shortcuts active, otherwise it will refuse to clean the component.
For a desktop file component (aka KServiceActionComponent) all
shortcuts are deactivated inside cleanUpComponent. For a regular
Component we have to do this manually.