More options

This commit is contained in:
Christian 2007-05-16 00:10:30 +02:00
parent b0b9cd1d00
commit 0ee1de2b3b
8 changed files with 45 additions and 10 deletions

View File

@ -49,7 +49,7 @@ QStringList db_key::get0PrivateDesc()
QStringList x;
x.clear();
FOR_ALL_pki(pki, pki_key) {
if (pki->isPrivKey() && pki->getUcount() == 0)
if (pki->isPrivKey() && (pki->getUcount() == 0 || mainwin->multiple_key_use))
x.append(pki->getIntNameWithType());
}
return x;

View File

@ -112,7 +112,7 @@ p, li { white-space: pre-wrap; }
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkBox" >
<widget class="QCheckBox" name="multiple_use" >
<property name="text" >
<string>Allow multiple use of keys</string>
</property>

View File

@ -78,12 +78,27 @@ void MainWindow::init_database()
free(p);
}
}
mydb.first();
if (!mydb.find(setting, "default_hash")) {
if ((p = (char *)mydb.load(NULL))) {
hashBox::setDefault(p);
free(p);
}
}
mydb.first();
if (!mydb.find(setting, "mandatory_dn")) {
if ((p = (char *)mydb.load(NULL))) {
mandatory_dn = p;
free(p);
}
}
mydb.first();
if (!mydb.find(setting, "multiple_key_use")) {
if ((p = (char *)mydb.load(NULL))) {
multiple_key_use = *p ? true : false;
free(p);
}
}
} catch (errorEx &err) {
Error(err);
return;

View File

@ -134,8 +134,10 @@ void MainWindow::import_dbdump()
void MainWindow::setOptions()
{
Options *opt = new Options(this);
unsigned char bol;
Options *opt = new Options(this, mandatory_dn);
opt->multiple_use->setChecked(multiple_key_use);
if (!opt->exec())
return;
@ -145,8 +147,13 @@ void MainWindow::setOptions()
setting, "default_hash");
hashBox::setDefault(alg);
QString mandatory = opt->getDnString();
printf("DNString = %s\n", CCHAR(mandatory));
mydb.set((const unsigned char *)CCHAR(mandatory), mandatory.length()+1, 1,
setting, "mandatory_dn");
mandatory_dn = opt->getDnString();
printf("DNString = %s\n", CCHAR(mandatory_dn));
mydb.set((const unsigned char *)CCHAR(mandatory_dn),
mandatory_dn.length()+1, 1, setting, "mandatory_dn");
multiple_key_use = opt->multiple_use->isChecked();
bol = multiple_key_use ? 1 : 0;
mydb.set(&bol, sizeof(bol), 1, setting, "multiple_key_use");
}

View File

@ -53,6 +53,8 @@ MainWindow::MainWindow(QWidget *parent )
statusBar()->addWidget(dbindex, 1);
force_load = 0;
multiple_key_use = false;
mandatory_dn = "";
setupUi(this);
setWindowTitle(tr(XCA_TITLE));

View File

@ -34,6 +34,7 @@ class MainWindow: public QMainWindow, public Ui::MainWindow
QString workingdir;
QList<QWidget*> wdList;
QList<QAction*> acList;
QString mandatory_dn;
protected:
void init_images();
@ -54,6 +55,7 @@ class MainWindow: public QMainWindow, public Ui::MainWindow
int exitApp;
QString dbfile;
QLabel *dbindex;
bool multiple_key_use;
MainWindow(QWidget *parent);
virtual ~MainWindow();

View File

@ -8,20 +8,29 @@
#include "Options.h"
#include <openssl/objects.h>
Options::Options(QWidget *parent)
Options::Options(QWidget *parent, QString dn)
:QDialog(parent)
{
QStringList dnl = dn.split(",");
if (dn.isEmpty())
dnl.clear();
NIDlist dn_nid = *MainWindow::dn_nid;
setWindowTitle(tr(XCA_TITLE));
setupUi(this);
for (int i=0; i < dn_nid.count(); i++)
extDNobj->addItem(OBJ_nid2ln(dn_nid[i]));
for (int i=0; i < dnl.count(); i++) {
int nid;
nid = OBJ_sn2nid(CCHAR(dnl[i]));
extDNlist->insertItem(0, OBJ_nid2ln(nid));
}
}
void Options::on_extDNadd_clicked()
{
extDNlist->insertItem(0, extDNobj->currentText());
extDNlist->addItem(extDNobj->currentText());
}
void Options::on_extDNdel_clicked()
{

View File

@ -17,7 +17,7 @@ class Options: public QDialog, public Ui::Options
{
Q_OBJECT
public:
Options(QWidget *parent);
Options(QWidget *parent, QString dn);
public slots:
void on_extDNadd_clicked();
void on_extDNdel_clicked();