From 8df9466ada46e4b07990b9cb7e8b1cd61b96844a Mon Sep 17 00:00:00 2001 From: me_desk Date: Sun, 17 Jun 2012 21:15:12 +0000 Subject: todo list update git-svn-id: svn://localhost/project_picapica/trunk@128 fb96df88-216d-11de-830c-f3023f12d8ac --- pica-client/dialogs/viewcertdialog.cpp | 68 ++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 pica-client/dialogs/viewcertdialog.cpp (limited to 'pica-client/dialogs/viewcertdialog.cpp') diff --git a/pica-client/dialogs/viewcertdialog.cpp b/pica-client/dialogs/viewcertdialog.cpp new file mode 100644 index 0000000..8b096c2 --- /dev/null +++ b/pica-client/dialogs/viewcertdialog.cpp @@ -0,0 +1,68 @@ +#include "viewcertdialog.h" +#include +#include + +#include + +#include +#include +#include +#include + +ViewCertDialog::ViewCertDialog(QWidget *parent) : + QDialog(parent) +{ + QVBoxLayout *layout; + + layout = new QVBoxLayout; + cert_text = new QTextEdit(this); + btOK = new QPushButton(tr("OK")); + btOK->setMaximumWidth(45); + this->setMinimumWidth(640); + this->setMinimumHeight(480); + + QTextCharFormat fmt; + + fmt = cert_text->currentCharFormat(); + fmt.setFontFixedPitch(true); + fmt.setFontStyleHint(QFont::Monospace); + fmt.setFontFamily("Liberation Mono"); + cert_text->setCurrentCharFormat(fmt); + + cert_text->setReadOnly(true); + + layout->addWidget(cert_text); + layout->addWidget(btOK, 0, Qt::AlignCenter); + + setLayout(layout); + + connect(btOK, SIGNAL(clicked()), this, SLOT(OK())); + +} + +void ViewCertDialog::SetCert(QString cert_pem) +{ + QProcess openssl(this); + qint64 ret; + char *data; + QByteArray ba; + + openssl.start("openssl", QStringList()<<"x509"<<"-noout"<<"-text"<<"-nameopt"<<"multiline,-esc_msb,utf8"); + + if (!openssl.waitForStarted()) + return; + + ba = cert_pem.toAscii(); + ret = openssl.write(data = (char*)ba.constData()); + openssl.closeWriteChannel(); + + if (!openssl.waitForFinished()) + return; + + cert_text->setPlainText(QString::fromUtf8(openssl.readAllStandardOutput().constData())); +} + +void ViewCertDialog::OK() +{ + done(0); +} -- cgit v1.2.1