File indexing completed on 2024-04-28 04:48:38
0001 /* 0002 SPDX-FileCopyrightText: 2011 Geoffry Song <goffrie@gmail.com> 0003 SPDX-FileCopyrightText: 2014 Lukáš Tinkl <lukas@kde.org> 0004 0005 SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0006 */ 0007 0008 #include "playerApplication.h" 0009 #include "mainWindow.h" 0010 0011 #include <KX11Extras> 0012 0013 namespace Dragon 0014 { 0015 0016 PlayerApplication::PlayerApplication(int &argc, char **argv) 0017 : QApplication(argc, argv) 0018 , m_mainWindow(nullptr) 0019 { 0020 } 0021 0022 PlayerApplication::~PlayerApplication() 0023 { 0024 if (m_mainWindow) { 0025 m_mainWindow = nullptr; 0026 delete m_mainWindow; 0027 } 0028 } 0029 0030 void PlayerApplication::slotActivateRequested(const QStringList &arguments, const QString &workingDirectory) 0031 { 0032 qDebug() << Q_FUNC_INFO << arguments; 0033 if (!arguments.filter(QStringLiteral("play-dvd"), Qt::CaseInsensitive).isEmpty()) { 0034 newInstance(true); 0035 forceActiveWindow(); 0036 } else if (arguments.count() == 2) { // 1st arg binary name, 2nd arg file to open 0037 QUrl url = QUrl::fromUserInput(arguments.at(1), workingDirectory, QUrl::AssumeLocalFile); 0038 newInstance(false, {url}); 0039 forceActiveWindow(); 0040 } 0041 } 0042 0043 void PlayerApplication::slotOpenRequested(const QList<QUrl> &uris) 0044 { 0045 qDebug() << Q_FUNC_INFO << uris; 0046 newInstance(false, uris); 0047 forceActiveWindow(); 0048 } 0049 0050 void PlayerApplication::forceActiveWindow() 0051 { 0052 KX11Extras::forceActiveWindow(Dragon::mainWindow()->winId()); 0053 } 0054 0055 void PlayerApplication::newInstance(bool playDisc, const QList<QUrl> &uris) 0056 { 0057 if (!m_mainWindow) 0058 m_mainWindow = new Dragon::MainWindow; 0059 0060 if (isSessionRestored()) 0061 m_mainWindow->restore(1, false); 0062 else if (playDisc) 0063 m_mainWindow->playDisc(); 0064 else if (!uris.isEmpty()) { 0065 m_mainWindow->open(uris.first()); 0066 m_mainWindow->adjustSize(); 0067 } 0068 0069 m_mainWindow->show(); 0070 } 0071 0072 } // namespace Dragon 0073 0074 #include "moc_playerApplication.cpp"