From c09ed5ea680aef73276cd33e021c97f12d8d8b74 Mon Sep 17 00:00:00 2001 From: chris Date: Thu, 17 Oct 2002 17:13:20 +0000 Subject: [PATCH] remembers Im/Export directorys Database errors are written through CERR makro --- MainWindow.cpp | 20 +++++++++++++++++--- MainWindow.h | 2 ++ MainWindowKeys.cpp | 7 ++++++- MainWindowX509.cpp | 20 ++++++++++++++++---- MainWindowX509Req.cpp | 10 ++++++++-- README | 2 +- 6 files changed, 50 insertions(+), 11 deletions(-) diff --git a/MainWindow.cpp b/MainWindow.cpp index 604fcc98..2b9d0d26 100644 --- a/MainWindow.cpp +++ b/MainWindow.cpp @@ -84,7 +84,7 @@ MainWindow::MainWindow(QWidget *parent, const char *name ) #endif try { dbenv = new DbEnv(0); - //dbenv->set_errcall(&MainWindow::dberr); + dbenv->set_errcall(&MainWindow::dberr); dbenv->open(baseDir.latin1(), DB_RECOVER | DB_INIT_TXN | DB_INIT_MPOOL | DB_INIT_LOG | DB_INIT_LOCK | DB_CREATE , 0600 ); MARK } @@ -306,7 +306,21 @@ void MainWindow::crashApp() nullpointer->getDescription(); } -void dberr(const char *errpfx, char *msg) +void MainWindow::dberr(const char *errpfx, char *msg) { -// CERR(errpfx << " " << msg); + CERR(errpfx << " " << msg); +} + +void MainWindow::setPath(QFileDialog *dlg) +{ + string wd = settings->getString("workingdir"); + if (!wd.empty()) { + dlg->setDir(QString(wd.c_str())); + } +} + +void MainWindow::newPath(QFileDialog *dlg) +{ + string wd = dlg->dirPath().latin1(); + settings->putString("workingdir", wd); } diff --git a/MainWindow.h b/MainWindow.h index 2b67f6c9..1f98f587 100644 --- a/MainWindow.h +++ b/MainWindow.h @@ -196,6 +196,8 @@ class MainWindow: public MainWindow_UI void setTemplate(); void genCrl(); void crashApp(); + void setPath(QFileDialog *dlg); + void newPath(QFileDialog *dlg); signals: void keyDone(QString name); }; diff --git a/MainWindowKeys.cpp b/MainWindowKeys.cpp index a0c2dac7..be6e1c2d 100644 --- a/MainWindowKeys.cpp +++ b/MainWindowKeys.cpp @@ -197,8 +197,11 @@ void MainWindow::loadKey() dlg->setCaption("Import key"); dlg->setFilters(filt); dlg->setMode( QFileDialog::ExistingFiles ); - if (dlg->exec()) + setPath(dlg); + if (dlg->exec()) { slist = dlg->selectedFiles(); + newPath(dlg); + } delete dlg; for ( QStringList::Iterator it = slist.begin(); it != slist.end(); ++it ) { s = *it; @@ -261,10 +264,12 @@ void MainWindow::writeKey() ExportKey *dlg = new ExportKey((targetKey->getDescription() + ".pem").c_str(), targetKey->isPubKey(), this); dlg->image->setPixmap(*keyImg); + //setPath(dlg); if (!dlg->exec()) { delete dlg; return; } + //newPath(dlg); string fname = dlg->filename->text().latin1(); if (fname == "") { delete dlg; diff --git a/MainWindowX509.cpp b/MainWindowX509.cpp index 933dca1b..41d383fe 100644 --- a/MainWindowX509.cpp +++ b/MainWindowX509.cpp @@ -466,8 +466,11 @@ void MainWindow::loadCert() dlg->setCaption(tr("Certificate import")); dlg->setFilters(filt); dlg->setMode( QFileDialog::ExistingFiles ); - if (dlg->exec()) + setPath(dlg); + if (dlg->exec()) { slist = dlg->selectedFiles(); + newPath(dlg); + } delete dlg; for ( QStringList::Iterator it = slist.begin(); it != slist.end(); ++it ) { @@ -499,8 +502,11 @@ void MainWindow::loadPKCS12() dlg->setCaption(tr("Certificate import")); dlg->setFilters(filt); dlg->setMode( QFileDialog::ExistingFiles ); - if (dlg->exec()) + setPath(dlg); + if (dlg->exec()) { slist = dlg->selectedFiles(); + newPath(dlg); + } delete dlg; for ( QStringList::Iterator it = slist.begin(); it != slist.end(); ++it ) { s = *it; @@ -582,8 +588,11 @@ void MainWindow::writeCert() dlg->setFilters(filt); dlg->setMode( QFileDialog::AnyFile ); dlg->setSelection( (cert->getDescription() + ".crt").c_str() ); - if (dlg->exec()) + setPath(dlg); + if (dlg->exec()) { s = dlg->selectedFile(); + newPath(dlg); + } delete dlg; if (s.isEmpty()) return; s = QDir::convertSeparators(s); @@ -617,8 +626,11 @@ void MainWindow::writePKCS12() dlg->setFilters(filt); dlg->setMode( QFileDialog::AnyFile ); dlg->setSelection( (cert->getDescription() + ".p12").c_str() ); - if (dlg->exec()) + setPath(dlg); + if (dlg->exec()) { s = dlg->selectedFile(); + newPath(dlg); + } delete dlg; if (s.isEmpty()) return; s=QDir::convertSeparators(s); diff --git a/MainWindowX509Req.cpp b/MainWindowX509Req.cpp index 10bc241b..13219145 100644 --- a/MainWindowX509Req.cpp +++ b/MainWindowX509Req.cpp @@ -173,8 +173,11 @@ void MainWindow::loadReq() dlg->setCaption(tr("Import Certificate signing request")); dlg->setFilters(filt); dlg->setMode( QFileDialog::ExistingFiles ); - if (dlg->exec()) + setPath(dlg); + if (dlg->exec()) { slist = dlg->selectedFiles(); + newPath(dlg); + } delete dlg; for ( QStringList::Iterator it = slist.begin(); it != slist.end(); ++it ) { s = *it; @@ -213,8 +216,11 @@ void MainWindow::writeReq() dlg->setFilters(filt); dlg->setMode( QFileDialog::AnyFile ); dlg->setSelection( (req->getDescription() + ".pem").c_str() ); - if (dlg->exec()) + setPath(dlg); + if (dlg->exec()) { s = dlg->selectedFile(); + newPath(dlg); + } delete dlg; if (s.isEmpty()) return; s=QDir::convertSeparators(s); diff --git a/README b/README index af38a705..66028e46 100644 --- a/README +++ b/README @@ -19,7 +19,7 @@ QT-2.2.4 from http://www.troll.no BercleyDB-3.3 from http://www.sleepycat.com OpenSSl-0.9.6 from http://www.openssl.org -GNU C++ compiler 2.9.5 +GNU C++ compiler 2.95 GNU make