Summary:
this broke somewhat recently. the new availabletranslationsmodel's
rowcount is always 0 on a completely fresh system with no language
preference set. this is because the actual available languages list is
only compiled in its ::setSelectedLanguages function. this function was
however never called. this resulted in the kcm thinking there are no
available languages and thus making it impossible to actually add one by
disabling the button and having an empty view even if the button wasn't
disabled.
previously this was a single model, from what I can see, and that was
incorrectly ported. where previously the setSelectedLanguages was only
called on one model we now need to call it on all models to properly
propagate the language information.
(the reason it works this way is because available languages kinda need to
include already selected languages for consistency; even when the kcm
technically didn't find them available)
Test Plan:
- make new user
- start kcm
- kcm DOES NOT show infobox 'no languages installed' and the add languages button is enabled
- clicking the button gives a list of languages
- adding one works as well
Reviewers: sitter
Subscribers: ngraham, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D15115
Summary:
Its rather pointless to spew an error message each time a query is done.
Output the warning message just once (on the default logging level), and
output further messages only at debug level.
Reviewers: #plasma, ngraham, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: apol, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D14806
Summary:
BUG: 397537
Earlier plasmashell assumed that you'll get free space info immediately (which is not true in case of losing connection to server containing a mounted filesystem - statfs will wait for response forever and freeze everything since it's happening in main thread)
I moved obtaining that info into different thread so that case won't freeze anything anymore.
It creates exactly one thread per one path. If a path is already being processed, new thread won't be created.
Also I implemented a timer used to notify about broken connection after 15 seconds.
Reviewers: broulik, ngraham, davidedmundson
Reviewed By: broulik
Subscribers: ngraham, anthonyfieroni, davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D14895
Summary:
Turns out c8358c203f only worked accidentally. We can't do this
via filterModel->mapFromSource, because in a lambda connected to
its source model's rowsInserted signal, the proxy hasn't seen that
row yet.
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D15462
Summary:
LibreOffice reuses the same main window for both its start center and
sub-apps like Writer launched from it, changing the window metadata on
the fly. This ensures we hide e.g. a launcher for Writer when picking
it in the LO start center.
Reviewers: broulik
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D15458
Summary:
Some apps initially show their window with bogus/useless window
metadata and then update to useful metadata during early startup.
For example, LibreOffice sets WM_CLASS to soffice/Soffice and
then updates to libreoffice-writer/libreoffice. This leads to
a poor user experience on particular the Icons-only Task Manager,
but also the regular Task Manager depending on settings.
Depending on its configuration (and Icons-only Task Manager is
a particular set of configuration options, as far as the model
is concerned), TasksModel will try to sort a new window task
adjacent to its launcher task. The appearance of a new window
task also causes matching (in terms of identification) launcher
or startup tasks to be filtered out. To the user, this forms a
lifecycle of the launcher being replaced by the window in-place
(and a startup state inbetween, optionally but by default).
Prior to this patch, this sorting decision was only done once,
when a new window enters the source model stack. This meant the
LibreOffice window would initially be sorted into the "wrong"
spot (the bogus metadata doesn't allow us to relate it to its
launcher) and then, following the metadata change, stick to the
wrong position.
Simply changing the code to sort things again on any metadata
change would not have been good enough: Metadata changes can
occur at any time, and things should not just move around on
the user - this sort mode is called "Manual" for a reason. Also,
the visual result would still be poor: The window would initially
appear at the wrong position, then move to the right one a bit
later.
This patch takes the following approach:
* It adds a new config key to taskmanagerrulesrc for listing
ids of matching tasks to completely hide, and of course the
code needed to implement this.
* It adds LibreOffice' bogus initial metadata to this key, so
the tasks is initially hidden.
* The sort code skips over hidden window tasks in the sort
insert queue instead of moving them. The queue is marked as
stale then, and cleared on unrelated windowing system changes.
* It resorts when tasks are unhidden (i.e. once the metadata
update has occured and the task no longer matches the above
config key).
The visual result is that the startup notification on the
launcher spins a little bit longer than before, even though the
window has already appeared (although LO lags in filling in its
contents anyway), and then morphs into the window task
representation once the client has completed the window metadata
change. This happens in such a short order as to be more or less
imperceptible.
If startup notifications are turned off it's broadly the same,
minus the spinning.
BUG:396871
Reviewers: davidedmundson, broulik, ngraham
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D15410
The runner doesn't have any config on its own but uses the Web Shortcuts configuration.
Add a "configure" button that opens that KCM straight away.
BUG: 398242
FIXED-IN: 5.14.0
Differential Revision: https://phabricator.kde.org/D15430
Summary:
QDir.entryInfoList(NoDotAndDotDot) always returns an empty list, as it
requires one of QDir::Files, QDir::Dirs or QDir::Drives or any
combination thereof.
Instead of implementing it manually, use QDir::removeRecursively().
Test Plan:
Watch ~/.cache/krunner/
When krunner is closed, KRunner-Favicons-firefox-default should
be emptied and deleted.
Reviewers: #plasma, davidedmundson, broulik
Reviewed By: #plasma, broulik
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D15391
Summary: We use "Suspend" and "Hibernate" in most places except for KRunner, where we currently use more technical terms that expose the implementation details (suspend to ram vs suspend to disk). Let's be consistent.
Reviewers: #plasma, #vdg, davidedmundson, broulik
Reviewed By: #plasma, davidedmundson, broulik
Subscribers: sudhirkhanger, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D15386
Summary:
When the profile has initially been looked up, the location is saved to
the global config. Afterwards, the location is never updated even if
the profile has been replaced, due to an inverted exits() check.
Test Plan:
1. Check dbfile in kdeglobals is pointing to a valid profile
2a. Change the dbfile setting - or -
2b. Remove the existing profile and create a new one
3. Restart krunner - it should fix the config entry/use the new profile
Reviewers: #plasma, apol
Reviewed By: apol
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D15254
Summary:
Bookmarks may have no title, the user is free to delete it when creating
a bookmark.
A bookmark without URL would be useless (there were nothing to refer to),
so ignore any bookmark with an empty URL.
Simplify check for Firefox specific "place:" URLs.
Test Plan:
Search for "Recent" or "place"
"Recent Tags" is still filtered out
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D15356
Summary:
The factory returns the same object when the browser name is not changed.
Connecting the signal again leads to multiple calls to the slot each
time the signal is emitted.
See also T9626
Test Plan:
1. Add some debug output to the teardown() slot
2. Open the krunner multiple times and enter some query
3. teardown() is called exactly once
Reviewers: #plasma, broulik
Reviewed By: #plasma, broulik
Subscribers: davidedmundson, broulik, plasma-devel
Tags: #plasma
Maniphest Tasks: T9626
Differential Revision: https://phabricator.kde.org/D15306
We offer both Suspend and Hibernate in the application launcher so we should do the same here
BUG: 398184
FIXED-IN: 5.14.0
Differential Revision: https://phabricator.kde.org/D15287
Summary:
The favicon_id is not used in the query results, and may not even exist
when the places db has been created with FF 58 or later. In case the
column does not exist the query fails completely.
BUG: 398305
Test Plan:
1. Create a new FF profile
2. Add some bookmarks
3. Do some queries
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: broulik, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D15305
Summary:
the pieces of old components we couldn't control, like the combobox menu
didn't react to palette change
BUG:397845
Test Plan: applet still works and looks identical, combo popup changes color dinamically
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D15165
In previous versions of Plasma, media player had an overflow bug in positions, leading to the player resetting to 00:00.
This only affects files longer than around 33 minutes 20 seconds.
BUG: 397591
FIXED-IN: 5.12.7
Differential Revision: https://phabricator.kde.org/D15311
Summary:
org.kde.screensaver.xml is only part of KScreenlocker starting with
version 5.13.80, also the installation directory is not exported in
earlier versions.
Depends on D15228
Test Plan:
Try to build with kscreenlocker 5.13.0
Try to build with kscreenlocker 5.13.80
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D15229
Summary:
On Wayland, if some border is disabled, we don't attach corresponding
empty tile. Yet, we set offset of 1 for that border.
KWin relies on offset values to calculate bounding box for shadows.
For example, if a panel has only top border enabled, then the bounding
box will be 2 pixel wider(and 1px taller) than it should be. This can
result in having 1px thin artefacts on neighboring screens.
In general, we don't have to attach empty tiles for disabled borders.
Thus, we can set corresponding offsets to 0.
Reviewers: davidedmundson
Reviewed By: davidedmundson
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D14999
Summary:
This reduces a bunch of code, both hidden in the backend as well as the
mostly duplicated front end UI, making it more consistent for users too.
There is a behavioural change that switching user then cancelling will
require your own password.
KSMServer still has the same DBus slot for compatibility which then
proxies over to the screensaver. This could be calling itself, it might
be calling kwin when we're on wayland.
Depends on D15186
Test Plan:
Pressed switch user from the UI
Got a swich user dialog
Reviewers: #plasma, mart
Reviewed By: #plasma, mart
Subscribers: ngraham, mart, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D15187
Summary:
Years ago support was added for the lockscreen to default into switch user
mode. The goal being to simplify one more task from ksmserver.
It got postponed because it clashed with a change Kai made at the time.
Now I'm restoring that.
The code broke in the lockscreen rewrite.
Test Plan:
Called the switchUser DBus method
Lockscreen spawned on the right page
Locked screen normally, got the normal page
Reviewers: #plasma, mart
Reviewed By: #plasma, mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D15185
Summary:
AppStreamQt since 0.10.6 allows to pass on error messages in case some
errors occured when loading the AppStream data.
CCBUG: 374279
Reviewers: #plasma, apol, ngraham
Reviewed By: apol
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D14804
Summary:
The return code of the Pool::load() method is somewhat misleading, as it
returns true only if there were no errors at all. The error flag is set on the first
validation error, but the pool will contain meaningful data nevertheless.
BUG: 397531
Test Plan:
Searching for "blend"
Unfixed version:
No results are returned under "Software Center"
Fixed version:
Software Center: "Get Blender", "Get Hugin", ...
Reviewers: #plasma, #frameworks, apol
Reviewed By: apol
Subscribers: ngraham, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D14807
Summary:
If a user logged in with one screen connected plugs in
a second screen, which becomes the new primary screen,
this screen would stay black or behave weird.
Unplugging the screen again would mess up plasmashell.
Added to ScreenPool::setPrimaryConnector():
In the case primary output changed m_idForConnector
doesn't contain the new primary, so a screen mapping
is created for it.
Test Plan:
Testing on virtualbox or vmware player seems impossible, because
these don't allow disabling the first display (VGA-1) and booting
with the second (VGA-2) only.
1. Boot machine with one screen connected to HDMI-3 (primary output).
2. Log in
3. Plug in second screen to HDMI-2:
--> primary output changes from HDMI-3 to HDMI-2
4. OSD appears: extend to right
--> Without this patch, the new screen (HDMI-2) would stay blank.
--> With this patch applied, the screen content moves to the new
second screen.
5. Unplug second screen (HDMI-2)
--> Without this patch, the background would get black, control panel
would disappear, could only be restored by restart of plasmashell
--> With this patch applied, screen content moves to the right and
works
Reviewers: #plasma, mart, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: davidedmundson, ngraham, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D13853
Summary:
Slideshow wallpapers use the same Blur/Color selector that single image
wallpapers use. However, the Blur config entry was added to the image
xml but not the slideshow xml. The result was that the selection was
never persisted and reverted to the default on restart. This allows the
slideshow blur config to persist.
Test Plan:
Configure the desktop backgrounds.
Select slideshow with one or more images that are smaller than the screen.
Choose fill with solid color. Apply and exit.
Note that the background fill takes on the solid color
Restart
Note that the background fill is still the solid color
Configure desktop background
Choose fill with blur. Apply and exit
Note that the background fill is a blur
Restart
Note that the background fill is still a blur.
Reviewers: #plasma_workspaces, davidedmundson
Reviewed By: #plasma_workspaces, davidedmundson
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D13555
All the information we need (player capabilities and playback status) is already present and managed by the PlayerContainer
BUG: 397685
FIXED-IN: 5.13.5
Differential Revision: https://phabricator.kde.org/D14970