File indexing completed on 2024-05-12 05:50:21
0001 /* 0002 SPDX-FileCopyrightText: 2011 Raphael Kubo da Costa <rakuco@FreeBSD.org> 0003 SPDX-FileCopyrightText: 2016 Vladyslav Batyrenko <mvlabat@gmail.com> 0004 0005 SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #ifndef CLIPLUGIN_H 0009 #define CLIPLUGIN_H 0010 0011 #include "cliinterface.h" 0012 0013 using namespace Kerfuffle; 0014 0015 class CliPlugin : public Kerfuffle::CliInterface 0016 { 0017 Q_OBJECT 0018 0019 public: 0020 explicit CliPlugin(QObject *parent, const QVariantList &args); 0021 ~CliPlugin() override; 0022 0023 void resetParsing() override; 0024 QString escapeFileName(const QString &fileName) const override; 0025 bool readListLine(const QString &line) override; 0026 bool readExtractLine(const QString &line) override; 0027 bool isPasswordPrompt(const QString &line) override; 0028 bool isWrongPasswordMsg(const QString &line) override; 0029 bool isCorruptArchiveMsg(const QString &line) override; 0030 bool isDiskFullMsg(const QString &line) override; 0031 bool isFileExistsMsg(const QString &line) override; 0032 bool isFileExistsFileName(const QString &line) override; 0033 0034 bool moveFiles(const QVector<Archive::Entry *> &files, Archive::Entry *destination, const CompressionOptions &options) override; 0035 int moveRequiredSignals() const override; 0036 0037 private Q_SLOTS: 0038 void continueMoving(bool result); 0039 0040 private: 0041 void setupCliProperties(); 0042 bool setMovingAddedFiles(); 0043 void finishMoving(bool result); 0044 QString convertCompressionMethod(const QString &method); 0045 0046 enum ParseState { ParseStateHeader = 0, ParseStateComment, ParseStateEntry } m_parseState; 0047 0048 int m_linesComment; 0049 QString m_tempComment; 0050 }; 0051 0052 #endif // CLIPLUGIN_H