2
* Copyright (C) 2008,2009,2010 Rolf Eike Beer <kde@opensource.sf-tec.de>
5
/***************************************************************************
7
* This program is free software; you can redistribute it and/or modify *
8
* it under the terms of the GNU General Public License as published by *
9
* the Free Software Foundation; either version 2 of the License, or *
10
* (at your option) any later version. *
12
***************************************************************************/
14
#include "kgpgtextorfiletransaction.h"
16
#include <KIO/NetAccess>
21
KGpgTextOrFileTransaction::KGpgTextOrFileTransaction(QObject *parent, const QString &text, const bool allowChaining)
22
: KGpgTransaction(parent, allowChaining),
27
KGpgTextOrFileTransaction::KGpgTextOrFileTransaction(QObject *parent, const KUrl::List &files, const bool allowChaining)
28
: KGpgTransaction(parent, allowChaining)
33
KGpgTextOrFileTransaction::~KGpgTextOrFileTransaction()
39
KGpgTextOrFileTransaction::setText(const QString &text)
46
KGpgTextOrFileTransaction::setUrls(const KUrl::List &files)
53
KGpgTextOrFileTransaction::preStart()
59
foreach (const KUrl &url, m_inpfiles) {
60
if (url.isLocalFile()) {
61
locfiles.append(url.toLocalFile());
65
if (KIO::NetAccess::download(url, tmpfile, 0)) {
66
m_tempfiles.append(tmpfile);
68
m_messages.append(KIO::NetAccess::lastErrorString());
70
setSuccess(TS_KIO_FAILED);
76
if (m_tempfiles.isEmpty() && m_text.isEmpty() && !hasInputTransaction()) {
77
setSuccess(TS_MSG_SEQUENCE);
81
GPGProc *proc = getProcess();
82
QStringList args(proc->program().at(0));
84
args << "--status-fd=1" << command() << locfiles << m_tempfiles;
86
proc->setProgram(args);
92
KGpgTextOrFileTransaction::postStart()
94
if (!m_text.isEmpty()){
95
GPGProc *proc = getProcess();
96
proc->write(m_text.toAscii());
97
proc->closeWriteChannel();
102
KGpgTextOrFileTransaction::nextLine(const QString &line)
104
if (!line.startsWith(QLatin1String("[GNUPG:] SIGEXPIRED")) && !line.startsWith(QLatin1String("[GNUPG:] KEYEXPIRED ")))
105
m_messages.append(line);
111
KGpgTextOrFileTransaction::finish()
116
KGpgTextOrFileTransaction::getMessages() const
122
KGpgTextOrFileTransaction::cleanUrls()
124
foreach (const QString &u, m_tempfiles)
125
KIO::NetAccess::removeTempFile(u);