don't set layout size hints from the contents size. this will cause
binding loops. use the implicit size instead.
This solves an issue visible especially on wayland (different roundtrip of timing of resizes in x11 seems to mask this problem) where the clock tooltip
sometimes gets stuck in an infinite resize loop freezing the whole plasma shell
BUG:422072
We get intermittent user complaints and bug reports about notifications
not being visible enough, especially on large or cluttered screens.
This commit attempts to remedy the situation by tinting the header for
on the left side for critical notifications using the color scheme's
"warning" color. Only critical notifications receive this treatment
since they're the only ones that the user really does need to see.
BUG: 420541
FIXED-IN: 5.24
Arguably, `found=false; for(list) {if(cond) {found=true; break;}}` is
harder to read than a single `found=array.contains(cond)` expression.
My only regret is that C++ does not provide any `contains()` function /
algorithm, so we are forced to `find_if` an element and compare it with
an iterator's `end()` which would be an utter nonsense in any other
language.
But most importantly, this commit replaces Qt's deprecated foreach with
a standard for-loop.
Previously, clicking the Edit button opened a dialog to edit it in. Now
it is done inside the applet itself. This makes it much less disruptive
and jarring, and makes the editing action feel smoother.
XdgActivationTokens are loaded async. To acheive a job like pattern we
were comparing serials in our slot when one was created.
On wayland this isn't ideal because we're slowly building up an
increasibly long list of lambdas being run, but they'll all no-op.
On X11 because lastInputSerial is always 0 we run the slot multiple
times for every system tray item each time an item is clicked or an
application is launched.
For xembedsniproxy this is especially problematic problematic as we will
trigger synthesised input events in our slot.
BUG: 444385
Right now we are bodging the track label into being this, but it looks
bad and doesn't use the standardized component, which it should. So now
it does.
BUG: 444322
FIXED-IN: 5.24
Needs c815c7a9bc
Currently the logic is very fragile and depends on the data being an url.
However the data of the match is an implementation detail and is in case of the KCM matches
a KPluginMetaData instance.
To avoid this issue the first url of the QueryMatch::urls() return value is checked.
This data is intended for mime-type/scheme related operations.
In the future we need an extra url for systemsettings & should consistently use the
urls of the query match. I will work on this before continuing to port the
plasma KCMs from KServiceTypeTrader.
BUG: 442522
This was deprecated, because having string based key-actions values
does not fit the usecases we have.
Consequently we should check if the runner has any QAction children, this
works if the runner created the QActions manually or if the actions
are registered in the abstract runner.
Also we can drop the ugly hack.
cd68df165a
added a setting to force the date to be at the same line as the time.
Add another option to that setting to force the date to be below the
time.
- Up/Down now ensures item is completely in view
- Ctrl+F works
- Tab/Shift+Tab events are no longer eaten by the search field
- Tab/Shift+Tab now resolve to actions on the selected item first
- Can use Escape key to go back from from QR code page
The app name in the header has poor text contrast because it is 40%
transparent and sits on a gray background. It is also using a
semantically incorrect UI component (DescriptiveLabel) which was meant
for de-emphasized subtitles, not titles. The correct component for that
is a Heading, so let's use that.
Because this means that we will hve two identically-sized headings in
close proximity, we need to distinguish the text for the notification
title without making it huge, which is overkill for a notification. To
accomplish this, this MR uses the Heading's "Primary" type which was
made for this purpose.
In most cases the port is trivial and can even simplify the code like in
the case of the system tray applet. In the case of notifications applet,
this is causing a bigger refactor and it's now also using a TextArea
that provides the automatic scrolling when selecting behavior.
CCBUG: 437155
This was always the indended appearance, but it was being overridden by
a bug in the ExpandableListItem itself. Let's remove the animations here
so that the bug in question can be fixed while preserving the intended
visual effect.
This action generates a QR code, but refers to it as a barcode in the UI
strings. In English at least, this is confusing; barcodes and QR codes
are different things, rather than one being a subset of the other. So
let's change the base English text to call the generated image a QR
code rather than a barcode. Any other language where the translation
for "barcode" is appropriate can substitute that in the translated text.
the new script uses tzdata.zi data to construct the tables of timezone
cities and continents. this way humans don't need to maintain the table.
since timezone city names aren't necessarily correct names there's an
additional mapping table inside the script specifically to map from TZ
city names to the english name we want to use
this still needs running manually every once in a while. we need this
source file up-to-date in the repository so the names can be translated
PlasmaQuick::Dialog has it's own WindowType which should be set instead,
otherwise once set NET::WindowType gets smashed by consequent
DialogPrivate::applyType() calls
BUG: 378694