work on CPasswordDlg (incomplete)

git-svn-id: https://svn.code.sf.net/p/keepassx/code/trunk@54 b624d157-de02-0410-bad0-e51aec6abb33
This commit is contained in:
tariq 2006-03-15 07:06:23 +00:00
parent 853747bce1
commit e0a2197b53
14 changed files with 438 additions and 1844 deletions

View File

@ -24,6 +24,17 @@
#include <iostream>
using namespace std;
#ifdef Q_WS_MAC
#define DEFAULT_MOUNT_DIR "/Volumes/"
#endif
#ifdef Q_WS_X11
#define DEFAULT_MOUNT_DIR "/media/"
#endif
#ifdef Q_WS_WIN
#define DEFAULT_MOUNT_DIR "/"
#endif
bool CConfig::loadFromIni(QString filename){
ini.SetPath((const char*)filename);
ini.ReadFile();
@ -54,6 +65,11 @@ MainWinSplit2=ini.GetValueI("UI","MainWinSplit2",300);
ParseIntString(ini.GetValue("UI","ColumnSizes","15,10,10,10,10,10,10,10,10,10").c_str(),ColumnSizes,10);
ShowStatusbar=ini.GetValueB("UI","ShowStatusbar",true);
AlternatingRowColors=ini.GetValueB("Options","AlternatingRowColors",true);
MountDir=ini.GetValue("Options","MountDir",DEFAULT_MOUNT_DIR).c_str();
RememberLastKey=ini.GetValueB("Options","RememberLastKey",true);
LastKeyLocation=ini.GetValue("Options","LastKeyLocation","").c_str();
LastKeyType=(tKeyType)ini.GetValueI("Option","LastKeyType",(int)PASSWORD);
if(!OpenLast)RememberLastKey=false;
return true;
}
@ -85,6 +101,14 @@ ini.SetValueI("UI","MainWinSplit2",MainWinSplit2);
ini.SetValue("UI","ColumnSizes",(const char*)CreateIntString(ColumnSizes,10),true);
ini.SetValueB("UI","ShowStatusbar",ShowStatusbar);
ini.SetValueB("Options","AlternatingRowColors",AlternatingRowColors);
ini.SetValue("Options","MountDir",(const char*)MountDir);
ini.SetValueB("Options","RememberLastKey",RememberLastKey);
if(RememberLastKey){
ini.SetValue("Options","LastKeyLocation",(const char*)LastKeyLocation);
ini.SetValueI("Options","LastKeyType",LastKeyType);}
else{
ini.SetValue("Options","LastKeyLocation","");
ini.SetValueI("Options","LastKeyType",0);}
if(!ini.WriteFile())return false;
else return true;
}

View File

@ -20,6 +20,7 @@
#ifndef _PWMCONFIG_H_
#define _PWMCONFIG_H_
#include "main.h"
#include "lib/IniReader.h"
#include <qcolor.h>
@ -53,6 +54,10 @@ public:
int ColumnSizes[10];
bool ShowStatusbar;
bool AlternatingRowColors;
QString MountDir;
bool RememberLastKey; //location and type, not the key itself
tKeyType LastKeyType;
QString LastKeyLocation;
bool loadFromIni(QString filename);
bool saveToIni(QString filename);

View File

