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 #include "kgpgtransactionjob.h" 0007 0008 #include "kgpgtransaction.h" 0009 0010 #include <KLocalizedString> 0011 0012 KGpgTransactionJob::KGpgTransactionJob(KGpgTransaction *transaction) 0013 : KJob(transaction->parent()), 0014 m_transaction(transaction), 0015 m_result(-1), 0016 m_wasKilled(false) 0017 { 0018 } 0019 0020 KGpgTransactionJob::~KGpgTransactionJob() 0021 { 0022 delete m_transaction; 0023 } 0024 0025 void 0026 KGpgTransactionJob::start() 0027 { 0028 connect(m_transaction, &KGpgTransaction::done, this, &KGpgTransactionJob::slotTransactionDone); 0029 connect(m_transaction, &KGpgTransaction::statusMessage, this, &KGpgTransactionJob::slotStatusMessage); 0030 connect(m_transaction, &KGpgTransaction::infoProgress, this, &KGpgTransactionJob::slotInfoProgress); 0031 0032 slotStatusMessage(i18nc("Job is started up", "Startup")); 0033 m_transaction->start(); 0034 } 0035 0036 const KGpgTransaction * 0037 KGpgTransactionJob::getTransaction() const 0038 { 0039 return m_transaction; 0040 } 0041 0042 int 0043 KGpgTransactionJob::getResultCode() const 0044 { 0045 return m_result; 0046 } 0047 0048 void 0049 KGpgTransactionJob::slotTransactionDone(int result) 0050 { 0051 m_result = result; 0052 if (!m_wasKilled) 0053 emitResult(); 0054 } 0055 0056 void 0057 KGpgTransactionJob::slotStatusMessage(const QString &msg) 0058 { 0059 Q_EMIT description(this, m_transaction->getDescription(), qMakePair(i18nc("State of operation as in status", "State"), msg)); 0060 } 0061 0062 void 0063 KGpgTransactionJob::slotInfoProgress(qulonglong processedAmount, qulonglong totalAmount) 0064 { 0065 emitPercent(processedAmount, totalAmount); 0066 } 0067 0068 bool 0069 KGpgTransactionJob::doKill() 0070 { 0071 m_transaction->kill(); 0072 m_wasKilled = true; 0073 0074 return true; 0075 }