File indexing completed on 2024-04-21 05:50:43
0001 /* 0002 SPDX-FileCopyrightText: 2009, 2010, 2012, 2014 Rolf Eike Beer <kde@opensource.sf-tec.de> 0003 SPDX-License-Identifier: GPL-2.0-or-later 0004 */ 0005 0006 #ifndef KGPGTRANSACTIONJOB_H 0007 #define KGPGTRANSACTIONJOB_H 0008 0009 #include <KJob> 0010 0011 class KGpgTransaction; 0012 0013 /** 0014 * @brief Wrap a GnuPG transaction in a job 0015 * 0016 * This class allows to run any KGpgTransaction as KJob. 0017 * 0018 * @author Rolf Eike Beer 0019 */ 0020 class KGpgTransactionJob : public KJob { 0021 Q_OBJECT 0022 0023 Q_DISABLE_COPY(KGpgTransactionJob) 0024 KGpgTransactionJob() = delete; 0025 0026 public: 0027 /** 0028 * @brief create a new KJob for this transaction 0029 * @param transaction operation to do 0030 * 0031 * The job will take ownership of the transaction, i.e. 0032 * will delete the transaction object when the job is done. 0033 */ 0034 explicit KGpgTransactionJob(KGpgTransaction *transaction); 0035 /** 0036 * @brief KGpgTransactionJob destructor 0037 */ 0038 ~KGpgTransactionJob() override; 0039 0040 /** 0041 * @brief starts the transaction 0042 */ 0043 void start() override; 0044 0045 /** 0046 * @brief get the transaction this job is handling 0047 */ 0048 const KGpgTransaction *getTransaction() const; 0049 0050 /** 0051 * @brief get the result of the transaction 0052 */ 0053 int getResultCode() const; 0054 0055 protected: 0056 bool doKill() override; 0057 0058 private Q_SLOTS: 0059 void slotTransactionDone(int result); 0060 void slotStatusMessage(const QString &plain); 0061 void slotInfoProgress(qulonglong processedAmount, qulonglong totalAmount); 0062 0063 private: 0064 KGpgTransaction * const m_transaction; 0065 int m_result; 0066 bool m_wasKilled; 0067 }; 0068 0069 #endif