@ -18,6 +18,7 @@
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
#include "main.h"
#include "PwmConfig.h"
#include "PwManager.h"
#include "../lib/random.h"
#include "ChangeKeyDlg.h"
@ -93,7 +94,7 @@ Q_UINT8 pw_key[32]={0};
if(keyfile!=""){
QFile file(keyfile);
if(file.exists()){
int r=QMessageBox::warning(this,tr("Overwrite?"),tr("A file with this name already exists.\nDo you want to replace it?"),"Yes","No",NULL,1,1);
int r=QMessageBox::warning(this,tr("Overwrite?"),tr("A key file with this name already exists.\nDo you want to replace it?"),"Yes","No",NULL,1,1);
if(r==1)return;}
getRandomBytes(file_key,1,32,true);
if(file.open(QIODevice::WriteOnly | QIODevice::Truncate)==false){

View File

@ -18,7 +18,7 @@
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
#include "main.h"
#include "PwmConfig.h"
#include <qpushbutton.h>
#include <qpalette.h>
#include <qfont.h>

View File

@ -19,30 +19,24 @@
***************************************************************************/
#include "main.h"
#include "PwmConfig.h"
#include "PasswordDlg.h"
#include <qdir.h>
#include <qstringlist.h>
#include <qcheckbox.h>
#include <q3valuelist.h>
#include <qlineedit.h>
#include <qcombobox.h>
#include <qpushbutton.h>
#include <q3filedialog.h>
#include <qmessagebox.h>
#include <QFileDialog>
#include <QDir>
#include <QStringList>
#include <QCheckBox>
#include <QLineEdit>
#include <QComboBox>
#include <QPushButton>
#include <QMessageBox>
CPasswordDialog::CPasswordDialog(QWidget* parent, const char* name, bool modal, bool ShowExitButton, Qt::WFlags fl)
CPasswordDialog::CPasswordDialog(QWidget* parent, const char* name, bool modal, bool ShowExitButton,bool ChangeKeyMode, Qt::WFlags fl)
: QDialog(parent,name, modal,fl)
{
setupUi(this);
ButtonExit->setVisible(ShowExitButton);
createBanner(Banner,Icon_Key32x32,tr("Open Database"));
Label_select=new LinkLabel((QWidget*)groupframe,"Select",tr("Select File Manually..."),410,100);
connect( Combo_Dirs, SIGNAL( activated(int) ), this, SLOT( OnComboSelectionChanged(int) ) );
connect( ButtonBrowse, SIGNAL( clicked() ), this, SLOT( OnButtonBrowse() ) );
connect( ButtonOK, SIGNAL( clicked() ), this, SLOT( OnOK() ) );
createBanner(Banner,Icon_Key32x32,tr("Database Key"));
connect( Combo_Dirs, SIGNAL( editTextChanged(const QString&) ),this, SLOT( OnComboTextChanged(const QString&)));
connect( ButtonCancel, SIGNAL( clicked() ), this, SLOT( OnCancel() ) );
connect( Edit_Password, SIGNAL( textChanged(const QString&) ), this, SLOT( OnPasswordChanged(const QString&) ) );
connect( CheckBox_Both, SIGNAL( stateChanged(int) ), this, SLOT( OnCheckBox_BothChanged(int) ) );
@ -50,99 +44,85 @@ connect( ButtonChangeEchoMode, SIGNAL( clicked() ), this, SLOT( ChangeEchoMode()
connect( Edit_Password, SIGNAL( returnPressed() ), this, SLOT( OnOK() ) );
connect( ButtonExit, SIGNAL( clicked()),this,SLOT(OnButtonExit()));
QDir media("/media");
ButtonExit->setVisible(ShowExitButton);
Mode_Set=ChangeKeyMode;
if(!ChangeKeyMode){
Edit_PasswordRep->hide();
Label_PasswordRep->hide();
connect( ButtonOK, SIGNAL( clicked() ), this, SLOT( OnOK() ) );
connect( ButtonBrowse, SIGNAL( clicked() ), this, SLOT( OnButtonBrowse() ) );
}else{
connect( ButtonOK, SIGNAL( clicked() ), this, SLOT( OnOK_Set() ) );
connect( ButtonBrowse, SIGNAL( clicked() ), this, SLOT( OnButtonBrowse_Set() ) );
}
QDir media(config.MountDir);
if(media.exists()){
Paths=media.entryList("*",QDir::Dirs);
Paths.erase(Paths.begin()); // delete "."
Paths.erase(Paths.begin()); // delete ".."
for(int i=0;i<Paths.count();i++){
Paths[i]="/media/"+Paths[i];
}
Paths.prepend(tr("< none >"));
}
for(int i=0;i<Paths.count();i++){
Combo_Dirs->insertItem(0,Paths[i]);
IsFile.append(false);
QStringList Paths;
Paths=media.entryList("*",QDir::Dirs);
Paths.erase(Paths.begin()); // delete "."
Paths.erase(Paths.begin()); // delete ".."
for(int i=0;i<Paths.count();i++)
Combo_Dirs->addItem(config.MountDir+Paths[i]);
}
Combo_Dirs->setEditText(QString());
if(!config.ShowPasswords)ChangeEchoMode();
}
CPasswordDialog::~CPasswordDialog()
{
delete Label_select;
}
void CPasswordDialog::OnComboSelectionChanged(int i)
{
if(i==0){
keyfile="";
void CPasswordDialog::setStatePasswordOnly(){
Combo_Dirs->setEnabled(false);
ButtonBrowse->setEnabled(false);
Label_KeyFile->setEnabled(false);
Label_Password->setEnabled(true);
Edit_Password->setEnabled(true);
return;
ButtonChangeEchoMode->setEnabled(true);
KeyType=PASSWORD;
}
QFile file;
if(IsFile[i]==true)file.setName(Paths[i]);
else file.setName(Paths[i]+"/pwsafe.key");
if(file.exists()){
keyfile=file.name();
if(!CheckBox_Both->isChecked()){
Edit_Password->setText("");
Edit_Password->setDisabled(true);}
return;
void CPasswordDialog::setStateKeyFileOnly(){
Combo_Dirs->setEnabled(true);
ButtonBrowse->setEnabled(true);
Label_KeyFile->setEnabled(true);
Label_Password->setEnabled(false);
Edit_Password->setEnabled(false);
ButtonChangeEchoMode->setEnabled(false);
KeyType=KEYFILE;
}
QMessageBox::warning(this,tr("No key file found"),tr(
"No key file could be found in the chosen directory.\n\
Make sure that the volume is mounted correctly.\n\
Please use the manual file selection for key files with a filename other than 'pwsafe.key'.")
,tr("OK"),"","",0,0);
void CPasswordDialog::setStateBoth(){
Combo_Dirs->setEnabled(true);
ButtonBrowse->setEnabled(true);
Label_KeyFile->setEnabled(true);
Label_Password->setEnabled(true);
Edit_Password->setEnabled(true);
Combo_Dirs->setCurrentItem(0);
return;
ButtonChangeEchoMode->setEnabled(true);
KeyType=BOTH;
}
void CPasswordDialog::OnButtonBrowse()
{
QString dir=Q3FileDialog::getExistingDirectory(QDir::homeDirPath(),NULL,tr("Browse..."));
if(dir=="")return;
QFile file(dir+"/pwsafe.key");
QString filename=QFileDialog::getOpenFileName(this,tr("Select a Key File"),QDir::homeDirPath(),tr("*.key"));
if(filename=="")return;
QFile file(filename);
if(file.exists()){
keyfile=dir+"/pwsafe.key";
Combo_Dirs->insertItem(dir);
Combo_Dirs->setCurrentItem(Combo_Dirs->count()-1);
if(!CheckBox_Both->isChecked()){
Edit_Password->setDisabled(true);
Edit_Password->setText("");
password="";
Combo_Dirs->setEditText(filename);
return;
}
Paths.append(dir);
IsFile.append(false);
return;}
QMessageBox::warning(this,tr("No key file found"),tr(
"No key file could be found in the chosen directory.\n\
Make sure that the volume is mounted correctly.\n\
Please use the manual file selection for key files with a filename other than 'pwsafe.key'.")
,tr("OK"),"","",0,0);
QMessageBox::warning(this,tr("Error"),tr("Unexpected Error: File does not exist."),tr("OK"),"","",0,0);
}
void CPasswordDialog::OnSelectClicked()
void CPasswordDialog::OnButtonBrowse_Set()
{
if(ButtonBrowse->isEnabled()){
keyfile=Q3FileDialog::getOpenFileName(QDir::homeDirPath(),"",this,tr("Open Key File"));
if(keyfile=="")return;
Combo_Dirs->insertItem(keyfile);
Combo_Dirs->setCurrentItem(Combo_Dirs->count()-1);
if(!CheckBox_Both->isChecked()){
Edit_Password->setDisabled(true);
Edit_Password->setText("");
password="";
}
Paths.append(keyfile);
IsFile.append(true);
}
QString filename=QFileDialog::getSaveFileName(this,tr("Select a Key File"),QDir::homeDirPath(),tr("*.key"));
if(filename=="")return;
Combo_Dirs->setEditText(filename);
}
void CPasswordDialog::OnCancel()
@ -150,64 +130,119 @@ void CPasswordDialog::OnCancel()
done(0);
}
void CPasswordDialog::OnOK()
{
void CPasswordDialog::OnOK(){
password=Edit_Password->text();
keyfile=Combo_Dirs->currentText();
if(CheckBox_Both->isChecked()){
if(password==""){QMessageBox::warning(this,tr("Error"),tr("Please enter a Password.")
,tr("OK"),"","",0,0);
if(password=="" && keyfile==""){
QMessageBox::warning(this,tr("Error"),tr("Please enter a Password or select a key file."),tr("OK"),"","",0,0);
return;}
if(keyfile==""){QMessageBox::warning(this,tr("Error"),tr("Please choose a key file.")
,tr("OK"),"","",0,0);
if(KeyType==BOTH){
if(password==""){
QMessageBox::warning(this,tr("Error"),tr("Please enter a Password."),tr("OK"),"","",0,0);
return;}
if(keyfile==""){
QMessageBox::warning(this,tr("Error"),tr("Please choose a key file."),tr("OK"),"","",0,0);
return;}
}
else
{
if(password=="" && keyfile==""){QMessageBox::warning(this,tr("Error")
,tr("Please enter a Password or select a key file.")
,tr("OK"),"","",0,0);
if(KeyType==BOTH || KeyType==KEYFILE){
QFileInfo fileinfo(keyfile);
if(!fileinfo.exists()){
QMessageBox::warning(this,tr("Error"),tr("The selected key file or directory does not exist."),tr("OK"),"","",0,0);
return;
}
if(!fileinfo.isReadable()){
QMessageBox::warning(this,tr("Error"),tr("The selected key file or directory is not readable\n.Please check your permissions."),tr("OK"),"","",0,0);
return;
}
if(fileinfo.isDir()){
if(keyfile.right(1)!="/")keyfile+="/";
QFile file(keyfile+"pwsafe.key");
if(!file.exists()){
QDir dir(keyfile);
QStringList files;
files=dir.entryList("*.key",QDir::Files);
if(!files.size()){
QMessageBox::warning(this,tr("Error"),tr("The given directory does not contain any key files."),tr("OK"),"","",0,0);
return;}
if(files.size()>1){
QMessageBox::warning(this,tr("Error"),tr("The given directory contains more then one key file.\nPlease specify the key file directly."),tr("OK"),"","",0,0);
return;}
QFile file(keyfile+files[0]);
Q_ASSERT(file.exists());
if(!QFileInfo(file).isReadable()){
QMessageBox::warning(this,tr("Error"),tr("The key file found in the given directory is not readable.\nPlease check your permissions."),tr("OK"),"","",0,0);
return;}
keyfile+=files[0];
}else{
if(!QFileInfo(file).isReadable()){
QMessageBox::warning(this,tr("Error"),tr("The key file found in the given directory is not readable.\nPlease check your permissions."),tr("OK"),"","",0,0);
return;}
keyfile+="pwsafe.key";
}
}else{
QFile file(keyfile);
if(!file.exists()){
QMessageBox::warning(this,tr("Error"),tr("Key file could not be found."),tr("OK"),"","",0,0);
return;}
if(!QFileInfo(file).isReadable()){
QMessageBox::warning(this,tr("Error"),tr("Key file is not readable.\nPlease check your permissions."),tr("OK"),"","",0,0);
return;}
}
}
done(1);
}
void CPasswordDialog::OnPasswordChanged(const QString &txt)
{
password=Edit_Password->text();
if(txt!="" && !(CheckBox_Both->isChecked())){
Combo_Dirs->setDisabled(true);
ButtonBrowse->setDisabled(true);}
else{
Combo_Dirs->setEnabled(true);
ButtonBrowse->setEnabled(true);}
void CPasswordDialog::OnOK_Set(){
}
void CPasswordDialog::OnCheckBox_BothChanged(int state)
{
if(state==QCheckBox::On){
Combo_Dirs->setEnabled(true);
ButtonBrowse->setEnabled(true);
Edit_Password->setEnabled(true);}
else{
Edit_Password->setText("");
}
}
void CPasswordDialog::ChangeEchoMode()
{
if(Edit_Password->echoMode()==QLineEdit::Normal){
Edit_Password->setEchoMode(QLineEdit::Password);
}
void CPasswordDialog::OnPasswordChanged(const QString &txt){
if(CheckBox_Both->isChecked() || txt==QString())
setStateBoth();
else
{
Edit_Password->setEchoMode(QLineEdit::Normal);
setStatePasswordOnly();
}
void CPasswordDialog::OnComboTextChanged(const QString& txt){
if(CheckBox_Both->isChecked() || txt==QString())
setStateBoth();
else
setStateKeyFileOnly();
}
void CPasswordDialog::OnCheckBox_BothChanged(int state){
if(state==Qt::Checked)
setStateBoth();
if(state==Qt::Unchecked){
if(Edit_Password->text()!=QString() && Combo_Dirs->currentText()!=QString()){
Combo_Dirs->setEditText(QString());
setStatePasswordOnly();
}
else{
if(Edit_Password->text()==QString())
setStateKeyFileOnly();
else
setStatePasswordOnly();
}
}
}
void CPasswordDialog::ChangeEchoMode(){
if(Edit_Password->echoMode()==QLineEdit::Normal)
Edit_Password->setEchoMode(QLineEdit::Password);
else
Edit_Password->setEchoMode(QLineEdit::Normal);
}
void CPasswordDialog::OnButtonExit(){
done(2);

View File

@ -22,43 +22,36 @@
#define PASSWORDDIALOG_H
#include "lib/UrlLabel.h"
#include "ui_PasswordDlg.h"
//Added by qt3to4:
#include <Q3ValueList>
class CPasswordDialog : public QDialog, public Ui_PasswordDlg
{
Q_OBJECT
private:
int NumComboEntries;
QStringList Paths;
Q3ValueList<bool> IsFile;
LinkLabel* Label_select;
bool Mode_Set; //true = Set, false = Get
void setStatePasswordOnly();
void setStateKeyFileOnly();
void setStateBoth();
public:
QString keyfile;
QString password;
tKeyType KeyType;
public:
CPasswordDialog(QWidget* parent = 0, const char* name = 0, bool modal = false,
bool ShowExitButton = false, Qt::WFlags fl = 0 );
~CPasswordDialog();
CPasswordDialog(QWidget* parent = 0, const char* name = 0, bool modal = false,
bool ShowExitButton = false, bool KeyMode_Set=false, Qt::WFlags fl = 0 );
public slots:
virtual void OnOK();
virtual void OnCancel();
virtual void OnSelectClicked();
virtual void OnButtonBrowse();
virtual void OnButtonExit();
virtual void OnComboSelectionChanged(int);
virtual void OnPasswordChanged(const QString &txt);
virtual void OnCheckBox_BothChanged(int state);
virtual void ChangeEchoMode();
void OnOK();
void OnOK_Set();
void OnCancel();
void OnButtonBrowse();
void OnButtonBrowse_Set();
void OnButtonExit();
void OnPasswordChanged(const QString &txt);
void OnCheckBox_BothChanged(int state);
void ChangeEchoMode();
void OnComboTextChanged(const QString&);
};
#endif

View File

@ -19,6 +19,7 @@
***************************************************************************/
#include "main.h"
#include "PwmConfig.h"
#include "PwManager.h"
#include "SearchDlg.h"
#include <qlineedit.h>

View File

@ -18,6 +18,7 @@
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
#include "main.h"
#include "PwmConfig.h"
#include <qpixmap.h>
#include <qcheckbox.h>
#include <qspinbox.h>
@ -62,6 +63,7 @@ CheckBox_ShowPasswords->setChecked(config.ShowPasswords);
Edit_BrowserCmd->setText(config.OpenUrlCommand);
CheckBox_ExpandGroupTree->setChecked(config.ExpandGroupTree);
CheckBox_AlternatingRowColors->setChecked(config.AlternatingRowColors);
Edit_MountDir->setText(config.MountDir);
}
@ -80,6 +82,9 @@ config.ShowPasswords=CheckBox_ShowPasswords->isChecked();
config.OpenUrlCommand=Edit_BrowserCmd->text();
config.ExpandGroupTree=CheckBox_ExpandGroupTree->isChecked();
config.AlternatingRowColors=CheckBox_AlternatingRowColors->isChecked();
config.MountDir=Edit_MountDir->text();
if(config.MountDir!="" && config.MountDir.right(1)!="/")
config.MountDir+="/";
close();
}

View File

@ -9,7 +9,7 @@
<x>0</x>
<y>0</y>
<width>578</width>
<height>270</height>
<height>275</height>
</rect>
</property>
<property name="sizePolicy" >
@ -23,13 +23,13 @@
<property name="minimumSize" >
<size>
<width>578</width>
<height>270</height>
<height>275</height>
</size>
</property>
<property name="maximumSize" >
<size>
<width>578</width>
<height>270</height>
<height>275</height>
</size>
</property>
<property name="windowTitle" >
@ -66,7 +66,7 @@
<property name="geometry" >
<rect>
<x>10</x>
<y>230</y>
<y>240</y>
<width>561</width>
<height>31</height>
</rect>
@ -114,34 +114,13 @@
</item>
</layout>
</widget>
<widget class="QLabel" name="textLabel1" >
<property name="geometry" >
<rect>
<x>10</x>
<y>60</y>
<width>459</width>
<height>16</height>
</rect>
</property>
<property name="sizePolicy" >
<sizepolicy>
<hsizetype>7</hsizetype>
<vsizetype>4</vsizetype>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text" >
<string>Enter a Password and/or choose a key file.</string>
</property>
</widget>
<widget class="Q3GroupBox" name="groupframe" >
<property name="geometry" >
<rect>
<x>10</x>
<y>80</y>
<width>561</width>
<height>141</height>
<height>151</height>
</rect>
</property>
<property name="sizePolicy" >
@ -158,16 +137,16 @@
<property name="orientation" >
<enum>Qt::Vertical</enum>
</property>
<widget class="QWidget" name="layoutWidget" >
<widget class="QWidget" name="" >
<property name="geometry" >
<rect>
<x>10</x>
<y>30</y>
<width>531</width>
<height>30</height>
<y>20</y>
<width>541</width>
<height>123</height>
</rect>
</property>
<layout class="QHBoxLayout" >
<layout class="QVBoxLayout" >
<property name="margin" >
<number>0</number>
</property>
@ -175,7 +154,25 @@
<number>6</number>
</property>
<item>
<widget class="QLabel" name="textLabel2" >
<layout class="QGridLayout" >
<property name="margin" >
<number>0</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<item row="1" column="0" >
<widget class="QLabel" name="Label_PasswordRep" >
<property name="text" >
<string>TextLabel</string>
</property>
</widget>
</item>
<item row="0" column="1" >
<widget class="QLineEdit" name="Edit_Password" />
</item>
<item row="0" column="0" >
<widget class="QLabel" name="Label_Password" >
<property name="sizePolicy" >
<sizepolicy>
<hsizetype>5</hsizetype>
@ -189,27 +186,19 @@
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="Edit_Password" />
</item>
<item>
<item row="0" column="2" >
<widget class="QToolButton" name="ButtonChangeEchoMode" >
<property name="text" >
<string>...</string>
</property>
</widget>
</item>
<item row="1" column="1" >
<widget class="QLineEdit" name="Edit_PasswordRep" />
</item>
</layout>
</widget>
<widget class="QWidget" name="layoutWidget" >
<property name="geometry" >
<rect>
<x>10</x>
<y>60</y>
<width>531</width>
<height>30</height>
</rect>
</property>
</item>
<item>
<layout class="QHBoxLayout" >
<property name="margin" >
<number>0</number>
@ -218,7 +207,7 @@
<number>6</number>
</property>
<item>
<widget class="QLabel" name="textLabel3" >
<widget class="QLabel" name="Label_KeyFile" >
<property name="sizePolicy" >
<sizepolicy>
<hsizetype>5</hsizetype>
@ -242,6 +231,9 @@
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="editable" >
<bool>true</bool>
</property>
</widget>
</item>
<item>
@ -263,16 +255,8 @@
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="layoutWidget" >
<property name="geometry" >
<rect>
<x>10</x>
<y>90</y>
<width>531</width>
<height>30</height>
</rect>
</property>
</item>
<item>
<layout class="QHBoxLayout" >
<property name="margin" >
<number>0</number>
@ -309,8 +293,31 @@
</spacer>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
<widget class="QLabel" name="textLabel1" >
<property name="geometry" >
<rect>
<x>10</x>
<y>60</y>
<width>459</width>
<height>16</height>
</rect>
</property>
<property name="sizePolicy" >
<sizepolicy>
<hsizetype>7</hsizetype>
<vsizetype>4</vsizetype>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text" >
<string>Enter a Password and/or choose a key file.</string>
</property>
</widget>
</widget>
<layoutdefault spacing="6" margin="11" />
<pixmapfunction></pixmapfunction>

View File

@ -464,32 +464,49 @@
<string>Alt+Ö</string>
</property>
</widget>
<widget class="QWidget" name="widget" >
<widget class="QWidget" name="" >
<property name="geometry" >
<rect>
<x>10</x>
<y>50</y>
<width>531</width>
<height>25</height>
<height>58</height>
</rect>
</property>
<layout class="QHBoxLayout" >
<layout class="QGridLayout" >
<property name="margin" >
<number>0</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<item>
<widget class="QLabel" name="textLabel1_4" >
<item row="1" column="2" >
<widget class="QPushButton" name="Button_MountDirBrowse" >
<property name="text" >
<string>Browse...</string>
</property>
</widget>
</item>
<item row="0" column="0" >
<widget class="QLabel" name="label" >
<property name="text" >
<string>Browser Command:</string>
</property>
</widget>
</item>
<item>
<item row="1" column="1" >
<widget class="QLineEdit" name="Edit_MountDir" />
</item>
<item row="0" column="1" >
<widget class="QLineEdit" name="Edit_BrowserCmd" />
</item>
<item row="1" column="0" >
<widget class="QLabel" name="label_2" >
<property name="text" >
<string>Media Directory:</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
@ -514,7 +531,6 @@
<tabstop>ButtonTextColor</tabstop>
<tabstop>ButtonColor2</tabstop>
<tabstop>CheckBox_OpenLast</tabstop>
<tabstop>Edit_BrowserCmd</tabstop>
<tabstop>ButtonOK</tabstop>
<tabstop>ButtonCancel</tabstop>
</tabstops>

View File

@ -18,6 +18,7 @@
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
#include <math.h>
#include <QDragEnterEvent>
#include <QDragMoveEvent>
@ -29,6 +30,7 @@
#include <QApplication>
#include <QPainter>
#include "main.h"
#include "PwmConfig.h"
#include "EntryView.h"

View File

@ -25,11 +25,13 @@
#include <QString>
#include <QColor>
#include <QIcon>
#include "PwmConfig.h"
#define KEEPASS_VERSION "0.2.0"
#define NUM_CLIENT_ICONS 62
typedef enum tKeyType {PASSWORD=0,KEYFILE=1,BOTH=2};
class CConfig;
void createBanner(QLabel *Banner,QPixmap* symbol,QString text);
void createBanner(QLabel *Banner,QPixmap* symbol,QString text,QColor color1,QColor color2,QColor textcolor);
void openBrowser(QString url);

View File

@ -246,7 +246,7 @@ CPasswordDialog PasswordDlg(this,"Password Dialog",true,s);
PasswordDlg.setCaption(filename);
int r=PasswordDlg.exec();
if(r==0) return;
if(r==2) {Start=false; close(); return;}
if(r==2) {Start=false; return;}
Q_ASSERT(r==1);
db = new PwDatabase();
GroupView->db=db;

File diff suppressed because it is too large Load Diff