mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2023-10-10 13:36:59 +02:00
ad293b2fb6
* hyperion-remote - Support IPv6 * LEDDevices - Remove IPv6 limitations * Separate JsonEditorHostValidation * Standalone grabbers & JSON/Flatbuffer forwarder: IPv6 support * remote: Fix setting multiple colors via Hex, add standard logging * IPv6 Updates -Add db migration activities * Addressing non-Windows compile issues * Code cleanup, address clang feedback * Update address (hostname, IPv4/IPv6) help text * Apply migration steps to "old" configurations imported * Show user the UI-Url, if hyperion is already running, address clang findings * Windows Cmake OpenSLL output * Minor Text update
45 lines
1.1 KiB
C++
45 lines
1.1 KiB
C++
#include <QRegularExpression>
|
|
#include "commandline/ColorsOption.h"
|
|
#include "commandline/Parser.h"
|
|
|
|
using namespace commandline;
|
|
|
|
bool ColorsOption::validate(Parser & parser, QString & value)
|
|
{
|
|
// Clear any old results
|
|
_colors.clear();
|
|
|
|
// Check if we can create the color by name
|
|
QColor color(value);
|
|
if (color.isValid())
|
|
{
|
|
_colors.push_back(color);
|
|
return true;
|
|
}
|
|
|
|
// check if we can create the colors by hex RRGGBB getColors
|
|
QRegularExpression re("(([A-F0-9]){6})(?=(?:..)*)");
|
|
QRegularExpressionMatchIterator i = re.globalMatch(value);
|
|
|
|
while (i.hasNext()) {
|
|
QRegularExpressionMatch match = i.next();
|
|
QString captured = match.captured(1);
|
|
_colors.push_back(QColor(QString("#%1").arg(captured)));
|
|
}
|
|
|
|
if (!_colors.isEmpty() && (_colors.size() * 6) == value.length())
|
|
{
|
|
return true;
|
|
}
|
|
|
|
if(!parser.isSet(*this))
|
|
{
|
|
// Return true if no value is available
|
|
return true;
|
|
}
|
|
|
|
_error = QString("Invalid color. A color is specified by a six lettered RRGGBB hex getColors or one of the following names:\n\t- %1").arg(QColor::colorNames().join("\n\t- "));
|
|
|
|
return false;
|
|
}
|