From 648911f3aba3d0899cd6e5c7ea586b94a4b0fa05 Mon Sep 17 00:00:00 2001 From: Markus Goetz Date: Tue, 10 Apr 2018 15:51:06 +0200 Subject: [PATCH] macOS: Unload the Finder extension on exit #5382 #3819 --- src/gui/socketapi.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/gui/socketapi.cpp b/src/gui/socketapi.cpp index 346f5ce62..53faa77f1 100644 --- a/src/gui/socketapi.cpp +++ b/src/gui/socketapi.cpp @@ -181,6 +181,10 @@ SocketApi::SocketApi(QObject *parent) // Example for developer builds (with ad-hoc signing identity): "" "com.owncloud.desktopclient" ".socketApi" // Example for official signed packages: "9B5WD74GWJ." "com.owncloud.desktopclient" ".socketApi" socketPath = SOCKETAPI_TEAM_IDENTIFIER_PREFIX APPLICATION_REV_DOMAIN ".socketApi"; +#ifdef Q_OS_MAC + // Tell Finder to use the Extension (checking it from System Preferences -> Extensions) + system("pluginkit -e use -i " APPLICATION_REV_DOMAIN ".FinderSyncExt &"); +#endif } else if (Utility::isLinux() || Utility::isBSD()) { QString runtimeDir; runtimeDir = QStandardPaths::writableLocation(QStandardPaths::RuntimeLocation); @@ -218,6 +222,11 @@ SocketApi::~SocketApi() // All remaining sockets will be destroyed with _localServer, their parent ASSERT(_listeners.isEmpty() || _listeners.first().socket->parent() == &_localServer); _listeners.clear(); + +#ifdef Q_OS_MAC + // Unload the extension (uncheck from System Preferences -> Extensions) + system("pluginkit -e ignore -i " APPLICATION_REV_DOMAIN ".FinderSyncExt &"); +#endif } void SocketApi::slotNewConnection()