File indexing completed on 2024-04-14 15:53:53
0001 /* 0002 * SPDX-FileCopyrightText: 2017 Elvis Angelaccio <elvis.angelaccio@kde.org> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 * 0006 */ 0007 0008 #pragma once 0009 0010 #include <KCompositeJob> 0011 0012 class QDialog; 0013 0014 namespace Symmy 0015 { 0016 0017 class CompositeJob : public KCompositeJob 0018 { 0019 Q_OBJECT 0020 0021 public: 0022 0023 enum class Task 0024 { 0025 Encryption, 0026 Decryption 0027 }; 0028 0029 explicit CompositeJob(const QStringList &filenames, Task task); 0030 ~CompositeJob() override; 0031 0032 void start() override; 0033 0034 protected: 0035 bool doKill() override; 0036 0037 protected slots: 0038 void slotResult(KJob *job) override; 0039 0040 private slots: 0041 void slotAccepted(); 0042 void slotRejected(); 0043 void slotStart(); 0044 void slotPercent(KJob *, unsigned long percent); 0045 0046 private: 0047 void startSubjob(); 0048 QStringList filenames() const; 0049 Task task() const; 0050 0051 QStringList m_filenames; 0052 QStringList m_failedDecryptions; 0053 Task m_task; 0054 QDialog *m_passwordDialog = nullptr; 0055 }; 0056 0057 }