aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/bin/mobile/maincontroller.cpp
blob: 6f301ffeee3d8860229588f8053c5aa95e21fd38 (plain) (blame)
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)));
}