Merge 0.4 branch to trunk

git-svn-id: https://svn.code.sf.net/p/keepassx/code/trunk@319 b624d157-de02-0410-bad0-e51aec6abb33
master
sniperbeamer 15 years ago
parent 82f4fc4749
commit 8ec1eeefa4
  1. BIN
      share/keepassx/icons/go-home.png
  2. BIN
      share/keepassx/icons/go-next.png
  3. BIN
      share/keepassx/icons/go-previous.png
  4. BIN
      share/keepassx/icons/help_about.png
  5. 10
      src/Application_X11.cpp
  6. 3
      src/CMakeLists.txt
  7. 9
      src/Kdb3Database.cpp
  8. 4
      src/KpxConfig.h
  9. 2
      src/crypto/twofish.cpp
  10. 2
      src/dialogs/AboutDlg.cpp
  11. 11
      src/dialogs/HelpDlg.cpp
  12. 15
      src/dialogs/HelpDlg.h
  13. 12
      src/dialogs/SelectIconDlg.cpp
  14. 3
      src/dialogs/SettingsDlg.cpp
  15. 155
      src/forms/AboutDlg.ui
  16. 202
      src/forms/HelpDlg.ui
  17. 540
      src/forms/MainWindow.ui
  18. 832
      src/forms/SettingsDlg.ui
  19. 3
      src/keepassx.h
  20. 31
      src/lib/AutoTypeGlobalX11.cpp
  21. 3
      src/lib/AutoTypeGlobalX11.h
  22. 19
      src/lib/AutoTypeX11.cpp
  23. 4
      src/lib/AutoTypeX11.h
  24. 20
      src/lib/EntryView.cpp
  25. 10
      src/lib/GroupView.cpp
  26. 1
      src/lib/GroupView.h
  27. 2
      src/main.cpp
  28. 58
      src/mainwindow.cpp
  29. 5
      src/mainwindow.h
  30. BIN
      src/res/docs/external.png
  31. 49
      src/res/docs/faq.html
  32. 20
      src/res/docs/features.html
  33. 82
      src/res/docs/index.html
  34. 50
      src/res/docs/installation.html
  35. 233
      src/res/docs/quickstart.html
  36. 46
      src/res/docs/systemreq.html
  37. 15
      src/res/resources.qrc
  38. 3
      src/src.pro
  39. 3203
      src/translations/keepassx-es_ES.ts
  40. 172
      src/translations/keepassx-it_IT.ts

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

