aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorubbo <ubbo@34ebc366-c3a9-4b3c-9f84-69acf7962910>2008-12-17 12:51:10 +0000
committerubbo <ubbo@34ebc366-c3a9-4b3c-9f84-69acf7962910>2008-12-17 12:51:10 +0000
commit9cc537cc2c303bd600583554aa2bf46697aad68b (patch)
tree2f71d5b911df212d5a9002245bfc4a909087ba3a
parentfixed translation files (diff)
downloadgpg4usb-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.cpp82
-rw-r--r--gpgwin.h4
2 files changed, 85 insertions, 1 deletions
diff --git a/gpgwin.cpp b/gpgwin.cpp
index 5b66ab2..9a0192b 100644
--- a/gpgwin.cpp
+++ b/gpgwin.cpp
@@ -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());
+
+}
diff --git a/gpgwin.h b/gpgwin.h
index 85043b5..dd69f7a 100644
--- a/gpgwin.h
+++ b/gpgwin.h
@@ -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;