~mzanetti/machines-vs-machines/qmake-based

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
#include <QtGui/QGuiApplication>
#include "qtquick2applicationviewer.h"

#include "engine.h"
#include "levelpacks.h"
#include "levelpack.h"
#include "enemies.h"
#include "enemy.h"
#include "board.h"
#include "field.h"
#include "tower.h"
#include "towerfactory.h"
#include "imageprovider.h"
#include "towerproxymodel.h"

#include <QtQml>

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);

    QtQuick2ApplicationViewer viewer;

    qmlRegisterType<Engine>("Ubuntudefence", 0, 1, "Engine");
    qmlRegisterUncreatableType<LevelPacks>("Ubuntudefence", 0, 1, "LevelPacks", "Can't create this in QML. Get it from Engine.");
    qmlRegisterUncreatableType<LevelPack>("Ubuntudefence", 0, 1, "LevelPack", "Can't create this in QML. Get it from LevelPacks.");
    qmlRegisterUncreatableType<Board>("Ubuntudefence", 0, 1, "Board", "There's only one board per engine.");
    qmlRegisterUncreatableType<Enemies>("Ubuntudefence", 0, 1, "Enemies", "Cant create this in QML. Get it from Board.");
    qmlRegisterUncreatableType<Enemy>("Ubuntudefence", 0, 1, "Enemy", "Cant create this in QML. Get it from Enemies model.");
    qmlRegisterUncreatableType<Field>("Ubuntudefence", 0, 1, "Field", "Cant create this in QML. Get it from Board.");
    qmlRegisterUncreatableType<Tower>("Ubuntudefence", 0, 1, "Tower", "Cant create this in QML. Get it from Board.");
    qmlRegisterUncreatableType<TowerFactory>("Ubuntudefence", 0, 1, "TowerFactory", "Cant create this in QML. Get it from Engine.");
    qmlRegisterType<TowerProxyModel>("Ubuntudefence", 0, 1, "TowerProxyModel");

    ImageProvider *imageProvider = new ImageProvider("boards");
    viewer.engine()->addImageProvider("boards", imageProvider);
    imageProvider = new ImageProvider("packdata");
    viewer.engine()->addImageProvider("packdata", imageProvider);
    imageProvider = new ImageProvider("enemies");
    viewer.engine()->addImageProvider("enemies", imageProvider);
    imageProvider = new ImageProvider("towers");
    viewer.engine()->addImageProvider("towers", imageProvider);

    viewer.setMainQmlFile(QStringLiteral("qml/main.qml"));
    viewer.showExpanded();


    return app.exec();
}