Ejemplo n.º 1
0
//-----------------------------------------------------------------------------
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);
}
Ejemplo n.º 2
0
ColorGradient::ColorGradient(
    const ColorGradientStops & stops, 
    ColorGradientType type,
    uint steps)
:   m_type{type}
,   m_steps{steps}
{
    setStops(stops);
}
Ejemplo n.º 3
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;
}
Ejemplo n.º 4
0
void TupGradientSelector::init()
{
    setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
    
    setMaximumWidth(100);
    setMinimumWidth(100);
    
    setStops(m_gradient.stops());
    
    createGradient();
    emit gradientChanged(m_gradient.stops());;
}