aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/bin/cli/displaytoolbox.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/bin/cli/displaytoolbox.cpp')
-rw-r--r--src/bin/cli/displaytoolbox.cpp72
1 files changed, 22 insertions, 50 deletions
diff --git a/src/bin/cli/displaytoolbox.cpp b/src/bin/cli/displaytoolbox.cpp
index 1709d18..ec629a8 100644
--- a/src/bin/cli/displaytoolbox.cpp
+++ b/src/bin/cli/displaytoolbox.cpp
@@ -2,6 +2,7 @@
#include <QBuffer>
#include <QJsonArray>
#include <QJsonObject>
+#include <sstream>
#ifdef PAINTER_OP
#include <QFont>
@@ -34,50 +35,25 @@ QString DisplayToolBox::makeImage(QByteArray svgCode)
}
#endif
-QString DisplayToolBox::colorToIntCode(QString str)
+rang::fg DisplayToolBox::colorToIntCode(QString str)
{
- if(str.isEmpty() || str == QStringLiteral("black"))
- {
- return QStringLiteral("0;31");
- }
- else if(str == QStringLiteral("white"))
- {
- return QStringLiteral("97");
- }
- else if(str == QStringLiteral("blue"))
- {
- return QStringLiteral("34");
- }
- else if(str == QStringLiteral("red"))
- {
- return QStringLiteral("31");
- }
- else if(str == QStringLiteral("black"))
- {
- return QStringLiteral("30");
- }
- else if(str == QStringLiteral("green"))
- {
- return QStringLiteral("32");
- }
- else if(str == QStringLiteral("yellow"))
- {
- return QStringLiteral("33");
- }
- else if(str == QStringLiteral("cyan"))
- {
- return QStringLiteral("36");
- }
- else if(str == QStringLiteral("reset"))
- {
- return QStringLiteral("0");
- }
- return {};
+ QHash<QString, rang::fg> data{
+ {"black", rang::fg::black}, {"red", rang::fg::red}, {"green", rang::fg::green},
+ {"yellow", rang::fg::yellow}, {"blue", rang::fg::blue}, {"magenta", rang::fg::magenta},
+ {"cyan", rang::fg::cyan}, {"gray", rang::fg::gray}, {"reset", rang::fg::reset}};
+
+ if(data.contains(str))
+ return data.value(str);
+
+ return rang::fg::black;
}
QString DisplayToolBox::colorToTermCode(QString str)
{
- return QStringLiteral("\e[").append(DisplayToolBox::colorToIntCode(str)).append("m");
+ rang::setControlMode(rang::control::Force);
+ std::stringstream s;
+ s << DisplayToolBox::colorToIntCode(str);
+ return QString::fromStdString(s.str());
}
QString DisplayToolBox::diceToSvg(QJsonArray array, bool withColor, bool allSameColor, bool allSameFaceCount)
@@ -91,7 +67,7 @@ QString DisplayToolBox::diceToSvg(QJsonArray array, bool withColor, bool allSame
QStringList subResult;
auto obj= item.toObject();
auto values= obj["values"].toArray();
- for(auto valRef : values)
+ for(auto valRef : std::as_const(values))
{
subResult.append(diceResultToString(valRef.toObject(), Output::Svg, withColor));
}
@@ -108,7 +84,7 @@ QString DisplayToolBox::diceToSvg(QJsonArray array, bool withColor, bool allSame
auto obj= item.toObject();
auto values= obj["values"].toArray();
- for(auto valRef : values)
+ for(auto valRef : std::as_const(values))
{
subResult.append(diceResultToString(valRef.toObject(), Output::Svg, withColor));
}
@@ -139,7 +115,7 @@ QString DisplayToolBox::diceResultToString(QJsonObject val, Output type, bool ha
auto subvalues= val["subvalues"].toArray();
QStringList subStr;
- for(auto subval : subvalues)
+ for(auto subval : std::as_const(subvalues))
{
subStr << QString::number(subval.toDouble());
}
@@ -151,17 +127,13 @@ QString DisplayToolBox::diceResultToString(QJsonObject val, Output type, bool ha
{
if(type == Output::Terminal)
{
- total= QStringLiteral("%1%2%3")
- .arg(DisplayToolBox::colorToTermCode(color))
- .arg(total)
- .arg(DisplayToolBox::colorToTermCode(QStringLiteral("reset")));
+ total= QStringLiteral("%1%2%3").arg(DisplayToolBox::colorToTermCode(color), total,
+ DisplayToolBox::colorToTermCode(QStringLiteral("reset")));
}
else if(type == Output::Svg)
{
- total= QStringLiteral("%1%2%3")
- .arg(QStringLiteral("<tspan fill=\"%1\">").arg(color))
- .arg(total)
- .arg(QStringLiteral("</tspan>"));
+ total= QStringLiteral("%1%2%3").arg(QStringLiteral("<tspan fill=\"%1\">").arg(color), total,
+ QStringLiteral("</tspan>"));
}
}
return total;