rebuild DatabaseSettingsDlg
git-svn-id: https://svn.code.sf.net/p/keepassx/code/trunk@106 b624d157-de02-0410-bad0-e51aec6abb33
This commit is contained in:
parent
f3fd0c681c
commit
0e2725ee06
|
@ -396,4 +396,12 @@ public:
|
|||
virtual bool createKeyFile(const QString& filename,int length=32, bool Hex=false)=0;
|
||||
};
|
||||
|
||||
class IKdbSettings{
|
||||
public:
|
||||
virtual void setCryptAlgorithm(CryptAlgorithm algo)=0;
|
||||
virtual CryptAlgorithm cryptAlgorithm()=0;
|
||||
virtual unsigned int keyTransfRounds()=0;
|
||||
virtual void setKeyTransfRounds(unsigned int rounds)=0;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -48,7 +48,7 @@ void memcpyToLEnd32(char* src,const quint32* dst);
|
|||
void memcpyToLEnd16(char* src,const quint16* dst);
|
||||
|
||||
//! Implementation of the standard KeePassX database.
|
||||
class StandardDatabase:public ICustomIcons,public IDatabase, public IFilePasswordAuth{
|
||||
class StandardDatabase:public ICustomIcons,public IDatabase, public IFilePasswordAuth, public IKdbSettings{
|
||||
Q_OBJECT
|
||||
public:
|
||||
class StdGroup;
|
||||
|
@ -160,6 +160,10 @@ public:
|
|||
virtual QList<IEntryHandle*> search(IGroupHandle* Group,const QString& SearchString, bool CaseSensitve, bool RegExp,bool Recursive,bool* Fields);
|
||||
virtual QFile* file(){return File;}
|
||||
virtual bool changeFile(const QString& filename);
|
||||
virtual void setCryptAlgorithm(CryptAlgorithm algo){Algorithm=algo;}
|
||||
virtual CryptAlgorithm cryptAlgorithm(){return Algorithm;}
|
||||
virtual unsigned int keyTransfRounds(){return KeyTransfRounds;}
|
||||
virtual void setKeyTransfRounds(unsigned int rounds){KeyTransfRounds=rounds;}
|
||||
|
||||
virtual QList<IEntryHandle*> entries();
|
||||
virtual QList<IEntryHandle*> entries(IGroupHandle* Group);
|
||||
|
|
|
@ -401,9 +401,11 @@ yarrow256_force_reseed(struct yarrow256_ctx *ctx)
|
|||
struct yarrow256_ctx WeakCtx;
|
||||
struct yarrow256_ctx StrongCtx;
|
||||
struct yarrow_source WeakSrc[2];
|
||||
struct yarrow_source StrongSrc[2];
|
||||
|
||||
void initYarrow(){
|
||||
yarrow256_init(&WeakCtx,2,WeakSrc);
|
||||
yarrow256_init(&StrongCtx,2,StrongSrc);
|
||||
quint8 buffer[100];
|
||||
srand(time(0));
|
||||
for(int i=0;i<100;i++)
|
||||
|
@ -416,5 +418,14 @@ void initYarrow(){
|
|||
}
|
||||
|
||||
void randomize(void* buffer, unsigned int length){
|
||||
yarrow256_random(&WeakCtx,length,(quint8*)buffer);
|
||||
if(!yarrow256_is_seeded(&StrongCtx))
|
||||
yarrow256_random(&WeakCtx,length,(quint8*)buffer);
|
||||
else
|
||||
yarrow256_random(&StrongCtx,length,(quint8*)buffer);
|
||||
}
|
||||
|
||||
void strongRandomize(void* buffer, unsigned int length){
|
||||
Q_ASSERT(yarrow256_is_seeded(&StrongCtx));
|
||||
for(int i=0; i<length;i++)
|
||||
yarrow256_random(&StrongCtx,1,(quint8*)buffer+i);
|
||||
}
|
||||
|
|
|
@ -17,10 +17,11 @@
|
|||
* Free Software Foundation, Inc., *
|
||||
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
||||
***************************************************************************/
|
||||
#include <qcombobox.h>
|
||||
#include <qlineedit.h>
|
||||
#include <qmessagebox.h>
|
||||
//Added by qt3to4:
|
||||
|
||||
#include <QPainter>
|
||||
#include <QComboBox>
|
||||
#include <QLineEdit>
|
||||
#include <QMessageBox>
|
||||
#include <QShowEvent>
|
||||
#include "main.h"
|
||||
#include "DatabaseSettingsDlg.h"
|
||||
|
@ -29,66 +30,51 @@
|
|||
CDbSettingsDlg::CDbSettingsDlg(QWidget* parent,IDatabase* db, bool modal, Qt::WFlags fl)
|
||||
: QDialog(parent,fl)
|
||||
{
|
||||
setupUi(this);
|
||||
database=db;
|
||||
connect( ButtonOK, SIGNAL( clicked() ), this, SLOT( OnOK() ) );
|
||||
connect( ButtonCancel, SIGNAL( clicked() ), this, SLOT( OnCancel() ) );
|
||||
setupUi(this);
|
||||
database=dynamic_cast<IKdbSettings*>(db);
|
||||
createBanner(&BannerPixmap,Icon_Settings32x32,tr("Settings"),width());
|
||||
ComboAlgo->insertItem(0,tr("AES(Rijndael): 256 Bit (default)"));
|
||||
ComboAlgo->insertItem(1,tr("Twofish: 256 Bit"));
|
||||
ComboAlgo->setCurrentIndex(database->cryptAlgorithm()); //Achtung: AlgoID muss gleich dem ComboBox Index sein!
|
||||
EditRounds->setText(QString::number(database->keyTransfRounds()));
|
||||
connect( ButtonOK, SIGNAL( clicked() ), this, SLOT( OnOK() ) );
|
||||
connect( ButtonCancel, SIGNAL( clicked() ), this, SLOT( OnCancel() ) );
|
||||
}
|
||||
|
||||
CDbSettingsDlg::~CDbSettingsDlg()
|
||||
{
|
||||
}
|
||||
|
||||
void CDbSettingsDlg::showEvent(QShowEvent *event){
|
||||
//@NICHTVERGESSEN
|
||||
/*
|
||||
if(event->spontaneous()==false){
|
||||
createBanner(Banner,Icon_Settings32x32,tr("Settings"));
|
||||
ComboAlgo->insertItem(0,tr("AES(Rijndael): 256 Bit (default)"));
|
||||
ComboAlgo->insertItem(1,tr("Twofish: 256 Bit"));
|
||||
ComboAlgo->setCurrentIndex(database->CryptoAlgorithmus); //Achtung: AlgoID muss gleich dem ComboBox Index sein!
|
||||
EditRounds->setText(QString::number(database->KeyEncRounds));
|
||||
|
||||
}
|
||||
*/
|
||||
void CDbSettingsDlg::paintEvent(QPaintEvent *event){
|
||||
QDialog::paintEvent(event);
|
||||
QPainter painter(this);
|
||||
painter.setClipRegion(event->region());
|
||||
painter.drawPixmap(QPoint(0,0),BannerPixmap);
|
||||
}
|
||||
|
||||
void CDbSettingsDlg::OnCancel()
|
||||
{
|
||||
done(0);
|
||||
done(0);
|
||||
}
|
||||
|
||||
|
||||
void CDbSettingsDlg::OnOK()
|
||||
{
|
||||
if(EditRounds->text()==""){
|
||||
QMessageBox::warning(NULL,tr("Warning"),tr("Please determine the number of encryption rounds."),tr("OK"));
|
||||
return;
|
||||
if(EditRounds->text()==""){
|
||||
QMessageBox::warning(NULL,tr("Warning"),tr("Please determine the number of encryption rounds."),tr("OK"));
|
||||
return;
|
||||
}
|
||||
bool valid;
|
||||
int rounds=EditRounds->text().toUInt(&valid,10);
|
||||
if(valid==false){
|
||||
QMessageBox::warning(NULL,tr("Error"),tr("'%1' is not valid integer value.").arg(EditRounds->text()),tr("OK"));
|
||||
return;
|
||||
}
|
||||
if(rounds==0){
|
||||
QMessageBox::warning(NULL,tr("Error"),tr("The number of encryption rounds have to be greater than 0."),tr("OK"));
|
||||
return;
|
||||
}
|
||||
database->setKeyTransfRounds(rounds);
|
||||
database->setCryptAlgorithm((CryptAlgorithm)ComboAlgo->currentIndex());
|
||||
done(1);
|
||||
}
|
||||
bool valid;
|
||||
int rounds=EditRounds->text().toUInt(&valid,10);
|
||||
if(valid==false){
|
||||
QMessageBox::warning(NULL,tr("Error"),tr("'%1' is not valid integer value.").arg(EditRounds->text()),tr("OK"));
|
||||
return;
|
||||
}
|
||||
if(rounds==0){
|
||||
QMessageBox::warning(NULL,tr("Error"),tr("The number of encryption rounds have to be greater than 0."),tr("OK"));
|
||||
return;
|
||||
}
|
||||
|
||||
//@NICHTVERGESSEN
|
||||
//database->KeyEncRounds=rounds;
|
||||
//database->CryptoAlgorithmus=ComboAlgo->currentIndex();
|
||||
|
||||
done(1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*$SPECIALIZATION$*/
|
||||
|
||||
|
||||
//#include "databasesettingsdlg.moc"
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/***************************************************************************
|
||||
* Copyright (C) 2005 by Tarek Saidi *
|
||||
* tarek@linux *
|
||||
* Copyright (C) 2005-2006 by Tarek Saidi *
|
||||
* tarek.saidi@arcor.de *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
|
@ -17,39 +17,30 @@
|
|||
* Free Software Foundation, Inc., *
|
||||
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef DBSETTINGSDLG_H
|
||||
#define DBSETTINGSDLG_H
|
||||
|
||||
#include "ui_DatabaseSettingsDlg.h"
|
||||
#include "main.h"
|
||||
#include "Database.h"
|
||||
//Added by qt3to4:
|
||||
#include <QShowEvent>
|
||||
#include <QPaintEvent>
|
||||
|
||||
class CDbSettingsDlg : public QDialog, public Ui_dbsettingdlg_base
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_OBJECT
|
||||
public:
|
||||
CDbSettingsDlg(QWidget* parent,IDatabase* db, bool modal = FALSE, Qt::WFlags fl = 0 );
|
||||
~CDbSettingsDlg();
|
||||
virtual void paintEvent(QPaintEvent *);
|
||||
|
||||
public:
|
||||
CDbSettingsDlg(QWidget* parent,IDatabase* db, bool modal = FALSE, Qt::WFlags fl = 0 );
|
||||
~CDbSettingsDlg();
|
||||
virtual void showEvent(QShowEvent *);
|
||||
/*$PUBLIC_FUNCTIONS$*/
|
||||
public slots:
|
||||
virtual void OnCancel();
|
||||
virtual void OnOK();
|
||||
|
||||
public slots:
|
||||
/*$PUBLIC_SLOTS$*/
|
||||
|
||||
protected:
|
||||
/*$PROTECTED_FUNCTIONS$*/
|
||||
|
||||
protected slots:
|
||||
/*$PROTECTED_SLOTS$*/
|
||||
|
||||
public slots:
|
||||
virtual void OnCancel();
|
||||
virtual void OnOK();
|
||||
|
||||
private:
|
||||
IDatabase* database;
|
||||
private:
|
||||
IKdbSettings* database;
|
||||
QPixmap BannerPixmap;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -60,22 +60,6 @@
|
|||
<string>Algorithm:</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="pushButton1" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>390</x>
|
||||
<y>0</y>
|
||||
<width>20</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>?</string>
|
||||
</property>
|
||||
<property name="shortcut" >
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QComboBox" name="ComboAlgo" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
|
@ -110,22 +94,6 @@
|
|||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QLabel" name="Banner" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>440</width>
|
||||
<height>51</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="pixmap" >
|
||||
<pixmap>image0</pixmap>
|
||||
</property>
|
||||
<property name="scaledContents" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="ButtonOK" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
|
|
|
@ -436,12 +436,15 @@ void KeepassMainWindow::OnFileNewKxdb(){
|
|||
|
||||
|
||||
void KeepassMainWindow::OnFileOpen(){
|
||||
QString filename=QFileDialog::getOpenFileName(this,tr("Open Database..."),QDir::homePath(),"*.kdb");
|
||||
if(filename!=QString()){
|
||||
if(FileOpen)
|
||||
if(!closeDatabase())return;
|
||||
openDatabase(filename);
|
||||
}
|
||||
QFileDialog FileDlg(this,tr("Open Database..."),QDir::homePath());
|
||||
FileDlg.setFilters(QStringList()<< tr("KeePass Databases (*.kdb)")<< tr("All Files (*)"));
|
||||
FileDlg.setFileMode(QFileDialog::ExistingFile);
|
||||
FileDlg.setAcceptMode(QFileDialog::AcceptOpen);
|
||||
if(!FileDlg.exec())return;
|
||||
if(!FileDlg.selectedFiles().size())return;
|
||||
if(FileOpen)
|
||||
if(!closeDatabase())return;
|
||||
openDatabase(FileDlg.selectedFiles()[0]);
|
||||
}
|
||||
|
||||
void KeepassMainWindow::OnFileClose(){
|
||||
|
|
Loading…
Reference in New Issue