File indexing completed on 2024-04-21 04:53:51

0001 /*
0002     SPDX-FileCopyrightText: 2002 Koos Vriezen
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include <unistd.h>
0008 
0009 #include "config-kmplayer.h"
0010 #include <KAboutData>
0011 #include <KLocalizedString>
0012 
0013 #include <QCommandLineParser>
0014 #include <QApplication>
0015 #include <QPointer>
0016 #include <QFileInfo>
0017 
0018 #include "kmplayer.h"
0019 
0020 static QUrl makeUrl(const QString& link)
0021 {
0022     QFileInfo info(link);
0023     if (info.exists())
0024         return QUrl::fromLocalFile(info.absoluteFilePath());
0025     return QUrl::fromUserInput(link);
0026 }
0027 
0028 extern "C" Q_DECL_EXPORT int kdemain(int argc, char **argv)
0029 {
0030     setsid ();
0031 
0032     QApplication app(argc, argv);
0033     KLocalizedString::setApplicationDomain("kmplayer");
0034 
0035     KAboutData aboutData(QStringLiteral("kmplayer"),
0036             i18n("KMPlayer"),
0037             QStringLiteral(KMPLAYER_VERSION_STRING),
0038             i18n("Media player"), KAboutLicense::GPL,
0039             i18n("(c) 2002-2016, Koos Vriezen"), QString(), QStringLiteral("http://kmplayer.kde.org"));
0040     aboutData.addAuthor(i18n("Koos Vriezen"), i18n("Maintainer"), QStringLiteral("koos.vriezen@gmail.com"));
0041     aboutData.setProductName(QByteArray("kmplayer"));
0042     aboutData.setOrganizationDomain(QByteArray("kde.org"));
0043     aboutData.setDesktopFileName(QStringLiteral("org.kde.kmplayer"));
0044     KAboutData::setApplicationData(aboutData);
0045 
0046     QApplication::setWindowIcon(QIcon::fromTheme(QLatin1String("kmplayer")));
0047 
0048     QCommandLineParser parser;
0049     aboutData.setupCommandLine(&parser);
0050     parser.addPositionalArgument(QStringLiteral("File"), i18n("file to open"), i18n("+[File]"));
0051     parser.process(app);
0052 
0053     aboutData.processCommandLine(&parser);
0054 
0055     KMPlayer::Ids::init();
0056 
0057     QPointer <KMPlayerApp> kmplayer;
0058 
0059     if (app.isSessionRestored ()) {
0060         kRestoreMainWindows<KMPlayerApp>();
0061     } else {
0062         kmplayer = new KMPlayerApp ();
0063         kmplayer->show();
0064 
0065         QUrl url;
0066         QStringList args = parser.positionalArguments();
0067         if (args.size() == 1)
0068             url = makeUrl(args[0]);
0069         if (args.size() > 1) {
0070             for (int i = 0; i < args.size(); i++) {
0071                 QUrl url1 = makeUrl(args[i]);
0072                 if (url1.isValid())
0073                     kmplayer->addUrl(url1);
0074             }
0075         }
0076         kmplayer->openDocumentFile (url);
0077     }
0078     int retvalue = app.exec ();
0079 
0080     delete kmplayer;
0081 
0082     KMPlayer::Ids::reset();
0083 
0084     return retvalue;
0085 }