From 0fc28f038271f7ee4f2656af4d53ec3351701dd9 Mon Sep 17 00:00:00 2001 From: Renaud G Date: Thu, 14 Jun 2018 02:21:59 +0200 Subject: -Add alias management from file Better display for alias. --- cli/main.cpp | 27 ++++++++++++++++++++++++--- node/listaliasnode.cpp | 4 +++- 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 #include #include +#include #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; } -- cgit v1.2.3-70-g09d2