Add new function to recolor svg files supporting 3 placeholders

This commit is contained in:
luisangelsm
2026-02-01 14:26:22 +01:00
parent 6b3fcc63d3
commit 36899b4e06
2 changed files with 34 additions and 12 deletions

View File

@ -2,13 +2,6 @@
#include "yacreader_global.h" #include "yacreader_global.h"
QString recolorSvgXML(QString &svg,
const QString &placeHolder,
const QColor &color)
{
return svg.replace(placeHolder, color.name(QColor::HexRgb), Qt::CaseInsensitive);
}
QString readSvg(const QString &resourcePath) QString readSvg(const QString &resourcePath)
{ {
QFile in(resourcePath); QFile in(resourcePath);
@ -48,6 +41,25 @@ QString writeSvg(const QString &svg, const QString &resourcePath, const QString
return outPath; return outPath;
} }
QString recolorSvgXML(QString &svg,
const QString &placeHolder,
const QColor &color)
{
return svg.replace(placeHolder, color.name(QColor::HexRgb), Qt::CaseInsensitive);
}
QString recoloredSvgToThemeFile(const QString &resourcePath,
const QColor &color, // #f0f (magenta)
const QString &themeName,
const QString &suffix)
{
auto svg = readSvg(resourcePath);
recolorSvgXML(svg, "#f0f", color);
return writeSvg(svg, resourcePath, themeName, suffix);
}
QString recoloredSvgToThemeFile(const QString &resourcePath, QString recoloredSvgToThemeFile(const QString &resourcePath,
const QColor &color1, // #f0f (magenta) const QColor &color1, // #f0f (magenta)
const QColor &color2, // #0ff (cyan) const QColor &color2, // #0ff (cyan)
@ -63,13 +75,17 @@ QString recoloredSvgToThemeFile(const QString &resourcePath,
} }
QString recoloredSvgToThemeFile(const QString &resourcePath, QString recoloredSvgToThemeFile(const QString &resourcePath,
const QColor &color, // #f0f (magenta) const QColor &color1, // #f0f (magenta)
const QColor &color2, // #0ff (cyan)
const QColor &color3, // #ff0 (yellow)
const QString &themeName, const QString &themeName,
const QString &suffix) const QString &suffix)
{ {
auto svg = readSvg(resourcePath); auto svg = readSvg(resourcePath);
recolorSvgXML(svg, "#f0f", color); recolorSvgXML(svg, "#f0f", color1);
recolorSvgXML(svg, "#0ff", color2);
recolorSvgXML(svg, "#ff0", color3);
return writeSvg(svg, resourcePath, themeName, suffix); return writeSvg(svg, resourcePath, themeName, suffix);
} }

View File

@ -3,18 +3,24 @@
#include <QtGui> #include <QtGui>
QString recolorSvgXML(QString &svg, const QString &placeHolder, const QColor &color);
QString readSvg(const QString &resourcePath); QString readSvg(const QString &resourcePath);
QString writeSvg(const QString &svg, const QString &resourcePath, const QString &themeName); QString writeSvg(const QString &svg, const QString &resourcePath, const QString &themeName);
QString recolorSvgXML(QString &svg, const QString &placeHolder, const QColor &color);
QString recoloredSvgToThemeFile(const QString &resourcePath,
const QColor &color, // #f0f (magenta)
const QString &themeName,
const QString &suffix = QString());
QString recoloredSvgToThemeFile(const QString &resourcePath, QString recoloredSvgToThemeFile(const QString &resourcePath,
const QColor &color1, // #f0f (magenta) const QColor &color1, // #f0f (magenta)
const QColor &color2, // #0ff (cyan) const QColor &color2, // #0ff (cyan)
const QString &themeName, const QString &themeName,
const QString &suffix = QString()); const QString &suffix = QString());
QString recoloredSvgToThemeFile(const QString &resourcePath, QString recoloredSvgToThemeFile(const QString &resourcePath,
const QColor &color, // #f0f (magenta) const QColor &color1, // #f0f (magenta)
const QColor &color2, // #0ff (cyan)
const QColor &color3, // #ff0 (yellow)
const QString &themeName, const QString &themeName,
const QString &suffix = QString()); const QString &suffix = QString());
QString createMenuArrowSvg(const QColor &color, const QString &themeName);
#endif // ICON_UTILS_H #endif // ICON_UTILS_H