summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@qt.io>2019-05-27 16:21:28 +0200
committerFrederik Gladhorn <frederik.gladhorn@qt.io>2019-05-27 16:21:28 +0200
commitc4b5dbe1e015889b72defca4418717c5854a7acc (patch)
tree7ec2092c9b972e1c3b67fe2d647b173834b7cfaa
parentb30ce9020637ee970876c1c109a1c730694f3ce7 (diff)
parent08b40b9be75242505a773dc5b2a96a5ef481d6e6 (diff)
Merge 5.12 into 5.12.4
-rw-r--r--src/quick3d/quick3d/qt3dquick_global.cpp5
-rw-r--r--src/quick3d/quick3d/qt3dquickvaluetypes.cpp74
-rw-r--r--src/quick3d/quick3d/qt3dquickvaluetypes_p.h18
3 files changed, 95 insertions, 2 deletions
diff --git a/src/quick3d/quick3d/qt3dquick_global.cpp b/src/quick3d/quick3d/qt3dquick_global.cpp
index aa2a94860..8c88feef1 100644
--- a/src/quick3d/quick3d/qt3dquick_global.cpp
+++ b/src/quick3d/quick3d/qt3dquick_global.cpp
@@ -98,6 +98,11 @@ public:
return QVariant(QColor::fromHslF(h, s, l, a));
}
+ QVariant fromHsvF(double h, double s, double v, double a) override
+ {
+ return QVariant(QColor::fromHsvF(h, s, v, a));
+ }
+
QVariant lighter(const QVariant &var, qreal factor)
{
QColor color = var.value<QColor>();
diff --git a/src/quick3d/quick3d/qt3dquickvaluetypes.cpp b/src/quick3d/quick3d/qt3dquickvaluetypes.cpp
index 1cdc3844b..7cc1a4a0c 100644
--- a/src/quick3d/quick3d/qt3dquickvaluetypes.cpp
+++ b/src/quick3d/quick3d/qt3dquickvaluetypes.cpp
@@ -54,8 +54,7 @@ namespace Quick3DValueTypes {
QString Quick3DColorValueType::toString() const
{
- // to maintain behaviour with QtQuick 1.0, we just output normal toString() value.
- return QVariant(v).toString();
+ return v.name(v.alpha() != 255 ? QColor::HexArgb : QColor::HexRgb);
}
qreal Quick3DColorValueType::r() const
@@ -78,6 +77,36 @@ qreal Quick3DColorValueType::a() const
return v.alphaF();
}
+qreal Quick3DColorValueType::hsvHue() const
+{
+ return v.hsvHueF();
+}
+
+qreal Quick3DColorValueType::hsvSaturation() const
+{
+ return v.hsvSaturationF();
+}
+
+qreal Quick3DColorValueType::hsvValue() const
+{
+ return v.valueF();
+}
+
+qreal Quick3DColorValueType::hslHue() const
+{
+ return v.hslHueF();
+}
+
+qreal Quick3DColorValueType::hslSaturation() const
+{
+ return v.hslSaturationF();
+}
+
+qreal Quick3DColorValueType::hslLightness() const
+{
+ return v.lightnessF();
+}
+
void Quick3DColorValueType::setR(qreal r)
{
v.setRedF(r);
@@ -98,6 +127,47 @@ void Quick3DColorValueType::setA(qreal a)
v.setAlphaF(a);
}
+void Quick3DColorValueType::setHsvHue(qreal hsvHue)
+{
+ qreal hue, saturation, value, alpha;
+ v.getHsvF(&hue, &saturation, &value, &alpha);
+ v.setHsvF(hsvHue, saturation, value, alpha);
+}
+
+void Quick3DColorValueType::setHsvSaturation(qreal hsvSaturation)
+{
+ qreal hue, saturation, value, alpha;
+ v.getHsvF(&hue, &saturation, &value, &alpha);
+ v.setHsvF(hue, hsvSaturation, value, alpha);
+}
+
+void Quick3DColorValueType::setHsvValue(qreal hsvValue)
+{
+ qreal hue, saturation, value, alpha;
+ v.getHsvF(&hue, &saturation, &value, &alpha);
+ v.setHsvF(hue, saturation, hsvValue, alpha);
+}
+
+void Quick3DColorValueType::setHslHue(qreal hslHue)
+{
+ qreal hue, saturation, lightness, alpha;
+ v.getHslF(&hue, &saturation, &lightness, &alpha);
+ v.setHslF(hslHue, saturation, lightness, alpha);
+}
+
+void Quick3DColorValueType::setHslSaturation(qreal hslSaturation)
+{
+ qreal hue, saturation, lightness, alpha;
+ v.getHslF(&hue, &saturation, &lightness, &alpha);
+ v.setHslF(hue, hslSaturation, lightness, alpha);
+}
+
+void Quick3DColorValueType::setHslLightness(qreal hslLightness)
+{
+ qreal hue, saturation, lightness, alpha;
+ v.getHslF(&hue, &saturation, &lightness, &alpha);
+ v.setHslF(hue, saturation, hslLightness, alpha);
+}
QString Quick3DVector2DValueType::toString() const
{
diff --git a/src/quick3d/quick3d/qt3dquickvaluetypes_p.h b/src/quick3d/quick3d/qt3dquickvaluetypes_p.h
index 46500b935..d1b4a4d5d 100644
--- a/src/quick3d/quick3d/qt3dquickvaluetypes_p.h
+++ b/src/quick3d/quick3d/qt3dquickvaluetypes_p.h
@@ -79,6 +79,12 @@ class QT3DQUICKSHARED_PRIVATE_EXPORT Quick3DColorValueType
Q_PROPERTY(qreal g READ g WRITE setG FINAL)
Q_PROPERTY(qreal b READ b WRITE setB FINAL)
Q_PROPERTY(qreal a READ a WRITE setA FINAL)
+ Q_PROPERTY(qreal hsvHue READ hsvHue WRITE setHsvHue FINAL)
+ Q_PROPERTY(qreal hsvSaturation READ hsvSaturation WRITE setHsvSaturation FINAL)
+ Q_PROPERTY(qreal hsvValue READ hsvValue WRITE setHsvValue FINAL)
+ Q_PROPERTY(qreal hslHue READ hslHue WRITE setHslHue FINAL)
+ Q_PROPERTY(qreal hslSaturation READ hslSaturation WRITE setHslSaturation FINAL)
+ Q_PROPERTY(qreal hslLightness READ hslLightness WRITE setHslLightness FINAL)
Q_GADGET
public:
Q_INVOKABLE QString toString() const;
@@ -87,10 +93,22 @@ public:
qreal g() const;
qreal b() const;
qreal a() const;
+ qreal hsvHue() const;
+ qreal hsvSaturation() const;
+ qreal hsvValue() const;
+ qreal hslHue() const;
+ qreal hslSaturation() const;
+ qreal hslLightness() const;
void setR(qreal);
void setG(qreal);
void setB(qreal);
void setA(qreal);
+ void setHsvHue(qreal);
+ void setHsvSaturation(qreal);
+ void setHsvValue(qreal);
+ void setHslHue(qreal);
+ void setHslSaturation(qreal);
+ void setHslLightness(qreal);
};
class QT3DQUICKSHARED_PRIVATE_EXPORT Quick3DVector2DValueType