Warning, file /plasma-mobile/plasma-camera/src/main.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 // SPDX-FileCopyrightText: 2020 Jonah Brüchert <jbb@kaidan.im> 0002 // 0003 // SPDX-License-Identifier: GPL-3.0-or-later 0004 0005 #include <QQmlApplicationEngine> 0006 #include <QtQml> 0007 #include <QUrl> 0008 #include <QIcon> 0009 0010 #include <KAboutData> 0011 #include <KLocalizedString> 0012 #include <KLocalizedContext> 0013 0014 #include "plasmacamera.h" 0015 #include "camerasettings.h" 0016 0017 #ifdef Q_OS_ANDROID 0018 #include <QtAndroid> 0019 #include <QGuiApplication> 0020 #else 0021 #include <QApplication> 0022 #endif 0023 0024 constexpr auto URI = "org.kde.plasmacamera"; 0025 0026 Q_DECL_EXPORT int main(int argc, char *argv[]) 0027 { 0028 QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling); 0029 #ifdef Q_OS_ANDROID 0030 QGuiApplication app(argc, argv); 0031 #else 0032 QApplication app(argc, argv); 0033 #endif 0034 0035 KLocalizedString::setApplicationDomain("plasma-camera"); 0036 0037 QCoreApplication::setOrganizationName("KDE"); 0038 QCoreApplication::setOrganizationDomain("kde.org"); 0039 QCoreApplication::setApplicationName("plasma-camera"); 0040 QGuiApplication::setApplicationDisplayName("Plasma Camera"); 0041 QGuiApplication::setWindowIcon(QIcon::fromTheme(QStringLiteral("camera-photo"))); 0042 0043 KAboutData about(app.applicationName(), app.applicationDisplayName(), app.applicationVersion(), QString(), 0044 KAboutLicense::GPL, i18n("© Plasma Mobile Developers"), QString()); 0045 0046 about.addAuthor(i18n("Marco Martin"), QString(), QStringLiteral("mart@kde.org"), QStringLiteral("https://notmart.org")); 0047 about.addAuthor(i18n("Jonah Brüchert"), QString(), QStringLiteral("jbb@kaidan.im"), QStringLiteral("https://jbbgameich.github.io")); 0048 about.setProgramLogo(app.windowIcon()); 0049 0050 KAboutData::setApplicationData(about); 0051 0052 #ifdef Q_OS_ANDROID 0053 QtAndroid::requestPermissionsSync({"android.permission.CAMERA"}); 0054 #endif 0055 0056 QQmlApplicationEngine engine; 0057 0058 PlasmaCamera plasmaCamera; 0059 plasmaCamera.setAboutData(about); 0060 qmlRegisterSingletonInstance<PlasmaCamera>(URI, 1, 0, "PlasmaCamera", &plasmaCamera); 0061 qmlRegisterSingletonInstance<CameraSettings>(URI, 1, 0, "CameraSettings", CameraSettings::self()); 0062 0063 QObject::connect(QCoreApplication::instance(), &QCoreApplication::aboutToQuit, QCoreApplication::instance(), [] { 0064 CameraSettings::self()->save(); 0065 }); 0066 0067 engine.rootContext()->setContextObject(new KLocalizedContext(&engine)); 0068 0069 engine.load(QUrl(QStringLiteral("qrc:///main.qml"))); 0070 0071 if (engine.rootObjects().isEmpty()) { 0072 return -1; 0073 } 0074 0075 return app.exec(); 0076 }