File indexing completed on 2025-02-16 04:24:52

0001 #include <QApplication>
0002 #include <QQmlApplicationEngine>
0003 #include <QCommandLineParser>
0004 #include <QDate>
0005 #include <QIcon>
0006 
0007 #include <MauiKit/Core/mauiapp.h>
0008 
0009 #include <KAboutData>
0010 #include <KI18n/KLocalizedString>
0011 
0012 #include "../project_version.h"
0013 
0014 //Useful for setting quickly an app template
0015 #define ORG_NAME "Maui"
0016 #define PROJECT_NAME "Brun"
0017 #define COMPONENT_NAME "brun"
0018 #define PROJECT_DESCRIPTION "Maui convergent calculator."
0019 #define PROJECT_YEAR "2022"
0020 #define PRODUCT_NAME "maui/brun"
0021 #define PROJECT_PAGE "https://mauikit.org"
0022 #define REPORT_PAGE "https://invent.kde.org/maui/brun/-/issues"
0023 
0024 int main(int argc, char *argv[])
0025 {
0026     QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
0027 
0028     QApplication app(argc, argv);
0029 
0030     app.setOrganizationName(QStringLiteral(ORG_NAME));
0031     app.setWindowIcon(QIcon(":/logo.png"));
0032 
0033     MauiApp::instance()->setIconName("qrc:/logo.svg");
0034 
0035     KLocalizedString::setApplicationDomain(COMPONENT_NAME);
0036 
0037     KAboutData about(QStringLiteral(COMPONENT_NAME), i18n(PROJECT_NAME), PROJECT_VERSION_STRING, i18n(PROJECT_DESCRIPTION),
0038                      KAboutLicense::LGPL_V3, QString("© %1-%2 %3 Development Team").arg(PROJECT_YEAR, QString::number(QDate::currentDate().year()), ORG_NAME), QString(GIT_BRANCH) + "/" + QString(GIT_COMMIT_HASH));
0039 
0040     about.addAuthor("Camilo Higuita", i18n("Developer"), QStringLiteral("milo.h@aol.com"));
0041     about.addAuthor(i18n("Kalk Developers"), i18n("KDE"), QStringLiteral(""), QStringLiteral("invent.kde.org/plasma-mobile/kalk"));
0042 
0043     about.setHomepage(PROJECT_PAGE);
0044     about.setProductName(PRODUCT_NAME);
0045     about.setBugAddress(REPORT_PAGE);
0046     about.setOrganizationDomain(PROJECT_URI);
0047     about.setProgramLogo(app.windowIcon());
0048 
0049     KAboutData::setApplicationData(about);
0050 
0051     QCommandLineParser parser;
0052     parser.setApplicationDescription(about.shortDescription());
0053     parser.process(app);
0054     about.processCommandLine(&parser);
0055 
0056     QQmlApplicationEngine engine;
0057     const QUrl url(QStringLiteral("qrc:/main.qml"));
0058     QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
0059                      &app, [url](QObject *obj, const QUrl &objUrl) {
0060         if (!obj && url == objUrl)
0061             QCoreApplication::exit(-1);
0062     }, Qt::QueuedConnection);
0063     engine.load(url);
0064 
0065     return app.exec();
0066 }