Drag&Drop for Entries, some other UI work
git-svn-id: https://svn.code.sf.net/p/keepassx/code/trunk@53 b624d157-de02-0410-bad0-e51aec6abb33
This commit is contained in:
parent
60d342201d
commit
853747bce1
Binary file not shown.
After Width: | Height: | Size: 2.6 KiB |
|
@ -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 *
|
||||
|
@ -148,7 +148,7 @@ sha256_finish(&sha32,(unsigned char *)FinalKey);
|
|||
|
||||
if(memcmp(ContentsHash, FinalKey, 32) != 0)
|
||||
{
|
||||
err=tr("Hash test failed.\nThe key is wrong or the file is damaged");
|
||||
err=tr("Hash test failed.\nThe key is wrong or the file is damaged.");
|
||||
return false;}
|
||||
|
||||
|
||||
|
|
|
@ -75,7 +75,6 @@ public:
|
|||
QString getErrors(); //get all errors in a \n seperated String
|
||||
|
||||
|
||||
|
||||
private:
|
||||
bool IsMetaStream(CEntry& Entry);
|
||||
bool parseMetaStream(const CEntry& Entry);
|
||||
|
|
|
@ -52,6 +52,8 @@ MainWinWidth=ini.GetValueI("UI","MainWinWidth",900);
|
|||
MainWinSplit1=ini.GetValueI("UI","MainWinSplit1",100);
|
||||
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);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -81,6 +83,8 @@ ini.SetValueI("UI","MainWinWidth",MainWinWidth);
|
|||
ini.SetValueI("UI","MainWinSplit1",MainWinSplit1);
|
||||
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);
|
||||
if(!ini.WriteFile())return false;
|
||||
else return true;
|
||||
}
|
||||
|
|
|
@ -51,6 +51,8 @@ public:
|
|||
int MainWinSplit1;
|
||||
int MainWinSplit2;
|
||||
int ColumnSizes[10];
|
||||
bool ShowStatusbar;
|
||||
bool AlternatingRowColors;
|
||||
|
||||
bool loadFromIni(QString filename);
|
||||
bool saveToIni(QString filename);
|
||||
|
|
|
@ -474,9 +474,10 @@
|
|||
|
||||
#endif
|
||||
|
||||
#include <qmessagebox.h>
|
||||
|
||||
void Twofish_fatal(char* msg){
|
||||
QMessageBox::critical(0,"Interner Fehler",msg,"OK","Cancel",0,2,1);
|
||||
qCritical("Twofish: Fatal Error");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@ return;
|
|||
}
|
||||
|
||||
if(!gpl.open(QIODevice::ReadOnly)){
|
||||
QMessageBox::critical(this,tr("Fehler"),tr("Could not open file '%1'")
|
||||
QMessageBox::critical(this,tr("Error"),tr("Could not open file '%1'")
|
||||
.arg("'license.txt'")+tr("The following error occured:\n%1").arg(gpl.errorString())
|
||||
,tr("OK"),0,0,2,1);
|
||||
return;
|
||||
|
|
|
@ -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 *
|
||||
|
@ -51,7 +51,7 @@ Q_ASSERT(_entry);
|
|||
entry=_entry;
|
||||
db=_db;
|
||||
setupUi(this);
|
||||
createBanner(Banner,Icon_Key32x32,tr("Eintrag bearbeiten"));
|
||||
createBanner(Banner,Icon_Key32x32,tr("Edit Entry"));
|
||||
ModFlag=false;
|
||||
connect(Edit_Password_w, SIGNAL(editingFinished()), this, SLOT(OnPasswordwLostFocus()));
|
||||
connect(Edit_Password_w, SIGNAL(textChanged(const QString&)), this, SLOT( OnPasswordwTextChanged(const QString&)));
|
||||
|
@ -257,7 +257,7 @@ if(filename=="")return;
|
|||
QFile file(filename);
|
||||
if(file.open(QIODevice::ReadOnly)==false){
|
||||
file.close();
|
||||
QMessageBox::warning(NULL,tr("Fehler"),tr("Datei konnte nicht geöffnet werden."),"OK");
|
||||
QMessageBox::warning(NULL,tr("Error"),tr("Could not open file."),tr("OK"));
|
||||
return;
|
||||
}
|
||||
ModFlag=true;
|
||||
|
|
|
@ -33,12 +33,13 @@
|
|||
|
||||
|
||||
|
||||
CPasswordDialog::CPasswordDialog(QWidget* parent, const char* name, bool modal, Qt::WFlags fl)
|
||||
CPasswordDialog::CPasswordDialog(QWidget* parent, const char* name, bool modal, bool ShowExitButton, Qt::WFlags fl)
|
||||
: QDialog(parent,name, modal,fl)
|
||||
{
|
||||
setupUi(this);
|
||||
createBanner(Banner,Icon_Key32x32,tr("Datenbank öffnen"));
|
||||
Label_select=new LinkLabel((QWidget*)groupframe,"Select",tr("Datei manuell wählen..."),410,100);
|
||||
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() ) );
|
||||
|
@ -47,7 +48,7 @@ connect( Edit_Password, SIGNAL( textChanged(const QString&) ), this, SLOT( OnPas
|
|||
connect( CheckBox_Both, SIGNAL( stateChanged(int) ), this, SLOT( OnCheckBox_BothChanged(int) ) );
|
||||
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");
|
||||
if(media.exists()){
|
||||
|
@ -58,7 +59,7 @@ Paths.erase(Paths.begin()); // delete ".."
|
|||
for(int i=0;i<Paths.count();i++){
|
||||
Paths[i]="/media/"+Paths[i];
|
||||
}
|
||||
Paths.prepend(tr("< keiner >"));
|
||||
Paths.prepend(tr("< none >"));
|
||||
}
|
||||
for(int i=0;i<Paths.count();i++){
|
||||
Combo_Dirs->insertItem(0,Paths[i]);
|
||||
|
@ -208,11 +209,7 @@ Edit_Password->setEchoMode(QLineEdit::Normal);
|
|||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*$SPECIALIZATION$*/
|
||||
|
||||
|
||||
//#include "passworddialog.moc"
|
||||
void CPasswordDialog::OnButtonExit(){
|
||||
done(2);
|
||||
}
|
||||
|
||||
|
|
|
@ -44,26 +44,20 @@ QString password;
|
|||
|
||||
|
||||
public:
|
||||
CPasswordDialog(QWidget* parent = 0, const char* name = 0, bool modal = FALSE, Qt::WFlags fl = 0 );
|
||||
CPasswordDialog(QWidget* parent = 0, const char* name = 0, bool modal = false,
|
||||
bool ShowExitButton = false, Qt::WFlags fl = 0 );
|
||||
~CPasswordDialog();
|
||||
/*$PUBLIC_FUNCTIONS$*/
|
||||
|
||||
public slots:
|
||||
/*$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();
|
||||
protected:
|
||||
/*$PROTECTED_FUNCTIONS$*/
|
||||
|
||||
protected slots:
|
||||
/*$PROTECTED_SLOTS$*/
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -61,6 +61,7 @@ textcolor=config.BannerTextColor;
|
|||
CheckBox_ShowPasswords->setChecked(config.ShowPasswords);
|
||||
Edit_BrowserCmd->setText(config.OpenUrlCommand);
|
||||
CheckBox_ExpandGroupTree->setChecked(config.ExpandGroupTree);
|
||||
CheckBox_AlternatingRowColors->setChecked(config.AlternatingRowColors);
|
||||
|
||||
}
|
||||
|
||||
|
@ -78,6 +79,7 @@ config.BannerTextColor=textcolor;
|
|||
config.ShowPasswords=CheckBox_ShowPasswords->isChecked();
|
||||
config.OpenUrlCommand=Edit_BrowserCmd->text();
|
||||
config.ExpandGroupTree=CheckBox_ExpandGroupTree->isChecked();
|
||||
config.AlternatingRowColors=CheckBox_AlternatingRowColors->isChecked();
|
||||
close();
|
||||
}
|
||||
|
||||
|
|
|
@ -18,16 +18,16 @@
|
|||
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#include "SimplePasswordDlg.h"
|
||||
#include <qlineedit.h>
|
||||
#include <qpushbutton.h>
|
||||
#include "main.h"
|
||||
#include "SimplePasswordDlg.h"
|
||||
|
||||
CSimplePasswordDialog::CSimplePasswordDialog(bool HidePw,QWidget* parent, const char* name, bool modal, Qt::WFlags fl)
|
||||
CSimplePasswordDialog::CSimplePasswordDialog(QWidget* parent, const char* name, bool modal, Qt::WFlags fl)
|
||||
: QDialog(parent,name, modal,fl)
|
||||
{
|
||||
setupUi(this);
|
||||
if(HidePw)Button_HidePassword->toggle();
|
||||
if(!config.ShowPasswords)Button_HidePassword->toggle();
|
||||
}
|
||||
|
||||
CSimplePasswordDialog::~CSimplePasswordDialog()
|
||||
|
|
|
@ -28,7 +28,7 @@ class CSimplePasswordDialog : public QDialog, public Ui_SimplePasswordDialog
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
CSimplePasswordDialog(bool HidePw,QWidget* parent = 0, const char* name = 0, bool modal = FALSE, Qt::WFlags fl = 0 );
|
||||
CSimplePasswordDialog(QWidget* parent = 0, const char* name = 0, bool modal = FALSE, Qt::WFlags fl = 0 );
|
||||
~CSimplePasswordDialog();
|
||||
/*$PUBLIC_FUNCTIONS$*/
|
||||
|
||||
|
|
|
@ -131,13 +131,13 @@
|
|||
</rect>
|
||||
</property>
|
||||
<property name="html" >
|
||||
<string><html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:Sans Serif; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Mattias Miller</span> (www.outofhanwell.com)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Mac OS X Support</p></body></html></string>
|
||||
<string><html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:Sans Serif; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p></body></html></string>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tab_4" >
|
||||
<attribute name="title" >
|
||||
<string>Übersetzung</string>
|
||||
<string>Translation</string>
|
||||
</attribute>
|
||||
<widget class="QTextEdit" name="Edit_Translation" >
|
||||
<property name="geometry" >
|
||||
|
|
|
@ -114,31 +114,6 @@
|
|||
<height>29</height>
|
||||
</rect>
|
||||
</property>
|
||||
<widget class="QMenu" name="menuDatei" >
|
||||
<property name="title" >
|
||||
<string>File</string>
|
||||
</property>
|
||||
<widget class="QMenu" name="menuImportieren_aus" >
|
||||
<property name="title" >
|
||||
<string>Import from...</string>
|
||||
</property>
|
||||
<addaction name="FileImpPwmAction" />
|
||||
<addaction name="FileImpKWalletXmlAction" />
|
||||
</widget>
|
||||
<addaction name="FileNewAction" />
|
||||
<addaction name="FileOpenAction" />
|
||||
<addaction name="FileCloseAction" />
|
||||
<addaction name="separator" />
|
||||
<addaction name="FileSaveAction" />
|
||||
<addaction name="FileSaveAsAction" />
|
||||
<addaction name="separator" />
|
||||
<addaction name="FileSettingsAction" />
|
||||
<addaction name="FileChangeKeyAction" />
|
||||
<addaction name="separator" />
|
||||
<addaction name="menuImportieren_aus" />
|
||||
<addaction name="separator" />
|
||||
<addaction name="FileExitAction" />
|
||||
</widget>
|
||||
<widget class="QMenu" name="menuBearbeiten" >
|
||||
<property name="title" >
|
||||
<string>Edit</string>
|
||||
|
@ -182,12 +157,45 @@
|
|||
</widget>
|
||||
<addaction name="ViewShowToolbarAction" />
|
||||
<addaction name="ViewShowEntryDetailsAction" />
|
||||
<addaction name="ViewShowStatusbarAction" />
|
||||
<addaction name="separator" />
|
||||
<addaction name="ViewHideUsernamesAction" />
|
||||
<addaction name="ViewHidePasswordsAction" />
|
||||
<addaction name="separator" />
|
||||
<addaction name="menuSpalten" />
|
||||
</widget>
|
||||
<widget class="QMenu" name="menuDatei" >
|
||||
<property name="title" >
|
||||
<string>File</string>
|
||||
</property>
|
||||
<widget class="QMenu" name="menuImportieren_aus" >
|
||||
<property name="title" >
|
||||
<string>Import from...</string>
|
||||
</property>
|
||||
<addaction name="FileImpPwmAction" />
|
||||
<addaction name="FileImpKWalletXmlAction" />
|
||||
</widget>
|
||||
<widget class="QMenu" name="menuExport_to" >
|
||||
<property name="title" >
|
||||
<string>Export to...</string>
|
||||
</property>
|
||||
<addaction name="FileExpPlainTextAction" />
|
||||
</widget>
|
||||
<addaction name="FileNewAction" />
|
||||
<addaction name="FileOpenAction" />
|
||||
<addaction name="FileCloseAction" />
|
||||
<addaction name="separator" />
|
||||
<addaction name="FileSaveAction" />
|
||||
<addaction name="FileSaveAsAction" />
|
||||
<addaction name="separator" />
|
||||
<addaction name="FileSettingsAction" />
|
||||
<addaction name="FileChangeKeyAction" />
|
||||
<addaction name="separator" />
|
||||
<addaction name="menuImportieren_aus" />
|
||||
<addaction name="menuExport_to" />
|
||||
<addaction name="separator" />
|
||||
<addaction name="FileExitAction" />
|
||||
</widget>
|
||||
<widget class="QMenu" name="menuExtras" >
|
||||
<property name="title" >
|
||||
<string>Extras</string>
|
||||
|
@ -198,6 +206,8 @@
|
|||
<property name="title" >
|
||||
<string>Help</string>
|
||||
</property>
|
||||
<addaction name="HelpHandbookAction" />
|
||||
<addaction name="separator" />
|
||||
<addaction name="HelpAboutAction" />
|
||||
</widget>
|
||||
<addaction name="menuDatei" />
|
||||
|
@ -477,16 +487,27 @@
|
|||
<string>About...</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="ViewShowStatusbarAction" >
|
||||
<property name="checkable" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Show Statusbar</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="HelpHandbookAction" >
|
||||
<property name="text" >
|
||||
<string>KeePassX Handbook...</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="FileExpPlainTextAction" >
|
||||
<property name="text" >
|
||||
<string>Plain Text (*.txt)</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<pixmapfunction></pixmapfunction>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>KeepassEntryView</class>
|
||||
<extends>QTreeWidget</extends>
|
||||
<header>../../src/lib/EntryView.h</header>
|
||||
<container>0</container>
|
||||
<pixmap></pixmap>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>KeepassGroupView</class>
|
||||
<extends>QTreeWidget</extends>
|
||||
|
@ -494,6 +515,13 @@
|
|||
<container>0</container>
|
||||
<pixmap></pixmap>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>KeepassEntryView</class>
|
||||
<extends>QTreeWidget</extends>
|
||||
<header>../../src/lib/EntryView.h</header>
|
||||
<container>0</container>
|
||||
<pixmap></pixmap>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources/>
|
||||
<connections/>
|
||||
|
|
|
@ -105,6 +105,13 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="ButtonExit" >
|
||||
<property name="text" >
|
||||
<string>Exit</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QLabel" name="textLabel1" >
|
||||
|
|
|
@ -1,384 +1,523 @@
|
|||
<ui version="4.0" >
|
||||
<author/>
|
||||
<comment/>
|
||||
<exportmacro/>
|
||||
<class>SettingsDialog</class>
|
||||
<widget class="QDialog" name="SettingsDialog" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>571</width>
|
||||
<height>341</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="minimumSize" >
|
||||
<size>
|
||||
<width>571</width>
|
||||
<height>341</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize" >
|
||||
<size>
|
||||
<width>571</width>
|
||||
<height>341</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="windowTitle" >
|
||||
<string>Settings</string>
|
||||
</property>
|
||||
<widget class="QLabel" name="Banner" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>570</width>
|
||||
<height>50</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="pixmap" >
|
||||
<pixmap/>
|
||||
</property>
|
||||
<property name="scaledContents" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QTabWidget" name="tabWidget4" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>60</y>
|
||||
<width>550</width>
|
||||
<height>241</height>
|
||||
</rect>
|
||||
</property>
|
||||
<widget class="QWidget" name="tab" >
|
||||
<attribute name="title" >
|
||||
<string>Securi&try</string>
|
||||
</attribute>
|
||||
<widget class="QLabel" name="textLabel1" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>20</y>
|
||||
<width>231</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Clear clipboard after:</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QSpinBox" name="SpinBox_ClipboardTime" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>250</x>
|
||||
<y>20</y>
|
||||
<width>80</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="textLabel2" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>340</x>
|
||||
<y>20</y>
|
||||
<width>100</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Seconds</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QCheckBox" name="CheckBox_ShowPasswords" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>50</y>
|
||||
<width>420</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Sh&ow passwords in plain text by default</string>
|
||||
</property>
|
||||
<property name="shortcut" >
|
||||
<string>Alt+O</string>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QWidget" name="TabPage" >
|
||||
<attribute name="title" >
|
||||
<string>Appea&rance</string>
|
||||
</attribute>
|
||||
<widget class="Q3GroupBox" name="groupBox1" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>10</y>
|
||||
<width>520</width>
|
||||
<height>90</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="title" >
|
||||
<string>Banner Color</string>
|
||||
</property>
|
||||
<widget class="QLabel" name="textLabel1_3" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>20</y>
|
||||
<width>53</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Color 1</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="pixmColor1" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>70</x>
|
||||
<y>20</y>
|
||||
<width>22</width>
|
||||
<height>22</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="pixmap" >
|
||||
<pixmap/>
|
||||
</property>
|
||||
<property name="scaledContents" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="ButtonColor1" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>100</x>
|
||||
<y>20</y>
|
||||
<width>60</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>C&hange...</string>
|
||||
</property>
|
||||
<property name="shortcut" >
|
||||
<string>Alt+H</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="textLabel3" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>190</x>
|
||||
<y>20</y>
|
||||
<width>60</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Color 2</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="pixmTextColor" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>70</x>
|
||||
<y>50</y>
|
||||
<width>22</width>
|
||||
<height>22</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="pixmap" >
|
||||
<pixmap/>
|
||||
</property>
|
||||
<property name="scaledContents" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="ButtonTextColor" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>100</x>
|
||||
<y>50</y>
|
||||
<width>60</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Change...</string>
|
||||
</property>
|
||||
<property name="shortcut" >
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="textLabel2_2" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>50</y>
|
||||
<width>54</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Text Color</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="pixmColor2" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>250</x>
|
||||
<y>20</y>
|
||||
<width>22</width>
|
||||
<height>22</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="pixmap" >
|
||||
<pixmap/>
|
||||
</property>
|
||||
<property name="scaledContents" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="ButtonColor2" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>280</x>
|
||||
<y>20</y>
|
||||
<width>60</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Change...</string>
|
||||
</property>
|
||||
<property name="shortcut" >
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QCheckBox" name="CheckBox_ExpandGroupTree" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>110</y>
|
||||
<width>380</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Expand group tree when opening a database</string>
|
||||
</property>
|
||||
<property name="shortcut" >
|
||||
<string>Alt+Ö</string>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tab" >
|
||||
<attribute name="title" >
|
||||
<string>&Other</string>
|
||||
</attribute>
|
||||
<widget class="QCheckBox" name="CheckBox_OpenLast" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>20</y>
|
||||
<width>380</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Remember last opend file</string>
|
||||
</property>
|
||||
<property name="shortcut" >
|
||||
<string>Alt+Ö</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="textLabel1_4" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>50</y>
|
||||
<width>110</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Browser Command:</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="Edit_BrowserCmd" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>120</x>
|
||||
<y>50</y>
|
||||
<width>190</width>
|
||||
<height>21</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="ButtonOK" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>380</x>
|
||||
<y>310</y>
|
||||
<width>80</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>O&K</string>
|
||||
</property>
|
||||
<property name="shortcut" >
|
||||
<string>Alt+K</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="ButtonCancel" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>470</x>
|
||||
<y>310</y>
|
||||
<width>90</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>&Cancel</string>
|
||||
</property>
|
||||
<property name="shortcut" >
|
||||
<string>Alt+C</string>
|
||||
</property>
|
||||
</widget>
|
||||
<author></author>
|
||||
<comment></comment>
|
||||
<exportmacro></exportmacro>
|
||||
<class>SettingsDialog</class>
|
||||
<widget class="QDialog" name="SettingsDialog" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>571</width>
|
||||
<height>341</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="minimumSize" >
|
||||
<size>
|
||||
<width>571</width>
|
||||
<height>341</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize" >
|
||||
<size>
|
||||
<width>571</width>
|
||||
<height>341</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="windowTitle" >
|
||||
<string>Settings</string>
|
||||
</property>
|
||||
<widget class="QPushButton" name="ButtonCancel" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>470</x>
|
||||
<y>310</y>
|
||||
<width>90</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>&Cancel</string>
|
||||
</property>
|
||||
<property name="shortcut" >
|
||||
<string>Alt+C</string>
|
||||
</property>
|
||||
</widget>
|
||||
<layoutdefault spacing="6" margin="11" />
|
||||
<pixmapfunction/>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>Q3GroupBox</class>
|
||||
<extends/>
|
||||
<header>Qt3Support/Q3GroupBox</header>
|
||||
<container>1</container>
|
||||
<pixmap/>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<tabstops>
|
||||
<tabstop>tabWidget4</tabstop>
|
||||
<tabstop>SpinBox_ClipboardTime</tabstop>
|
||||
<tabstop>CheckBox_ShowPasswords</tabstop>
|
||||
<tabstop>ButtonColor1</tabstop>
|
||||
<tabstop>ButtonTextColor</tabstop>
|
||||
<tabstop>ButtonColor2</tabstop>
|
||||
<tabstop>CheckBox_OpenLast</tabstop>
|
||||
<tabstop>Edit_BrowserCmd</tabstop>
|
||||
<tabstop>ButtonOK</tabstop>
|
||||
<tabstop>ButtonCancel</tabstop>
|
||||
</tabstops>
|
||||
<resources/>
|
||||
<connections/>
|
||||
<widget class="QLabel" name="Banner" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>570</width>
|
||||
<height>50</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="pixmap" >
|
||||
<pixmap/>
|
||||
</property>
|
||||
<property name="scaledContents" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="ButtonOK" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>380</x>
|
||||
<y>310</y>
|
||||
<width>80</width>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>O&K</string>
|
||||
</property>
|
||||
<property name="shortcut" >
|
||||
<string>Alt+K</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QTabWidget" name="tabWidget4" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>60</y>
|
||||
<width>550</width>
|
||||
<height>241</height>
|
||||
</rect>
|
||||
</property>
|
||||
<widget class="QWidget" name="tab" >
|
||||
<attribute name="title" >
|
||||
<string>Securi&try</string>
|
||||
</attribute>
|
||||
<widget class="QWidget" name="widget" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>20</y>
|
||||
<width>531</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" >
|
||||
<property name="margin" >
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="spacing" >
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="textLabel1" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>4</hsizetype>
|
||||
<vsizetype>5</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Clear clipboard after:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSpinBox" name="SpinBox_ClipboardTime" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>5</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximumSize" >
|
||||
<size>
|
||||
<width>80</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximum" >
|
||||
<number>50000</number>
|
||||
</property>
|
||||
<property name="value" >
|
||||
<number>2</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="textLabel2" >
|
||||
<property name="text" >
|
||||
<string>Seconds</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QCheckBox" name="CheckBox_ShowPasswords" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>50</y>
|
||||
<width>531</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Sh&ow passwords in plain text by default</string>
|
||||
</property>
|
||||
<property name="shortcut" >
|
||||
<string>Alt+O</string>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QWidget" name="TabPage" >
|
||||
<attribute name="title" >
|
||||
<string>Appea&rance</string>
|
||||
</attribute>
|
||||
<widget class="Q3GroupBox" name="groupBox1" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>20</x>
|
||||
<y>10</y>
|
||||
<width>520</width>
|
||||
<height>90</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="title" >
|
||||
<string>Banner Color</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="widget" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>11</x>
|
||||
<y>20</y>
|
||||
<width>501</width>
|
||||
<height>62</height>
|
||||
</rect>
|
||||
</property>
|
||||
<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="textLabel2_2" >
|
||||
<property name="text" >
|
||||
<string>Text Color:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="3" >
|
||||
<spacer>
|
||||
<property name="orientation" >
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType" >
|
||||
<enum>QSizePolicy::Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint" >
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="1" column="2" >
|
||||
<widget class="QPushButton" name="ButtonTextColor" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>4</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Change...</string>
|
||||
</property>
|
||||
<property name="shortcut" >
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="4" >
|
||||
<widget class="QLabel" name="textLabel3" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>4</hsizetype>
|
||||
<vsizetype>5</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Color 2:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1" >
|
||||
<widget class="QLabel" name="pixmColor1" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>4</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize" >
|
||||
<size>
|
||||
<width>23</width>
|
||||
<height>23</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize" >
|
||||
<size>
|
||||
<width>23</width>
|
||||
<height>23</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1" >
|
||||
<widget class="QLabel" name="pixmTextColor" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>4</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize" >
|
||||
<size>
|
||||
<width>23</width>
|
||||
<height>23</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize" >
|
||||
<size>
|
||||
<width>23</width>
|
||||
<height>23</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="pixmap" >
|
||||
<pixmap/>
|
||||
</property>
|
||||
<property name="scaledContents" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="6" >
|
||||
<widget class="QPushButton" name="ButtonColor2" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>4</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Change...</string>
|
||||
</property>
|
||||
<property name="shortcut" >
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="5" >
|
||||
<widget class="QLabel" name="pixmColor2" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>4</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize" >
|
||||
<size>
|
||||
<width>23</width>
|
||||
<height>23</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize" >
|
||||
<size>
|
||||
<width>23</width>
|
||||
<height>23</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="pixmap" >
|
||||
<pixmap/>
|
||||
</property>
|
||||
<property name="scaledContents" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2" >
|
||||
<widget class="QPushButton" name="ButtonColor1" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>4</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>C&hange...</string>
|
||||
</property>
|
||||
<property name="shortcut" >
|
||||
<string>Alt+H</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" >
|
||||
<widget class="QLabel" name="textLabel1_3" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy>
|
||||
<hsizetype>4</hsizetype>
|
||||
<vsizetype>5</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Color 1:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="7" >
|
||||
<spacer>
|
||||
<property name="orientation" >
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType" >
|
||||
<enum>QSizePolicy::Minimum</enum>
|
||||
</property>
|
||||
<property name="sizeHint" >
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QCheckBox" name="CheckBox_ExpandGroupTree" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>110</y>
|
||||
<width>521</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Expand group tree when opening a database</string>
|
||||
</property>
|
||||
<property name="shortcut" >
|
||||
<string>Alt+Ö</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QCheckBox" name="CheckBox_AlternatingRowColors" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>130</y>
|
||||
<width>531</width>
|
||||
<height>22</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Alternating Row Colors</string>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tab" >
|
||||
<attribute name="title" >
|
||||
<string>&Other</string>
|
||||
</attribute>
|
||||
<widget class="QCheckBox" name="CheckBox_OpenLast" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>20</y>
|
||||
<width>380</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Remember last opend file</string>
|
||||
</property>
|
||||
<property name="shortcut" >
|
||||
<string>Alt+Ö</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QWidget" name="widget" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>50</y>
|
||||
<width>531</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" >
|
||||
<property name="margin" >
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="spacing" >
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="textLabel1_4" >
|
||||
<property name="text" >
|
||||
<string>Browser Command:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="Edit_BrowserCmd" />
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
<layoutdefault spacing="6" margin="11" />
|
||||
<pixmapfunction></pixmapfunction>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>Q3GroupBox</class>
|
||||
<extends></extends>
|
||||
<header>Qt3Support/Q3GroupBox</header>
|
||||
<container>1</container>
|
||||
<pixmap></pixmap>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<tabstops>
|
||||
<tabstop>tabWidget4</tabstop>
|
||||
<tabstop>SpinBox_ClipboardTime</tabstop>
|
||||
<tabstop>CheckBox_ShowPasswords</tabstop>
|
||||
<tabstop>ButtonColor1</tabstop>
|
||||
<tabstop>ButtonTextColor</tabstop>
|
||||
<tabstop>ButtonColor2</tabstop>
|
||||
<tabstop>CheckBox_OpenLast</tabstop>
|
||||
<tabstop>Edit_BrowserCmd</tabstop>
|
||||
<tabstop>ButtonOK</tabstop>
|
||||
<tabstop>ButtonCancel</tabstop>
|
||||
</tabstops>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
|
|
|
@ -26,6 +26,8 @@
|
|||
#include <QMouseEvent>
|
||||
#include <QHeaderView>
|
||||
#include <QTime>
|
||||
#include <QApplication>
|
||||
#include <QPainter>
|
||||
#include "main.h"
|
||||
#include "EntryView.h"
|
||||
|
||||
|
@ -45,7 +47,7 @@ header()->setResizeMode(QHeaderView::Interactive);
|
|||
header()->setStretchLastSection(false);
|
||||
connect(header(),SIGNAL(sectionResized(int,int,int)),this,SLOT(OnColumnResized(int,int,int)));
|
||||
ContextMenu=new QMenu(this);
|
||||
|
||||
setAlternatingRowColors(config.AlternatingRowColors);
|
||||
}
|
||||
|
||||
KeepassEntryView::~KeepassEntryView(){
|
||||
|
@ -136,13 +138,13 @@ void KeepassEntryView::setEntry(CEntry* entry){
|
|||
if(config.Columns[4]){
|
||||
tmp->setText(j++,entry->Additional.section('\n',0,0));}
|
||||
if(config.Columns[5]){
|
||||
tmp->setText(j++,entry->Expire.toString(DateTimeFormat));}
|
||||
tmp->setText(j++,entry->Expire.date().toString(Qt::LocalDate));}
|
||||
if(config.Columns[6]){
|
||||
tmp->setText(j++,entry->Creation.toString(DateTimeFormat));}
|
||||
tmp->setText(j++,entry->Creation.date().toString(Qt::LocalDate));}
|
||||
if(config.Columns[7]){
|
||||
tmp->setText(j++,entry->LastMod.toString(DateTimeFormat));}
|
||||
tmp->setText(j++,entry->LastMod.date().toString(Qt::LocalDate));}
|
||||
if(config.Columns[8]){
|
||||
tmp->setText(j++,entry->LastAccess.toString(DateTimeFormat));}
|
||||
tmp->setText(j++,entry->LastAccess.date().toString(Qt::LocalDate));}
|
||||
if(config.Columns[9]){
|
||||
tmp->setText(j++,entry->BinaryDesc);}
|
||||
Items.back()->setIcon(0,EntryIcons[entry->ImageID]);
|
||||
|
@ -174,13 +176,13 @@ for(int i=0;i<Items.size();i++){
|
|||
if(config.Columns[4]){
|
||||
tmp->setText(j++,entry->Additional.section('\n',0,0));}
|
||||
if(config.Columns[5]){
|
||||
tmp->setText(j++,entry->Expire.toString(DateTimeFormat));}
|
||||
tmp->setText(j++,entry->Expire.date().toString(Qt::LocalDate));}
|
||||
if(config.Columns[6]){
|
||||
tmp->setText(j++,entry->Creation.toString(DateTimeFormat));}
|
||||
tmp->setText(j++,entry->Creation.date().toString(Qt::LocalDate));}
|
||||
if(config.Columns[7]){
|
||||
tmp->setText(j++,entry->LastMod.toString(DateTimeFormat));}
|
||||
tmp->setText(j++,entry->LastMod.date().toString(Qt::LocalDate));}
|
||||
if(config.Columns[8]){
|
||||
tmp->setText(j++,entry->LastAccess.toString(DateTimeFormat));}
|
||||
tmp->setText(j++,entry->LastAccess.date().toString(Qt::LocalDate));}
|
||||
if(config.Columns[9]){
|
||||
tmp->setText(j++,entry->BinaryDesc);}
|
||||
tmp->setIcon(0,EntryIcons[entry->ImageID]);
|
||||
|
@ -285,6 +287,66 @@ if(((ColumnSizes[j]-div)*w > 2)){
|
|||
resizeColumns();
|
||||
}
|
||||
|
||||
void KeepassEntryView::mousePressEvent(QMouseEvent *event){
|
||||
//save event position - maybe this is the start of a drag
|
||||
if (event->button() == Qt::LeftButton)
|
||||
DragStartPos = event->pos();
|
||||
//call base function
|
||||
QTreeWidget::mousePressEvent(event);
|
||||
}
|
||||
|
||||
void KeepassEntryView::mouseMoveEvent(QMouseEvent *event){
|
||||
if (!(event->buttons() & Qt::LeftButton))
|
||||
return;
|
||||
if ((event->pos() - DragStartPos).manhattanLength() < QApplication::startDragDistance())
|
||||
return;
|
||||
|
||||
DragItems.clear();
|
||||
EntryViewItem* DragStartItem=(EntryViewItem*)itemAt(DragStartPos);
|
||||
if(!DragStartItem){
|
||||
while(selectedItems().size()){
|
||||
setItemSelected(selectedItems()[0],false);}
|
||||
return;
|
||||
}
|
||||
if(selectedItems().size()==0){
|
||||
setItemSelected(DragStartItem,true);}
|
||||
else{
|
||||
bool AlreadySelected=false;
|
||||
for(int i=0;i<selectedItems().size();i++){
|
||||
if(selectedItems()[i]==DragStartItem){AlreadySelected=true; break;}
|
||||
}
|
||||
if(!AlreadySelected){
|
||||
while(selectedItems().size()){
|
||||
setItemSelected(selectedItems()[0],false);
|
||||
}
|
||||
setItemSelected(DragStartItem,true);
|
||||
}
|
||||
}
|
||||
|
||||
DragItems=selectedItems();
|
||||
QDrag *drag = new QDrag(this);
|
||||
QFontMetrics fontmet(DragStartItem->font(0));
|
||||
int DragPixmHeight=16;
|
||||
if(fontmet.height()>16)DragPixmHeight=fontmet.height();
|
||||
QString DragText;
|
||||
if(DragItems.size()>1)DragText=QString(tr("%1 items")).arg(DragItems.size());
|
||||
else DragText=((EntryViewItem*)DragItems[0])->pEntry->Title;
|
||||
DragPixmap = QPixmap(fontmet.width(DragText)+19,DragPixmHeight);
|
||||
DragPixmap.fill(QColor(255,255,255));
|
||||
QPainter painter(&DragPixmap);
|
||||
painter.setPen(QColor(0,0,0));
|
||||
painter.setFont(DragItems[0]->font(0));
|
||||
painter.drawPixmap(0,0,DragItems[0]->icon(0).pixmap());
|
||||
painter.drawText(19,DragPixmHeight-fontmet.strikeOutPos(),DragText);
|
||||
QMimeData *mimeData = new QMimeData;
|
||||
void* pDragItems=&DragItems;
|
||||
mimeData->setData("keepass/entry",QByteArray((char*)&pDragItems,sizeof(void*)));
|
||||
drag->setMimeData(mimeData);
|
||||
drag->setPixmap(DragPixmap);
|
||||
drag->start();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void KeepassEntryView::paintEvent(QPaintEvent * event){
|
||||
|
|
|
@ -50,10 +50,19 @@ private:
|
|||
QList<float>ColumnSizes;
|
||||
void resizeColumns();
|
||||
bool AutoResizeColumns;
|
||||
QPoint DragStartPos;
|
||||
QList<QTreeWidgetItem*> DragItems;
|
||||
QPixmap DragPixmap;
|
||||
protected:
|
||||
virtual void contextMenuEvent(QContextMenuEvent *event);
|
||||
virtual void paintEvent(QPaintEvent* event);
|
||||
virtual void resizeEvent(QResizeEvent* event);
|
||||
// virtual void dragEnterEvent ( QDragEnterEvent * event );
|
||||
// virtual void dragMoveEvent ( QDragMoveEvent * event );
|
||||
// virtual void dragLeaveEvent ( QDragLeaveEvent * event );
|
||||
// virtual void dropEvent ( QDropEvent * event );
|
||||
virtual void mousePressEvent(QMouseEvent *event);
|
||||
virtual void mouseMoveEvent(QMouseEvent *event);
|
||||
public slots:
|
||||
void OnColumnResized(int index,int OldSize, int NewSize);
|
||||
};
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
#include <QBrush>
|
||||
#include <QMenu>
|
||||
#include "main.h"
|
||||
#include "EntryView.h"
|
||||
#include "GroupView.h"
|
||||
#define INSERT_AREA_WIDTH 4
|
||||
|
||||
|
@ -41,7 +42,7 @@ KeepassGroupView::KeepassGroupView(QWidget* parent):QTreeWidget(parent){
|
|||
InsertionMarker=QLine();
|
||||
db=NULL;
|
||||
LastHoverItem=NULL;
|
||||
setHeaderLabels(QStringList()<<tr("Gruppen"));
|
||||
setHeaderLabels(QStringList()<<tr("Groups"));
|
||||
ShowSearchGroup=false;
|
||||
ContextMenu=new QMenu(this);
|
||||
}
|
||||
|
@ -52,52 +53,70 @@ setItemSelected(Items.back(),true);
|
|||
}
|
||||
|
||||
void KeepassGroupView:: dragEnterEvent ( QDragEnterEvent * event ){
|
||||
if(event->mimeData()->hasFormat("keepass/group") ||
|
||||
event->mimeData()->hasFormat("keepass/entry")){
|
||||
event->accept();
|
||||
if(event->mimeData()->hasFormat("keepass/group")){
|
||||
DragType=GROUP;
|
||||
event->accept();
|
||||
return;
|
||||
}
|
||||
if(event->mimeData()->hasFormat("keepass/entry")){
|
||||
DragType=ENTRY;
|
||||
event->accept();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
void KeepassGroupView:: dragMoveEvent ( QDragMoveEvent * event ){
|
||||
void KeepassGroupView::dragMoveEvent( QDragMoveEvent * event ){
|
||||
GroupViewItem* item=(GroupViewItem*)itemAt(event->pos());
|
||||
|
||||
if(LastHoverItem){
|
||||
QFont f=LastHoverItem->font(0);
|
||||
f.setBold(false);
|
||||
LastHoverItem->setFont(0,f);
|
||||
QFont f=LastHoverItem->font(0);
|
||||
f.setBold(false);
|
||||
LastHoverItem->setFont(0,f);
|
||||
}
|
||||
|
||||
InsertionMarker=QLine();
|
||||
if(isSearchResultGroup(item))
|
||||
event->setAccepted(false);
|
||||
else if(item){
|
||||
QRect ItemRect=visualItemRect(item);
|
||||
if(!db->isParentGroup(item->pGroup,DragItem->pGroup) && DragItem!=item){
|
||||
if((ItemRect.height()+ItemRect.y())-event->pos().y() > INSERT_AREA_WIDTH && event->pos().y() > INSERT_AREA_WIDTH){
|
||||
QFont f=item->font(0);
|
||||
f.setBold(true);
|
||||
item->setFont(0,f);
|
||||
LastHoverItem=item;
|
||||
event->setAccepted(true);
|
||||
}
|
||||
else{
|
||||
LastHoverItem=NULL;
|
||||
if(event->pos().y() > INSERT_AREA_WIDTH)
|
||||
InsertionMarker=QLine(ItemRect.x(),ItemRect.y()+ItemRect.height(),
|
||||
ItemRect.x()+ItemRect.width(),ItemRect.y()+ItemRect.height());
|
||||
else
|
||||
InsertionMarker=QLine(ItemRect.x(),0,
|
||||
ItemRect.x()+ItemRect.width(),0);
|
||||
else
|
||||
if(DragType==GROUP){
|
||||
if(item){
|
||||
QRect ItemRect=visualItemRect(item);
|
||||
if(!db->isParentGroup(item->pGroup,DragItem->pGroup) && DragItem!=item){
|
||||
if((ItemRect.height()+ItemRect.y())-event->pos().y() > INSERT_AREA_WIDTH && event->pos().y() > INSERT_AREA_WIDTH){
|
||||
QFont f=item->font(0);
|
||||
f.setBold(true);
|
||||
item->setFont(0,f);
|
||||
LastHoverItem=item;
|
||||
event->setAccepted(true);
|
||||
}
|
||||
else{
|
||||
LastHoverItem=NULL;
|
||||
if(event->pos().y() > INSERT_AREA_WIDTH)
|
||||
InsertionMarker=QLine(ItemRect.x(),ItemRect.y()+ItemRect.height()
|
||||
,ItemRect.x()+ItemRect.width(),ItemRect.y()+ItemRect.height());
|
||||
else
|
||||
InsertionMarker=QLine(ItemRect.x(),0,ItemRect.x()+ItemRect.width(),0);
|
||||
}
|
||||
}
|
||||
else
|
||||
event->setAccepted(false);
|
||||
}
|
||||
}
|
||||
else
|
||||
event->setAccepted(false);
|
||||
|
||||
else
|
||||
LastHoverItem=NULL;
|
||||
}
|
||||
else{
|
||||
LastHoverItem=NULL;
|
||||
|
||||
if(item){
|
||||
QFont f=item->font(0);
|
||||
f.setBold(true);
|
||||
item->setFont(0,f);
|
||||
LastHoverItem=item;
|
||||
event->setAccepted(true);
|
||||
}
|
||||
else{
|
||||
event->setAccepted(false);
|
||||
LastHoverItem=NULL;
|
||||
}
|
||||
}
|
||||
|
||||
update();
|
||||
}
|
||||
|
||||
|
@ -122,21 +141,32 @@ if(LastHoverItem){
|
|||
LastHoverItem=NULL;
|
||||
}
|
||||
GroupViewItem* item=(GroupViewItem*)itemAt(event->pos());
|
||||
if(item){
|
||||
QRect ItemRect=visualItemRect(item);
|
||||
if((ItemRect.height()+ItemRect.y())-event->pos().y() > INSERT_AREA_WIDTH && event->pos().y() > INSERT_AREA_WIDTH){
|
||||
db->moveGroup(DragItem->pGroup,item->pGroup);}
|
||||
else{
|
||||
if(event->pos().y() > INSERT_AREA_WIDTH){
|
||||
if(db->getNumberOfChilds(item->pGroup) > 0)
|
||||
db->moveGroup(DragItem->pGroup,item->pGroup,0);
|
||||
else
|
||||
db->moveGroupDirectly(DragItem->pGroup,item->pGroup);
|
||||
}
|
||||
else db->moveGroupDirectly(DragItem->pGroup,NULL);
|
||||
}
|
||||
if(DragType==GROUP){
|
||||
if(item){
|
||||
QRect ItemRect=visualItemRect(item);
|
||||
if((ItemRect.height()+ItemRect.y())-event->pos().y() > INSERT_AREA_WIDTH && event->pos().y() > INSERT_AREA_WIDTH){
|
||||
db->moveGroup(DragItem->pGroup,item->pGroup);}
|
||||
else{
|
||||
if(event->pos().y() > INSERT_AREA_WIDTH){
|
||||
if(db->getNumberOfChilds(item->pGroup) > 0)
|
||||
db->moveGroup(DragItem->pGroup,item->pGroup,0);
|
||||
else
|
||||
db->moveGroupDirectly(DragItem->pGroup,item->pGroup);
|
||||
}
|
||||
else db->moveGroupDirectly(DragItem->pGroup,NULL);
|
||||
}
|
||||
}
|
||||
else db->moveGroup(DragItem->pGroup,NULL);
|
||||
}else{
|
||||
Q_ASSERT(item);
|
||||
QList<QTreeWidgetItem*>* pDragItems=(QList<QTreeWidgetItem*>*)*((QList<QTreeWidgetItem*>**)event->mimeData()->data("keepass/entry").data());
|
||||
for(int i=0;i<pDragItems->size();i++){
|
||||
db->moveEntry(((EntryViewItem*)(*pDragItems)[i])->pEntry,item->pGroup);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
else db->moveGroup(DragItem->pGroup,NULL);
|
||||
|
||||
|
||||
updateItems();
|
||||
}
|
||||
|
|
|
@ -60,6 +60,8 @@ private:
|
|||
GroupViewItem* DragItem;
|
||||
GroupViewItem* LastHoverItem;
|
||||
GroupViewItem* getLastSameLevelItem(int level);
|
||||
enum tDragType{GROUP,ENTRY};
|
||||
tDragType DragType;
|
||||
};
|
||||
|
||||
|
||||
|
|
85
src/main.cpp
85
src/main.cpp
|
@ -60,8 +60,7 @@ QIcon *Icon_EditClone;
|
|||
QIcon *Icon_EditOpenUrl;
|
||||
QIcon *Icon_EditSearch;
|
||||
QIcon *Icon_Configure;
|
||||
QString DateTimeFormat("no-format-string");
|
||||
|
||||
QIcon *Icon_Help;
|
||||
|
||||
inline void loadImages();
|
||||
inline void parseCmdLineArgs(int argc, char** argv,QString &ArgFile,QString& ArgCfg);
|
||||
|
@ -91,47 +90,36 @@ else{
|
|||
|
||||
//Internationalization
|
||||
QLocale loc=QLocale::system();
|
||||
QTranslator* translator = 0;
|
||||
translator =new QTranslator;
|
||||
if(config.Language==""){
|
||||
switch(loc.language()){
|
||||
case QLocale::German:
|
||||
config.Language="_DEUTSCH_";
|
||||
break;
|
||||
case QLocale::Russian:
|
||||
config.Language="russian.qm";
|
||||
break;
|
||||
case QLocale::English:
|
||||
config.Language="english.qm";
|
||||
break;
|
||||
default:
|
||||
config.Language="english.qm";
|
||||
break;}
|
||||
QTranslator* translator = NULL;
|
||||
translator=new QTranslator;
|
||||
bool TrFound=true;
|
||||
if(!translator->load("keepass-"+loc.name(),app->applicationDirPath()+"/../share/keepass/i18n/")){
|
||||
if(!translator->load("keepass-"+loc.name(),QDir::homeDirPath()+"/.keepass/")){
|
||||
qWarning(QString("No Translation found for %1 (%2)")
|
||||
.arg(QLocale::languageToString(loc.language()))
|
||||
.arg(QLocale::countryToString(loc.country())));
|
||||
TrFound=false;
|
||||
}
|
||||
}
|
||||
|
||||
if(config.Language!="_DEUTSCH_"){
|
||||
if(!translator->load(app->applicationDirPath()+"/../share/keepass/i18n/"+config.Language)){
|
||||
if(!translator->load(app->applicationDirPath()+"/share/i18n/"+config.Language)){
|
||||
config.Language="_DEUTSCH_";
|
||||
QMessageBox::warning(NULL,"Warning",
|
||||
QString("Translation file '%1' could not be loaded.")
|
||||
.arg(config.Language),"OK",0,0,2,1);
|
||||
delete translator;
|
||||
translator=NULL;}}
|
||||
else app->installTranslator(translator);
|
||||
}
|
||||
if(TrFound)
|
||||
app->installTranslator(translator);
|
||||
else
|
||||
delete translator;
|
||||
|
||||
DateTimeFormat=QObject::tr("dd'.'MM'.'yy' 'hh':'mm");
|
||||
loadImages();
|
||||
|
||||
SecString::generateSessionKey();
|
||||
|
||||
int r=0;
|
||||
KeepassMainWindow *mainWin = new KeepassMainWindow();
|
||||
mainWin->show();
|
||||
int r=app->exec();
|
||||
if(mainWin->Start){
|
||||
mainWin->show();
|
||||
r=app->exec();
|
||||
}
|
||||
delete mainWin;
|
||||
if(!config.saveToIni(IniFilename))
|
||||
QMessageBox::warning(NULL,QObject::tr("Warning"),QObject::tr("Could not save configuration file.\nMake sure you have write access to '~/.keepass'."),QObject::tr("OK"),"","",0.0);
|
||||
QMessageBox::warning(NULL,QObject::tr("Warning"),
|
||||
QObject::tr("Could not save configuration file.\nMake sure you have write access to '~/.keepass'."),
|
||||
QObject::tr("OK"),"","",0.0);
|
||||
delete app;
|
||||
return r;
|
||||
}
|
||||
|
@ -201,19 +189,31 @@ browser.startDetached(cmd,args);
|
|||
void loadImg(QString name,QPixmap& Img){
|
||||
if(Img.load(AppDir+"/../share/keepass/icons/"+name)==false){
|
||||
if(Img.load(AppDir+"/share/"+name)==false){
|
||||
QMessageBox::critical(0,QObject::tr("Fehler"),QObject::tr("File '%1' could not be found.")
|
||||
QMessageBox::critical(0,QObject::tr("Error"),QObject::tr("File '%1' could not be found.")
|
||||
.arg(name),QObject::tr("OK"),0,0,2,1);
|
||||
exit(1);
|
||||
}}
|
||||
|
||||
}
|
||||
|
||||
|
||||
#define _loadIcon(_VAR,_NAME)\
|
||||
_VAR=new QIcon(ThemeDir+_NAME);
|
||||
|
||||
#ifndef Q_WS_X11
|
||||
#define _loadIcon(Icon,PATH)\
|
||||
{QImage img(ThemeDir+PATH);\
|
||||
Icon=new QIcon();\
|
||||
/*Icon->addPixmap(QPixmap::fromImage(img));*/\
|
||||
Icon->addPixmap(QPixmap::fromImage(img.scaled(16,16,Qt::IgnoreAspectRatio,Qt::SmoothTransformation)));\
|
||||
}
|
||||
#else
|
||||
#define _loadIcon(Icon,PATH)\
|
||||
{QImage img(ThemeDir+PATH);\
|
||||
Icon=new QIcon();\
|
||||
Icon->addPixmap(QPixmap::fromImage(img));\
|
||||
Icon->addPixmap(QPixmap::fromImage(img.scaled(16,16,Qt::IgnoreAspectRatio,Qt::SmoothTransformation)));\
|
||||
}
|
||||
#endif
|
||||
|
||||
void loadImages(){
|
||||
|
||||
bool small=true;
|
||||
QString ThemeDir=AppDir+"/../share/keepass/icons/nuvola/32x32";
|
||||
QPixmap tmpImg;
|
||||
|
@ -246,7 +246,6 @@ Icon_Search32x32=new QPixmap;
|
|||
*Icon_Search32x32=tmpImg;
|
||||
//--------------------------
|
||||
|
||||
|
||||
_loadIcon(Icon_FileNew,"/actions/filenew.png");
|
||||
_loadIcon(Icon_FileOpen,"/actions/fileopen.png");
|
||||
_loadIcon(Icon_FileSave,"/actions/filesave.png");
|
||||
|
@ -262,7 +261,7 @@ _loadIcon(Icon_EditClone,"/actions/editcopy.png");
|
|||
_loadIcon(Icon_EditOpenUrl,"/actions/run.png");
|
||||
_loadIcon(Icon_EditSearch,"/actions/find.png");
|
||||
_loadIcon(Icon_Configure,"/actions/configure.png");
|
||||
|
||||
_loadIcon(Icon_Help,"/actions/help.png");
|
||||
}
|
||||
|
||||
|
||||
|
@ -295,5 +294,5 @@ int i=1;
|
|||
}
|
||||
|
||||
void showErrMsg(const QString& msg,QWidget* parent){
|
||||
QMessageBox::critical(parent,QObject::tr("Fehler"),msg,QObject::tr("OK"));
|
||||
QMessageBox::critical(parent,QObject::tr("Error"),msg,QObject::tr("OK"));
|
||||
}
|
||||
|
|
|
@ -60,7 +60,7 @@ extern QIcon *Icon_EditClone;
|
|||
extern QIcon *Icon_EditOpenUrl;
|
||||
extern QIcon *Icon_EditSearch;
|
||||
extern QIcon *Icon_Configure;
|
||||
extern QString DateTimeFormat;
|
||||
extern QIcon *Icon_Help;
|
||||
|
||||
|
||||
#endif
|
|
@ -59,6 +59,7 @@
|
|||
|
||||
|
||||
KeepassMainWindow::KeepassMainWindow(QWidget *parent, Qt::WFlags flags):QMainWindow(parent,flags){
|
||||
Start=true;
|
||||
setupUi(this);
|
||||
setGeometry(geometry().x(),geometry().y(),config.MainWinWidth,config.MainWinHeight);
|
||||
splitter->setSizes(QList<int>() << config.MainWinSplit1 << config.MainWinSplit2);
|
||||
|
@ -68,14 +69,22 @@ KeepassMainWindow::KeepassMainWindow(QWidget *parent, Qt::WFlags flags):QMainWin
|
|||
setupToolbar();
|
||||
setStateFileOpen(false);
|
||||
setupMenus();
|
||||
setupConnections();
|
||||
FileOpen=false;
|
||||
Clipboard=QApplication::clipboard();
|
||||
setStatusBar(new QStatusBar(this));
|
||||
StatusBarGeneral=new QLabel(tr("Ready"),statusBar());
|
||||
StatusBarSelection=new QLabel(statusBar());
|
||||
statusBar()->addWidget(StatusBarGeneral,30);
|
||||
statusBar()->addWidget(StatusBarSelection,70);
|
||||
statusBar()->addWidget(StatusBarGeneral,15);
|
||||
statusBar()->addWidget(StatusBarSelection,85);
|
||||
statusBar()->setVisible(config.ShowStatusbar);
|
||||
setupConnections();
|
||||
FileOpen=false;
|
||||
Clipboard=QApplication::clipboard();
|
||||
if(config.OpenLast && (config.LastFile!=QString()) ){
|
||||
QFileInfo file(config.LastFile);
|
||||
if(file.exists())
|
||||
openDatabase(config.LastFile,true);
|
||||
else
|
||||
config.LastFile=QString();
|
||||
}
|
||||
}
|
||||
|
||||
void KeepassMainWindow::setupConnections(){
|
||||
|
@ -118,6 +127,7 @@ void KeepassMainWindow::setupConnections(){
|
|||
connect(ViewColumnsLastChangeAction,SIGNAL(toggled(bool)), this, SLOT(OnColumnVisibilityChanged(bool)));
|
||||
connect(ViewColumnsLastAccessAction,SIGNAL(toggled(bool)), this, SLOT(OnColumnVisibilityChanged(bool)));
|
||||
connect(ViewColumnsAttachmentAction,SIGNAL(toggled(bool)), this, SLOT(OnColumnVisibilityChanged(bool)));
|
||||
connect(ViewShowStatusbarAction,SIGNAL(toggled(bool)),statusBar(),SLOT(setVisible(bool)));
|
||||
|
||||
connect(ExtrasSettingsAction,SIGNAL(triggered(bool)),this,SLOT(OnExtrasSettings()));
|
||||
|
||||
|
@ -172,6 +182,7 @@ EditDeleteGroupAction->setIcon(*Icon_EditDelete);
|
|||
EditSearchAction->setIcon(*Icon_EditSearch);
|
||||
EditGroupSearchAction->setIcon(*Icon_EditSearch);
|
||||
ExtrasSettingsAction->setIcon(*Icon_Configure);
|
||||
HelpHandbookAction->setIcon(*Icon_Help);
|
||||
}
|
||||
|
||||
void KeepassMainWindow::setupMenus(){
|
||||
|
@ -207,6 +218,7 @@ void KeepassMainWindow::setupMenus(){
|
|||
ViewColumnsLastChangeAction->setChecked(config.Columns[7]);
|
||||
ViewColumnsLastAccessAction->setChecked(config.Columns[8]);
|
||||
ViewColumnsAttachmentAction->setChecked(config.Columns[9]);
|
||||
ViewShowStatusbarAction->setChecked(config.ShowStatusbar);
|
||||
|
||||
FileNewAction->setShortcut(tr("Ctrl+N"));
|
||||
FileOpenAction->setShortcut(tr("Ctrl+O"));
|
||||
|
@ -228,11 +240,14 @@ void KeepassMainWindow::setupMenus(){
|
|||
}
|
||||
|
||||
|
||||
void KeepassMainWindow::openDatabase(QString filename){
|
||||
void KeepassMainWindow::openDatabase(QString filename,bool s){
|
||||
Q_ASSERT(!FileOpen);
|
||||
CPasswordDialog PasswordDlg(this,"Password Dialog",true);
|
||||
CPasswordDialog PasswordDlg(this,"Password Dialog",true,s);
|
||||
PasswordDlg.setCaption(filename);
|
||||
if(!PasswordDlg.exec()) return;
|
||||
int r=PasswordDlg.exec();
|
||||
if(r==0) return;
|
||||
if(r==2) {Start=false; close(); return;}
|
||||
Q_ASSERT(r==1);
|
||||
db = new PwDatabase();
|
||||
GroupView->db=db;
|
||||
EntryView->db=db;
|
||||
|
@ -246,8 +261,10 @@ if(PasswordDlg.password!="" && PasswordDlg.keyfile!=""){
|
|||
db->CalcMasterKeyByFileAndPw(PasswordDlg.keyfile,PasswordDlg.password);
|
||||
}
|
||||
QString err;
|
||||
StatusBarGeneral->setText(tr("Loading Database..."));
|
||||
if(db->loadDatabase(filename,err)==true){
|
||||
//SUCCESS
|
||||
if(config.OpenLast)config.LastFile=filename;
|
||||
setCaption(tr("Keepass - %1").arg(filename));
|
||||
GroupView->updateItems();
|
||||
EntryView->updateItems(0);
|
||||
|
@ -257,11 +274,13 @@ setStateFileModified(false);
|
|||
else{
|
||||
//ERROR
|
||||
delete db;
|
||||
StatusBarGeneral->setText(tr("Loading Failed"));
|
||||
if(err=="")err=tr("Unknown error in PwDatabase::loadDatabase()");
|
||||
QMessageBox::critical(this,tr("Error")
|
||||
,tr("The following error occured while opening the database:\n%1")
|
||||
.arg(err),tr("OK"));
|
||||
}
|
||||
StatusBarGeneral->setText(tr("Ready"));
|
||||
}
|
||||
|
||||
bool KeepassMainWindow::closeDatabase(){
|
||||
|
@ -296,7 +315,7 @@ if(FileOpen)
|
|||
db=new PwDatabase();
|
||||
CChangeKeyDlg dlg(this,db);
|
||||
if(dlg.exec()==1){
|
||||
setCaption(tr("KeePassX - %1").arg(tr("[neu]")));
|
||||
setCaption(tr("KeePassX - %1").arg(tr("[new]")));
|
||||
GroupView->db=db;
|
||||
EntryView->db=db;
|
||||
GroupView->updateItems();
|
||||
|
@ -311,7 +330,7 @@ else delete db;
|
|||
void KeepassMainWindow::OnFileOpen(){
|
||||
if(FileOpen)
|
||||
if(!closeDatabase())return;
|
||||
QString filename=QFileDialog::getOpenFileName(this,tr("Databank öffnen..."),QDir::homePath(),"*.kdb");
|
||||
QString filename=QFileDialog::getOpenFileName(this,tr("Open Database..."),QDir::homePath(),"*.kdb");
|
||||
if(filename!=QString::null){
|
||||
openDatabase(filename);
|
||||
}
|
||||
|
@ -542,9 +561,77 @@ void KeepassMainWindow::OnFileExit(){
|
|||
close();
|
||||
}
|
||||
|
||||
void KeepassMainWindow::OnImportFromPwm(){}
|
||||
void KeepassMainWindow::OnImportFromPwm(){
|
||||
if(FileOpen)
|
||||
if(!closeDatabase())return;
|
||||
QString filename=QFileDialog::getOpenFileName(this,tr("Open Database..."),QDir::homePath(),"*.pwm");
|
||||
if(filename!=QString::null){
|
||||
Q_ASSERT(!FileOpen);
|
||||
db = new PwDatabase();
|
||||
CSimplePasswordDialog dlg(this,"SimplePasswordDlg",true);
|
||||
if(!dlg.exec()){
|
||||
delete db;
|
||||
db=NULL;
|
||||
StatusBarGeneral->setText(tr("Ready"));
|
||||
}
|
||||
GroupView->db=db;
|
||||
EntryView->db=db;
|
||||
QString err;
|
||||
StatusBarGeneral->setText(tr("Loading Database..."));
|
||||
Import_PwManager import;
|
||||
if(import.importFile(filename,dlg.password,db,err)==true){
|
||||
//SUCCESS
|
||||
setCaption(tr("KeePassX [new]"));
|
||||
GroupView->updateItems();
|
||||
EntryView->updateItems(0);
|
||||
setStateFileOpen(true);
|
||||
setStateFileModified(true);
|
||||
}
|
||||
else{
|
||||
//ERROR
|
||||
delete db;
|
||||
StatusBarGeneral->setText(tr("Loading Failed"));
|
||||
if(err=="")err=tr("Unknown error in Import_PwManager::importFile()()");
|
||||
QMessageBox::critical(this,tr("Error")
|
||||
,tr("The following error occured while opening the database:\n%1")
|
||||
.arg(err),tr("OK"));
|
||||
}
|
||||
StatusBarGeneral->setText(tr("Ready"));
|
||||
}
|
||||
}
|
||||
|
||||
void KeepassMainWindow::OnImportFromKWalletXml(){}
|
||||
void KeepassMainWindow::OnImportFromKWalletXml(){
|
||||
if(FileOpen)
|
||||
if(!closeDatabase())return;
|
||||
QString filename=QFileDialog::getOpenFileName(this,tr("Open Database..."),QDir::homePath(),"*.pwm");
|
||||
if(filename!=QString::null){
|
||||
Q_ASSERT(!FileOpen);
|
||||
db = new PwDatabase();
|
||||
GroupView->db=db;
|
||||
EntryView->db=db;
|
||||
QString err;
|
||||
StatusBarGeneral->setText(tr("Loading Database..."));
|
||||
Import_KWalletXml import;
|
||||
if(import.importFile(filename,db,err)==true){
|
||||
//SUCCESS
|
||||
setCaption(tr("KeePassX [new]"));
|
||||
GroupView->updateItems();
|
||||
EntryView->updateItems(0);
|
||||
setStateFileOpen(true);
|
||||
setStateFileModified(true);
|
||||
}
|
||||
else{
|
||||
//ERROR
|
||||
delete db;
|
||||
StatusBarGeneral->setText(tr("Loading Failed"));
|
||||
if(err=="")err=tr("Unknown error in Import_KWalletXml::importFile()");
|
||||
QMessageBox::critical(this,tr("Error")
|
||||
,tr("The following error occured while opening the database:\n%1")
|
||||
.arg(err),tr("OK"));
|
||||
}
|
||||
StatusBarGeneral->setText(tr("Ready"));
|
||||
}
|
||||
}
|
||||
|
||||
void KeepassMainWindow::OnCurrentGroupChanged(QTreeWidgetItem* cur,QTreeWidgetItem* prev){
|
||||
if(cur){
|
||||
|
@ -776,6 +863,7 @@ config.MainWinHeight=geometry().height();
|
|||
config.MainWinWidth=geometry().width();
|
||||
config.MainWinSplit1=splitter->sizes()[0];
|
||||
config.MainWinSplit2=splitter->sizes()[1];
|
||||
config.ShowStatusbar=statusBar()->isVisible();
|
||||
|
||||
if(FileOpen){
|
||||
if(!closeDatabase())
|
||||
|
@ -791,6 +879,7 @@ else
|
|||
void KeepassMainWindow::OnExtrasSettings(){
|
||||
CSettingsDlg dlg(this,"SettingsDlg");
|
||||
dlg.exec();
|
||||
EntryView->setAlternatingRowColors(config.AlternatingRowColors);
|
||||
}
|
||||
|
||||
void KeepassMainWindow::OnHelpAbout(){
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/***************************************************************************
|
||||
* Copyright (C) 2005 by Tarek Saidi *
|
||||
* Copyright (C) 2005-2006 by Tarek Saidi *
|
||||
* tarek.saidi@arcor.de *
|
||||
* *
|
||||
* This program is free software; you can redistribute it and/or modify *
|
||||
|
@ -50,6 +50,7 @@ Q_OBJECT
|
|||
public:
|
||||
KeepassMainWindow (QWidget *parent=0, Qt::WFlags flags=0);
|
||||
PwDatabase* db;
|
||||
bool Start;
|
||||
|
||||
private slots:
|
||||
void OnFileNew();
|
||||
|
@ -105,7 +106,7 @@ private:
|
|||
void setStateFileModified(bool);
|
||||
void setStateGroupSelected(SelectionState s);
|
||||
void setStateEntrySelected(SelectionState s);
|
||||
void openDatabase(QString filename);
|
||||
void openDatabase(QString filename,bool IsStart=false);
|
||||
bool closeDatabase();
|
||||
void search(CGroup* pGroup);
|
||||
void editEntry(CEntry* pEntry);
|
||||
|
|
|
@ -24,7 +24,7 @@ FORMS += forms/EditGroupDlg.ui \
|
|||
forms/EditEntryDlg.ui \
|
||||
forms/PasswordGenDlg.ui
|
||||
TRANSLATIONS += translations/keepass-de_DE.ts \
|
||||
translations/keepass-ru_Ru.ts \
|
||||
translations/keepass-ru_RU.ts \
|
||||
translations/keepass-xx_XX.ts
|
||||
HEADERS += lib/IniReader.h \
|
||||
lib/UrlLabel.h \
|
||||
|
@ -91,8 +91,8 @@ SOURCES += lib/IniReader.cpp \
|
|||
lib/EntryView.cpp \
|
||||
crypto/arcfour.cpp \
|
||||
lib/KpFileIconProvider.cpp
|
||||
QT += xml \
|
||||
qt3support
|
||||
QT += xml qt3support
|
||||
QT -= network sql
|
||||
MOC_DIR = ../build/moc
|
||||
UI_DIR = ../build/ui
|
||||
OBJECTS_DIR = ../build/
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -26,15 +26,15 @@
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:Sans Serif; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Mattias Miller</span> (www.outofhanwell.com)</p><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"> Mac OS X Support</p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message encoding="UTF-8">
|
||||
<source>Übersetzung</source>
|
||||
<source>License</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>License</source>
|
||||
<source><html><head><meta name="qrichtext" content="1" /></head><body style=" white-space: pre-wrap; font-family:Sans Serif; font-size:9pt; font-weight:400; font-style:normal; text-decoration:none;"><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p></body></html></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Translation</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
|
@ -60,10 +60,6 @@
|
|||
<source>OK</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Fehler</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Could not open file '%1'</source>
|
||||
<translation type="unfinished"></translation>
|
||||
|
@ -172,10 +168,6 @@ Please check your input.</source>
|
|||
</context>
|
||||
<context>
|
||||
<name>CEditEntryDlg</name>
|
||||
<message>
|
||||
<source>Eintrag bearbeiten</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning</source>
|
||||
<translation type="unfinished"></translation>
|
||||
|
@ -189,14 +181,6 @@ Please check your input.</source>
|
|||
<source>OK</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Fehler</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message encoding="UTF-8">
|
||||
<source>Datei konnte nicht geöffnet werden.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Save Attachment...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
|
@ -247,6 +231,14 @@ Are you sure?</source>
|
|||
<source>No, Cancel</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Edit Entry</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Could not open file.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CGenPwDialog</name>
|
||||
|
@ -273,18 +265,6 @@ Are you sure?</source>
|
|||
</context>
|
||||
<context>
|
||||
<name>CPasswordDialog</name>
|
||||
<message encoding="UTF-8">
|
||||
<source>Datenbank öffnen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message encoding="UTF-8">
|
||||
<source>Datei manuell wählen...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>< keiner ></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>No key file found</source>
|
||||
<translation type="unfinished"></translation>
|
||||
|
@ -323,13 +303,21 @@ Please use the manual file selection for key files with a filename other than &a
|
|||
<source>Please enter a Password or select a key file.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open Database</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Select File Manually...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>< none ></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CSearchDlg</name>
|
||||
<message>
|
||||
<source>Suchen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Notice</source>
|
||||
<translation type="unfinished"></translation>
|
||||
|
@ -342,6 +330,10 @@ Please use the manual file selection for key files with a filename other than &a
|
|||
<source>OK</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>CSettingsDlg</name>
|
||||
|
@ -529,118 +521,114 @@ Please use the manual file selection for key files with a filename other than &a
|
|||
</context>
|
||||
<context>
|
||||
<name>GenPwDlg</name>
|
||||
<message>
|
||||
<source>Passwort Generator</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Akzep&tieren</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Abbre&chen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generieren</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Neues Passwort:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message encoding="UTF-8">
|
||||
<source>Qualität:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Optionen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message encoding="UTF-8">
|
||||
<source>Gro&ßbuchstaben</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message encoding="UTF-8">
|
||||
<source>Alt+ß</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Kleinbuchstaben</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Alt+K</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Zahlen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Alt+Z</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>S&onderzeichen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bindestriche</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Unterstriche</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Alt+U</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message encoding="UTF-8">
|
||||
<source>h&öhere ANSI-Zeichen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message encoding="UTF-8">
|
||||
<source>Alt+ö</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&nur folgende Zeichen benutzen:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Alt+N</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Zeichenanzahl:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>"/dev/rando&m" nutzen (empfohlen)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Alt+M</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>folgende Zeichengruppen &verwenden:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Alt+V</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Leerzeichen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Alt+L</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Password Generator</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Accep&t</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Cancel</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generate</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>New Password:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Quality:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Options</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Upper Letters</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Lower Letters</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Numbers</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Special Characters</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Minus</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>U&nderline</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>h&igher ANSI-Characters</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Alt+H</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Use &only following characters:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Alt+O</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Length:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Use "/dev/rando&m"</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Use follo&wing character groups:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Alt+W</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>White &Spaces</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Alt+S</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>KeepassEntryView</name>
|
||||
|
@ -688,20 +676,16 @@ Please use the manual file selection for key files with a filename other than &a
|
|||
<context>
|
||||
<name>KeepassGroupView</name>
|
||||
<message>
|
||||
<source>Gruppen</source>
|
||||
<source>Search Results</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search Results</source>
|
||||
<source>Groups</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>KeepassMainWindow</name>
|
||||
<message>
|
||||
<source>Bereit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ctrl+N</source>
|
||||
<translation type="unfinished"></translation>
|
||||
|
@ -808,14 +792,6 @@ to save the changes?</source>
|
|||
<source>KeePassX - %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>[neu]</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message encoding="UTF-8">
|
||||
<source>Databank öffnen...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source><B>Group: </B>%1 <B>Title: </B>%2 <B>Username: </B>%3 <B>URL: </B><a href=%4>%4</a> <B>Password: </B>%5 <B>Creation: </B>%6 <B>Last Change: </B>%7 <B>LastAccess: </B>%8 <B>Expires: </B>%9</source>
|
||||
<translation type="unfinished"></translation>
|
||||
|
@ -845,6 +821,18 @@ to save the changes?</source>
|
|||
<source>Save Database As...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ready</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>[new]</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open Database...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
|
@ -860,10 +848,6 @@ to save the changes?</source>
|
|||
<source>Import from...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bearbeiten</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>View</source>
|
||||
<translation type="unfinished"></translation>
|
||||
|
@ -1036,6 +1020,14 @@ to save the changes?</source>
|
|||
<source>About...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Edit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show Statusbar</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PasswordDlg</name>
|
||||
|
@ -1047,40 +1039,40 @@ to save the changes?</source>
|
|||
<source>OK</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Abbrechen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message encoding="UTF-8">
|
||||
<source>Geben Sie das Passwort ein oder wählen Sie eine Schlüsseldatei.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message encoding="UTF-8">
|
||||
<source>Schlüssel</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Passwort:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message encoding="UTF-8">
|
||||
<source>Schlüsseldatei oder Datenträger:</source>
|
||||
<message>
|
||||
<source>Cancel</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message encoding="UTF-8">
|
||||
<source>W&ählen...</source>
|
||||
<message>
|
||||
<source>Enter a Password and/or choose a key file.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message encoding="UTF-8">
|
||||
<source>Alt+Ä</source>
|
||||
<message>
|
||||
<source>Key</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message encoding="UTF-8">
|
||||
<source>Passwort UND Schlüsseldatei benutzen</source>
|
||||
<message>
|
||||
<source>Password:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Key file or directory:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Browse...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Alt+B</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Use Password AND Key File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
|
@ -1143,10 +1135,6 @@ The key is wrong or the file is damaged</source>
|
|||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<source>dd'.'MM'.'yy' 'hh':'mm</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Warning</source>
|
||||
<translation type="unfinished"></translation>
|
||||
|
@ -1160,10 +1148,6 @@ Make sure you have write access to '~/.keepass'.</source>
|
|||
<source>OK</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Fehler</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>File '%1' could not be found.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
|
@ -1237,65 +1221,17 @@ Make sure you have write access to '~/.keepass'.</source>
|
|||
</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Search_Dlg</name>
|
||||
<message>
|
||||
<source>Suche...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Suchbegriff:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message encoding="UTF-8">
|
||||
<source>regul&ärer Ausdruck</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message encoding="UTF-8">
|
||||
<source>Alt+Ä</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message encoding="UTF-8">
|
||||
<source>Gro&ß- und Kleinschreibung beachten</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message encoding="UTF-8">
|
||||
<source>Alt+ß</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Suche nach</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Titel</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Alt+T</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Benut&zername</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Alt+Z</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Kommentar</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Alt+K</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&URL</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Alt+U</source>
|
||||
<translation type="unfinished"></translation>
|
||||
|
@ -1308,105 +1244,89 @@ Make sure you have write access to '~/.keepass'.</source>
|
|||
<source>Alt+N</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Pass&wort</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Alt+W</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Suchen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message encoding="UTF-8">
|
||||
<source>S&chließen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Alt+C</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Untergruppen einbeziehen</source>
|
||||
<source>Search...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search For:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Regular E&xpression</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Alt+X</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Case Sensitive</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Include:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Titles</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Usernames</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>C&omments</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Alt+O</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>U&RLs</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Alt+R</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Pass&words</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Search</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Clo&se</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Alt+S</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Include Subgroups (recursive)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context encoding="UTF-8">
|
||||
<context>
|
||||
<name>SettingsDialog</name>
|
||||
<message>
|
||||
<source>Einstellungen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sicherhei&t</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message encoding="UTF-8">
|
||||
<source>Zwischenablage löschen nach:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sekunden</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message encoding="UTF-8">
|
||||
<source>Passw&örter standardmäßig in Klartext anzeigen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message encoding="UTF-8">
|
||||
<source>Alt+Ö</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>E&rscheinungsbild</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Bannerfarbverlauf</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Farbe 1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message encoding="UTF-8">
|
||||
<source>&ändern...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message encoding="UTF-8">
|
||||
<source>Alt+Ä</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Farbe 2</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message encoding="UTF-8">
|
||||
<source>ändern...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Textfarbe</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message encoding="UTF-8">
|
||||
<source>Gruppenbaum beim &Öffnen aufklappen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>S&onstiges</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message encoding="UTF-8">
|
||||
<source>zuletzt geöffnete Datei bei Programmstart &öffnen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Browseraufruf:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>O&K</source>
|
||||
<translation type="unfinished"></translation>
|
||||
|
@ -1416,24 +1336,88 @@ Make sure you have write access to '~/.keepass'.</source>
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Abbre&chen</source>
|
||||
<source>Alt+C</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Alt+C</source>
|
||||
<source>Settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Cancel</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Securi&try</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Clear clipboard after:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Seconds</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sh&ow passwords in plain text by default</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Alt+O</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Appea&rance</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Banner Color</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Text Color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Change...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Color 2:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>C&hange...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Alt+H</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Color 1:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Expand group tree when opening a database</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Other</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Remember last opend file</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Browser Command:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SimplePasswordDialog</name>
|
||||
<message>
|
||||
<source>Passworteingabe</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Passwort:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>O&K</source>
|
||||
<translation type="unfinished"></translation>
|
||||
|
@ -1442,10 +1426,6 @@ Make sure you have write access to '~/.keepass'.</source>
|
|||
<source>Alt+K</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Abbre&chen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Alt+C</source>
|
||||
<translation type="unfinished"></translation>
|
||||
|
@ -1454,6 +1434,18 @@ Make sure you have write access to '~/.keepass'.</source>
|
|||
<source>...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Enter your Password</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Password:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Cancel</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>dbsettingdlg_base</name>
|
||||
|
|
Loading…
Reference in New Issue