File indexing completed on 2024-05-12 05:23:46

0001 /*
0002    SPDX-FileCopyrightText: 2013-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "mboxmainwindow.h"
0008 #include <KAboutData>
0009 #include <QApplication>
0010 
0011 #include "mboximporter-version.h"
0012 #include <KCrash>
0013 #include <KLocalizedString>
0014 #include <QCommandLineParser>
0015 #include <QFileDialog>
0016 #include <QIcon>
0017 
0018 int main(int argc, char *argv[])
0019 {
0020     QApplication app(argc, argv);
0021     app.setDesktopFileName(QStringLiteral("org.kde.mboximporter"));
0022     KCrash::initialize();
0023     KLocalizedString::setApplicationDomain(QByteArrayLiteral("mboximporter"));
0024 
0025     KAboutData aboutData(QStringLiteral("mboximporter"),
0026                          i18n("MBox importer tool"),
0027                          QStringLiteral(MBOXIMPORTER_VERSION),
0028                          i18n("MBox Import Tool"),
0029                          KAboutLicense::GPL_V2,
0030                          i18n("Copyright © 2013-%1 MBoxImporter authors", QStringLiteral("2024")));
0031     aboutData.addAuthor(i18n("Laurent Montel"), i18n("Maintainer"), QStringLiteral("montel@kde.org"));
0032 
0033     QApplication::setWindowIcon(QIcon::fromTheme(QStringLiteral("kmail")));
0034     aboutData.setProductName(QByteArray("mboximporter"));
0035 
0036     KAboutData::setApplicationData(aboutData);
0037 
0038     QString fileName;
0039     QCommandLineParser parser;
0040     aboutData.setupCommandLine(&parser);
0041 
0042     parser.addPositionalArgument(QStringLiteral("url"), i18n("URL of mbox to be imported"), QStringLiteral("[url]"));
0043 
0044     parser.process(app);
0045     aboutData.processCommandLine(&parser);
0046 
0047     const QStringList &args = parser.positionalArguments();
0048     if (!args.isEmpty()) {
0049         fileName = args.at(0);
0050     } else {
0051         fileName = QFileDialog::getOpenFileName();
0052     }
0053     if (fileName.isEmpty()) {
0054         return 0;
0055     }
0056     auto w = new MBoxMainWindow(fileName);
0057     w->show();
0058     QObject::connect(w, &MBoxMainWindow::rejected, &app, &QApplication::quit);
0059     const int ret = app.exec();
0060     delete w;
0061     return ret;
0062 }