1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
#include "maincontroler.h"
#include <QJSValue>
#include <QQmlEngine>
MainControler::MainControler(QObject* parent) : QObject(parent)
{
m_diceParser= new DiceParser();
qmlRegisterSingletonType("DiceParser", 1, 0, "Model", [](QQmlEngine* engine, QJSEngine* scriptEngine) -> QObject* {
Q_UNUSED(engine)
static CommandModel model;
static bool initialized= false;
if(!initialized)
{
model.insertCmd("L5R", "8D10e10k4");
initialized= true;
}
return &model;
});
}
void MainControler::initEngine(QQmlApplicationEngine* engine)
{
m_engine= engine;
engine->rootContext()->setContextProperty("_model", m_model);
connect(m_engine, SIGNAL(objectCreated(QObject*, QUrl)), this, SLOT(setConnections(QObject*, QUrl)));
}
void MainControler::rollDice(QString cmd)
{
if(m_diceParser->parseLine(cmd))
{
m_diceParser->start();
for(int i= 0; i < m_diceParser->getStartNodeCount(); ++i)
{
// qDebug() << m_diceParser->getSumOfDiceResult(i);
}
}
}
void MainControler::setConnections(QObject* root, QUrl url)
{
// QObject* root = engine->rootContext()->contextObject();
connect(root, SIGNAL(roll(QString)), this, SLOT(rollDice(QString)));
connect(root, SIGNAL(addRoll(QString, QString)), m_model, SLOT(insertCmd(QString, QString)));
}
|