示例#1
0
Color::Color(const String& name)
{
    if (name.startsWith("#"))
        m_valid = parseHexColor(name.substring(1), m_color);
    else
        setNamedColor(name);
}
示例#2
0
bool Color::setFromString(const String& name)
{
    if (name[0] != '#')
        return setNamedColor(name);
    if (name.is8Bit())
        return parseHexColor(name.characters8() + 1, name.length() - 1, m_color);
    return parseHexColor(name.characters16() + 1, name.length() - 1, m_color);
}
Color::Color(const String& name)
{
    if (name[0] == '#') {
        if (name.is8Bit())
            m_valid = parseHexColor(name.characters8() + 1, name.length() - 1, m_color);
        else
        m_valid = parseHexColor(name.characters() + 1, name.length() - 1, m_color);
    } else
        setNamedColor(name);
}
示例#4
0
ColorGradient ColorGradient::fromJson(const QJsonObject & jsonObject)
{
    if (jsonObject.isEmpty())
        return {};
    
    auto gradient = ColorGradient{};
    
    auto value = QJsonValue{};
    
    if (!jsonObject.contains("type") || !jsonObject.value("type").isString())
        gradient.setType(s_defaultType);
    else
        gradient.setType(type(jsonObject.value("type").toString()));

    if (!jsonObject.contains("steps") || !jsonObject.value("steps").isDouble())
        gradient.setSteps(s_defaultSteps);
    else
        gradient.setSteps(jsonObject.value("steps").toDouble());
    
    if (!jsonObject.contains("stops") || !jsonObject.value("stops").isArray())
        return {};
    
    auto stops = ColorGradientStops{};
    auto jsonStops = jsonObject.value("stops").toArray();
    for (const QJsonValue & jsonStop : jsonStops)
    {
        if (!jsonStop.isObject())
            return {};
        
        auto stop = jsonStop.toObject();
        
        if (!stop.contains("color") ||
            !stop.value("color").isString() ||
            !stop.contains("position") ||
            !stop.value("position").isDouble())
            return {};
        
        auto color = QColor{};
        color.setNamedColor(stop.value("color").toString());
        
        const auto position = stop.value("position").toDouble();
        auto midpoint = ColorGradientStop::s_defaultMidpoint;
        
        if (stop.contains("midpoint") &&
            stop.value("midpoint").isDouble())
            midpoint = stop.value("midpoint").toDouble();
        
        stops.append(ColorGradientStop{color, position, midpoint});
    }
    
    gradient.setStops(stops);
    return gradient;
}
示例#5
0
QColor::QColor( const char *name )
{
    setNamedColor( QString(name) );
}
示例#6
0
QColor::QColor( const QString& name )
{
    setNamedColor( name );
}