//----------------------------------------------------------------------------- qtGradient::qtGradient(QList<Stop> const& stops, InterpolationMode im, QGradient::Spread spread, NormalizeMode nm) : d_ptr{new qtGradientData} { QTE_D_MUTABLE(); d->interpolateMode = im; d->spread = spread; setStops(stops, nm); }
ColorGradient::ColorGradient( const ColorGradientStops & stops, ColorGradientType type, uint steps) : m_type{type} , m_steps{steps} { setStops(stops); }
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; }
void TupGradientSelector::init() { setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed); setMaximumWidth(100); setMinimumWidth(100); setStops(m_gradient.stops()); createGradient(); emit gradientChanged(m_gradient.stops());; }