File indexing completed on 2024-05-19 04:35:10
0001 /* 0002 SPDX-FileCopyrightText: 2007 Pino Toscano <pino@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #ifndef UNRARFLAVOURS_H 0008 #define UNRARFLAVOURS_H 0009 0010 #include <QString> 0011 #include <QStringList> 0012 0013 struct ProcessArgs { 0014 ProcessArgs(); 0015 ProcessArgs(const QStringList &appArgs, bool useLsar); 0016 0017 QStringList appArgs; 0018 bool useLsar; 0019 }; 0020 0021 class UnrarFlavour 0022 { 0023 public: 0024 virtual ~UnrarFlavour(); 0025 0026 UnrarFlavour(const UnrarFlavour &) = delete; 0027 UnrarFlavour &operator=(const UnrarFlavour &) = delete; 0028 0029 virtual QStringList processListing(const QStringList &data) = 0; 0030 virtual QString name() const = 0; 0031 0032 virtual ProcessArgs processListArgs(const QString &fileName) const = 0; 0033 virtual ProcessArgs processOpenArchiveArgs(const QString &fileName, const QString &path) const = 0; 0034 0035 void setFileName(const QString &fileName); 0036 0037 protected: 0038 UnrarFlavour(); 0039 0040 QString fileName() const; 0041 0042 private: 0043 QString mFileName; 0044 }; 0045 0046 class NonFreeUnrarFlavour : public UnrarFlavour 0047 { 0048 public: 0049 NonFreeUnrarFlavour(); 0050 0051 QStringList processListing(const QStringList &data) override; 0052 QString name() const override; 0053 0054 ProcessArgs processListArgs(const QString &fileName) const override; 0055 ProcessArgs processOpenArchiveArgs(const QString &fileName, const QString &path) const override; 0056 }; 0057 0058 class FreeUnrarFlavour : public UnrarFlavour 0059 { 0060 public: 0061 FreeUnrarFlavour(); 0062 0063 QStringList processListing(const QStringList &data) override; 0064 QString name() const override; 0065 0066 ProcessArgs processListArgs(const QString &fileName) const override; 0067 ProcessArgs processOpenArchiveArgs(const QString &fileName, const QString &path) const override; 0068 }; 0069 0070 class UnarFlavour : public UnrarFlavour 0071 { 0072 public: 0073 UnarFlavour(); 0074 0075 QStringList processListing(const QStringList &data) override; 0076 QString name() const override; 0077 0078 ProcessArgs processListArgs(const QString &fileName) const override; 0079 ProcessArgs processOpenArchiveArgs(const QString &fileName, const QString &path) const override; 0080 }; 0081 0082 #endif