This makes the font selector more compact and moves it to the end of the dialog.
Settings like show seconds and date are more important than using a custom font for the clock.
Differential Revision: https://phabricator.kde.org/D7633
Summary:
When the service is regsitered we want to have all the internal routing
pre-configured. Otherwise pending calls (such as pending DBus activated
calls) can be processed before the path is registered and then fail with
an error that the path does not exist.
Also remove the fairly redundant check on registerObject. That can return
false if some object in this process has registered itself on that path; but in that
case, the very last thing we'd want to do is call unregisterService.
Test Plan:
Generated a load of notifications
Started plasma
Ouptut showed valid return on GetCapabilities, not an error on missing path
Reviewers: #plasma, broulik
Reviewed By: #plasma, broulik
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D7596
This will route the event through the containment first which can then intercept it, e.g. to prevent
Escape from exiting showing desktop while renaming where it should only cancel that.
CCBUG: 352988
Differential Revision: https://phabricator.kde.org/D7630
This allows the config UI to know when to enable the Apply button.
Currently we only do that when the shortcut or actions themselves change but not their configuration.
Differential Revision: https://phabricator.kde.org/D6443
This replaces the loop with fixed values by an Instantiator creating bindings on the model.
CCBUG: 372090
Differential Revision: https://phabricator.kde.org/D7603
Summary:
There's no reason to have different behaviour depending on whether the
UI is presented in an applet or not.
Test Plan: Looked in qdbusviewer
Reviewers: #plasma
Subscribers: graesslin, heikobecker, broulik, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D7536
Summary:
QDBusConnection::serviceOwnerChanged is deprecated, with the intended
replacement being QDBusServiceWatcher. QDBusServiceWatcher only creates
a match rule for the relevant services, resulting in less noise and
wakeups.
(practically this has no impact as the the system tray also connects to
watch every service change, and that runs in the same process)
Test Plan:
Ran appmenu
Had dolphin open showing the menu
Closed dolphin
menu immediately closed
Reviewers: #plasma, broulik
Reviewed By: #plasma, broulik
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D7611
Summary:
In any place we look up a KService, check if it has a menuId,
and then generate KAStats-style applications: URL with it. Also
learn how to handle applications: URLs.
This was requested by Kai in D7203. His patch makes Kate
dynamically add its sessions as jump list actions to a copy of its
.desktop file in $HOME. As the library would generate the absolute
path to a .desktop file e.g. in /usr as launcher URL before, the
TM applet would ignore the overriding copy in $HOME and the actions
wouldn't be found.
This patch won't rewrite existing config, but LauncherTasksModel
will resolve the absolute path to the applications: URL as it goes
through TaskTools, and then return that. The window and startup
tasks models produce those URLs, too, so things match up. Newly-
added launchers will then store the applications: URL in config
directly.
Moving away from storing absolute paths when we can is also nice
in case there is a $HOME .desktop file at the time a launcher is
added which later gets deleted. Using the new storage format, we
will now fall back to a system file instead.
Note the conservative approach taken: We only generate an
applications: URL when the service returns something for menuId().
We don't use KService::storageId() here, which can fall back to
KService::entryPath() - in this case we're better off just using
the absolute path we already have. We still use storageId() when
generating the applications: URL for KAStats db insertions, as
that is more liberal (and matches Kicker).
It makes sense to look at the Kicker backend code to see if should
store applications: URLs (which it already produces to insert into
KAStats) as well.
This will need a subsequent patch to the Task Manager applet to
handle applications: URLs there in code that consumes launcher URLs
to parse things out of .desktop files.
Contains other minor cleanup and fixes, such as porting the
LauncherTasksModel to use TaskTools::runApp (which now understands
preferred: URLs as well), a fix for a small logic error there (the
&& before the !isApplication should have been ||, now moot), and
not needlessly opening and parsing a .desktop file in
TaskTools::appDataFromUrl.
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D7561
Plasma doesn't use any cln code directly, only via libqalculate. In version 2.0, libqalculate dropped cln in favor of gmp, so the cln dependency
becomes unnecessary.
Differential Revision: https://phabricator.kde.org/D7590
Creating one from an empty string prints a warning and here we don't actually need
a fully-fledged QDBusObjectPath, we can just compare strings.
BUG: 383557
Differential Revision: https://phabricator.kde.org/D7538
We have a custom compact representation anyway.
All it does is change the tooltip icon but more importantly break the notification icon in System Tray settings.
BUG: 375093
FIXED-IN: 5.11.0
Differential Revision: https://phabricator.kde.org/D7542
Summary: It was required by drkonqi, but that was split out from plasma-workspace.
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D7506
m_windows keeps track of which window has which borders so it can update them when e.g. theme changes.
Unfortunately, it was never updated after the window was initially added.
Differential Revision: https://phabricator.kde.org/D7505
In QtQuick Layouts implicit size (set by IconItem to the SVG's natural size) takes
precedence over width/height. This was fixed in DeviceItem but forgotten here.
BUG: 382541
FIXED-IN: 5.8.8
Summary:
In the lock screen the user delegate has to elide the text when there
are multiple items next to each other, otherwise it will overlap.
When there's only one item (which is quite common) we don't need to
and doing so looks weird.
Test Plan:
Modified SDDM dummydata/userModel to have one entry with a long name
and back to multiple entries.
Reviewers: #plasma, broulik
Reviewed By: #plasma, broulik
Subscribers: broulik, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D7472
Summary: Not sure what I was thinking when I wrote it.
Test Plan:
Grepped m is not used in file.
Grepped it's not used in any other users of the delegate
Reviewers: #plasma, broulik
Reviewed By: #plasma, broulik
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D7473
Summary:
TaskGroupingProxyModel uses a simple QVector<QVector<int>> populated
with source model row indices to represent the task group tree. To
implement QAbstractItemModel::parent(), its implementation of index()
encodes row indices of the top-level vector into the internal ids of
child item model indices. This allows parent() to produce the parent
model index by simply decoding the parent row from the passed-in child
index and call index() with that row.
Top-level row indices shift up and down as the list of top-level items
changes, invalidating those internal ids. QModelIndex is not meant to
be stored, and the proxy model does take care of updating any persis-
tent model indexes with new ids, so this should be fine.
However, where it falls apart is that as internal ids are invalidated,
a QSortFilterProxyModel on top of this proxy (i.e. TasksModel) may end
up with multiple indexes with identical internal ids in its mappings,
causing it to mess up its mappings as it uses them (e.g. taking things
from them). This causes the often-reported crash/assert there.
The fix is to refactor index()/parent() not to rely on row indices as
internal ids, but instead use pointers to internal data structures
instead.
This patch achieves this by changing the map to QVector<QVector<int> *>.
This screams fugly, but the alternative would basically just be to
create some wrapper struct to hide the fugly appeareance a little,
which I don't think is worth it.
On the flip side, it saves a QVector::replace() call as a multable
vector iterator can work directly on a vector without making a copy,
and it's now no longer necessary to manually update the persistent
model indices beyond what endRemoveRows() does implicitly.
BUG:381006
Reviewers: #plasma, davidedmundson
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D7139
Summary:
KRunner now supports querying data from running processes rather than
being plugins.
Due the number of crash reports of Baloo in both krunner and more
importantly plasmashell, we can move this out of process to make the UX
better in the event of an issue.
This also means we share the database instance between both krunner and plasmashell.
Test Plan:
Searched, typing really quickly
All works as before; including forcing a delay when you only type a few letters
Results are just as fast as before to the human eye (bustle show calls as 0ms)
Tested open with folder and open normally actions
Tested dragging from krunner to dolphin
Tested we had correct icons
Reviewers: #plasma, broulik
Reviewed By: #plasma, broulik
Subscribers: broulik, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D7404
Summary:
For url with parameter like audiocd:/1.wav?device=/dev/sr0, the filename
displayed in notifications applet is not correct ("sr0") instead of 1.wav.
This commit try to remove the query string before extract the last path
component.
Test Plan: Manually with audiocd-kio
Reviewers: mart, davidedmundson
Reviewed By: davidedmundson
Subscribers: davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D4879
Summary:
Setting the style manually is necessary as there is only a variable that
applies to both quick controls versions, so it needs to be overwritten to not
cause a warning on every application start. The current way of setting it directly
got defeated by ugly bugs in QQuickControlSettings1, which need to be worked around.
See the added comments for an explanation.
Test Plan:
Set the variables manually, now works consistently everywhere without showing warnings.
For some reason I feel much dirtier now.
Reviewers: #plasma, mart
Reviewed By: #plasma, mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D7381
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
This allows adding images (for image wallpaper) and folders (for slideshow) by dragging them into the list of images/folder.
Differential Revision: https://phabricator.kde.org/D6568
Summary:
Bug 378032.
With these changes, notifications can be configured to always persist in the notifications applet.
Todo: filter by application, see https://bugs.kde.org/show_bug.cgi?id=378032#c27
Test Plan: Open the notification plasmoid's settings. Check 'Show a history of notifications'. Trigger some notifications. They should show up in the applet.
Reviewers: #plasma, #vdg, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: mart, graesslin, davidedmundson, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D7271