Color::Color(const String& name) { if (name.startsWith("#")) m_valid = parseHexColor(name.substring(1), m_color); else setNamedColor(name); }
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); }
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; }
QColor::QColor( const char *name ) { setNamedColor( QString(name) ); }
QColor::QColor( const QString& name ) { setNamedColor( name ); }