File indexing completed on 2025-01-12 03:39:39
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