diff --git a/autotest/data/themes/color/color.html b/autotest/data/themes/color/color.html
--- a/autotest/data/themes/color/color.html
+++ b/autotest/data/themes/color/color.html
@@ -3,6 +3,7 @@
RGBA: {{ pal.button|colorCssRgba }}
Color lighter: {{ pal.button|colorLighter:150|colorHexRgb }}
Color darker: {{ pal.button|colorDarker:150|colorHexRgb }}
+Color set alpha: {{ pal.button|colorSetAlpha:42|colorCssRgba }}
Active: {{ pal.activeBase|colorHexRgb }}
Inactive: {{ pal.inactiveBase|colorHexRgb }}
diff --git a/autotest/data/themes/color/color_expected.html b/autotest/data/themes/color/color_expected.html
--- a/autotest/data/themes/color/color_expected.html
+++ b/autotest/data/themes/color/color_expected.html
@@ -4,6 +4,7 @@
RGBA: rgba(255, 0, 0, 1)
Color lighter: #ff7f7f
Color darker: #aa0000
+Color set alpha: rgba(255, 0, 0, 0.164706)
Active: #ff0000
Inactive: #00ff00
diff --git a/src/plugin/color.h b/src/plugin/color.h
--- a/src/plugin/color.h
+++ b/src/plugin/color.h
@@ -82,6 +82,21 @@
QVariant doFilter(const QVariant &input, const QVariant &arg, bool autoescape) const override;
};
+/**
+ * @name colorSetAlpha filter
+ * @brief Provides colorSetAlpha filter for setting a fixed alpha value on the given color.
+ *
+ * The syntax is:
+ * @code
+ * {{ myColor|colorSetAlpha: }}
+ * @endcode
+ */
+class ColorSetAlphaFilter : public Grantlee::Filter
+{
+public:
+ QVariant doFilter(const QVariant &input, const QVariant &arg, bool autoescape) const override;
+};
+
/**
* @name colorMix tag
* @brief Provides {% colorMix %} tag for mixing two colors
diff --git a/src/plugin/color.cpp b/src/plugin/color.cpp
--- a/src/plugin/color.cpp
+++ b/src/plugin/color.cpp
@@ -101,6 +101,14 @@
return color.darker(factor);
}
+QVariant ColorSetAlphaFilter::doFilter(const QVariant& input, const QVariant& arg, bool autoescape) const
+{
+ Q_UNUSED(autoescape)
+
+ auto color = inputToColor(input);
+ color.setAlpha(arg.toInt());
+ return color;
+}
ColorMixTag::ColorMixTag(QObject *parent)
: Grantlee::AbstractNodeFactory(parent)
diff --git a/src/plugin/kdegrantleeplugin.cpp b/src/plugin/kdegrantleeplugin.cpp
--- a/src/plugin/kdegrantleeplugin.cpp
+++ b/src/plugin/kdegrantleeplugin.cpp
@@ -55,5 +55,6 @@
filters.insert(QStringLiteral("colorCssRgba"), new ColorCssRgbaFilter());
filters.insert(QStringLiteral("colorLighter"), new ColorLighterFilter());
filters.insert(QStringLiteral("colorDarker"), new ColorDarkerFilter());
+ filters.insert(QStringLiteral("colorSetAlpha"), new ColorSetAlphaFilter());
return filters;
}