Config: Allow passing a DefaultState object to Set functions to delete keys.

This commit is contained in:
Jordan Woyak
2025-02-23 19:05:56 -06:00
parent 137d1375d4
commit ba1bf6959e
2 changed files with 26 additions and 13 deletions

View File

@ -100,32 +100,32 @@ LayerType GetActiveLayerForConfig(const Info<T>& info)
return GetActiveLayerForConfig(info.GetLocation());
}
template <typename T>
void Set(LayerType layer, const Info<T>& info, const std::common_type_t<T>& value)
template <typename InfoT, typename ValueT>
void Set(LayerType layer, const InfoT& info, const ValueT& value)
{
if (GetLayer(layer)->Set(info, value))
OnConfigChanged();
}
template <typename T>
void SetBase(const Info<T>& info, const std::common_type_t<T>& value)
template <typename InfoT, typename ValueT>
void SetBase(const Info<InfoT>& info, const ValueT& value)
{
Set<T>(LayerType::Base, info, value);
Set(LayerType::Base, info, value);
}
template <typename T>
void SetCurrent(const Info<T>& info, const std::common_type_t<T>& value)
template <typename InfoT, typename ValueT>
void SetCurrent(const Info<InfoT>& info, const ValueT& value)
{
Set<T>(LayerType::CurrentRun, info, value);
Set(LayerType::CurrentRun, info, value);
}
template <typename T>
void SetBaseOrCurrent(const Info<T>& info, const std::common_type_t<T>& value)
template <typename InfoT, typename ValueT>
void SetBaseOrCurrent(const Info<InfoT>& info, const ValueT& value)
{
if (GetActiveLayerForConfig(info) == LayerType::Base)
Set<T>(LayerType::Base, info, value);
Set(LayerType::Base, info, value);
else
Set<T>(LayerType::CurrentRun, info, value);
Set(LayerType::CurrentRun, info, value);
}
template <typename T>