#include <KIO/ApplicationLauncherJob>
#include <KService>
#include <KWindowSystem>
-#ifdef HAVE_KACTIVITIES
+#if HAVE_KACTIVITIES
#include <KActivities/Consumer>
#endif
QVector<QPair<QSharedPointer<OrgKdeDolphinMainWindowInterface>, QStringList>> Dolphin::dolphinGuiInstances(const QString &preferredService)
{
-#ifdef HAVE_KACTIVITIES
+#if HAVE_KACTIVITIES
static std::once_flag one_consumer;
static KActivities::Consumer *consumer;
std::call_once(one_consumer, []() {
consumer = new KActivities::Consumer();
+ // to prevent QGuiApplication::saveStateRequest
+ const QSignalBlocker blocker(qApp);
// ensures the consumer is ready for query
QEventLoop loop;
QObject::connect(consumer, &KActivities::Consumer::serviceStatusChanged, &loop, &QEventLoop::quit);
QSharedPointer<OrgKdeDolphinMainWindowInterface> interface(
new OrgKdeDolphinMainWindowInterface(service, QStringLiteral("/dolphin/Dolphin_1"), QDBusConnection::sessionBus()));
if (interface->isValid() && !interface->lastError().isValid()) {
-#ifdef HAVE_KACTIVITIES
+#if HAVE_KACTIVITIES
const auto currentActivity = consumer->currentActivity();
if (currentActivity.isEmpty() || currentActivity == QStringLiteral("00000000-0000-0000-0000-000000000000")
|| interface->isOnActivity(consumer->currentActivity()))