emailQt/KeychainClass.cpp

34 lines
1.0 KiB
C++

#include "KeychainClass.hpp"
KeychainClass::KeychainClass(QObject *parent)
: QObject(parent),
readCredentialJob(QLatin1String(Keychain::url)),
writeCredentialJob(QLatin1String(Keychain::url)),
deleteCredentialJob(QLatin1String(Keychain::url)) {
readCredentialJob.setAutoDelete(false);
writeCredentialJob.setAutoDelete(false);
deleteCredentialJob.setAutoDelete(false);
}
void KeychainClass::readKey(QString const &key) {
readCredentialJob.setKey(key);
connect(&readCredentialJob, &QKeychain::ReadPasswordJob::finished, this, [this, key]() {
if (readCredentialJob.error())
return;
emit keyRead(key, readCredentialJob.textData());
});
readCredentialJob.start();
}
void KeychainClass::writeKey(QString const &key, QString const &value) {
writeCredentialJob.setKey(key);
writeCredentialJob.setTextData(value);
writeCredentialJob.start();
}
void KeychainClass::deleteKey(QString const &key) {
deleteCredentialJob.setKey(key);
deleteCredentialJob.start();
}