/
plugscript.cpp
81 lines (57 loc) · 1.78 KB
/
plugscript.cpp
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include "plugscript.h"
#include <QByteArray>
#include <QtWidgets>
Q_DECLARE_METATYPE(InterfaceTetris)
PlugScript::PlugScript(QObject* parent) : QObject(parent)
{
iLines=0;
}
void PlugScript::slNewPiece(InterfaceTetris tpD)
{
ifTetris=&tpD;
// QByteArray tpCur( tpD.aBoard);
iWaiting=0;
QScriptEngine scrptEngine;
QFile file("d:\\ETK\\Projects\\qt\\tetrisqt\\tetris.js");
if (!file.open(QFile::ReadOnly)) {
QMessageBox::critical(0,
QString("File open error"),
"Can not open the script file:"+file.fileName() ,
QMessageBox::Yes
);
}
QLabel lb;
QScriptValue objTetris=scrptEngine.newQObject(&lb);
scrptEngine.globalObject().setProperty("objTetris", objTetris);
//objTetris.setProperty("mBoard",tpCur);
//scrptEngine.globalObject().setProperty("iTetris",interfaceTetris);
//QScriptValue val=scrptEngine.evaluate("");
QString str=QLatin1String(file.readAll());
scrptEngine.globalObject().setProperty("foo", 123);
QScriptValue result =
scrptEngine.evaluate(str);
// Q_ASSERT(result);
if (result.isError()) {
QMessageBox::critical(0,
"Evaluating error",
result.toString(),
QMessageBox::Yes
);
}
iLines++;
emit sgDbg(result.toInteger());
}
void PlugScript::slChangePos(int tpD)
{
iWaiting++;
//if (iWaiting%10==0)
if (tpD==0)
emit sgCmd(Qt::Key_Down);
// emit sgDbg(iLines);
}
int PlugScript::Initialize()
{
QScriptValue value = mScriptEngine.evaluate("2 * 2");
qDebug() << value.toInt32();
return 0;
}