Load color tables from settings

This commit is contained in:
Dan Paulat 2021-11-06 22:18:02 -05:00
parent bcae7d9825
commit b241703b40
16 changed files with 324 additions and 17 deletions

View file

@ -21,6 +21,7 @@ namespace SettingsManager
static const std::string logPrefix_ = "[scwx::qt::manager::settings_manager] ";
static std::shared_ptr<settings::GeneralSettings> generalSettings_ = nullptr;
static std::shared_ptr<settings::PaletteSettings> paletteSettings_ = nullptr;
static boost::json::value ConvertSettingsToJson();
static void GenerateDefaultSettings();
@ -79,11 +80,17 @@ std::shared_ptr<settings::GeneralSettings> general_settings()
return generalSettings_;
}
std::shared_ptr<settings::PaletteSettings> palette_settings()
{
return paletteSettings_;
}
static boost::json::value ConvertSettingsToJson()
{
boost::json::object settingsJson;
settingsJson["general"] = generalSettings_->ToJson();
settingsJson["palette"] = paletteSettings_->ToJson();
return settingsJson;
}
@ -93,6 +100,7 @@ static void GenerateDefaultSettings()
BOOST_LOG_TRIVIAL(info) << logPrefix_ << "Generating default settings";
generalSettings_ = settings::GeneralSettings::Create();
paletteSettings_ = settings::PaletteSettings::Create();
}
static bool LoadSettings(const boost::json::object& settingsJson)
@ -103,6 +111,8 @@ static bool LoadSettings(const boost::json::object& settingsJson)
generalSettings_ = settings::GeneralSettings::Load(
settingsJson.if_contains("general"), jsonDirty);
paletteSettings_ = settings::PaletteSettings::Load(
settingsJson.if_contains("palette"), jsonDirty);
return jsonDirty;
}

View file

@ -1,6 +1,7 @@
#pragma once
#include <scwx/qt/settings/general_settings.hpp>
#include <scwx/qt/settings/palette_settings.hpp>
namespace scwx
{
@ -15,6 +16,7 @@ void Initialize();
void ReadSettings(const std::string& settingsPath);
std::shared_ptr<settings::GeneralSettings> general_settings();
std::shared_ptr<settings::PaletteSettings> palette_settings();
} // namespace SettingsManager
} // namespace manager