aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2017-09-26 13:54:02 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2017-09-27 12:37:21 +0000
commit90e57fdd6ffb24af5951ff25909c97bd28fdc552 (patch)
treebd27ec48dd1ee69c423ab8298424f4f9334c9a6f
parent73f1d564161f825e39904c78f3f05105d3bb9329 (diff)
Add QQuickColor::blend()
Change-Id: I60dd2159e7c5c9bbdbea415ac3fe2e40881dbaba Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
-rw-r--r--src/quickcontrols2/qquickcolor.cpp14
-rw-r--r--src/quickcontrols2/qquickcolor_p.h1
2 files changed, 15 insertions, 0 deletions
diff --git a/src/quickcontrols2/qquickcolor.cpp b/src/quickcontrols2/qquickcolor.cpp
index bede2a88..66ef21b7 100644
--- a/src/quickcontrols2/qquickcolor.cpp
+++ b/src/quickcontrols2/qquickcolor.cpp
@@ -48,4 +48,18 @@ QColor QQuickColor::transparent(const QColor &color, qreal opacity) const
return QColor(color.red(), color.green(), color.blue(), qBound(0.0, opacity, 1.0) * 255);
}
+QColor QQuickColor::blend(const QColor &a, const QColor &b, qreal factor) const
+{
+ if (factor <= 0.0)
+ return a;
+ if (factor >= 1.0)
+ return b;
+
+ QColor color;
+ color.setRedF(a.redF() * (1.0 - factor) + b.redF() * factor);
+ color.setGreenF(a.greenF() * (1.0 - factor) + b.greenF() * factor);
+ color.setBlueF(a.blueF() * (1.0 - factor) + b.blueF() * factor);
+ return color;
+}
+
QT_END_NAMESPACE
diff --git a/src/quickcontrols2/qquickcolor_p.h b/src/quickcontrols2/qquickcolor_p.h
index 85578359..657a9fa4 100644
--- a/src/quickcontrols2/qquickcolor_p.h
+++ b/src/quickcontrols2/qquickcolor_p.h
@@ -62,6 +62,7 @@ public:
explicit QQuickColor(QObject *parent = nullptr);
Q_INVOKABLE QColor transparent(const QColor &color, qreal opacity) const;
+ Q_INVOKABLE QColor blend(const QColor &a, const QColor &b, qreal factor) const;
};
QT_END_NAMESPACE