File indexing completed on 2025-02-02 05:08:36
0001 // SPDX-FileCopyrightText: 2009 Volker Krause <vkrause@kde.org> 0002 // SPDX-FileCopyrightText: 2023 Carl Schwan <carl@carlschwan.eu> 0003 // SPDX-FileCopyrightText: 2023-2024 Laurent Montel <montel.org> 0004 // SPDX-License-Identifier: LGPL-2.0-or-later 0005 0006 #include "identitybase.h" 0007 #include "ispdb/configurationmodel.h" 0008 #include "setupmanager.h" 0009 0010 #include <Akonadi/Control> 0011 #include <KAboutData> 0012 #include <KCrash> 0013 #include <KDBusService> 0014 #include <KLocalizedContext> 0015 #include <KLocalizedString> 0016 0017 #include <QApplication> 0018 #include <QCommandLineParser> 0019 #include <QDebug> 0020 #include <QIcon> 0021 #include <QQmlApplicationEngine> 0022 #include <QUrl> 0023 #include <QtQml> 0024 0025 int main(int argc, char **argv) 0026 { 0027 QCoreApplication::setAttribute(Qt::AA_ShareOpenGLContexts); 0028 QApplication app(argc, argv); 0029 KLocalizedString::setApplicationDomain(QByteArrayLiteral("accountwizard")); 0030 KCrash::initialize(); 0031 KAboutData aboutData(QStringLiteral("accountwizard"), 0032 i18n("Account Assistant"), 0033 QStringLiteral("0.3"), 0034 i18n("Helps setting up PIM accounts"), 0035 KAboutLicense::LGPL, 0036 i18n("(c) 2009-2024 the Akonadi developers"), 0037 QString(), 0038 QStringLiteral("https://community.kde.org/KDE_PIM/Akonadi")); 0039 aboutData.addAuthor(i18n("Volker Krause"), i18n("Author"), QStringLiteral("vkrause@kde.org")); 0040 aboutData.addAuthor(i18n("Laurent Montel"), i18n("Maintainer"), QStringLiteral("montel@kde.org")); 0041 aboutData.addAuthor(i18n("Carl Schwan"), i18n("Maintainer"), QStringLiteral("carl@carlschwan.eu")); 0042 aboutData.setProductName(QByteArrayLiteral("Akonadi/Account Wizard")); 0043 app.setOrganizationDomain(QStringLiteral("kde.org")); 0044 app.setWindowIcon(QIcon::fromTheme(QStringLiteral("kontact"))); 0045 QCommandLineParser parser; 0046 KAboutData::setApplicationData(aboutData); 0047 0048 aboutData.setupCommandLine(&parser); 0049 parser.process(app); 0050 aboutData.processCommandLine(&parser); 0051 0052 KDBusService service(KDBusService::Unique); 0053 0054 if (!Akonadi::Control::start()) { 0055 qApp->exit(-1); 0056 return 1; 0057 } 0058 0059 QQmlApplicationEngine engine; 0060 engine.rootContext()->setContextObject(new KLocalizedContext(&engine)); 0061 0062 SetupManager setupManager; 0063 qmlRegisterSingletonInstance("org.kde.pim.accountwizard", 1, 0, "SetupManager", &setupManager); 0064 qRegisterMetaType<IdentityBase *>("Identity *"); 0065 qRegisterMetaType<ConfigurationModel *>("ConfigurationModel *"); 0066 engine.load(QUrl(QStringLiteral("qrc:///main.qml"))); 0067 // Exit on QML load error. 0068 if (engine.rootObjects().isEmpty()) { 0069 qWarning() << " Error during loading main.qml"; 0070 return 1; 0071 } 0072 return app.exec(); 0073 }