File indexing completed on 2024-05-12 05:39:26
0001 #include "maincontroler.h" 0002 0003 #include <QJSValue> 0004 #include <QQmlEngine> 0005 0006 MainControler::MainControler(QObject* parent) : QObject(parent) 0007 { 0008 0009 m_diceParser= new DiceParser(); 0010 qmlRegisterSingletonType("DiceParser", 1, 0, "Model", [](QQmlEngine* engine, QJSEngine* scriptEngine) -> QObject* { 0011 Q_UNUSED(engine) 0012 static CommandModel model; 0013 static bool initialized= false; 0014 if(!initialized) 0015 { 0016 model.insertCmd("L5R", "8D10e10k4"); 0017 initialized= true; 0018 } 0019 return &model; 0020 }); 0021 } 0022 void MainControler::initEngine(QQmlApplicationEngine* engine) 0023 { 0024 m_engine= engine; 0025 engine->rootContext()->setContextProperty("_model", m_model); 0026 connect(m_engine, SIGNAL(objectCreated(QObject*, QUrl)), this, SLOT(setConnections(QObject*, QUrl))); 0027 } 0028 void MainControler::rollDice(QString cmd) 0029 { 0030 if(m_diceParser->parseLine(cmd)) 0031 { 0032 m_diceParser->start(); 0033 for(int i= 0; i < m_diceParser->getStartNodeCount(); ++i) 0034 { 0035 // qDebug() << m_diceParser->getSumOfDiceResult(i); 0036 } 0037 } 0038 } 0039 void MainControler::setConnections(QObject* root, QUrl url) 0040 { 0041 // QObject* root = engine->rootContext()->contextObject(); 0042 connect(root, SIGNAL(roll(QString)), this, SLOT(rollDice(QString))); 0043 connect(root, SIGNAL(addRoll(QString, QString)), m_model, SLOT(insertCmd(QString, QString))); 0044 }