diff options
Diffstat (limited to 'src/core/function/GlobalSettingStation.h')
-rw-r--r-- | src/core/function/GlobalSettingStation.h | 181 |
1 files changed, 30 insertions, 151 deletions
diff --git a/src/core/function/GlobalSettingStation.h b/src/core/function/GlobalSettingStation.h index 80780f4b..85ac57b4 100644 --- a/src/core/function/GlobalSettingStation.h +++ b/src/core/function/GlobalSettingStation.h @@ -1,5 +1,5 @@ /** - * Copyright (C) 2021 Saturneric + * Copyright (C) 2021 Saturneric <[email protected]> * * This file is part of GpgFrontend. * @@ -20,26 +20,24 @@ * the gpg4usb project, which is under GPL-3.0-or-later. * * All the source code of GpgFrontend was modified and released by - * Saturneric<[email protected]> starting on May 12, 2021. + * Saturneric <[email protected]> starting on May 12, 2021. * * SPDX-License-Identifier: GPL-3.0-or-later * */ -#ifndef GPGFRONTEND_GLOBALSETTINGSTATION_H -#define GPGFRONTEND_GLOBALSETTINGSTATION_H +#pragma once -#include <filesystem> - -#include "GpgFrontendBuildInstallInfo.h" -#include "core/GpgFrontendCore.h" -#include "core/GpgFunctionObject.h" +#include "core/function/basic/GpgFunctionObject.h" namespace GpgFrontend { /** - * @brief + * @class GlobalSettingStation + * @brief Singleton class for managing global settings in the application. * + * This class handles reading and writing of global settings, as well as + * managing application directories and resource paths. */ class GPGFRONTEND_CORE_EXPORT GlobalSettingStation : public SingletonFunctionObject<GlobalSettingStation> { @@ -58,179 +56,60 @@ class GPGFRONTEND_CORE_EXPORT GlobalSettingStation ~GlobalSettingStation() noexcept override; /** - * @brief - * - * @return libconfig::Setting& - */ - libconfig::Setting &GetUISettings() noexcept; - - /** - * @brief + * @brief Get the Settings object * - * @return libconfig::Setting& + * @return QSettings */ - template <typename T> - T LookupSettings(std::string path, T default_value) noexcept { - T value = default_value; - try { - value = static_cast<T>(GetUISettings().lookup(path)); - } catch (...) { - SPDLOG_WARN("setting not found: {}", path); - } - return value; - } + [[nodiscard]] auto GetSettings() const -> QSettings; /** * @brief Get the App Dir object * - * @return std::filesystem::path + * @return QString */ - [[nodiscard]] std::filesystem::path GetAppDir() const { return app_path_; } - - [[nodiscard]] std::filesystem::path GetAppDataPath() const { - return app_data_path_; - } + [[nodiscard]] auto GetAppDir() const -> QString; /** - * @brief Get the Log Dir object - * - * @return std::filesystem::path + * @brief Gets the application data directory. + * @return Path to the application data directory. */ - [[nodiscard]] std::filesystem::path GetLogDir() const { - return app_log_path_; - } + [[nodiscard]] auto GetAppDataPath() const -> QString; /** - * @brief Get the Standalone Database Dir object - * - * @return std::filesystem::path - */ - [[nodiscard]] std::filesystem::path GetStandaloneDatabaseDir() const { - auto db_path = app_configure_path_ / "db"; - if (!std::filesystem::exists(db_path)) { - std::filesystem::create_directory(db_path); - } - return db_path; - } - - [[nodiscard]] std::filesystem::path GetAppConfigPath() const { - return app_configure_path_; - } - - /** - * @brief Get the Standalone Gpg Bin Dir object + * @brief Get the Log Dir object * - * @return std::filesystem::path + * @return QString */ - [[nodiscard]] std::filesystem::path GetStandaloneGpgBinDir() const { - return app_resource_path_ / "gpg1.4" / "gpg"; - } + [[nodiscard]] auto GetLogDir() const -> QString; /** - * @brief Get the Locale Dir object + * @brief Get the Log Files Size object * - * @return std::filesystem::path + * @return QString */ - [[nodiscard]] std::filesystem::path GetLocaleDir() const { - return app_locale_path_; - } + [[nodiscard]] auto GetLogFilesSize() const -> QString; /** - * @brief Get the Resource Dir object + * @brief Get the Data Objects Files Size object * - * @return std::filesystem::path + * @return QString */ - [[nodiscard]] std::filesystem::path GetResourceDir() const { - return app_resource_path_; - } + [[nodiscard]] auto GetDataObjectsFilesSize() const -> QString; /** - * @brief Get the Certs Dir object + * @brief clear all log files * - * @return std::filesystem::path */ - [[nodiscard]] std::filesystem::path GetCertsDir() const { - return app_resource_path_ / "certs"; - } - - [[nodiscard]] std::string GetLogFilesSize() const; - - [[nodiscard]] std::string GetDataObjectsFilesSize() const; - void ClearAllLogFiles() const; - void ClearAllDataObjects() const; - /** - * @brief sync the settings to the file + * @brief clear all data objects * */ - void SyncSettings() noexcept; + void ClearAllDataObjects() const; private: - std::filesystem::path app_path_ = QCoreApplication::applicationDirPath() - .toStdString(); ///< Program Location - std::filesystem::path app_data_path_ = - QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation) - .toStdString(); ///< Program Data Location - std::filesystem::path app_log_path_ = - app_data_path_ / "logs"; ///< Program Data Location - std::filesystem::path app_data_objs_path_ = - app_data_path_ / "data_objs"; ///< Object storage path - -#ifdef LINUX_INSTALL_BUILD - std::filesystem::path app_resource_path_ = - std::filesystem::path(APP_LOCALSTATE_PATH) / - "gpgfrontend"; ///< Program Data Location -#else - std::filesystem::path app_resource_path_ = - RESOURCE_DIR_BOOST_PATH(app_path_); ///< Program Data Location -#endif - -#ifdef LINUX_INSTALL_BUILD - std::filesystem::path app_locale_path_ = - std::string(APP_LOCALE_PATH); ///< Program Data Location -#else - std::filesystem::path app_locale_path_ = - app_resource_path_ / "locales"; ///< Program Data Location -#endif - - std::filesystem::path app_configure_path_ = - QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation) - .toStdString(); ///< Program Configure Location - std::filesystem::path ui_config_dir_path_ = - app_configure_path_ / "conf"; ///< Configure File Directory Location - std::filesystem::path ui_config_path_ = - ui_config_dir_path_ / "main.cfg"; ///< Main Configure File Location - - libconfig::Config ui_cfg_; ///< UI Configure File - - /** - * @brief - * - */ - void init_app_secure_key(); - - /** - * @brief - * - */ - int64_t get_files_size_at_path(std::filesystem::path path, - std::string filename_pattern) const; - - /** - * @brief - * - */ - std::string get_human_readable_size(int64_t size) const; - - /** - * @brief - * - */ - void delete_all_files(std::filesystem::path path, - std::string filename_pattern) const; + class Impl; + SecureUniquePtr<Impl> p_; }; } // namespace GpgFrontend - -#endif // GPGFRONTEND_GLOBALSETTINGSTATION_H |