mirror of
https://invent.kde.org/system/dolphin
synced 2024-09-12 12:54:29 +00:00
Keep org.freedesktop.FileManager1 registered across processes
Summary: Currently if someone starts 2 dolphins, the second cannot register org.freedesktop.FileManager1 meaning and when the first dolphin quits, no-one has it registered. It doesn't cause a huge problem right now as we just dbus-activate a new one if needed, but it means the behaviour is a bit inconsistent and non-optimal. DBus has a system to queue names, meaning that as long as any dolphin is running this name is owned by one of the processes. Also this patch registers the service after the object which is technically safer. Test Plan: Ran d-feet Opened 2 dolphins, closed the first Service was still registered and the PID of the owning process changed. Reviewers: #dolphin, elvisangelaccio Reviewed By: #dolphin, elvisangelaccio Subscribers: elvisangelaccio, kfm-devel Tags: #dolphin Differential Revision: https://phabricator.kde.org/D15539
This commit is contained in:
parent
b98948ae1e
commit
cb6c71ae1b
|
@ -23,13 +23,15 @@
|
|||
#include <KPropertiesDialog>
|
||||
|
||||
#include <QDBusConnection>
|
||||
#include <QDBusConnectionInterface>
|
||||
|
||||
DBusInterface::DBusInterface() :
|
||||
QObject()
|
||||
{
|
||||
QDBusConnection::sessionBus().registerService(QStringLiteral("org.freedesktop.FileManager1"));
|
||||
QDBusConnection::sessionBus().registerObject(QStringLiteral("/org/freedesktop/FileManager1"), this,
|
||||
QDBusConnection::ExportScriptableContents | QDBusConnection::ExportAdaptors);
|
||||
QDBusConnection::sessionBus().interface()->registerService(QStringLiteral("org.freedesktop.FileManager1"),
|
||||
QDBusConnectionInterface::QueueService);
|
||||
}
|
||||
|
||||
void DBusInterface::ShowFolders(const QStringList& uriList, const QString& startUpId)
|
||||
|
|
Loading…
Reference in a new issue