mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-30 17:50:04 +00:00
Refactor color validator from settings to utility source
This commit is contained in:
parent
8fc392681a
commit
c8dc8ed630
3 changed files with 18 additions and 11 deletions
|
|
@ -5,7 +5,6 @@
|
||||||
#include <boost/algorithm/string/case_conv.hpp>
|
#include <boost/algorithm/string/case_conv.hpp>
|
||||||
#include <boost/gil.hpp>
|
#include <boost/gil.hpp>
|
||||||
#include <fmt/format.h>
|
#include <fmt/format.h>
|
||||||
#include <re2/re2.h>
|
|
||||||
|
|
||||||
namespace scwx
|
namespace scwx
|
||||||
{
|
{
|
||||||
|
|
@ -116,8 +115,6 @@ public:
|
||||||
void InitializeLegacyAlerts();
|
void InitializeLegacyAlerts();
|
||||||
void InitializeAlerts();
|
void InitializeAlerts();
|
||||||
|
|
||||||
static bool ValidateColor(const std::string& value);
|
|
||||||
|
|
||||||
PaletteSettings* self_;
|
PaletteSettings* self_;
|
||||||
|
|
||||||
std::unordered_map<std::string, SettingsVariable<std::string>> palette_ {};
|
std::unordered_map<std::string, SettingsVariable<std::string>> palette_ {};
|
||||||
|
|
@ -132,12 +129,6 @@ public:
|
||||||
std::vector<SettingsCategory> alertSettings_ {};
|
std::vector<SettingsCategory> alertSettings_ {};
|
||||||
};
|
};
|
||||||
|
|
||||||
bool PaletteSettings::Impl::ValidateColor(const std::string& value)
|
|
||||||
{
|
|
||||||
static constexpr LazyRE2 re = {"#[0-9A-Fa-f]{8}"};
|
|
||||||
return RE2::FullMatch(value, *re);
|
|
||||||
}
|
|
||||||
|
|
||||||
PaletteSettings::PaletteSettings() :
|
PaletteSettings::PaletteSettings() :
|
||||||
SettingsCategory("palette"), p(std::make_unique<Impl>(this))
|
SettingsCategory("palette"), p(std::make_unique<Impl>(this))
|
||||||
{
|
{
|
||||||
|
|
@ -196,8 +187,8 @@ void PaletteSettings::Impl::InitializeLegacyAlerts()
|
||||||
inactiveVariable.SetDefault(
|
inactiveVariable.SetDefault(
|
||||||
util::color::ToArgbString(alert.second.second));
|
util::color::ToArgbString(alert.second.second));
|
||||||
|
|
||||||
activeVariable.SetValidator(&ValidateColor);
|
activeVariable.SetValidator(&util::color::ValidateArgbString);
|
||||||
inactiveVariable.SetValidator(&ValidateColor);
|
inactiveVariable.SetValidator(&util::color::ValidateArgbString);
|
||||||
|
|
||||||
variables_.push_back(&activeVariable);
|
variables_.push_back(&activeVariable);
|
||||||
variables_.push_back(&inactiveVariable);
|
variables_.push_back(&inactiveVariable);
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
#include <scwx/qt/util/color.hpp>
|
#include <scwx/qt/util/color.hpp>
|
||||||
|
|
||||||
#include <fmt/format.h>
|
#include <fmt/format.h>
|
||||||
|
#include <re2/re2.h>
|
||||||
#include <QColor>
|
#include <QColor>
|
||||||
|
|
||||||
namespace scwx
|
namespace scwx
|
||||||
|
|
@ -38,6 +39,12 @@ boost::gil::rgba32f_pixel_t ToRgba32fPixelT(const std::string& argbString)
|
||||||
rgba8Pixel[3] / 255.0f};
|
rgba8Pixel[3] / 255.0f};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ValidateArgbString(const std::string& argbString)
|
||||||
|
{
|
||||||
|
static constexpr LazyRE2 re = {"#[0-9A-Fa-f]{8}"};
|
||||||
|
return RE2::FullMatch(argbString, *re);
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace color
|
} // namespace color
|
||||||
} // namespace util
|
} // namespace util
|
||||||
} // namespace qt
|
} // namespace qt
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,15 @@ boost::gil::rgba8_pixel_t ToRgba8PixelT(const std::string& argbString);
|
||||||
*/
|
*/
|
||||||
boost::gil::rgba32f_pixel_t ToRgba32fPixelT(const std::string& argbString);
|
boost::gil::rgba32f_pixel_t ToRgba32fPixelT(const std::string& argbString);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validates an ARGB string used by Qt libraries.
|
||||||
|
*
|
||||||
|
* @param argbString
|
||||||
|
*
|
||||||
|
* @return Validity of ARGB string
|
||||||
|
*/
|
||||||
|
bool ValidateArgbString(const std::string& argbString);
|
||||||
|
|
||||||
} // namespace color
|
} // namespace color
|
||||||
} // namespace util
|
} // namespace util
|
||||||
} // namespace qt
|
} // namespace qt
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue