File indexing completed on 2024-04-28 03:55:32

0001 /*
0002     This file is part of the KDE libraries
0003     SPDX-FileCopyrightText: 2016 Kai Uwe Broulik <kde@privat.broulik.de>
0004 
0005     SPDX-License-Identifier: LGPL-2.0-or-later
0006 */
0007 
0008 #ifndef OPENFILEMANAGERWINDOWJOB_P_H
0009 #define OPENFILEMANAGERWINDOWJOB_P_H
0010 
0011 #define USE_DBUS defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD)
0012 
0013 #include <KJob>
0014 
0015 namespace KIO
0016 {
0017 class OpenFileManagerWindowJob;
0018 
0019 class AbstractOpenFileManagerWindowStrategy
0020 {
0021 public:
0022     explicit AbstractOpenFileManagerWindowStrategy(OpenFileManagerWindowJob *job)
0023         : m_job(job)
0024     {
0025     }
0026 
0027     virtual ~AbstractOpenFileManagerWindowStrategy()
0028     {
0029     }
0030     virtual void start(const QList<QUrl> &urls, const QByteArray &asn) = 0;
0031 
0032     void emitResultProxy(int error = KJob::NoError)
0033     {
0034         m_job->setError(error);
0035         m_job->emitResult();
0036     }
0037 
0038 protected:
0039     OpenFileManagerWindowJob *m_job;
0040 };
0041 
0042 #if USE_DBUS
0043 class OpenFileManagerWindowDBusStrategy : public AbstractOpenFileManagerWindowStrategy
0044 {
0045 public:
0046     explicit OpenFileManagerWindowDBusStrategy(OpenFileManagerWindowJob *job)
0047         : AbstractOpenFileManagerWindowStrategy(job)
0048     {
0049     }
0050     void start(const QList<QUrl> &urls, const QByteArray &asn) override;
0051 };
0052 #endif
0053 
0054 class OpenFileManagerWindowKRunStrategy : public AbstractOpenFileManagerWindowStrategy
0055 {
0056 public:
0057     explicit OpenFileManagerWindowKRunStrategy(OpenFileManagerWindowJob *job)
0058         : AbstractOpenFileManagerWindowStrategy(job)
0059     {
0060     }
0061     void start(const QList<QUrl> &urls, const QByteArray &asn) override;
0062 };
0063 
0064 #if defined(Q_OS_WINDOWS)
0065 class OpenFileManagerWindowWindowsShellStrategy : public AbstractOpenFileManagerWindowStrategy
0066 {
0067 public:
0068     explicit OpenFileManagerWindowWindowsShellStrategy(OpenFileManagerWindowJob *job)
0069         : AbstractOpenFileManagerWindowStrategy(job)
0070     {
0071     }
0072     void start(const QList<QUrl> &urls, const QByteArray &asn) override;
0073 };
0074 #endif
0075 }
0076 
0077 #endif // OPENFILEMANAGERWINDOWJOB_P_H