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 }