~ubuntu-branches/ubuntu/precise/kgpg/precise-updates

« back to all changes in this revision

Viewing changes to kgpgtextinterface.cpp

  • Committer: Package Import Robot
  • Author(s): Philip Muškovac
  • Date: 2011-12-24 23:16:12 UTC
  • mto: This revision was merged to the branch mainline in revision 3.
  • Revision ID: package-import@ubuntu.com-20111224231612-6w15s57d2106roq2
Tags: upstream-4.7.95
Import upstream version 4.7.95

Show diffs side-by-side

added added

removed removed

Lines of Context:
202
202
}
203
203
 
204
204
void
205
 
KGpgTextInterface::encryptText(const QString &text, const QStringList &userids, const QStringList &options)
206
 
{
207
 
        QTextCodec *codec = QTextCodec::codecForLocale();
208
 
        if (codec->canEncode(text))
209
 
                d->m_message = text;
210
 
        else
211
 
                d->m_message = QLatin1String( text.toUtf8() );
212
 
 
213
 
        *d->m_process << options;
214
 
 
215
 
        if (userids.isEmpty()) {
216
 
                *d->m_process << QLatin1String( "-c" );
217
 
        } else {
218
 
                *d->m_process << QLatin1String( "-e" );
219
 
                foreach (const QString &uid, userids)
220
 
                        *d->m_process << QLatin1String( "--recipient" ) << uid;
221
 
        }
222
 
 
223
 
        connect(d->m_process, SIGNAL(readReady()), this, SLOT(encryptTextProcess()));
224
 
        connect(d->m_process, SIGNAL(processExited()), this, SLOT(encryptTextFin()));
225
 
        d->m_process->start();
226
 
}
227
 
 
228
 
void
229
 
KGpgTextInterface::encryptTextProcess()
230
 
{
231
 
        int items;
232
 
        QString line;
233
 
 
234
 
        while ( (items = d->m_process->readln(line)) >= 0 ) {
235
 
                if (line.startsWith(QLatin1String("[GNUPG:] "))) {
236
 
                        line.remove(0, 9);
237
 
                        if (line.startsWith(QLatin1String("BEGIN_ENCRYPTION"))) {
238
 
                                d->m_process->write(d->m_message.toLocal8Bit());
239
 
                                d->m_process->closeWriteChannel();
240
 
                                d->m_message.clear();
241
 
                        } else if (line.contains( QLatin1String( "passphrase.enter" ))) {
242
 
                                if (d->symPassphrase()) {
243
 
                                        d->m_message.clear();
244
 
                                        return;
245
 
                                }
246
 
                        }
247
 
                } else {
248
 
                        d->m_message += line + QLatin1Char( '\n' );
249
 
                }
250
 
        }
251
 
}
252
 
 
253
 
void
254
 
KGpgTextInterface::encryptTextFin()
255
 
{
256
 
        emit txtEncryptionFinished(d->m_message.trimmed());
257
 
}
258
 
 
259
 
void
260
205
KGpgTextInterface::signText(const QString &text, const QString &userid, const QStringList &options)
261
206
{
262
207
        QTextCodec *codec = QTextCodec::codecForLocale();