10#include "ColorGradientSource.h"
16ColorGradientSource::ColorGradientSource(
QObject *parent)
21int ColorGradientSource::itemCount()
const
26QVariant ColorGradientSource::item(
int index)
const
28 if (index < 0 || index >= m_colors.size()) {
32 return m_colors.at(index);
35QVariant ColorGradientSource::minimum()
const
40QVariant ColorGradientSource::maximum()
const
45QColor ColorGradientSource::baseColor()
const
50void ColorGradientSource::setBaseColor(
const QColor &newBaseColor)
52 if (newBaseColor == m_baseColor) {
56 m_baseColor = newBaseColor;
61void ColorGradientSource::setItemCount(
int newItemCount)
63 if (newItemCount == m_itemCount) {
67 m_itemCount = newItemCount;
72QVariantList ColorGradientSource::colors()
const
74 QVariantList colorsVariant;
75 colorsVariant.reserve(m_colors.count());
76 for (
const QColor &color : std::as_const(m_colors)) {
77 colorsVariant.append(color);
82void ColorGradientSource::regenerateColors()
84 if (!m_baseColor.isValid() || m_itemCount <= 0) {
90 for (
int i = 0; i < m_itemCount; ++i) {
91 auto newHue = m_baseColor.hsvHueF() + i * (1.0 / m_itemCount);
92 newHue = newHue - int(newHue);
93 m_colors.append(
QColor::fromHsvF(newHue, m_baseColor.saturationF(), m_baseColor.valueF(), m_baseColor.alphaF()));
99#include "moc_ColorGradientSource.cpp"
Abstract base class for data sources.
QColor fromHsvF(float h, float s, float v, float a)