mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-30 22:30:06 +00:00
Add unit settings
This commit is contained in:
parent
7a71b9e244
commit
3bfcaede96
5 changed files with 151 additions and 3 deletions
|
|
@ -176,7 +176,8 @@ set(HDR_SETTINGS source/scwx/qt/settings/audio_settings.hpp
|
||||||
source/scwx/qt/settings/settings_variable.hpp
|
source/scwx/qt/settings/settings_variable.hpp
|
||||||
source/scwx/qt/settings/settings_variable_base.hpp
|
source/scwx/qt/settings/settings_variable_base.hpp
|
||||||
source/scwx/qt/settings/text_settings.hpp
|
source/scwx/qt/settings/text_settings.hpp
|
||||||
source/scwx/qt/settings/ui_settings.hpp)
|
source/scwx/qt/settings/ui_settings.hpp
|
||||||
|
source/scwx/qt/settings/unit_settings.hpp)
|
||||||
set(SRC_SETTINGS source/scwx/qt/settings/audio_settings.cpp
|
set(SRC_SETTINGS source/scwx/qt/settings/audio_settings.cpp
|
||||||
source/scwx/qt/settings/general_settings.cpp
|
source/scwx/qt/settings/general_settings.cpp
|
||||||
source/scwx/qt/settings/hotkey_settings.cpp
|
source/scwx/qt/settings/hotkey_settings.cpp
|
||||||
|
|
@ -190,7 +191,8 @@ set(SRC_SETTINGS source/scwx/qt/settings/audio_settings.cpp
|
||||||
source/scwx/qt/settings/settings_variable.cpp
|
source/scwx/qt/settings/settings_variable.cpp
|
||||||
source/scwx/qt/settings/settings_variable_base.cpp
|
source/scwx/qt/settings/settings_variable_base.cpp
|
||||||
source/scwx/qt/settings/text_settings.cpp
|
source/scwx/qt/settings/text_settings.cpp
|
||||||
source/scwx/qt/settings/ui_settings.cpp)
|
source/scwx/qt/settings/ui_settings.cpp
|
||||||
|
source/scwx/qt/settings/unit_settings.cpp)
|
||||||
set(HDR_TYPES source/scwx/qt/types/alert_types.hpp
|
set(HDR_TYPES source/scwx/qt/types/alert_types.hpp
|
||||||
source/scwx/qt/types/event_types.hpp
|
source/scwx/qt/types/event_types.hpp
|
||||||
source/scwx/qt/types/font_types.hpp
|
source/scwx/qt/types/font_types.hpp
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@
|
||||||
#include <scwx/qt/settings/product_settings.hpp>
|
#include <scwx/qt/settings/product_settings.hpp>
|
||||||
#include <scwx/qt/settings/text_settings.hpp>
|
#include <scwx/qt/settings/text_settings.hpp>
|
||||||
#include <scwx/qt/settings/ui_settings.hpp>
|
#include <scwx/qt/settings/ui_settings.hpp>
|
||||||
|
#include <scwx/qt/settings/unit_settings.hpp>
|
||||||
#include <scwx/qt/util/json.hpp>
|
#include <scwx/qt/util/json.hpp>
|
||||||
#include <scwx/util/logger.hpp>
|
#include <scwx/util/logger.hpp>
|
||||||
|
|
||||||
|
|
@ -139,6 +140,7 @@ boost::json::value SettingsManager::Impl::ConvertSettingsToJson()
|
||||||
settings::ProductSettings::Instance().WriteJson(settingsJson);
|
settings::ProductSettings::Instance().WriteJson(settingsJson);
|
||||||
settings::TextSettings::Instance().WriteJson(settingsJson);
|
settings::TextSettings::Instance().WriteJson(settingsJson);
|
||||||
settings::UiSettings::Instance().WriteJson(settingsJson);
|
settings::UiSettings::Instance().WriteJson(settingsJson);
|
||||||
|
settings::UnitSettings::Instance().WriteJson(settingsJson);
|
||||||
|
|
||||||
return settingsJson;
|
return settingsJson;
|
||||||
}
|
}
|
||||||
|
|
@ -155,6 +157,7 @@ void SettingsManager::Impl::GenerateDefaultSettings()
|
||||||
settings::ProductSettings::Instance().SetDefaults();
|
settings::ProductSettings::Instance().SetDefaults();
|
||||||
settings::TextSettings::Instance().SetDefaults();
|
settings::TextSettings::Instance().SetDefaults();
|
||||||
settings::UiSettings::Instance().SetDefaults();
|
settings::UiSettings::Instance().SetDefaults();
|
||||||
|
settings::UnitSettings::Instance().SetDefaults();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SettingsManager::Impl::LoadSettings(
|
bool SettingsManager::Impl::LoadSettings(
|
||||||
|
|
@ -172,6 +175,7 @@ bool SettingsManager::Impl::LoadSettings(
|
||||||
jsonDirty |= !settings::ProductSettings::Instance().ReadJson(settingsJson);
|
jsonDirty |= !settings::ProductSettings::Instance().ReadJson(settingsJson);
|
||||||
jsonDirty |= !settings::TextSettings::Instance().ReadJson(settingsJson);
|
jsonDirty |= !settings::TextSettings::Instance().ReadJson(settingsJson);
|
||||||
jsonDirty |= !settings::UiSettings::Instance().ReadJson(settingsJson);
|
jsonDirty |= !settings::UiSettings::Instance().ReadJson(settingsJson);
|
||||||
|
jsonDirty |= !settings::UnitSettings::Instance().ReadJson(settingsJson);
|
||||||
|
|
||||||
return jsonDirty;
|
return jsonDirty;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
99
scwx-qt/source/scwx/qt/settings/unit_settings.cpp
Normal file
99
scwx-qt/source/scwx/qt/settings/unit_settings.cpp
Normal file
|
|
@ -0,0 +1,99 @@
|
||||||
|
#include <scwx/qt/settings/unit_settings.hpp>
|
||||||
|
#include <scwx/qt/settings/settings_definitions.hpp>
|
||||||
|
#include <scwx/qt/types/unit_types.hpp>
|
||||||
|
|
||||||
|
#include <boost/algorithm/string.hpp>
|
||||||
|
|
||||||
|
namespace scwx
|
||||||
|
{
|
||||||
|
namespace qt
|
||||||
|
{
|
||||||
|
namespace settings
|
||||||
|
{
|
||||||
|
|
||||||
|
static const std::string logPrefix_ = "scwx::qt::settings::unit_settings";
|
||||||
|
|
||||||
|
class UnitSettings::Impl
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit Impl()
|
||||||
|
{
|
||||||
|
std::string defaultAccumulationUnitsValue =
|
||||||
|
types::GetAccumulationUnitsName(types::AccumulationUnits::Inches);
|
||||||
|
std::string defaultEchoTopsUnitsValue =
|
||||||
|
types::GetEchoTopsUnitsName(types::EchoTopsUnits::Kilofeet);
|
||||||
|
std::string defaultSpeedUnitsValue =
|
||||||
|
types::GetSpeedUnitsName(types::SpeedUnits::Knots);
|
||||||
|
|
||||||
|
boost::to_lower(defaultAccumulationUnitsValue);
|
||||||
|
boost::to_lower(defaultEchoTopsUnitsValue);
|
||||||
|
boost::to_lower(defaultSpeedUnitsValue);
|
||||||
|
|
||||||
|
accumulationUnits_.SetDefault(defaultAccumulationUnitsValue);
|
||||||
|
echoTopsUnits_.SetDefault(defaultEchoTopsUnitsValue);
|
||||||
|
speedUnits_.SetDefault(defaultSpeedUnitsValue);
|
||||||
|
|
||||||
|
accumulationUnits_.SetValidator(
|
||||||
|
SCWX_SETTINGS_ENUM_VALIDATOR(types::AccumulationUnits,
|
||||||
|
types::AccumulationUnitsIterator(),
|
||||||
|
types::GetAccumulationUnitsName));
|
||||||
|
echoTopsUnits_.SetValidator(
|
||||||
|
SCWX_SETTINGS_ENUM_VALIDATOR(types::EchoTopsUnits,
|
||||||
|
types::EchoTopsUnitsIterator(),
|
||||||
|
types::GetEchoTopsUnitsName));
|
||||||
|
speedUnits_.SetValidator(
|
||||||
|
SCWX_SETTINGS_ENUM_VALIDATOR(types::SpeedUnits,
|
||||||
|
types::SpeedUnitsIterator(),
|
||||||
|
types::GetSpeedUnitsName));
|
||||||
|
}
|
||||||
|
|
||||||
|
~Impl() {}
|
||||||
|
|
||||||
|
SettingsVariable<std::string> accumulationUnits_ {"accumulation_units"};
|
||||||
|
SettingsVariable<std::string> echoTopsUnits_ {"echo_tops_units"};
|
||||||
|
SettingsVariable<std::string> speedUnits_ {"speed_units"};
|
||||||
|
};
|
||||||
|
|
||||||
|
UnitSettings::UnitSettings() :
|
||||||
|
SettingsCategory("unit"), p(std::make_unique<Impl>())
|
||||||
|
{
|
||||||
|
RegisterVariables(
|
||||||
|
{&p->accumulationUnits_, &p->echoTopsUnits_, &p->speedUnits_});
|
||||||
|
SetDefaults();
|
||||||
|
}
|
||||||
|
UnitSettings::~UnitSettings() = default;
|
||||||
|
|
||||||
|
UnitSettings::UnitSettings(UnitSettings&&) noexcept = default;
|
||||||
|
UnitSettings& UnitSettings::operator=(UnitSettings&&) noexcept = default;
|
||||||
|
|
||||||
|
SettingsVariable<std::string>& UnitSettings::accumulation_units() const
|
||||||
|
{
|
||||||
|
return p->accumulationUnits_;
|
||||||
|
}
|
||||||
|
|
||||||
|
SettingsVariable<std::string>& UnitSettings::echo_tops_units() const
|
||||||
|
{
|
||||||
|
return p->echoTopsUnits_;
|
||||||
|
}
|
||||||
|
|
||||||
|
SettingsVariable<std::string>& UnitSettings::speed_units() const
|
||||||
|
{
|
||||||
|
return p->speedUnits_;
|
||||||
|
}
|
||||||
|
|
||||||
|
UnitSettings& UnitSettings::Instance()
|
||||||
|
{
|
||||||
|
static UnitSettings generalSettings_;
|
||||||
|
return generalSettings_;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool operator==(const UnitSettings& lhs, const UnitSettings& rhs)
|
||||||
|
{
|
||||||
|
return (lhs.p->accumulationUnits_ == rhs.p->accumulationUnits_ &&
|
||||||
|
lhs.p->echoTopsUnits_ == rhs.p->echoTopsUnits_ &&
|
||||||
|
lhs.p->speedUnits_ == rhs.p->speedUnits_);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace settings
|
||||||
|
} // namespace qt
|
||||||
|
} // namespace scwx
|
||||||
43
scwx-qt/source/scwx/qt/settings/unit_settings.hpp
Normal file
43
scwx-qt/source/scwx/qt/settings/unit_settings.hpp
Normal file
|
|
@ -0,0 +1,43 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <scwx/qt/settings/settings_category.hpp>
|
||||||
|
#include <scwx/qt/settings/settings_variable.hpp>
|
||||||
|
|
||||||
|
#include <memory>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
namespace scwx
|
||||||
|
{
|
||||||
|
namespace qt
|
||||||
|
{
|
||||||
|
namespace settings
|
||||||
|
{
|
||||||
|
|
||||||
|
class UnitSettings : public SettingsCategory
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
explicit UnitSettings();
|
||||||
|
~UnitSettings();
|
||||||
|
|
||||||
|
UnitSettings(const UnitSettings&) = delete;
|
||||||
|
UnitSettings& operator=(const UnitSettings&) = delete;
|
||||||
|
|
||||||
|
UnitSettings(UnitSettings&&) noexcept;
|
||||||
|
UnitSettings& operator=(UnitSettings&&) noexcept;
|
||||||
|
|
||||||
|
SettingsVariable<std::string>& accumulation_units() const;
|
||||||
|
SettingsVariable<std::string>& echo_tops_units() const;
|
||||||
|
SettingsVariable<std::string>& speed_units() const;
|
||||||
|
|
||||||
|
static UnitSettings& Instance();
|
||||||
|
|
||||||
|
friend bool operator==(const UnitSettings& lhs, const UnitSettings& rhs);
|
||||||
|
|
||||||
|
private:
|
||||||
|
class Impl;
|
||||||
|
std::unique_ptr<Impl> p;
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace settings
|
||||||
|
} // namespace qt
|
||||||
|
} // namespace scwx
|
||||||
|
|
@ -1 +1 @@
|
||||||
Subproject commit e350743fd8ca6858ce49a22bb8e40a0c6710ca86
|
Subproject commit 03b6188cdf1b85f65bae0de822194bc6fab9bd14
|
||||||
Loading…
Add table
Add a link
Reference in a new issue