diff options
author | ubbo <ubbo@34ebc366-c3a9-4b3c-9f84-69acf7962910> | 2008-12-17 12:51:10 +0000 |
---|---|---|
committer | ubbo <ubbo@34ebc366-c3a9-4b3c-9f84-69acf7962910> | 2008-12-17 12:51:10 +0000 |
commit | 9cc537cc2c303bd600583554aa2bf46697aad68b (patch) | |
tree | 2f71d5b911df212d5a9002245bfc4a909087ba3a | |
parent | fixed translation files (diff) | |
download | gpg4usb-9cc537cc2c303bd600583554aa2bf46697aad68b.tar.gz gpg4usb-9cc537cc2c303bd600583554aa2bf46697aad68b.zip |
encrypt-decrypt file for the 0.1 branch0.1
git-svn-id: http://cpunk.de/svn/src/gpg4usb/branches/0.1@199 34ebc366-c3a9-4b3c-9f84-69acf7962910
-rw-r--r-- | gpgwin.cpp | 82 | ||||
-rw-r--r-- | gpgwin.h | 4 |
2 files changed, 85 insertions, 1 deletions
@@ -85,6 +85,17 @@ void GpgWin::createActions() saveAsAct->setIcon(QIcon(iconPath + "filesaveas.png")); saveAsAct->setStatusTip(tr("Save the current File as...")); connect(saveAsAct, SIGNAL(triggered()), this, SLOT(saveAs())); + + encryptFileAct = new QAction(tr("&Encrypt File"), this); + //encryptFileAct->setIcon(QIcon(iconPath + "filesave.png")); + //encryptFileAct->setShortcut(tr("Ctrl+S")); + //encryptFileAct->setStatusTip(tr("Save the current File")); + connect(encryptFileAct, SIGNAL(triggered()), this, SLOT(encryptFile())); + + decryptFileAct = new QAction(tr("&Decrypt File"), this); + //decryptFileAct->setIcon(QIcon(iconPath + "filesaveas.png")); + //decryptFileAct->setStatusTip(tr("Save the current File as...")); + connect(decryptFileAct, SIGNAL(triggered()), this, SLOT(decryptFile())); printAct = new QAction(tr("&Print"), this); printAct->setIcon(QIcon(iconPath + "fileprint.png")); @@ -139,7 +150,7 @@ void GpgWin::createActions() decryptAct->setShortcut(tr("Ctrl+D")); decryptAct->setStatusTip(tr("Decrypt Message")); connect(decryptAct, SIGNAL(triggered()), this, SLOT(decrypt())); - + importKeyFromFileAct = new QAction(tr("&File"), this); importKeyFromFileAct->setIcon(QIcon(iconPath + "kgpg_import.png")); importKeyFromFileAct->setStatusTip(tr("Import New Key From File")); @@ -173,6 +184,8 @@ void GpgWin::createMenus() fileMenu->addAction(openAct); fileMenu->addAction(saveAct); fileMenu->addAction(saveAsAct); + fileMenu->addAction(decryptFileAct); + fileMenu->addAction(encryptFileAct); fileMenu->addAction(printAct); fileMenu->addSeparator(); fileMenu->addAction(quitAct); @@ -471,3 +484,70 @@ void GpgWin::importKeyDialog() { } } + +void GpgWin::encryptFile(){ + + QString infileName = QFileDialog::getOpenFileName(this, tr("Open File"), "", tr("Files") + "All Files (*.*)"); + if (infileName.isNull()) return; + + QFile infile; + infile.setFileName(infileName); + if (!infile.open(QIODevice::ReadOnly)) { + qDebug() << tr("couldn't open file: ") + infileName; + } + QByteArray inBuffer = infile.readAll(); + + QList<QString> *uidList = m_keyList->getChecked(); + + QByteArray *outBuffer = new QByteArray(); + if (!myCtx->encrypt(uidList, inBuffer, outBuffer)) return; + + QString outfileName = QFileDialog::getSaveFileName(this); + if (outfileName.isEmpty()) + return; + + QFile outfile(outfileName); + if (!outfile.open(QFile::WriteOnly | QFile::Text)) { + QMessageBox::warning(this, tr("File"), + tr("Cannot write file %1:\n%2.") + .arg(outfileName) + .arg(outfile.errorString())); + return; + } + + QTextStream out(&outfile); + out << outBuffer->data(); +} + +void GpgWin::decryptFile(){ + + QString infileName = QFileDialog::getOpenFileName(this, tr("Open File"), "", tr("Files") + "All Files (*.*)"); + if (infileName.isNull()) return; + + QFile infile; + infile.setFileName(infileName); + if (!infile.open(QIODevice::ReadOnly)) { + qDebug() << tr("couldn't open file: ") + infileName; + } + QByteArray inBuffer = infile.readAll(); + + QByteArray *outBuffer = new QByteArray(); + if (!myCtx->decrypt(inBuffer, outBuffer)) return; + + QString outfileName = QFileDialog::getSaveFileName(this); + if (outfileName.isEmpty()) + return; + + QFile outfile(outfileName); + if (!outfile.open(QFile::WriteOnly | QFile::Text)) { + QMessageBox::warning(this, tr("File"), + tr("Cannot write file %1:\n%2.") + .arg(outfileName) + .arg(outfile.errorString())); + return; + } + + QDataStream out(&outfile); + out.writeRawData(outBuffer->data(), outBuffer->length()); + +} @@ -55,6 +55,8 @@ public slots: bool saveAs(); void open(); void importKeyDialog(); + void encryptFile(); + void decryptFile(); //void browse(); private: @@ -97,6 +99,8 @@ private: QAction *pasteAct; QAction *selectallAct; QAction *aboutAct; + QAction *encryptFileAct; + QAction *decryptFileAct; QString curFile; KeyList *m_keyList; |