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.
- Remove check for kded and confupdate stages in SplashApp, those setStage()
calls were removed a long time ago[1]
- Rename 'kinit' stage to 'startPlasma', since it's called from startplasma
- Remove startKDEInit(), it was declared but not defined anywhere, most
likely left-over from a previous refactor.
https://phabricator.kde.org/R297:185afa8a3af8002172d8f5d6aa08c57244422a12
The code already checks if the object to add to the container hasn't been
added before, no need for the QSet overhead; (unless the alphabetical order
if required, but I see nothing to support this theory).
If a QAction is destroyed, KGlobalAccel will automaticaly set it
to inactive. To prevent this put them on the heap and intentionally
leak them as it did before.
CCBUG:437364
Those were messed up in the clang-format reformatting, but there weren't
any complaints about the template not working.
Also the dataenines are about to be deprecated and still need a
replacement. Consequently we should not encourage users to write
third-party dataengines.
If there's no texture factory function, return the old node immediately.
Also, remove a guard against the code that calculates centered geometry
of the texture node. We cannot hit that case as we check whether the
factory function has returned a valid texture before that.
It's possible for the root volume to be on a removable disk. In this
case, don't offer the user the option to eject that disk as it does not
make sense and will fail.
This reverts part of a8ec95411a, KCModuleLoader can't load kcm_fontinst
if the library is installed in KDE_INSTALL_PLUGINDIR/kcms/; looks like that
only works for KCMs using QML.
BUG: 436306
FIXED-IN: 5.22.0
the desktop style forces a bit of padding onto the indicator which
combined with implicit small sizing in a layout means the indicator
comes out waaaaaay too small as half the available space is padding.
disable padding entirely, we don't really need it here
this caused an unnecessary warning. when the list is empty the join
results in "" which is considered invalid for the reference of %2
leading to ki18n warning that not enough arguments were supplied. simply
return an empty string when the message is not visible
the recycler did not really serve a purpose here. the delegates are
fairly cheap and there's a very finite amount of them and the amount
isn't going to be in the thousands either
it did however cause spurious warnings because there is a space of time
where model and index isn't available to the delegate and so trying to
get a role out of the model would cause warnings because model is null
initially.
removing the recycler gets rid of the warnings.
I've also changed parent.width to refer to the view explicitly as parent
isn't necessarily defined right out the gate causing excess warnings.
this is also typically what we do in other places.
We got some reports that the update did not work correctly.
The kconf update daemon watches for new files so we should
rename the file in addition to changing the IP.