File indexing completed on 2024-05-12 16:59:20
0001 /* 0002 * SPDX-FileCopyrightText: 2015-2016 Ivan Cukic <ivan.cukic@kde.org> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0005 */ 0006 0007 #include <Config.h> 0008 0009 #include <functional> 0010 0011 #include <QStandardPaths> 0012 0013 #include <KDirWatch> 0014 0015 #include <utils/d_ptr_implementation.h> 0016 0017 class Config::Private 0018 { 0019 public: 0020 Private(Config *parent) 0021 : q(parent) 0022 , mainConfigFile(QStandardPaths::writableLocation(QStandardPaths::ConfigLocation) + QStringLiteral("/kactivitymanagerdrc")) 0023 , pluginConfigFile(QStandardPaths::writableLocation(QStandardPaths::ConfigLocation) + QStringLiteral("/kactivitymanagerd-pluginsrc")) 0024 { 0025 using namespace std::placeholders; 0026 0027 watcher.addFile(mainConfigFile); 0028 watcher.addFile(pluginConfigFile); 0029 0030 QObject::connect(&watcher, &KDirWatch::created, q, std::bind(&Private::configFileChanged, this, _1)); 0031 QObject::connect(&watcher, &KDirWatch::dirty, q, std::bind(&Private::configFileChanged, this, _1)); 0032 } 0033 0034 void configFileChanged(const QString &file) 0035 { 0036 if (file == pluginConfigFile) { 0037 emit q->pluginConfigChanged(); 0038 } else { 0039 emit q->mainConfigChanged(); 0040 } 0041 } 0042 0043 KDirWatch watcher; 0044 0045 private: 0046 Config *const q; 0047 0048 const QString mainConfigFile; 0049 const QString pluginConfigFile; 0050 }; 0051 0052 Config::Config(QObject *parent) 0053 : Module(QStringLiteral("config"), parent) 0054 , d(this) 0055 { 0056 } 0057 0058 Config::~Config() 0059 { 0060 }