1 /* 2 SPDX-FileCopyrightText: 2020-2021 Laurent Montel <montel@kde.org> 3 4 SPDX-License-Identifier: GPL-2.0-or-later 5 */ 6 7 #include "sieveeditorsavepasswordjob.h" 8 #include "sieveeditor_debug.h" 9 #include <qt5keychain/keychain.h> 10 11 using namespace QKeychain; 12 SieveEditorSavePasswordJob(QObject * parent)13SieveEditorSavePasswordJob::SieveEditorSavePasswordJob(QObject *parent) 14 : QObject(parent) 15 { 16 } 17 ~SieveEditorSavePasswordJob()18SieveEditorSavePasswordJob::~SieveEditorSavePasswordJob() 19 { 20 } 21 canStart() const22bool SieveEditorSavePasswordJob::canStart() const 23 { 24 return !mName.isEmpty() && !mPassword.isEmpty() && !mKey.isEmpty(); 25 } 26 start()27void SieveEditorSavePasswordJob::start() 28 { 29 if (!canStart()) { 30 if (mName.isEmpty()) { 31 qCWarning(SIEVEEDITOR_LOG) << "Error missing mName"; 32 } 33 if (mKey.isEmpty()) { 34 qCWarning(SIEVEEDITOR_LOG) << "Error missing mKey"; 35 } 36 if (mPassword.isEmpty()) { 37 qCWarning(SIEVEEDITOR_LOG) << "Error missing mName"; 38 } 39 deleteLater(); 40 return; 41 } 42 auto writeJob = new WritePasswordJob(mName, this); 43 connect(writeJob, &Job::finished, this, &SieveEditorSavePasswordJob::slotPasswordWritten); 44 writeJob->setKey(mKey); 45 writeJob->setTextData(mPassword); 46 writeJob->start(); 47 } 48 slotPasswordWritten(QKeychain::Job * baseJob)49void SieveEditorSavePasswordJob::slotPasswordWritten(QKeychain::Job *baseJob) 50 { 51 if (baseJob->error()) { 52 qCWarning(SIEVEEDITOR_LOG) << "Error writing password using QKeychain:" << baseJob->errorString(); 53 } 54 deleteLater(); 55 } 56 name() const57QString SieveEditorSavePasswordJob::name() const 58 { 59 return mName; 60 } 61 setName(const QString & name)62void SieveEditorSavePasswordJob::setName(const QString &name) 63 { 64 mName = name; 65 } 66 key() const67QString SieveEditorSavePasswordJob::key() const 68 { 69 return mKey; 70 } 71 setKey(const QString & key)72void SieveEditorSavePasswordJob::setKey(const QString &key) 73 { 74 mKey = key; 75 } 76 password() const77QString SieveEditorSavePasswordJob::password() const 78 { 79 return mPassword; 80 } 81 setPassword(const QString & password)82void SieveEditorSavePasswordJob::setPassword(const QString &password) 83 { 84 mPassword = password; 85 } 86