File indexing completed on 2024-05-05 04:45:52

0001 // Copyright 2018-2020 Camilo Higuita <milo.h@aol.com>
0002 // Copyright 2018-2020 Nitrux Latinoamericana S.C.
0003 //
0004 // SPDX-License-Identifier: GPL-3.0-or-later
0005 
0006 #include <QDate>
0007 #include <QQmlApplicationEngine>
0008 #include <QQmlContext>
0009 #include <QIcon>
0010 #include <QCommandLineParser>
0011 
0012 #ifdef Q_OS_ANDROID
0013 #include <QGuiApplication>
0014 #include <MauiKit3/Core/mauiandroid.h>
0015 #else
0016 #include <QApplication>
0017 #endif
0018 
0019 #ifdef Q_OS_MACOS
0020 #include <MauiKit3/Core/mauimacos.h>
0021 #endif
0022 
0023 #include <KI18n/KLocalizedString>
0024 
0025 #include <MauiKit3/Core/mauiapp.h>
0026 
0027 #include "../booth_version.h"
0028 
0029 #define BOOTH_URI "org.maui.booth"
0030 
0031 int Q_DECL_EXPORT main(int argc, char *argv[])
0032 {
0033         QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
0034         QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps, true);
0035 
0036 #ifdef Q_OS_ANDROID
0037         QGuiApplication app(argc, argv);
0038         if (!MAUIAndroid::checkRunTimePermissions({"android.permission.WRITE_EXTERNAL_STORAGE"}))
0039                 return -1;
0040 #else
0041         QApplication app(argc, argv);
0042 #endif
0043 
0044         app.setOrganizationName(QStringLiteral("Maui"));
0045         app.setWindowIcon(QIcon(":/booth.svg"));
0046 
0047         KLocalizedString::setApplicationDomain("booth");
0048         KAboutData about(QStringLiteral("booth"), i18n("Booth"), BOOTH_VERSION_STRING, i18n("Camera app to take pictures and record videos."), KAboutLicense::LGPL_V3, i18n("© 2020 - %1 Maui Development Team",QString::number(QDate::currentDate().year())), QString(GIT_BRANCH) + "/" + QString(GIT_COMMIT_HASH));
0049 
0050         about.addAuthor(i18n("Camilo Higuita"), i18n("Developer"), QStringLiteral("milo.h@aol.com"));
0051         about.setHomepage("https://mauikit.org");
0052         about.setProductName("maui/booth");
0053         about.setBugAddress("https://invent.kde.org/maui/booth/-/issues");
0054         about.setOrganizationDomain(BOOTH_URI);
0055         about.setProgramLogo(app.windowIcon());
0056         about.addComponent("Prison");
0057 
0058         KAboutData::setApplicationData(about);
0059         MauiApp::instance()->setIconName("qrc:/booth.svg");
0060 
0061         QCommandLineParser parser;
0062         parser.setApplicationDescription(about.shortDescription());
0063         parser.process(app);
0064         about.processCommandLine(&parser);
0065 
0066         QQmlApplicationEngine engine;
0067         const QUrl url(QStringLiteral("qrc:/main.qml"));
0068         QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
0069                                          &app, [url](QObject *obj, const QUrl &objUrl)
0070         {
0071                 if (!obj && url == objUrl)
0072                         QCoreApplication::exit(-1);
0073 
0074         }, Qt::QueuedConnection);
0075 
0076         engine.rootContext()->setContextObject(new KLocalizedContext(&engine));
0077 
0078     engine.load(url);
0079 
0080 #ifdef Q_OS_MACOS
0081         //    MAUIMacOS::removeTitlebarFromWindow();
0082         //    MauiApp::instance()->setEnableCSD(true); //for now index can not handle cloud accounts
0083 
0084 #endif
0085         return app.exec();
0086 }