#include #include #include #include #include "controller.h" #include "emojimodel.h" #include "imageprovider.h" #include "matriqueroom.h" #include "messageeventmodel.h" #include "room.h" #include "roomlistmodel.h" #include "userlistmodel.h" #include "csapi/joining.h" #include "csapi/leaving.h" using namespace QMatrixClient; int main(int argc, char *argv[]) { #if defined(Q_OS_WIN) QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); #endif QApplication app(argc, argv); app.setOrganizationName("ENCOM"); app.setOrganizationDomain("encom.eu.org"); app.setApplicationName("Matrique"); app.setQuitOnLastWindowClosed(false); qRegisterMetaType("MatriqueRoom*"); qRegisterMetaType("User*"); qRegisterMetaType("MessageEventType"); qRegisterMetaType("MatriqueRoom"); qmlRegisterType("Matrique", 0, 1, "Controller"); qmlRegisterType("Matrique", 0, 1, "RoomListModel"); qmlRegisterType("Matrique", 0, 1, "UserListModel"); qmlRegisterType("Matrique", 0, 1, "MessageEventModel"); qmlRegisterType("Matrique", 0, 1, "EmojiModel"); qmlRegisterUncreatableType("Matrique", 0, 1, "RoomMessageEvent", "ENUM"); qmlRegisterUncreatableType("Matrique", 0, 1, "RoomType", "ENUM"); qmlRegisterSingletonType(QUrl("qrc:/qml/MatriqueSettings.qml"), "Matrique.Settings", 0, 1, "MSettings"); QQmlApplicationEngine engine; ImageProvider *m_provider = new ImageProvider(); engine.rootContext()->setContextProperty("imageProvider", m_provider->getConnection()); engine.addImageProvider(QLatin1String("mxc"), m_provider); engine.load(QUrl(QStringLiteral("qrc:/qml/main.qml"))); if (engine.rootObjects().isEmpty()) return -1; return app.exec(); }