mirror of
https://github.com/microsoft/PowerToys.git
synced 2025-12-16 19:57:57 +01:00
common: refactor common library pt2 (#8588)
- remove common lib - split settings, remove common-md - move ipc interop/kb_layout to interop - rename core -> settings, settings -> old_settings - os-detect header-only; interop -> PowerToysInterop - split notifications, move single-use headers where they're used - winstore lib - rename com utils - rename Updating and Telemetry projects - rename core -> settings-ui and remove examples folder - rename settings-ui folder + consisent common/version include
This commit is contained in:
80
src/common/SettingsAPI/settings_helpers.cpp
Normal file
80
src/common/SettingsAPI/settings_helpers.cpp
Normal file
@@ -0,0 +1,80 @@
|
||||
#include "pch.h"
|
||||
#include "settings_helpers.h"
|
||||
|
||||
namespace PTSettingsHelper
|
||||
{
|
||||
constexpr inline const wchar_t* settings_filename = L"\\settings.json";
|
||||
constexpr inline const wchar_t* log_settings_filename = L"log_settings.json";
|
||||
|
||||
std::wstring get_root_save_folder_location()
|
||||
{
|
||||
PWSTR local_app_path;
|
||||
winrt::check_hresult(SHGetKnownFolderPath(FOLDERID_LocalAppData, 0, NULL, &local_app_path));
|
||||
std::wstring result{ local_app_path };
|
||||
CoTaskMemFree(local_app_path);
|
||||
|
||||
result += L"\\Microsoft\\PowerToys";
|
||||
std::filesystem::path save_path(result);
|
||||
if (!std::filesystem::exists(save_path))
|
||||
{
|
||||
std::filesystem::create_directories(save_path);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
std::wstring get_module_save_folder_location(std::wstring_view powertoy_key)
|
||||
{
|
||||
std::wstring result = get_root_save_folder_location();
|
||||
result += L"\\";
|
||||
result += powertoy_key;
|
||||
std::filesystem::path save_path(result);
|
||||
if (!std::filesystem::exists(save_path))
|
||||
{
|
||||
std::filesystem::create_directories(save_path);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
std::wstring get_module_save_file_location(std::wstring_view powertoy_key)
|
||||
{
|
||||
return get_module_save_folder_location(powertoy_key) + settings_filename;
|
||||
}
|
||||
|
||||
std::wstring get_powertoys_general_save_file_location()
|
||||
{
|
||||
return get_root_save_folder_location() + settings_filename;
|
||||
}
|
||||
|
||||
void save_module_settings(std::wstring_view powertoy_key, json::JsonObject& settings)
|
||||
{
|
||||
const std::wstring save_file_location = get_module_save_file_location(powertoy_key);
|
||||
json::to_file(save_file_location, settings);
|
||||
}
|
||||
|
||||
json::JsonObject load_module_settings(std::wstring_view powertoy_key)
|
||||
{
|
||||
const std::wstring save_file_location = get_module_save_file_location(powertoy_key);
|
||||
auto saved_settings = json::from_file(save_file_location);
|
||||
return saved_settings.has_value() ? std::move(*saved_settings) : json::JsonObject{};
|
||||
}
|
||||
|
||||
void save_general_settings(const json::JsonObject& settings)
|
||||
{
|
||||
const std::wstring save_file_location = get_powertoys_general_save_file_location();
|
||||
json::to_file(save_file_location, settings);
|
||||
}
|
||||
|
||||
json::JsonObject load_general_settings()
|
||||
{
|
||||
const std::wstring save_file_location = get_powertoys_general_save_file_location();
|
||||
auto saved_settings = json::from_file(save_file_location);
|
||||
return saved_settings.has_value() ? std::move(*saved_settings) : json::JsonObject{};
|
||||
}
|
||||
|
||||
std::wstring get_log_settings_file_location()
|
||||
{
|
||||
std::filesystem::path result(PTSettingsHelper::get_root_save_folder_location());
|
||||
result = result.append(log_settings_filename);
|
||||
return result.wstring();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user