@ -29,6 +29,7 @@ bool KeepassApplication::x11EventFilter(XEvent* event){
if (autoType == NULL)
return QApplication::x11EventFilter(event);
#ifdef GLOBAL_AUTOTYPE
if (remove_invalid == 0) {
AutoTypeGlobalX11* autoTypeGlobal = static_cast<AutoTypeGlobalX11*>(autoType);
remove_invalid = ControlMask | ShiftMask | autoTypeGlobal->maskAlt() |
@ -44,7 +45,12 @@ bool KeepassApplication::x11EventFilter(XEvent* event){
autoType->performGlobal();
return true;
}
else{
return QApplication::x11EventFilter(event);
#endif
if (event->type == MappingNotify) {
dynamic_cast<AutoTypeX11*>(autoType)->updateKeymap();
remove_invalid = 0;
}
return QApplication::x11EventFilter(event);
}

@ -20,6 +20,7 @@ SET(keepassx_HEADERS
dialogs/EditEntryDlg.h
dialogs/EditGroupDlg.h
dialogs/ExpiredEntriesDlg.h
dialogs/HelpDlg.h
dialogs/ManageBookmarksDlg.h
dialogs/PasswordDlg.h
dialogs/PasswordGenDlg.h
@ -76,6 +77,7 @@ SET(keepassx_SOURCES
dialogs/EditEntryDlg.cpp
dialogs/EditGroupDlg.cpp
dialogs/ExpiredEntriesDlg.cpp
dialogs/HelpDlg.cpp
dialogs/ManageBookmarksDlg.cpp
dialogs/PasswordDlg.cpp
dialogs/PasswordGenDlg.cpp
@ -104,6 +106,7 @@ SET(keepassx_FORMS
forms/EditEntryDlg.ui
forms/EditGroupDlg.ui
forms/ExpiredEntriesDlg.ui
forms/HelpDlg.ui
forms/MainWindow.ui
forms/ManageBookmarksDlg.ui
forms/PasswordDlg.ui

@ -21,6 +21,7 @@
#include "crypto/twoclass.h"
#include <QBuffer>
#include <algorithm>
#define UNEXP_ERROR error=QString("Unexpected error in: %1, Line:%2").arg(__FILE__).arg(__LINE__);
@ -595,12 +596,16 @@ bool Kdb3Database::loadReal(QString filename, bool readOnly, bool differentEncod
else if(Algorithm == Twofish_Cipher){
CTwofish twofish;
if (twofish.init(FinalKey, 32, EncryptionIV) != true){
error=tr("Unable to initalize the twofish algorithm.");
error=tr("Unable to initialize the twofish algorithm.");
LOAD_RETURN_CLEANUP
}
crypto_size = (unsigned long)twofish.padDecrypt((quint8 *)buffer + DB_HEADER_SIZE,
total_size - DB_HEADER_SIZE, (quint8 *)buffer + DB_HEADER_SIZE);
}
else{
error=tr("Unknown encryption algorithm.");
LOAD_RETURN_CLEANUP
}
if ((crypto_size > 2147483446) || (!crypto_size && NumGroups)){
error=tr("Decryption failed.\nThe key is wrong or the file is damaged.");
@ -1972,7 +1977,7 @@ int KeyTransformBenchmark::benchmark(int pMSecs){
ktbRight->start();
ktbLeft->wait();
ktbRight->wait();
int num = ktbLeft->rounds + ktbRight->rounds;
int num = std::min(ktbLeft->rounds, ktbRight->rounds);
delete ktbLeft;
delete ktbRight;

@ -64,7 +64,6 @@ public:
QString lastKeyLocation(){return settings.value("Options/LastKeyLocation").toString();}
tKeyType lastKeyType(){return stringToKeyType(settings.value("Options/LastKeyType").toString());}
QByteArray mainWindowGeometry();
bool minimizeToTray(){return settings.value("Options/MinimizeToTray",false).toBool();}
bool minimizeTray(){return settings.value("Options/MinimizeTray",false).toBool();}
bool startMinimized(){return settings.value("Options/StartMinimized",false).toBool();}
bool startLocked(){return settings.value("Options/StartLocked",false).toBool();}
@ -101,7 +100,7 @@ public:
bool askBeforeDelete(){return settings.value("Options/AskBeforeDelete",true).toBool();}
#ifdef AUTOTYPE
int autoTypePreGap(){return settings.value("Options/AutoTypePreGap",500).toInt();}
int autoTypeKeyStrokeDelay(){return settings.value("Options/AutoTypeKeyStrokeDelay",0).toInt();}
int autoTypeKeyStrokeDelay(){return settings.value("Options/AutoTypeKeyStrokeDelay",5).toInt();}
#endif
#ifdef GLOBAL_AUTOTYPE
Shortcut globalShortcut();
@ -131,7 +130,6 @@ public:
void setLastKeyLocation(const QString& value){settings.setValue("Options/LastKeyLocation",value);}
void setLastKeyType(tKeyType value){settings.setValue("Options/LastKeyType",keyTypeToString(value));}
void setMainWindowGeometry(const QByteArray& value){settings.setValue("UI/MainWindowGeometry",value);}
void setMinimizeToTray(bool value){settings.setValue("Options/MinimizeToTray",value);}
void setMinimizeTray(bool value){settings.setValue("Options/MinimizeTray",value);}
void setStartMinimized(bool value){settings.setValue("Options/StartMinimized",value);}
void setStartLocked(bool value){settings.setValue("Options/StartLocked",value);}

@ -1362,7 +1362,7 @@ void Twofish_prepare_key( Twofish_Byte key[], int key_len, Twofish_key * xkey )
* To stop such security disasters, we use blunt force.
* If your program hangs here: fix the fatal routine!
*/
for(;;); /* Infinite loop, which beats being insecure. */
for(;;) ; /* Infinite loop, which beats being insecure. */
}
/* Check for valid key length. */

@ -71,7 +71,7 @@ AboutDialog::AboutDialog(QWidget* parent):QDialog(parent)
Edit_License->setHtml(QString::fromUtf8(gpl.readAll()));
connect(ButtonBox, SIGNAL(accepted()), SLOT(close()));
connect(ButtonBox, SIGNAL(rejected()), SLOT(close()));
}
void AboutDialog::paintEvent(QPaintEvent *event){

@ -0,0 +1,11 @@
#include "HelpDlg.h"
HelpDlg::HelpDlg(QWidget* parent) : QDialog(parent) {
setupUi(this);
textBrowser->setSource(QUrl("qrc:/docs/index.html"));
buttonPrevious->setIcon(getIcon("go-previous"));
buttonNext->setIcon(getIcon("go-next"));
buttonFirst->setIcon(getIcon("go-home"));
showMaximized();
}

@ -0,0 +1,15 @@
#ifndef HELPDLG_H
#define HELPDLG_H
#include "ui_HelpDlg.h"
class HelpDlg : public QDialog, private Ui_HelpDlg
{
Q_OBJECT
public:
HelpDlg(QWidget* parent);
};
#endif // HELPDLG_H

@ -41,13 +41,17 @@ CSelectIconDlg::CSelectIconDlg(IDatabase* database,int CurrentId,QWidget* parent
void CSelectIconDlg::updateView(){
List->clear();
for(int i=0; i<db->numIcons(); i++){
QListWidgetItem* item;
QListWidgetItem* item = NULL;
if(i<BUILTIN_ICONS)
List->addItem(item=new QListWidgetItem(QIcon(db->icon(i)),QString::number(i)));
item = new QListWidgetItem(QIcon(db->icon(i)),QString::number(i));
else
if(!db->icon(i).isNull())
List->addItem(item=new QListWidgetItem(QIcon(db->icon(i)),"["+QString::number(i)+"]"));
item->setData(32,i);
item = new QListWidgetItem(QIcon(db->icon(i)),"["+QString::number(i)+"]");
if (item) {
item->setData(32,i);
List->addItem(item);
}
}
}

@ -34,7 +34,6 @@ CSettingsDlg::CSettingsDlg(QWidget* parent):QDialog(parent,Qt::Dialog)
connect(DialogButtons, SIGNAL( rejected() ), this, SLOT( OnCancel() ) );
connect(DialogButtons, SIGNAL( clicked(QAbstractButton*)), this, SLOT(OnOtherButton(QAbstractButton*)));
connect(CheckBox_ShowSysTrayIcon, SIGNAL( toggled(bool) ), CheckBox_CloseToTray, SLOT( setEnabled(bool) ) );
connect(CheckBox_ShowSysTrayIcon, SIGNAL( toggled(bool) ), CheckBox_MinimizeTray, SLOT( setEnabled(bool) ) );
connect(CheckBox_OpenLast, SIGNAL( toggled(bool) ), CheckBox_RememberLastKey, SLOT( setEnabled(bool) ) );
connect(CheckBox_OpenLast, SIGNAL( toggled(bool) ), CheckBox_StartMinimized, SLOT( setEnabled(bool) ) );
@ -82,7 +81,6 @@ CSettingsDlg::CSettingsDlg(QWidget* parent):QDialog(parent,Qt::Dialog)
CheckBox_OpenLast->setChecked(config->openLastFile());
CheckBox_RememberLastKey->setChecked(config->rememberLastKey());
CheckBox_ShowSysTrayIcon->setChecked(config->showSysTrayIcon());
CheckBox_CloseToTray->setChecked(config->minimizeToTray());
CheckBox_MinimizeTray->setChecked(config->minimizeTray());
CheckBox_StartMinimized->setChecked(config->startMinimized());
CheckBox_StartLocked->setChecked(config->startLocked());
@ -235,7 +233,6 @@ void CSettingsDlg::apply(){
//General (1)
config->setShowSysTrayIcon(CheckBox_ShowSysTrayIcon->isChecked());
config->setMinimizeToTray(CheckBox_CloseToTray->isChecked());
config->setMinimizeTray(CheckBox_MinimizeTray->isChecked());
config->setStartMinimized(CheckBox_StartMinimized->isChecked());
config->setStartLocked(CheckBox_StartLocked->isChecked());

@ -1,7 +1,8 @@
<ui version="4.0" >
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>AboutDlg</class>
<widget class="QDialog" name="AboutDlg" >
<property name="geometry" >
<widget class="QDialog" name="AboutDlg">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
@ -9,22 +10,22 @@
<height>305</height>
</rect>
</property>
<property name="windowTitle" >
<property name="windowTitle">
<string>About</string>
</property>
<layout class="QVBoxLayout" >
<property name="spacing" >
<layout class="QVBoxLayout">
<property name="spacing">
<number>6</number>
</property>
<item>
<spacer>
<property name="orientation" >
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeType" >
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0" >
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>50</height>
@ -33,65 +34,57 @@
</spacer>
</item>
<item>
<widget class="QTabWidget" name="tabWidget" >
<property name="currentIndex" >
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="tab" >
<property name="geometry" >
<rect>
<x>0</x>
<y>0</y>
<width>397</width>
<height>171</height>
</rect>
</property>
<attribute name="title" >
<widget class="QWidget" name="tab">
<attribute name="title">
<string>About</string>
</attribute>
<layout class="QVBoxLayout" >
<property name="spacing" >
<layout class="QVBoxLayout">
<property name="spacing">
<number>6</number>
</property>
<item>
<layout class="QHBoxLayout" >
<layout class="QHBoxLayout">
<item>
<widget class="QLabel" name="labelAppName" >
<property name="sizePolicy" >
<sizepolicy vsizetype="Preferred" hsizetype="Minimum" >
<widget class="QLabel" name="labelAppName">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font" >
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text" >
<property name="text">
<string>AppName</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="labelAppFunc" >
<property name="sizePolicy" >
<sizepolicy vsizetype="Preferred" hsizetype="Expanding" >
<widget class="QLabel" name="labelAppFunc">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font" >
<property name="font">
<font>
<pointsize>9</pointsize>
</font>
</property>
<property name="text" >
<property name="text">
<string>AppFunc</string>
</property>
<property name="alignment" >
<property name="alignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
</widget>
@ -99,19 +92,19 @@
</layout>
</item>
<item>
<layout class="QHBoxLayout" >
<property name="spacing" >
<layout class="QHBoxLayout">
<property name="spacing">
<number>6</number>
</property>
<item>
<spacer>
<property name="orientation" >
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType" >
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0" >
<property name="sizeHint" stdset="0">
<size>
<width>10</width>
<height>20</height>
@ -120,24 +113,24 @@
</spacer>
</item>
<item>
<layout class="QVBoxLayout" >
<layout class="QVBoxLayout">
<item>
<widget class="LinkLabel" name="label_5" >
<property name="text" >
<widget class="LinkLabel" name="label_5">
<property name="text">
<string>http://keepassx.sourceforge.net</string>
</property>
</widget>
</item>
<item>
<widget class="LinkLabel" name="label_3" >
<property name="text" >
<widget class="LinkLabel" name="label_3">
<property name="text">
<string>keepassx@gmail.com</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_4" >
<property name="text" >
<widget class="QLabel" name="label_4">
<property name="text">
<string>Copyright (C) 2005 - 2009 KeePassX Team
KeePassX is distributed under the terms of the
General Public License (GPL) version 2.</string>
@ -150,75 +143,51 @@ General Public License (GPL) version 2.</string>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_2" >
<property name="geometry" >
<rect>
<x>0</x>
<y>0</y>
<width>397</width>
<height>171</height>
</rect>
</property>
<attribute name="title" >
<widget class="QWidget" name="tab_2">
<attribute name="title">
<string>Credits</string>
</attribute>
<layout class="QVBoxLayout" >
<property name="spacing" >
<layout class="QVBoxLayout">
<property name="spacing">
<number>6</number>
</property>
<item>
<widget class="QTextEdit" name="Edit_Thanks" >
<property name="readOnly" >
<widget class="QTextEdit" name="Edit_Thanks">
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_4" >
<property name="geometry" >
<rect>
<x>0</x>
<y>0</y>
<width>397</width>
<height>171</height>
</rect>
</property>
<attribute name="title" >
<widget class="QWidget" name="tab_4">
<attribute name="title">
<string>Translation</string>
</attribute>
<layout class="QVBoxLayout" >
<property name="spacing" >
<layout class="QVBoxLayout">
<property name="spacing">
<number>6</number>
</property>
<item>
<widget class="QTextEdit" name="Edit_Translation" >
<property name="readOnly" >
<widget class="QTextEdit" name="Edit_Translation">
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_3" >
<property name="geometry" >
<rect>
<x>0</x>
<y>0</y>
<width>397</width>
<height>171</height>
</rect>
</property>
<attribute name="title" >
<widget class="QWidget" name="tab_3">
<attribute name="title">
<string>License</string>
</attribute>
<layout class="QVBoxLayout" >
<property name="spacing" >
<layout class="QVBoxLayout">
<property name="spacing">
<number>6</number>
</property>
<item>
<widget class="QTextEdit" name="Edit_License" >
<property name="readOnly" >
<widget class="QTextEdit" name="Edit_License">
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
@ -228,15 +197,15 @@ General Public License (GPL) version 2.</string>
</widget>
</item>
<item>
<widget class="QDialogButtonBox" name="ButtonBox" >
<property name="standardButtons" >
<set>QDialogButtonBox::Ok</set>
<widget class="QDialogButtonBox" name="ButtonBox">
<property name="standardButtons">
<set>QDialogButtonBox::Close</set>
</property>
</widget>
</item>
</layout>
</widget>
<layoutdefault spacing="6" margin="11" />
<layoutdefault spacing="6" margin="11"/>
<customwidgets>
<customwidget>
<class>LinkLabel</class>

@ -0,0 +1,202 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>HelpDlg</class>
<widget class="QDialog" name="HelpDlg">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Help Contents - KeePassX</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QPushButton" name="buttonPrevious">
<property name="toolTip">
<string>Previous Page</string>
</property>
<property name="text">
<string>Previous Page</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="buttonNext">
<property name="toolTip">
<string>Next Page</string>
</property>
<property name="text">
<string>Next Page</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="buttonFirst">
<property name="toolTip">
<string>First Page</string>
</property>
<property name="text">
<string>First Page</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<widget class="QTextBrowser" name="textBrowser">
<property name="openExternalLinks">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Close</set>
</property>
</widget>
</item>
</layout>
</widget>
<tabstops>
<tabstop>textBrowser</tabstop>
<tabstop>buttonBox</tabstop>
</tabstops>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>HelpDlg</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>HelpDlg</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonPrevious</sender>
<signal>clicked()</signal>
<receiver>textBrowser</receiver>
<slot>backward()</slot>
<hints>
<hint type="sourcelabel">
<x>64</x>
<y>17</y>
</hint>
<hint type="destinationlabel">
<x>199</x>
<y>150</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonNext</sender>
<signal>clicked()</signal>
<receiver>textBrowser</receiver>
<slot>forward()</slot>
<hints>
<hint type="sourcelabel">
<x>176</x>
<y>17</y>
</hint>
<hint type="destinationlabel">
<x>199</x>
<y>150</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonFirst</sender>
<signal>clicked()</signal>
<receiver>textBrowser</receiver>
<slot>home()</slot>
<hints>
<hint type="sourcelabel">
<x>274</x>
<y>17</y>
</hint>
<hint type="destinationlabel">
<x>199</x>
<y>150</y>
</hint>
</hints>
</connection>
<connection>
<sender>textBrowser</sender>
<signal>backwardAvailable(bool)</signal>
<receiver>buttonPrevious</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>199</x>
<y>150</y>
</hint>
<hint type="destinationlabel">
<x>64</x>
<y>17</y>
</hint>
</hints>
</connection>
<connection>
<sender>textBrowser</sender>
<signal>forwardAvailable(bool)</signal>
<receiver>buttonNext</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>199</x>
<y>150</y>
</hint>
<hint type="destinationlabel">
<x>176</x>
<y>17</y>
</hint>
</hints>
</connection>
</connections>
</ui>

@ -1,8 +1,9 @@
<ui version="4.0" >
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<author>Tarek Saidi</author>
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow" >
<property name="geometry" >
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
@ -10,102 +11,94 @@
<height>468</height>
</rect>
</property>
<property name="mouseTracking" >
<property name="mouseTracking">
<bool>true</bool>
</property>
<property name="windowTitle" >
<property name="windowTitle">
<string>KeePassX</string>
</property>
<widget class="QWidget" name="centralWidget" >
<property name="geometry" >
<rect>
<x>0</x>
<y>29</y>
<width>724</width>
<height>439</height>
</rect>
</property>
<layout class="QVBoxLayout" >
<widget class="QWidget" name="centralWidget">
<layout class="QVBoxLayout">
<item>
<widget class="QSplitter" name="VSplitter" >
<property name="orientation" >
<widget class="QSplitter" name="VSplitter">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<widget class="KeepassGroupView" name="GroupView" >
<property name="enabled" >
<widget class="KeepassGroupView" name="GroupView">
<property name="enabled">
<bool>false</bool>
</property>
<property name="sizePolicy" >
<sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>30</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="acceptDrops" >
<property name="acceptDrops">
<bool>true</bool>
</property>
<property name="showDropIndicator" stdset="0" >
<property name="showDropIndicator" stdset="0">
<bool>true</bool>
</property>
<property name="dragEnabled" >
<property name="dragEnabled">
<bool>false</bool>
</property>
<column>
<property name="text" >
<property name="text">
<string>Groups</string>
</property>
</column>
</widget>
<widget class="QSplitter" name="HSplitter" >
<property name="sizePolicy" >
<sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
<widget class="QSplitter" name="HSplitter">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>70</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="orientation" >
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<widget class="KeepassEntryView" name="EntryView" >
<property name="enabled" >
<widget class="KeepassEntryView" name="EntryView">
<property name="enabled">
<bool>false</bool>
</property>
<property name="sizePolicy" >
<sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>70</verstretch>
</sizepolicy>
</property>
<property name="selectionMode" >
<property name="selectionMode">
<enum>QAbstractItemView::ExtendedSelection</enum>
</property>
<property name="rootIsDecorated" >
<property name="rootIsDecorated">
<bool>false</bool>
</property>
<property name="sortingEnabled" >
<property name="sortingEnabled">
<bool>true</bool>
</property>
</widget>
<widget class="QTextBrowser" name="DetailView" >
<property name="enabled" >
<widget class="QTextBrowser" name="DetailView">
<property name="enabled">
<bool>false</bool>
</property>
<property name="sizePolicy" >
<sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>30</verstretch>
</sizepolicy>
</property>
<property name="minimumSize" >
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="readOnly" >
<property name="readOnly">
<bool>true</bool>
</property>
<property name="openLinks" >
<property name="openLinks">
<bool>false</bool>
</property>
</widget>
@ -114,483 +107,480 @@
</item>
</layout>
</widget>
<widget class="QMenuBar" name="menuBar" >
<property name="geometry" >
<widget class="QMenuBar" name="menuBar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>724</width>
<height>29</height>
<height>24</height>
</rect>
</property>
<widget class="QMenu" name="menuHilfe" >
<property name="title" >
<widget class="QMenu" name="menuHelp">
<property name="title">
<string>&amp;Help</string>
</property>
<addaction name="HelpHandbookAction" />
<addaction name="separator" />
<addaction name="HelpAboutAction" />
<addaction name="HelpHandbookAction"/>
<addaction name="separator"/>
<addaction name="HelpAboutAction"/>
</widget>
<widget class="QMenu" name="menuDatei" >
<property name="title" >
<widget class="QMenu" name="menuFile">
<property name="title">
<string>&amp;File</string>
</property>
<widget class="QMenu" name="menuExport" >
<property name="title" >
<widget class="QMenu" name="menuExport">
<property name="title">
<string>&amp;Export to...</string>
</property>
</widget>
<widget class="QMenu" name="menuImport" >
<property name="title" >
<widget class="QMenu" name="menuImport">
<property name="title">
<string>&amp;Import from...</string>
</property>
</widget>
<widget class="QMenu" name="menuBookmarks" >
<property name="title" >
<widget class="QMenu" name="menuBookmarks">
<property name="title">
<string>&amp;Bookmarks</string>
</property>
</widget>
<addaction name="FileNewAction" />
<addaction name="FileOpenAction" />
<addaction name="menuBookmarks" />
<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="menuImport" />
<addaction name="menuExport" />
<addaction name="separator" />
<addaction name="FileUnLockWorkspaceAction" />
<addaction name="FileExitAction" />
<addaction name="FileNewAction"/>
<addaction name="FileOpenAction"/>
<addaction name="menuBookmarks"/>
<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="menuImport"/>
<addaction name="menuExport"/>
<addaction name="separator"/>
<addaction name="FileUnLockWorkspaceAction"/>
<addaction name="FileExitAction"/>
</widget>
<widget class="QMenu" name="menuEntries" >
<property name="title" >
<widget class="QMenu" name="menuEntries">
<property name="title">
<string>&amp;Entries</string>
</property>
<addaction name="EditNewEntryAction" />
<addaction name="EditCloneEntryAction" />
<addaction name="EditEditEntryAction" />
<addaction name="EditDeleteEntryAction" />
<addaction name="EditAutoTypeAction" />
<addaction name="separator" />
<addaction name="EditUsernameToClipboardAction" />
<addaction name="EditPasswordToClipboardAction" />
<addaction name="EditOpenUrlAction" />
<addaction name="EditCopyUrlAction" />
<addaction name="EditSaveAttachmentAction" />
<addaction name="separator" />
<addaction name="EditSearchAction" />
<addaction name="EditGroupSearchAction" />
<addaction name="EditNewEntryAction"/>
<addaction name="EditCloneEntryAction"/>
<addaction name="EditEditEntryAction"/>
<addaction name="EditDeleteEntryAction"/>
<addaction name="EditAutoTypeAction"/>
<addaction name="separator"/>
<addaction name="EditUsernameToClipboardAction"/>
<addaction name="EditPasswordToClipboardAction"/>
<addaction name="EditOpenUrlAction"/>
<addaction name="EditCopyUrlAction"/>
<addaction name="EditSaveAttachmentAction"/>
<addaction name="separator"/>
<addaction name="EditSearchAction"/>
<addaction name="EditGroupSearchAction"/>
</widget>
<widget class="QMenu" name="ViewMenu" >
<property name="title" >
<widget class="QMenu" name="ViewMenu">
<property name="title">
<string>&amp;View</string>
</property>
<widget class="QMenu" name="menuTool_Button_Sizes" >
<property name="title" >
<widget class="QMenu" name="menuTool_Button_Sizes">
<property name="title">
<string>Toolbar &amp;Icon Size</string>
</property>
<addaction name="ViewToolButtonSize16Action" />
<addaction name="ViewToolButtonSize22Action" />
<addaction name="ViewToolButtonSize28Action" />
<addaction name="ViewToolButtonSize16Action"/>
<addaction name="ViewToolButtonSize22Action"/>
<addaction name="ViewToolButtonSize28Action"/>
</widget>
<widget class="QMenu" name="menuColumns" >
<property name="title" >
<widget class="QMenu" name="menuColumns">
<property name="title">
<string>&amp;Columns</string>
</property>
<addaction name="ViewColumnsGroupAction" />
<addaction name="separator" />
<addaction name="ViewColumnsTitleAction" />
<addaction name="ViewColumnsUsernameAction" />
<addaction name="ViewColumnsUrlAction" />
<addaction name="ViewColumnsPasswordAction" />
<addaction name="ViewColumnsCommentAction" />
<addaction name="separator" />
<addaction name="ViewColumnsExpireAction" />
<addaction name="ViewColumnsCreationAction" />
<addaction name="ViewColumnsLastChangeAction" />
<addaction name="ViewColumnsLastAccessAction" />
<addaction name="ViewColumnsAttachmentAction" />
<addaction name="ViewColumnsGroupAction"/>
<addaction name="separator"/>
<addaction name="ViewColumnsTitleAction"/>
<addaction name="ViewColumnsUsernameAction"/>
<addaction name="ViewColumnsUrlAction"/>
<addaction name="ViewColumnsPasswordAction"/>
<addaction name="ViewColumnsCommentAction"/>
<addaction name="separator"/>
<addaction name="ViewColumnsExpireAction"/>
<addaction name="ViewColumnsCreationAction"/>
<addaction name="ViewColumnsLastChangeAction"/>
<addaction name="ViewColumnsLastAccessAction"/>
<addaction name="ViewColumnsAttachmentAction"/>
</widget>
<addaction name="ViewShowEntryDetailsAction" />
<addaction name="ViewShowStatusbarAction" />
<addaction name="separator" />
<addaction name="ViewHideUsernamesAction" />
<addaction name="ViewHidePasswordsAction" />
<addaction name="separator" />
<addaction name="menuColumns" />
<addaction name="menuTool_Button_Sizes" />
<addaction name="ViewShowEntryDetailsAction"/>
<addaction name="ViewShowStatusbarAction"/>
<addaction name="separator"/>
<addaction name="ViewHideUsernamesAction"/>
<addaction name="ViewHidePasswordsAction"/>
<addaction name="separator"/>
<addaction name="menuColumns"/>
<addaction name="menuTool_Button_Sizes"/>
</widget>
<widget class="QMenu" name="menuExtras" >
<property name="title" >
<widget class="QMenu" name="menuExtras">
<property name="title">
<string>E&amp;xtras</string>
</property>
<addaction name="ExtrasPasswordGenAction" />
<addaction name="ExtrasShowExpiredEntriesAction" />
<addaction name="ExtrasTrashCanAction" />
<addaction name="separator" />
<addaction name="ExtrasSettingsAction" />
<addaction name="ExtrasPasswordGenAction"/>
<addaction name="ExtrasShowExpiredEntriesAction"/>
<addaction name="ExtrasTrashCanAction"/>
<addaction name="separator"/>
<addaction name="ExtrasSettingsAction"/>
</widget>
<widget class="QMenu" name="menuGroups" >
<property name="title" >
<widget class="QMenu" name="menuGroups">
<property name="title">
<string>&amp;Groups</string>
</property>
<addaction name="EditNewGroupAction" />
<addaction name="EditNewSubgroupAction" />
<addaction name="EditEditGroupAction" />
<addaction name="EditDeleteGroupAction" />
<addaction name="EditGroupSortAction" />
<addaction name="EditNewGroupAction"/>
<addaction name="EditNewSubgroupAction"/>
<addaction name="EditEditGroupAction"/>
<addaction name="EditDeleteGroupAction"/>
<addaction name="EditGroupSortAction"/>
</widget>
<addaction name="menuDatei" />
<addaction name="menuEntries" />
<addaction name="menuGroups" />
<addaction name="ViewMenu" />
<addaction name="menuExtras" />
<addaction name="menuHilfe" />
<addaction name="menuFile"/>
<addaction name="menuEntries"/>
<addaction name="menuGroups"/>
<addaction name="ViewMenu"/>
<addaction name="menuExtras"/>
<addaction name="menuHelp"/>
</widget>
<action name="ManageBookmarksAction" >
<property name="text" >
<action name="ManageBookmarksAction">
<property name="text">
<string>&amp;Manage Bookmarks...</string>
</property>
</action>
<action name="FileOpenAction" >
<property name="text" >
<action name="FileOpenAction">
<property name="text">
<string>&amp;Open Database...</string>
</property>
</action>
<action name="FileCloseAction" >
<property name="text" >
<action name="FileCloseAction">
<property name="text">
<string>&amp;Close Database</string>
</property>
</action>
<action name="FileSaveAction" >
<property name="text" >
<action name="FileSaveAction">
<property name="text">
<string>&amp;Save Database</string>
</property>
</action>
<action name="FileSaveAsAction" >
<property name="text" >
<action name="FileSaveAsAction">
<property name="text">
<string>Save Database &amp;As...</string>
</property>
</action>
<action name="FileSettingsAction" >
<property name="text" >
<action name="FileSettingsAction">
<property name="text">
<string>&amp;Database Settings...</string>
</property>
</action>
<action name="FileChangeKeyAction" >
<property name="text" >
<action name="FileChangeKeyAction">
<property name="text">
<string>Change &amp;Master Key...</string>
</property>
</action>
<action name="FileUnLockWorkspaceAction" >
<property name="text" >
<action name="FileUnLockWorkspaceAction">
<property name="text">
<string>&amp;Lock Workspace</string>
</property>
</action>
<action name="FileExitAction" >
<property name="text" >
<action name="FileExitAction">
<property name="text">
<string>&amp;Quit</string>
</property>
<property name="menuRole" >
<property name="menuRole">
<enum>QAction::QuitRole</enum>
</property>
</action>
<action name="EditNewSubgroupAction" >
<property name="text" >
<action name="EditNewSubgroupAction">
<property name="text">
<string>&amp;Add New Subgroup...</string>
</property>
</action>
<action name="EditEditGroupAction" >
<property name="text" >
<action name="EditEditGroupAction">
<property name="text">
<string>&amp;Edit Group...</string>
</property>
</action>
<action name="EditDeleteGroupAction" >
<property name="text" >
<action name="EditDeleteGroupAction">
<property name="text">
<string>&amp;Delete Group</string>
</property>
</action>
<action name="EditPasswordToClipboardAction" >
<property name="text" >
<action name="EditPasswordToClipboardAction">
<property name="text">
<string>Copy Password &amp;to Clipboard</string>
</property>
</action>
<action name="EditUsernameToClipboardAction" >
<property name="text" >
<action name="EditUsernameToClipboardAction">
<property name="text">
<string>Copy &amp;Username to Clipboard</string>
</property>
</action>
<action name="EditOpenUrlAction" >
<property name="text" >
<action name="EditOpenUrlAction">
<property name="text">
<string>&amp;Open URL</string>
</property>
</action>
<action name="EditSaveAttachmentAction" >
<property name="text" >
<action name="EditSaveAttachmentAction">
<property name="text">
<string>&amp;Save Attachment As...</string>
</property>
</action>
<action name="EditNewEntryAction" >
<property name="text" >
<action name="EditNewEntryAction">
<property name="text">
<string>Add &amp;New Entry...</string>
</property>
</action>
<action name="EditEditEntryAction" >
<property name="text" >
<action name="EditEditEntryAction">
<property name="text">
<string>&amp;View/Edit Entry...</string>
</property>
</action>
<action name="EditDeleteEntryAction" >
<property name="text" >
<action name="EditDeleteEntryAction">
<property name="text">
<string>De&amp;lete Entry</string>
</property>
</action>
<action name="EditCloneEntryAction" >
<property name="text" >
<action name="EditCloneEntryAction">
<property name="text">
<string>&amp;Clone Entry</string>
</property>
</action>
<action name="EditSearchAction" >
<property name="text" >
<action name="EditSearchAction">
<property name="text">
<string>Search &amp;in Database...</string>
</property>
</action>
<action name="EditGroupSearchAction" >
<property name="text" >
<action name="EditGroupSearchAction">
<property name="text">
<string>Search in this &amp;Group...</string>
</property>
</action>
<action name="ViewShowEntryDetailsAction" >
<property name="checkable" >
<action name="ViewShowEntryDetailsAction">
<property name="checkable">
<bool>true</bool>
</property>
<property name="text" >
<property name="text">
<string>Show &amp;Entry Details</string>
</property>
</action>
<action name="ViewHideUsernamesAction" >
<property name="checkable" >
<action name="ViewHideUsernamesAction">
<property name="checkable">
<bool>true</bool>
</property>
<property name="text" >
<property name="text">
<string>Hide &amp;Usernames</string>
</property>
</action>
<action name="ViewHidePasswordsAction" >
<property name="checkable" >
<action name="ViewHidePasswordsAction">
<property name="checkable">
<bool>true</bool>
</property>
<property name="text" >
<property name="text">
<string>Hide &amp;Passwords</string>
</property>
</action>
<action name="ViewColumnsTitleAction" >
<property name="checkable" >
<action name="ViewColumnsTitleAction">
<property name="checkable">
<bool>true</bool>
</property>
<property name="text" >
<property name="text">
<string>&amp;Title</string>
</property>
</action>
<action name="ViewColumnsUsernameAction" >
<property name="checkable" >
<action name="ViewColumnsUsernameAction">
<property name="checkable">
<bool>true</bool>
</property>
<property name="text" >
<property name="text">
<string>User&amp;name</string>
</property>
</action>
<action name="ViewColumnsUrlAction" >
<property name="checkable" >
<action name="ViewColumnsUrlAction">
<property name="checkable">
<bool>true</bool>
</property>
<property name="text" >
<property name="text">
<string>&amp;URL</string>
</property>
</action>
<action name="ViewColumnsPasswordAction" >
<property name="checkable" >
<action name="ViewColumnsPasswordAction">
<property name="checkable">
<bool>true</bool>
</property>
<property name="text" >
<property name="text">
<string>&amp;Password</string>
</property>
</action>
<action name="ViewColumnsCommentAction" >
<property name="checkable" >
<action name="ViewColumnsCommentAction">
<property name="checkable">
<bool>true</bool>
</property>
<property name="text" >
<property name="text">
<string>&amp;Comment</string>
</property>
</action>
<action name="ViewColumnsExpireAction" >
<property name="checkable" >
<action name="ViewColumnsExpireAction">
<property name="checkable">
<bool>true</bool>
</property>
<property name="text" >
<property name="text">
<string>E&amp;xpires</string>
</property>
</action>
<action name="ViewColumnsCreationAction" >
<property name="checkable" >
<action name="ViewColumnsCreationAction">
<property name="checkable">
<bool>true</bool>
</property>
<property name="text" >
<property name="text">
<string>C&amp;reation</string>
</property>
</action>
<action name="ViewColumnsLastChangeAction" >
<property name="checkable" >
<action name="ViewColumnsLastChangeAction">
<property name="checkable">
<bool>true</bool>
</property>
<property name="text" >
<property name="text">
<string>&amp;Last Change</string>
</property>
</action>
<action name="ViewColumnsLastAccessAction" >
<property name="checkable" >
<action name="ViewColumnsLastAccessAction">
<property name="checkable">
<bool>true</bool>
</property>
<property name="text" >
<property name="text">
<string>Last &amp;Access</string>
</property>
</action>
<action name="ViewColumnsAttachmentAction" >
<property name="checkable" >
<action name="ViewColumnsAttachmentAction">
<property name="checkable">
<bool>true</bool>
</property>