File indexing completed on 2024-04-21 16:11:35

0001 /*
0002  *  SPDX-FileCopyrightText: 2010-2012 Alejandro Fiestas Olivares <afiestas@kde.org>
0003  *  SPDX-FileCopyrightText: 2010 UFO Coders <info@ufocoders.com>
0004  *
0005  *  SPDX-License-Identifier: GPL-2.0-or-later
0006  */
0007 
0008 #include "sendfilewizard.h"
0009 #include "version.h"
0010 
0011 #include <QApplication>
0012 #include <QCommandLineOption>
0013 #include <QCommandLineParser>
0014 
0015 #include <KAboutData>
0016 #include <KDBusService>
0017 #include <KLocalizedString>
0018 #include <KWindowSystem>
0019 
0020 int main(int argc, char *argv[])
0021 {
0022     QApplication app(argc, argv);
0023 
0024     KAboutData aboutData(QStringLiteral("bluedevilsendfile"),
0025                          i18n("Bluetooth File Transfer"),
0026                          QStringLiteral(BLUEDEVIL_VERSION_STRING),
0027                          i18n("Bluetooth File Transfer"),
0028                          KAboutLicense::GPL,
0029                          i18n("(c) 2010, UFO Coders"));
0030 
0031     aboutData.addAuthor(QStringLiteral("David Rosca"), //
0032                         i18n("Maintainer"),
0033                         QStringLiteral("nowrep@gmail.com"),
0034                         QStringLiteral("http://david.rosca.cz"));
0035 
0036     aboutData.addAuthor(QStringLiteral("Alejandro Fiestas Olivares"),
0037                         i18n("Previous Maintainer"),
0038                         QStringLiteral("afiestas@kde.org"),
0039                         QStringLiteral("http://www.afiestas.org/"));
0040 #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
0041     app.setAttribute(Qt::AA_UseHighDpiPixmaps);
0042 #endif
0043     app.setWindowIcon(QIcon::fromTheme(QStringLiteral("preferences-system-bluetooth")));
0044     app.setQuitOnLastWindowClosed(false);
0045 
0046     KAboutData::setApplicationData(aboutData);
0047     KDBusService service;
0048 
0049     QCommandLineOption kioOption(QStringList() << QStringLiteral("kio") << QStringLiteral("k"));
0050     kioOption.setDescription(i18n("Specify receiving device by MAC address."));
0051     kioOption.setValueName(QStringLiteral("bluetooth://address"));
0052 
0053     QCommandLineOption ubiOption(QStringList() << QStringLiteral("ubi") << QStringLiteral("u"));
0054     ubiOption.setDescription(i18n("Specify receiving device by UBI path."));
0055     ubiOption.setValueName(QStringLiteral("ubi"));
0056 
0057     QCommandLineOption filesOption(QStringList() << QStringLiteral("files") << QStringLiteral("f"));
0058     filesOption.setDescription(i18n("Files to be sent."));
0059     filesOption.setValueName(QStringLiteral("files"));
0060 
0061     QCommandLineParser parser;
0062     parser.addOption(kioOption);
0063     parser.addOption(ubiOption);
0064     parser.addOption(filesOption);
0065     aboutData.setupCommandLine(&parser);
0066 
0067     parser.process(app);
0068     aboutData.processCommandLine(&parser);
0069 
0070     QString deviceInfo = parser.value(ubiOption);
0071     if (deviceInfo.isEmpty()) {
0072         deviceInfo = parser.value(kioOption);
0073     }
0074 
0075     SendFileWizard *wizard = new SendFileWizard(deviceInfo, parser.values(filesOption));
0076 
0077     QObject::connect(&service, &KDBusService::activateRequested, wizard, [wizard]() {
0078         KWindowSystem::updateStartupId(wizard->windowHandle());
0079         KWindowSystem::activateWindow(wizard->windowHandle());
0080     });
0081 
0082     return app.exec();
0083 }