File indexing completed on 2024-05-05 17:57:23
0001 /* 0002 SPDX-FileCopyrightText: 2003 Csaba Karai <krusader@users.sourceforge.net> 0003 SPDX-FileCopyrightText: 2004-2022 Krusader Krew <https://krusader.org> 0004 0005 SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #ifndef COMBINER_H 0009 #define COMBINER_H 0010 0011 // QtCore 0012 #include <QString> 0013 #include <QUrl> 0014 // QtWidgets 0015 #include <QProgressDialog> 0016 0017 #include <KIO/Job> 0018 0019 #include "crc32.h" 0020 0021 class Combiner : public QProgressDialog 0022 { 0023 Q_OBJECT 0024 0025 public: 0026 Combiner(QWidget *parent, QUrl baseURLIn, QUrl destinationURLIn, bool unixNamingIn = false); 0027 ~Combiner() override; 0028 0029 void combine(); 0030 0031 private slots: 0032 void statDest(); 0033 void statDestResult(KJob *job); 0034 void combineSplitFileDataReceived(KIO::Job *, const QByteArray &byteArray); 0035 void combineSplitFileFinished(KJob *job); 0036 void combineDataReceived(KIO::Job *, const QByteArray &); 0037 void combineReceiveFinished(KJob *); 0038 void combineDataSend(KIO::Job *, QByteArray &); 0039 void combineSendFinished(KJob *); 0040 void combineWritePercent(KJob *, unsigned long); 0041 0042 private: 0043 void openNextFile(); 0044 void combineAbortJobs(); 0045 0046 QUrl splURL; 0047 QUrl readURL; 0048 QUrl writeURL; 0049 0050 QUrl baseURL; 0051 QUrl destinationURL; 0052 CRC32 *crcContext; 0053 QByteArray transferArray; 0054 0055 QString splitFile; 0056 QString error; 0057 0058 bool hasValidSplitFile; 0059 QString expectedFileName; 0060 KIO::filesize_t expectedSize; 0061 QString expectedCrcSum; 0062 0063 int fileCounter; 0064 bool firstFileIs000; 0065 int permissions; 0066 KIO::filesize_t receivedSize; 0067 0068 KIO::Job *statJob; 0069 KIO::TransferJob *combineReadJob; 0070 KIO::TransferJob *combineWriteJob; 0071 0072 bool unixNaming; 0073 }; 0074 0075 #endif /* __COMBINER_H__ */