/* * Copyright (C) 2020, KylinSoft Co., Ltd. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * * Authors: zhangzihao * Modified by: zhangpengfei * */ #ifndef GLOBALSETTINGS_H #define GLOBALSETTINGS_H #include #include #include #include #include #include //#include //If use pkg_config, it wont build succes,why????????? //My demo can build access yet. //MouseZhangZh #include #include #include #include #include "libsearch_global.h" #include "file-utils.h" #define CONTROL_CENTER_PERSONALISE_GSETTINGS_ID "org.ukui.control-center.personalise" #define TRANSPARENCY_KEY "transparency" #define THEME_GSETTINGS_ID "org.ukui.style" #define STYLE_NAME_KEY "styleName" #define FONT_SIZE_KEY "systemFontSize" #define ICON_THEME_KEY "iconThemeName" #define FILE_INDEX_ENABLE_KEY "fileIndexEnable" #define WEB_ENGINE_KEY "webEngine" #define CONTENT_FUZZY_SEARCH_KEY "contentFuzzySearch" #define WEB_ENGINE "web_engine" #define PATH_EMPTY 1; #define PATH_NOT_IN_HOME 2; #define PATH_PARENT_BLOCKED 3; #define BLOCK_DIRS QDir::homePath() + "/.config/org.ukui/ukui-search/ukui-search-block-dirs.conf" #define SEARCH_HISTORY QDir::homePath() + "/.config/org.ukui/ukui-search/ukui-search-history.conf" //#define CLOUD_HISTORY "history" //#define CLOUD_APPLICATIONS "applications" namespace UkuiSearch { /** * @brief The GlobalSettings class * 用于同步搜索应用的全局设置 * 不要作为文件索引或应用数据等服务设置使用 */ class LIBSEARCH_EXPORT GlobalSettings : public QObject { Q_OBJECT public: static GlobalSettings *getInstance(); const QVariant getValue(const QString&); /** * @brief setBlockDirs * set path for blacklist,return true if success,otherwise return false. * @param path path to be blocked * @param returnMessage this message will be set when return false. * @param true to remove blocking,false to set blocking,default set false. * @return */ bool setBlockDirs(const QString& path, int &returnCode, bool remove = false); QStringList getBlockDirs(); void setSearchRecord(const QString &word, const QDateTime &time); QStringList getSearchRecord(); void updateSearchHistory(QString key); Q_SIGNALS: void valueChanged(const QString&); void transparencyChanged(const double&); void styleChanged(const QString&); void fileSearchEnableChanged(bool); void webSearchEngineChanged(const QString&); void contentFuzzySearchEnableChanged(bool); private: explicit GlobalSettings(QObject *parent = nullptr); ~GlobalSettings() = default; void setValue(const QString&, const QVariant&); QGSettings *m_transGsettings; QGSettings *m_themeGsettings; QGSettings *m_searchGsettings; QSettings *m_blockDirsSettings; QSettings *m_searchRecordSettings; QMap m_cache; QStringList m_history; QFileSystemWatcher *m_confWatcher; QMutex m_mutex; // size_t test = 0; }; } #endif // GLOBALSETTINGS_H