mirror of
https://bitbucket.org/smil3y/kde-extraapps.git
synced 2025-02-23 18:32:53 +00:00
106 lines
2.7 KiB
C++
106 lines
2.7 KiB
C++
/*
|
|
* Copyright (C) 2009,2012 Rolf Eike Beer <kde@opensource.sf-tec.de>
|
|
*/
|
|
|
|
/***************************************************************************
|
|
* *
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
* it under the terms of the GNU General Public License as published by *
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
* (at your option) any later version. *
|
|
* *
|
|
***************************************************************************/
|
|
|
|
#include "kgpgeditkeytransaction.h"
|
|
|
|
KGpgEditKeyTransaction::KGpgEditKeyTransaction(QObject *parent, const QString &keyid,
|
|
const QString &command, const bool hasValue, const bool autoSave)
|
|
: KGpgTransaction(parent),
|
|
m_autosave(autoSave),
|
|
m_keyid(keyid)
|
|
{
|
|
addArgument(QLatin1String( "--status-fd=1" ));
|
|
addArgument(QLatin1String( "--command-fd=0" ));
|
|
addArgument(QLatin1String( "--edit-key" ));
|
|
addArgument(keyid);
|
|
|
|
m_cmdpos = addArgument(command);
|
|
addArgumentRef(&m_cmdpos);
|
|
|
|
if (hasValue) {
|
|
m_argpos = addArgument(QString());
|
|
addArgumentRef(&m_argpos);
|
|
} else {
|
|
m_argpos = -1;
|
|
}
|
|
|
|
if (autoSave)
|
|
addArgument(QLatin1String( "save" ));
|
|
}
|
|
|
|
KGpgEditKeyTransaction::~KGpgEditKeyTransaction()
|
|
{
|
|
}
|
|
|
|
QString
|
|
KGpgEditKeyTransaction::getKeyid() const
|
|
{
|
|
return m_keyid;
|
|
}
|
|
|
|
bool
|
|
KGpgEditKeyTransaction::preStart()
|
|
{
|
|
setSuccess(TS_MSG_SEQUENCE);
|
|
|
|
return true;
|
|
}
|
|
|
|
bool
|
|
KGpgEditKeyTransaction::nextLine(const QString &line)
|
|
{
|
|
if (line == QLatin1String("[GNUPG:] GOT_IT")) {
|
|
setSuccess(TS_OK);
|
|
return false;
|
|
} else if (getSuccess() == TS_USER_ABORTED) {
|
|
if (line.contains(QLatin1String( "GET_" ) ))
|
|
return true;
|
|
} else if ((getSuccess() == TS_OK) && line.contains(QLatin1String( "keyedit.prompt" ))) {
|
|
return true;
|
|
} else if (line.contains(QLatin1String( "NEED_PASSPHRASE" ))) {
|
|
// nothing for now
|
|
// we could use the id from NEED_PASSPHRASE as user id hint ...
|
|
} else {
|
|
if (getSuccess() != TS_BAD_PASSPHRASE)
|
|
setSuccess(TS_MSG_SEQUENCE);
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
KGpgTransaction::ts_boolanswer
|
|
KGpgEditKeyTransaction::boolQuestion(const QString& line)
|
|
{
|
|
if ((getSuccess() == TS_OK) && (line == QLatin1String("keyedit.save.okay")) && !m_autosave) {
|
|
return BA_YES;
|
|
} else {
|
|
return KGpgTransaction::boolQuestion(line);
|
|
}
|
|
}
|
|
|
|
void
|
|
KGpgEditKeyTransaction::replaceValue(const QString &arg)
|
|
{
|
|
Q_ASSERT(m_argpos >= 0);
|
|
|
|
replaceArgument(m_argpos, arg);
|
|
}
|
|
|
|
void
|
|
KGpgEditKeyTransaction::replaceCommand(const QString &cmd)
|
|
{
|
|
replaceArgument(m_cmdpos, cmd);
|
|
}
|
|
|
|
#include "moc_kgpgeditkeytransaction.cpp"
|