Warning, file /maui/communicator/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 #include <QCommandLineParser>
0002 #include <QIcon>
0003 #include <QQmlApplicationEngine>
0004 #include <QQmlContext>
0005 
0006 #ifdef Q_OS_ANDROID
0007 #include <QGuiApplication>
0008 #include <MauiKit3/Core/mauiandroid.h>
0009 #else
0010 #include <QApplication>
0011 #endif
0012 
0013 #include <MauiKit3/Core/mauiapp.h>
0014 #include <KI18n/KLocalizedString>
0015 
0016 #include "contactimage.h"
0017 #include "contacts/contactsmodel.h"
0018 #include "communicator.h"
0019 
0020 #include "../communicator_version.h"
0021 
0022 #define COMMUNICATOR_URI "org.maui.communicator"
0023 
0024 Q_DECL_EXPORT int main(int argc, char *argv[])
0025 {
0026     QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
0027     QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps, true);
0028 
0029 #if defined Q_OS_ANDROID
0030     QGuiApplication app(argc, argv);
0031 
0032     if (!MAUIAndroid::checkRunTimePermissions({"android.permission.WRITE_EXTERNAL_STORAGE",
0033                                                "android.permission.READ_CALL_LOG",
0034                                                "android.permission.SEND_SMS",
0035                                                "android.permission.CALL_PHONE",
0036                                                "android.permission.MANAGE_ACCOUNTS",
0037                                                "android.permission.GET_ACCOUNTS",
0038                                                "android.permission.READ_CONTACTS"}))
0039         return -1;
0040 #else
0041     QApplication app(argc, argv);
0042 #endif
0043 
0044     qDebug() << "APP LOADING SPEED TESTS" << 1;
0045 
0046     app.setOrganizationName(QStringLiteral("Maui"));
0047     app.setWindowIcon(QIcon("://communicator.svg"));
0048 
0049     KLocalizedString::setApplicationDomain("communicator");
0050     KAboutData about(QStringLiteral("communicator"), 
0051                      QStringLiteral("Communicator"), 
0052                      COMMUNICATOR_VERSION_STRING,
0053                      i18n("Organize and sync your contacts."),
0054                      KAboutLicense::LGPL_V3,
0055                      APP_COPYRIGHT_NOTICE, 
0056                      QString(GIT_BRANCH) + "/" + QString(GIT_COMMIT_HASH));
0057     
0058     about.addAuthor(QStringLiteral("Camilo Higuita"), i18n("Developer"), QStringLiteral("milo.h@aol.com"));
0059     about.setHomepage("https://mauikit.org");
0060     about.setProductName("maui/communicator");
0061     about.setBugAddress("https://invent.kde.org/maui/communicator/-/issues");
0062     about.setOrganizationDomain(COMMUNICATOR_URI);
0063     about.setProgramLogo(app.windowIcon());
0064 
0065     KAboutData::setApplicationData(about);
0066     MauiApp::instance()->setIconName("qrc:/communicator.svg");
0067 
0068     QCommandLineParser parser;
0069     parser.process(app);
0070 
0071     about.setupCommandLine(&parser);
0072     about.processCommandLine(&parser);
0073 
0074     QQmlApplicationEngine engine;
0075 
0076     engine.rootContext()->setContextObject(new KLocalizedContext(&engine));
0077 
0078     engine.addImageProvider("contact", new ContactImage(QQuickImageProvider::ImageType::Image));
0079     qmlRegisterType<ContactsModel>(COMMUNICATOR_URI, 1, 0, "ContactsList");
0080     qmlRegisterType<Communicator>(COMMUNICATOR_URI, 1, 0, "Communicator");
0081 
0082     engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
0083     if (engine.rootObjects().isEmpty())
0084         return -1;
0085 
0086     return app.exec();
0087 }