aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorRenaud G <renaud@rolisteam.org>2018-06-14 02:21:59 +0200
committerRenaud G <renaud@rolisteam.org>2018-06-14 02:21:59 +0200
commit0fc28f038271f7ee4f2656af4d53ec3351701dd9 (patch)
tree37c09a4570b980702db2c26b97d7c9aef08810da
parent5add2243191a3c347f9dde6a480d478c83be64fe (diff)
downloadOneRoll-0fc28f038271f7ee4f2656af4d53ec3351701dd9.tar.gz
OneRoll-0fc28f038271f7ee4f2656af4d53ec3351701dd9.zip
-Add alias management from file
Better display for alias.
-rw-r--r--cli/main.cpp27
-rw-r--r--node/listaliasnode.cpp4
2 files changed, 27 insertions, 4 deletions
diff --git a/cli/main.cpp b/cli/main.cpp
index 51fc54a..acc59ba 100644
--- a/cli/main.cpp
+++ b/cli/main.cpp
@@ -28,6 +28,7 @@
#include <QJsonObject>
#include <QJsonDocument>
#include <QGuiApplication>
+#include <QFile>
#include "displaytoolbox.h"
#include "diceparser.h"
@@ -200,11 +201,21 @@ void displayCommandResult(QString scalarText, QString resultStr,QJsonArray array
out << str << "\n";
}
-int startDiceParsing(QStringList& cmds,QString& treeFile,bool withColor, EXPORTFORMAT format)
+int startDiceParsing(QStringList& cmds,QString& treeFile,bool withColor, EXPORTFORMAT format, QJsonArray array)
{
DiceParser parser;
parser.insertAlias(new DiceAlias("L5R5R",QStringLiteral("L[-,⨀,⨀⬢,❂⬢,❁,❁⬢]")),0);
parser.insertAlias(new DiceAlias("L5R5S",QStringLiteral("L[-,-,⨀,⨀,⨀❁,⨀⬢,⨀⬢,❂,❂⬢,❁,❁,❁]")),1);
+ int i = 0;
+ for(auto alias : array)
+ {
+ auto objAlias = alias.toObject();
+ auto dice = new DiceAlias(objAlias["pattern"].toString(),objAlias["cmd"].toString(),!objAlias["regexp"].toBool());
+ dice->setComment(objAlias["comment"].toString());
+ parser.insertAlias(dice,i++);
+ }
+
+
int rt=0;
for(QString cmd : cmds)
{
@@ -399,13 +410,23 @@ int main(int argc, char *argv[])
}
QStringList cmdList = optionParser.positionalArguments();
// cmdList << "8d10;\$1c[>6];\$1c[=1];\$2-\$3i:[>0]{\"%3 Success[%2]\"}{i:[<0]{\"Critical fail %3 [%2]\"}{\"Fail %3 [%2]\"}}";
-
QString aliasstr;
+ QJsonArray aliases;
if(optionParser.isSet(alias))
{
aliasstr = optionParser.value(alias);
+
+ QFile file(aliasstr);
+
+ if(file.open(QIODevice::ReadOnly))
+ {
+ QJsonDocument doc = QJsonDocument::fromJson(file.readAll());
+ aliases = doc.array();
+ }
+
}
- returnValue = startDiceParsing(cmdList,dotFileStr,colorb,format);
+
+ returnValue = startDiceParsing(cmdList,dotFileStr,colorb,format,aliases);
if(optionParser.isSet(help))
{
out << optionParser.helpText();
diff --git a/node/listaliasnode.cpp b/node/listaliasnode.cpp
index eac2da5..a3d2d09 100644
--- a/node/listaliasnode.cpp
+++ b/node/listaliasnode.cpp
@@ -48,7 +48,9 @@ QString ListAliasNode::buildList() const
QString result(QObject::tr("List of Alias:\n"));
for(DiceAlias* key: *m_aliasList)
{
- result+=QString("%1 : %2\n").arg(key->getCommand()).arg(key->getValue());
+ result+=QString("%1 : %2 # %3\n").arg(key->getCommand())
+ .arg(key->getValue())
+ .arg(key->getComment());
}
return result;
}