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 }