git-svn-id: https://svn.code.sf.net/p/keepassx/code/trunk@2 b624d157-de02-0410-bad0-e51aec6abb33
This commit is contained in:
parent
434e6a5aa3
commit
a8a9a64142
|
@ -93,7 +93,8 @@ if(CryptoAlgorithmus == ALGO_AES)
|
||||||
// Initialize Rijndael algorithm
|
// Initialize Rijndael algorithm
|
||||||
if(aes.init(Rijndael::CBC, Rijndael::Decrypt, FinalKey,
|
if(aes.init(Rijndael::CBC, Rijndael::Decrypt, FinalKey,
|
||||||
Rijndael::Key32Bytes, EncryptionIV) != RIJNDAEL_SUCCESS)
|
Rijndael::Key32Bytes, EncryptionIV) != RIJNDAEL_SUCCESS)
|
||||||
{return false;}
|
{err=trUtf8("AES-Initialisierung fehlgeschlagen");
|
||||||
|
return false;}
|
||||||
// Decrypt! The first bytes aren't encrypted (that's the header)
|
// Decrypt! The first bytes aren't encrypted (that's the header)
|
||||||
crypto_size = (unsigned long)aes.padDecrypt((UINT8 *)buffer + DB_HEADER_SIZE,
|
crypto_size = (unsigned long)aes.padDecrypt((UINT8 *)buffer + DB_HEADER_SIZE,
|
||||||
total_size - DB_HEADER_SIZE, (UINT8 *)buffer + DB_HEADER_SIZE);
|
total_size - DB_HEADER_SIZE, (UINT8 *)buffer + DB_HEADER_SIZE);
|
||||||
|
@ -106,7 +107,7 @@ else if(CryptoAlgorithmus == ALGO_TWOFISH)
|
||||||
total_size - DB_HEADER_SIZE, (UINT8 *)buffer + DB_HEADER_SIZE);
|
total_size - DB_HEADER_SIZE, (UINT8 *)buffer + DB_HEADER_SIZE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if((crypto_size > 2147483446) || (crypto_size == 0)){return false;}
|
if((crypto_size > 2147483446) || (crypto_size == 0)){err=trUtf8("Unerwarteter Wert für 'crypto_size'"); return false;}
|
||||||
|
|
||||||
sha256_starts(&sha32);
|
sha256_starts(&sha32);
|
||||||
sha256_update(&sha32,(unsigned char *)buffer + DB_HEADER_SIZE,crypto_size);
|
sha256_update(&sha32,(unsigned char *)buffer + DB_HEADER_SIZE,crypto_size);
|
||||||
|
@ -257,6 +258,15 @@ if(FileSize == 32){
|
||||||
file.close();
|
file.close();
|
||||||
return false;}
|
return false;}
|
||||||
}
|
}
|
||||||
|
else if(FileSize == 64){
|
||||||
|
char hex[64];
|
||||||
|
if(file.readBlock(hex,64) != 64){
|
||||||
|
file.close();
|
||||||
|
return false;}
|
||||||
|
file.close();
|
||||||
|
if(!convHexToBinaryKey(hex,(char*)MasterKey)) return false;
|
||||||
|
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sha256_context sha32;
|
sha256_context sha32;
|
||||||
|
@ -275,7 +285,7 @@ delete [] buffer;
|
||||||
|
|
||||||
file.close();
|
file.close();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
CEntry* PwDatabase::addEntry(){
|
CEntry* PwDatabase::addEntry(){
|
||||||
|
@ -913,3 +923,16 @@ if(!isEntrySidInUse(sid))break;
|
||||||
}
|
}
|
||||||
return sid;
|
return sid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool PwDatabase::convHexToBinaryKey(char* HexKey, char* dst){
|
||||||
|
QString hex=QString::fromAscii(HexKey,64);
|
||||||
|
for(int i=0; i<64; i+=2){
|
||||||
|
bool err;
|
||||||
|
UINT8 bin;
|
||||||
|
bin=hex.mid(i,2).toUInt(&err,16);
|
||||||
|
if(!err){
|
||||||
|
qWarning("Invalid Hex Key\n");
|
||||||
|
return false;}
|
||||||
|
memcpy(dst+(i/2),&bin,1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -74,6 +74,7 @@ private:
|
||||||
bool isEntrySidInUse(UINT32 sID);
|
bool isEntrySidInUse(UINT32 sID);
|
||||||
UINT32 getNewGroupId();
|
UINT32 getNewGroupId();
|
||||||
UINT32 getNewEntrySid();
|
UINT32 getNewEntrySid();
|
||||||
|
bool convHexToBinaryKey(char* HexKey, char* dst);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -23,8 +23,8 @@
|
||||||
#include <qdir.h>
|
#include <qdir.h>
|
||||||
#include <iostream.h>
|
#include <iostream.h>
|
||||||
|
|
||||||
bool CConfig::loadFromIni(){
|
bool CConfig::loadFromIni(QString filename){
|
||||||
CIniFile ini(QDir::homeDirPath()+"/.keepass/config");
|
CIniFile ini(filename);
|
||||||
ini.ReadFile();
|
ini.ReadFile();
|
||||||
ClipboardTimeOut=ini.GetValueI("Options","ClipboardTimeOut",20);
|
ClipboardTimeOut=ini.GetValueI("Options","ClipboardTimeOut",20);
|
||||||
Toolbar=ini.GetValueB("UI","ShowToolbar",true);
|
Toolbar=ini.GetValueB("UI","ShowToolbar",true);
|
||||||
|
@ -48,8 +48,8 @@ ExpandGroupTree=ini.GetValueB("Options","ExpandGroupTree",true);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CConfig::saveToIni(){
|
bool CConfig::saveToIni(QString filename){
|
||||||
CIniFile ini(QDir::homeDirPath()+"/.keepass/config");
|
CIniFile ini(filename);
|
||||||
ini.ReadFile();
|
ini.ReadFile();
|
||||||
ini.SetValueI("Options","ClipboardTimeOut",ClipboardTimeOut);
|
ini.SetValueI("Options","ClipboardTimeOut",ClipboardTimeOut);
|
||||||
ini.SetValueB("UI","ShowToolbar",Toolbar);
|
ini.SetValueB("UI","ShowToolbar",Toolbar);
|
||||||
|
|
|
@ -46,8 +46,8 @@ public:
|
||||||
QString PwGenCharList;
|
QString PwGenCharList;
|
||||||
bool ExpandGroupTree;
|
bool ExpandGroupTree;
|
||||||
|
|
||||||
bool loadFromIni();
|
bool loadFromIni(QString filename);
|
||||||
bool saveToIni();
|
bool saveToIni(QString filename);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void ParseColumnString(QString str, bool* dst);
|
void ParseColumnString(QString str, bool* dst);
|
||||||
|
|
|
@ -1118,118 +1118,10 @@
|
||||||
</images>
|
</images>
|
||||||
<connections>
|
<connections>
|
||||||
<connection>
|
<connection>
|
||||||
<sender>MainFrame</sender>
|
<sender>DEBUG_DbStructure</sender>
|
||||||
<signal>pixmapSizeChanged(bool)</signal>
|
|
||||||
<receiver>MainFrame</receiver>
|
|
||||||
<slot>OnMainWinResize()</slot>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>File_Open</sender>
|
|
||||||
<signal>activated()</signal>
|
<signal>activated()</signal>
|
||||||
<receiver>MainFrame</receiver>
|
<receiver>MainFrame</receiver>
|
||||||
<slot>OnFileOpen()</slot>
|
<slot>DEBUG_OnPrintDbStucture()</slot>
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>GroupView</sender>
|
|
||||||
<signal>selectionChanged(QListViewItem*)</signal>
|
|
||||||
<receiver>MainFrame</receiver>
|
|
||||||
<slot>OnGroupChanged(QListViewItem*)</slot>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>File_Close</sender>
|
|
||||||
<signal>activated()</signal>
|
|
||||||
<receiver>MainFrame</receiver>
|
|
||||||
<slot>OnMenu_closeDB()</slot>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>File_Save</sender>
|
|
||||||
<signal>activated()</signal>
|
|
||||||
<receiver>MainFrame</receiver>
|
|
||||||
<slot>OnFileSave()</slot>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>File_SaveAs</sender>
|
|
||||||
<signal>activated()</signal>
|
|
||||||
<receiver>MainFrame</receiver>
|
|
||||||
<slot>OnFileSaveAs()</slot>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>tooButtonOpen</sender>
|
|
||||||
<signal>clicked()</signal>
|
|
||||||
<receiver>MainFrame</receiver>
|
|
||||||
<slot>OnFileOpen()</slot>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>toolButtonSave</sender>
|
|
||||||
<signal>clicked()</signal>
|
|
||||||
<receiver>MainFrame</receiver>
|
|
||||||
<slot>OnFileSave()</slot>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>File_Exit</sender>
|
|
||||||
<signal>activated()</signal>
|
|
||||||
<receiver>MainFrame</receiver>
|
|
||||||
<slot>OnMenuExit()</slot>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>EntryView</sender>
|
|
||||||
<signal>selectionChanged(QListViewItem*)</signal>
|
|
||||||
<receiver>MainFrame</receiver>
|
|
||||||
<slot>OnEntryChanged(QListViewItem*)</slot>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>EntryView</sender>
|
|
||||||
<signal>doubleClicked(QListViewItem*,const QPoint&,int)</signal>
|
|
||||||
<receiver>MainFrame</receiver>
|
|
||||||
<slot>OnEntryDoubleClicked(QListViewItem*,const QPoint&,int)</slot>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>Edit_NewGroup</sender>
|
|
||||||
<signal>activated()</signal>
|
|
||||||
<receiver>MainFrame</receiver>
|
|
||||||
<slot>OnAddGroup()</slot>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>Edit_NewSubGroup</sender>
|
|
||||||
<signal>activated()</signal>
|
|
||||||
<receiver>MainFrame</receiver>
|
|
||||||
<slot>OnAddSubGroup()</slot>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>Edit_GroupProperties</sender>
|
|
||||||
<signal>activated()</signal>
|
|
||||||
<receiver>MainFrame</receiver>
|
|
||||||
<slot>OnEditGroup()</slot>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>Edit_DeleteGroup</sender>
|
|
||||||
<signal>activated()</signal>
|
|
||||||
<receiver>MainFrame</receiver>
|
|
||||||
<slot>OnDeleteGroup()</slot>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>Edit_PasswordToClipboard</sender>
|
|
||||||
<signal>activated()</signal>
|
|
||||||
<receiver>MainFrame</receiver>
|
|
||||||
<slot>OnPasswordToClipboard()</slot>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>Edit_UserNameToClipboard</sender>
|
|
||||||
<signal>activated()</signal>
|
|
||||||
<receiver>MainFrame</receiver>
|
|
||||||
<slot>OnUserNameToClipboard()</slot>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>Edit_OpenURL</sender>
|
|
||||||
<signal>activated()</signal>
|
|
||||||
<receiver>MainFrame</receiver>
|
|
||||||
<slot>OnOpenURL()</slot>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>Edit_SaveAttachment</sender>
|
|
||||||
<signal>activated()</signal>
|
|
||||||
<receiver>MainFrame</receiver>
|
|
||||||
<slot>OnSaveAttachment()</slot>
|
|
||||||
</connection>
|
</connection>
|
||||||
<connection>
|
<connection>
|
||||||
<sender>Edit_AddEntry</sender>
|
<sender>Edit_AddEntry</sender>
|
||||||
|
@ -1237,12 +1129,6 @@
|
||||||
<receiver>MainFrame</receiver>
|
<receiver>MainFrame</receiver>
|
||||||
<slot>OnAddEntry()</slot>
|
<slot>OnAddEntry()</slot>
|
||||||
</connection>
|
</connection>
|
||||||
<connection>
|
|
||||||
<sender>Edit_EditEntry</sender>
|
|
||||||
<signal>activated()</signal>
|
|
||||||
<receiver>MainFrame</receiver>
|
|
||||||
<slot>OnEditEntry()</slot>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
<connection>
|
||||||
<sender>Edit_CopyEntry</sender>
|
<sender>Edit_CopyEntry</sender>
|
||||||
<signal>activated()</signal>
|
<signal>activated()</signal>
|
||||||
|
@ -1255,6 +1141,30 @@
|
||||||
<receiver>MainFrame</receiver>
|
<receiver>MainFrame</receiver>
|
||||||
<slot>OnDeleteEntry()</slot>
|
<slot>OnDeleteEntry()</slot>
|
||||||
</connection>
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>Edit_DeleteGroup</sender>
|
||||||
|
<signal>activated()</signal>
|
||||||
|
<receiver>MainFrame</receiver>
|
||||||
|
<slot>OnDeleteGroup()</slot>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>Edit_EditEntry</sender>
|
||||||
|
<signal>activated()</signal>
|
||||||
|
<receiver>MainFrame</receiver>
|
||||||
|
<slot>OnEditEntry()</slot>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>Edit_GlobalSearch</sender>
|
||||||
|
<signal>activated()</signal>
|
||||||
|
<receiver>MainFrame</receiver>
|
||||||
|
<slot>OnGlobalSearch()</slot>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>Edit_GroupProperties</sender>
|
||||||
|
<signal>activated()</signal>
|
||||||
|
<receiver>MainFrame</receiver>
|
||||||
|
<slot>OnEditGroup()</slot>
|
||||||
|
</connection>
|
||||||
<connection>
|
<connection>
|
||||||
<sender>Edit_GroupSearch</sender>
|
<sender>Edit_GroupSearch</sender>
|
||||||
<signal>activated()</signal>
|
<signal>activated()</signal>
|
||||||
|
@ -1262,35 +1172,53 @@
|
||||||
<slot>OnGroupSearch()</slot>
|
<slot>OnGroupSearch()</slot>
|
||||||
</connection>
|
</connection>
|
||||||
<connection>
|
<connection>
|
||||||
<sender>toolButtonAddEntry</sender>
|
<sender>Edit_NewGroup</sender>
|
||||||
<signal>clicked()</signal>
|
<signal>activated()</signal>
|
||||||
<receiver>MainFrame</receiver>
|
<receiver>MainFrame</receiver>
|
||||||
<slot>OnAddEntry()</slot>
|
<slot>OnAddGroup()</slot>
|
||||||
</connection>
|
</connection>
|
||||||
<connection>
|
<connection>
|
||||||
<sender>toolButtonEditEntry</sender>
|
<sender>Edit_NewSubGroup</sender>
|
||||||
<signal>clicked()</signal>
|
<signal>activated()</signal>
|
||||||
<receiver>MainFrame</receiver>
|
<receiver>MainFrame</receiver>
|
||||||
<slot>OnEditEntry()</slot>
|
<slot>OnAddSubGroup()</slot>
|
||||||
</connection>
|
</connection>
|
||||||
<connection>
|
<connection>
|
||||||
<sender>toolButtonDeleteEntry</sender>
|
<sender>Edit_OpenURL</sender>
|
||||||
<signal>clicked()</signal>
|
<signal>activated()</signal>
|
||||||
<receiver>MainFrame</receiver>
|
<receiver>MainFrame</receiver>
|
||||||
<slot>OnDeleteEntry()</slot>
|
<slot>OnOpenURL()</slot>
|
||||||
</connection>
|
</connection>
|
||||||
<connection>
|
<connection>
|
||||||
<sender>toolButtonPasswordToClipboard</sender>
|
<sender>Edit_PasswordToClipboard</sender>
|
||||||
<signal>clicked()</signal>
|
<signal>activated()</signal>
|
||||||
<receiver>MainFrame</receiver>
|
<receiver>MainFrame</receiver>
|
||||||
<slot>OnPasswordToClipboard()</slot>
|
<slot>OnPasswordToClipboard()</slot>
|
||||||
</connection>
|
</connection>
|
||||||
<connection>
|
<connection>
|
||||||
<sender>toolButtonUserNameToClipboard</sender>
|
<sender>Edit_SaveAttachment</sender>
|
||||||
<signal>clicked()</signal>
|
<signal>activated()</signal>
|
||||||
|
<receiver>MainFrame</receiver>
|
||||||
|
<slot>OnSaveAttachment()</slot>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>Edit_UserNameToClipboard</sender>
|
||||||
|
<signal>activated()</signal>
|
||||||
<receiver>MainFrame</receiver>
|
<receiver>MainFrame</receiver>
|
||||||
<slot>OnUserNameToClipboard()</slot>
|
<slot>OnUserNameToClipboard()</slot>
|
||||||
</connection>
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>EntryView</sender>
|
||||||
|
<signal>selectionChanged(QListViewItem*)</signal>
|
||||||
|
<receiver>MainFrame</receiver>
|
||||||
|
<slot>OnEntryChanged(QListViewItem*)</slot>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>EntryView</sender>
|
||||||
|
<signal>doubleClicked(QListViewItem*,const QPoint&,int)</signal>
|
||||||
|
<receiver>MainFrame</receiver>
|
||||||
|
<slot>OnEntryDoubleClicked(QListViewItem*,const QPoint&,int)</slot>
|
||||||
|
</connection>
|
||||||
<connection>
|
<connection>
|
||||||
<sender>EntryView</sender>
|
<sender>EntryView</sender>
|
||||||
<signal>rightButtonClicked(QListViewItem*,const QPoint&,int)</signal>
|
<signal>rightButtonClicked(QListViewItem*,const QPoint&,int)</signal>
|
||||||
|
@ -1298,46 +1226,10 @@
|
||||||
<slot>OnEntryRightClicked(QListViewItem*,const QPoint&,int)</slot>
|
<slot>OnEntryRightClicked(QListViewItem*,const QPoint&,int)</slot>
|
||||||
</connection>
|
</connection>
|
||||||
<connection>
|
<connection>
|
||||||
<sender>GroupView</sender>
|
<sender>Extras_Language</sender>
|
||||||
<signal>rightButtonClicked(QListViewItem*,const QPoint&,int)</signal>
|
|
||||||
<receiver>MainFrame</receiver>
|
|
||||||
<slot>OnGroupRightClicked(QListViewItem*,const QPoint&,int)</slot>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>File_Settings</sender>
|
|
||||||
<signal>activated()</signal>
|
<signal>activated()</signal>
|
||||||
<receiver>MainFrame</receiver>
|
<receiver>MainFrame</receiver>
|
||||||
<slot>OnDbSettings()</slot>
|
<slot>OnExtrasLanguage()</slot>
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>File_ChangeKey</sender>
|
|
||||||
<signal>activated()</signal>
|
|
||||||
<receiver>MainFrame</receiver>
|
|
||||||
<slot>OnChangeDbKey()</slot>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>File_New</sender>
|
|
||||||
<signal>activated()</signal>
|
|
||||||
<receiver>MainFrame</receiver>
|
|
||||||
<slot>OnFileNew()</slot>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>View_ShowToolBar</sender>
|
|
||||||
<signal>toggled(bool)</signal>
|
|
||||||
<receiver>MainFrame</receiver>
|
|
||||||
<slot>OnViewToolbarToggled(bool)</slot>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>View_ShowEntryDetails</sender>
|
|
||||||
<signal>toggled(bool)</signal>
|
|
||||||
<receiver>MainFrame</receiver>
|
|
||||||
<slot>OnViewEntryDetailsToggled(bool)</slot>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>toolButtonNew</sender>
|
|
||||||
<signal>clicked()</signal>
|
|
||||||
<receiver>MainFrame</receiver>
|
|
||||||
<slot>OnFileNew()</slot>
|
|
||||||
</connection>
|
</connection>
|
||||||
<connection>
|
<connection>
|
||||||
<sender>Extras_Settings</sender>
|
<sender>Extras_Settings</sender>
|
||||||
|
@ -1345,6 +1237,84 @@
|
||||||
<receiver>MainFrame</receiver>
|
<receiver>MainFrame</receiver>
|
||||||
<slot>OnSettings()</slot>
|
<slot>OnSettings()</slot>
|
||||||
</connection>
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>File_ChangeKey</sender>
|
||||||
|
<signal>activated()</signal>
|
||||||
|
<receiver>MainFrame</receiver>
|
||||||
|
<slot>OnChangeDbKey()</slot>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>File_Close</sender>
|
||||||
|
<signal>activated()</signal>
|
||||||
|
<receiver>MainFrame</receiver>
|
||||||
|
<slot>OnMenu_closeDB()</slot>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>File_Exit</sender>
|
||||||
|
<signal>activated()</signal>
|
||||||
|
<receiver>MainFrame</receiver>
|
||||||
|
<slot>OnMenuExit()</slot>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>File_ImportKWalletXML</sender>
|
||||||
|
<signal>activated()</signal>
|
||||||
|
<receiver>MainFrame</receiver>
|
||||||
|
<slot>OnImportKWalletXML()</slot>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>File_Import_PwManager</sender>
|
||||||
|
<signal>activated()</signal>
|
||||||
|
<receiver>MainFrame</receiver>
|
||||||
|
<slot>OnImportPwManagerFile()</slot>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>File_New</sender>
|
||||||
|
<signal>activated()</signal>
|
||||||
|
<receiver>MainFrame</receiver>
|
||||||
|
<slot>OnFileNew()</slot>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>File_Open</sender>
|
||||||
|
<signal>activated()</signal>
|
||||||
|
<receiver>MainFrame</receiver>
|
||||||
|
<slot>OnFileOpen()</slot>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>File_Save</sender>
|
||||||
|
<signal>activated()</signal>
|
||||||
|
<receiver>MainFrame</receiver>
|
||||||
|
<slot>OnFileSave()</slot>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>File_SaveAs</sender>
|
||||||
|
<signal>activated()</signal>
|
||||||
|
<receiver>MainFrame</receiver>
|
||||||
|
<slot>OnFileSaveAs()</slot>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>File_Settings</sender>
|
||||||
|
<signal>activated()</signal>
|
||||||
|
<receiver>MainFrame</receiver>
|
||||||
|
<slot>OnDbSettings()</slot>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>GroupView</sender>
|
||||||
|
<signal>selectionChanged(QListViewItem*)</signal>
|
||||||
|
<receiver>MainFrame</receiver>
|
||||||
|
<slot>OnGroupChanged(QListViewItem*)</slot>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>GroupView</sender>
|
||||||
|
<signal>rightButtonClicked(QListViewItem*,const QPoint&,int)</signal>
|
||||||
|
<receiver>MainFrame</receiver>
|
||||||
|
<slot>OnGroupRightClicked(QListViewItem*,const QPoint&,int)</slot>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>GroupView</sender>
|
||||||
|
<signal>dropped(QDropEvent*)</signal>
|
||||||
|
<receiver>MainFrame</receiver>
|
||||||
|
<slot>OnGroupViewDrop(QDropEvent*)</slot>
|
||||||
|
</connection>
|
||||||
<connection>
|
<connection>
|
||||||
<sender>Help_About</sender>
|
<sender>Help_About</sender>
|
||||||
<signal>activated()</signal>
|
<signal>activated()</signal>
|
||||||
|
@ -1352,10 +1322,76 @@
|
||||||
<slot>OnHelpAbout()</slot>
|
<slot>OnHelpAbout()</slot>
|
||||||
</connection>
|
</connection>
|
||||||
<connection>
|
<connection>
|
||||||
<sender>View_Column_Expire</sender>
|
<sender>Help_AboutQt</sender>
|
||||||
<signal>toggled(bool)</signal>
|
<signal>activated()</signal>
|
||||||
<receiver>MainFrame</receiver>
|
<receiver>MainFrame</receiver>
|
||||||
<slot>OnView_ColumnExpireToggled(bool)</slot>
|
<slot>OnHelpAboutQt()</slot>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>MainFrame</sender>
|
||||||
|
<signal>pixmapSizeChanged(bool)</signal>
|
||||||
|
<receiver>MainFrame</receiver>
|
||||||
|
<slot>OnMainWinResize()</slot>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>tooButtonOpen</sender>
|
||||||
|
<signal>clicked()</signal>
|
||||||
|
<receiver>MainFrame</receiver>
|
||||||
|
<slot>OnFileOpen()</slot>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>toolButtonAddEntry</sender>
|
||||||
|
<signal>clicked()</signal>
|
||||||
|
<receiver>MainFrame</receiver>
|
||||||
|
<slot>OnAddEntry()</slot>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>toolButtonDeleteEntry</sender>
|
||||||
|
<signal>clicked()</signal>
|
||||||
|
<receiver>MainFrame</receiver>
|
||||||
|
<slot>OnDeleteEntry()</slot>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>toolButtonEditEntry</sender>
|
||||||
|
<signal>clicked()</signal>
|
||||||
|
<receiver>MainFrame</receiver>
|
||||||
|
<slot>OnEditEntry()</slot>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>toolButtonNew</sender>
|
||||||
|
<signal>clicked()</signal>
|
||||||
|
<receiver>MainFrame</receiver>
|
||||||
|
<slot>OnFileNew()</slot>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>toolButtonPasswordToClipboard</sender>
|
||||||
|
<signal>clicked()</signal>
|
||||||
|
<receiver>MainFrame</receiver>
|
||||||
|
<slot>OnPasswordToClipboard()</slot>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>toolButtonSave</sender>
|
||||||
|
<signal>clicked()</signal>
|
||||||
|
<receiver>MainFrame</receiver>
|
||||||
|
<slot>OnFileSave()</slot>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>toolButtonSearch</sender>
|
||||||
|
<signal>clicked()</signal>
|
||||||
|
<receiver>MainFrame</receiver>
|
||||||
|
<slot>OnGlobalSearch()</slot>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>toolButtonUserNameToClipboard</sender>
|
||||||
|
<signal>clicked()</signal>
|
||||||
|
<receiver>MainFrame</receiver>
|
||||||
|
<slot>OnUserNameToClipboard()</slot>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>toolSearch</sender>
|
||||||
|
<signal>returnPressed()</signal>
|
||||||
|
<receiver>MainFrame</receiver>
|
||||||
|
<slot>OnQickSearch()</slot>
|
||||||
</connection>
|
</connection>
|
||||||
<connection>
|
<connection>
|
||||||
<sender>View_Column_Attachment</sender>
|
<sender>View_Column_Attachment</sender>
|
||||||
|
@ -1363,12 +1399,6 @@
|
||||||
<receiver>MainFrame</receiver>
|
<receiver>MainFrame</receiver>
|
||||||
<slot>OnView_ColumnAttachmentToggled(bool)</slot>
|
<slot>OnView_ColumnAttachmentToggled(bool)</slot>
|
||||||
</connection>
|
</connection>
|
||||||
<connection>
|
|
||||||
<sender>View_Column_Username</sender>
|
|
||||||
<signal>toggled(bool)</signal>
|
|
||||||
<receiver>MainFrame</receiver>
|
|
||||||
<slot>OnView_ColumnUsernameToggled(bool)</slot>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
<connection>
|
||||||
<sender>View_Column_Comment</sender>
|
<sender>View_Column_Comment</sender>
|
||||||
<signal>toggled(bool)</signal>
|
<signal>toggled(bool)</signal>
|
||||||
|
@ -1381,6 +1411,18 @@
|
||||||
<receiver>MainFrame</receiver>
|
<receiver>MainFrame</receiver>
|
||||||
<slot>OnView_ColumnCreationToggled(bool)</slot>
|
<slot>OnView_ColumnCreationToggled(bool)</slot>
|
||||||
</connection>
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>View_Column_Expire</sender>
|
||||||
|
<signal>toggled(bool)</signal>
|
||||||
|
<receiver>MainFrame</receiver>
|
||||||
|
<slot>OnView_ColumnExpireToggled(bool)</slot>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>View_Column_LastAccess</sender>
|
||||||
|
<signal>toggled(bool)</signal>
|
||||||
|
<receiver>MainFrame</receiver>
|
||||||
|
<slot>OnView_ColumnLastAccessToggled(bool)</slot>
|
||||||
|
</connection>
|
||||||
<connection>
|
<connection>
|
||||||
<sender>View_Column_LastMod</sender>
|
<sender>View_Column_LastMod</sender>
|
||||||
<signal>toggled(bool)</signal>
|
<signal>toggled(bool)</signal>
|
||||||
|
@ -1394,10 +1436,10 @@
|
||||||
<slot>OnView_ColumnPasswordToggled(bool)</slot>
|
<slot>OnView_ColumnPasswordToggled(bool)</slot>
|
||||||
</connection>
|
</connection>
|
||||||
<connection>
|
<connection>
|
||||||
<sender>View_Column_LastAccess</sender>
|
<sender>View_Column_Title</sender>
|
||||||
<signal>toggled(bool)</signal>
|
<signal>toggled(bool)</signal>
|
||||||
<receiver>MainFrame</receiver>
|
<receiver>MainFrame</receiver>
|
||||||
<slot>OnView_ColumnLastAccessToggled(bool)</slot>
|
<slot>OnView_ColumnTitleToggled(bool)</slot>
|
||||||
</connection>
|
</connection>
|
||||||
<connection>
|
<connection>
|
||||||
<sender>View_Column_URL</sender>
|
<sender>View_Column_URL</sender>
|
||||||
|
@ -1406,46 +1448,10 @@
|
||||||
<slot>OnView_ColumnUrlToggled(bool)</slot>
|
<slot>OnView_ColumnUrlToggled(bool)</slot>
|
||||||
</connection>
|
</connection>
|
||||||
<connection>
|
<connection>
|
||||||
<sender>View_Column_Title</sender>
|
<sender>View_Column_Username</sender>
|
||||||
<signal>toggled(bool)</signal>
|
<signal>toggled(bool)</signal>
|
||||||
<receiver>MainFrame</receiver>
|
<receiver>MainFrame</receiver>
|
||||||
<slot>OnView_ColumnTitleToggled(bool)</slot>
|
<slot>OnView_ColumnUsernameToggled(bool)</slot>
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>Edit_GlobalSearch</sender>
|
|
||||||
<signal>activated()</signal>
|
|
||||||
<receiver>MainFrame</receiver>
|
|
||||||
<slot>OnGlobalSearch()</slot>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>Extras_Language</sender>
|
|
||||||
<signal>activated()</signal>
|
|
||||||
<receiver>MainFrame</receiver>
|
|
||||||
<slot>OnExtrasLanguage()</slot>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>toolButtonSearch</sender>
|
|
||||||
<signal>clicked()</signal>
|
|
||||||
<receiver>MainFrame</receiver>
|
|
||||||
<slot>OnGlobalSearch()</slot>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>toolSearch</sender>
|
|
||||||
<signal>returnPressed()</signal>
|
|
||||||
<receiver>MainFrame</receiver>
|
|
||||||
<slot>OnQickSearch()</slot>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>DEBUG_DbStructure</sender>
|
|
||||||
<signal>activated()</signal>
|
|
||||||
<receiver>MainFrame</receiver>
|
|
||||||
<slot>DEBUG_OnPrintDbStucture()</slot>
|
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>File_Import_PwManager</sender>
|
|
||||||
<signal>activated()</signal>
|
|
||||||
<receiver>MainFrame</receiver>
|
|
||||||
<slot>OnImportPwManagerFile()</slot>
|
|
||||||
</connection>
|
</connection>
|
||||||
<connection>
|
<connection>
|
||||||
<sender>View_HidePasswords</sender>
|
<sender>View_HidePasswords</sender>
|
||||||
|
@ -1460,22 +1466,16 @@
|
||||||
<slot>OnView_HideUsernamesToggled(bool)</slot>
|
<slot>OnView_HideUsernamesToggled(bool)</slot>
|
||||||
</connection>
|
</connection>
|
||||||
<connection>
|
<connection>
|
||||||
<sender>GroupView</sender>
|
<sender>View_ShowEntryDetails</sender>
|
||||||
<signal>dropped(QDropEvent*)</signal>
|
<signal>toggled(bool)</signal>
|
||||||
<receiver>MainFrame</receiver>
|
<receiver>MainFrame</receiver>
|
||||||
<slot>OnGroupViewDrop(QDropEvent*)</slot>
|
<slot>OnViewEntryDetailsToggled(bool)</slot>
|
||||||
</connection>
|
</connection>
|
||||||
<connection>
|
<connection>
|
||||||
<sender>Help_AboutQt</sender>
|
<sender>View_ShowToolBar</sender>
|
||||||
<signal>activated()</signal>
|
<signal>toggled(bool)</signal>
|
||||||
<receiver>MainFrame</receiver>
|
<receiver>MainFrame</receiver>
|
||||||
<slot>OnHelpAboutQt()</slot>
|
<slot>OnViewToolbarToggled(bool)</slot>
|
||||||
</connection>
|
|
||||||
<connection>
|
|
||||||
<sender>File_ImportKWalletXML</sender>
|
|
||||||
<signal>activated()</signal>
|
|
||||||
<receiver>MainFrame</receiver>
|
|
||||||
<slot>OnImportKWalletXML()</slot>
|
|
||||||
</connection>
|
</connection>
|
||||||
</connections>
|
</connections>
|
||||||
<slots>
|
<slots>
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
#include <iostream.h>
|
||||||
#include "pwsafe.h"
|
#include "pwsafe.h"
|
||||||
#include <qapplication.h>
|
#include <qapplication.h>
|
||||||
|
|
||||||
|
|
|
@ -60,7 +60,7 @@
|
||||||
#include "import/Import_PwManager.h"
|
#include "import/Import_PwManager.h"
|
||||||
#include "import/Import_KWalletXml.h"
|
#include "import/Import_KWalletXml.h"
|
||||||
|
|
||||||
CMainWindow::CMainWindow(QApplication* app,QWidget* parent,const char* name, WFlags fl)
|
CMainWindow::CMainWindow(QApplication* app,QString ArgFile,QString ArgCfg,QWidget* parent,const char* name, WFlags fl)
|
||||||
: MainFrame(parent,name,fl)
|
: MainFrame(parent,name,fl)
|
||||||
{
|
{
|
||||||
FileOpen=false;
|
FileOpen=false;
|
||||||
|
@ -70,12 +70,23 @@ parentWidget()->setCaption(tr("Keepass Passwortsafe"));
|
||||||
SecString::generateSessionKey();
|
SecString::generateSessionKey();
|
||||||
|
|
||||||
// Config //
|
// Config //
|
||||||
if(!QDir(QDir::homeDirPath()+"/.keepass").exists()){
|
if(ArgCfg==""){
|
||||||
|
if(!QDir(QDir::homeDirPath()+"/.keepass").exists()){
|
||||||
QDir conf(QDir::homeDirPath());
|
QDir conf(QDir::homeDirPath());
|
||||||
if(!conf.mkdir(".keepass")){
|
if(!conf.mkdir(".keepass")){
|
||||||
cout << trUtf8("Warnung: Verzeichnis ~/.keepass konnte nicht erstellt werden.") << endl;}
|
cout << trUtf8("Warnung: Verzeichnis ~/.keepass konnte nicht erstellt werden.") << endl;}
|
||||||
|
}
|
||||||
|
IniFilename=QDir::homeDirPath()+"/.keepass/config";
|
||||||
|
config.loadFromIni(IniFilename);
|
||||||
}
|
}
|
||||||
config.loadFromIni();
|
else
|
||||||
|
{
|
||||||
|
IniFilename=ArgCfg;
|
||||||
|
config.loadFromIni(IniFilename);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CGroup::UI_ExpandByDefault=config.ExpandGroupTree;
|
CGroup::UI_ExpandByDefault=config.ExpandGroupTree;
|
||||||
|
|
||||||
// Language //
|
// Language //
|
||||||
|
@ -154,7 +165,6 @@ connect(GroupView,SIGNAL(expanded(QListViewItem*)),this, SLOT(OnGroupItemExpande
|
||||||
|
|
||||||
// MainWnd //
|
// MainWnd //
|
||||||
CurrentGroup=NULL;
|
CurrentGroup=NULL;
|
||||||
CurrentEntry=NULL;
|
|
||||||
Clipboard=QApplication::clipboard();
|
Clipboard=QApplication::clipboard();
|
||||||
GroupView->setSorting(-1);
|
GroupView->setSorting(-1);
|
||||||
|
|
||||||
|
@ -229,6 +239,26 @@ if(config.ListView_HideUsernames){
|
||||||
else{
|
else{
|
||||||
View_HideUsernames->setOn(false);}
|
View_HideUsernames->setOn(false);}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////
|
||||||
|
GroupView->addColumn(trUtf8("Gruppen"));
|
||||||
|
GroupView->setColumnWidth(0,GroupView->width()-4);
|
||||||
|
SetupColumns();
|
||||||
|
InitMenus();
|
||||||
|
|
||||||
|
if(ArgFile==""){
|
||||||
|
if(config.OpenLast && config.LastFile!="")
|
||||||
|
{QFileInfo file(config.LastFile);
|
||||||
|
if(file.exists() && file.isFile())OpenDatabase(config.LastFile);
|
||||||
|
else config.LastFile="";}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
QFileInfo file(ArgFile);
|
||||||
|
if(file.exists() && file.isFile())OpenDatabase(ArgFile);
|
||||||
|
else cout << "file not found "<< ArgFile << endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMainWindow::LoadImg(QString name,QImage& tmpImg){
|
void CMainWindow::LoadImg(QString name,QImage& tmpImg){
|
||||||
|
@ -245,7 +275,7 @@ if(tmpImg.load(appdir+"/../share/keepass/"+name)==false){
|
||||||
CMainWindow::~CMainWindow()
|
CMainWindow::~CMainWindow()
|
||||||
{
|
{
|
||||||
OnClose();
|
OnClose();
|
||||||
if(!config.saveToIni())
|
if(!config.saveToIni(IniFilename))
|
||||||
QMessageBox::warning(this,tr("Warnung"),trUtf8("Die Konfigurationsdatei konnte nicht gespeichert werden.Stellen Sie sicher, dass\nSie Schreibrechte im Verzeichnis ~/.keepass besitzen."),tr("OK"),"","",0.0);
|
QMessageBox::warning(this,tr("Warnung"),trUtf8("Die Konfigurationsdatei konnte nicht gespeichert werden.Stellen Sie sicher, dass\nSie Schreibrechte im Verzeichnis ~/.keepass besitzen."),tr("OK"),"","",0.0);
|
||||||
if(translator)delete translator;
|
if(translator)delete translator;
|
||||||
delete [] EntryIcons;
|
delete [] EntryIcons;
|
||||||
|
@ -406,10 +436,6 @@ EntryView->setColumnWidth(i,width);
|
||||||
void CMainWindow::updateEntryView(){
|
void CMainWindow::updateEntryView(){
|
||||||
// Achtung:
|
// Achtung:
|
||||||
// Die ->pEntry bzw ->pGroup Zeiger sind zu diesem Zeitpunkt ungültig!
|
// Die ->pEntry bzw ->pGroup Zeiger sind zu diesem Zeitpunkt ungültig!
|
||||||
if(CurrentEntry){
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
EntryView->clear();
|
EntryView->clear();
|
||||||
EntryItems.clear();
|
EntryItems.clear();
|
||||||
if(!CurrentGroup)return;
|
if(!CurrentGroup)return;
|
||||||
|
@ -452,24 +478,9 @@ tmp->setText(j++,entry->BinaryDesc);}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMainWindow::OnEntryChanged(QListViewItem* item){
|
void CMainWindow::OnEntryChanged(QListViewItem* item){
|
||||||
SetEditMenuState(STATE_SingleEntrySelected);
|
if(item)SetEditMenuState(STATE_SingleEntrySelected);
|
||||||
CEntry& entry=*((EntryItem*)item)->pEntry;
|
else SetEditMenuState(STATE_NoEntrySelected);
|
||||||
|
updateEntryDetails((EntryItem*)item);
|
||||||
QString str=trUtf8("<B>Gruppe: </B>%1 <B>Titel: </B>%2 <B>Benutzername: </B>%3 <B>URL: </B>%4 <B>Passwort: </B>%5 <B>Erstellt: </B>%6 <B>letzte Änderung: </B>%7 <B>letzter Zugriff: </B>%8 <B>gültig bis: </B>%9");
|
|
||||||
|
|
||||||
str= str.arg(CurrentGroup->pGroup->Name)
|
|
||||||
.arg(entry.Title)
|
|
||||||
.arg(entry.UserName)
|
|
||||||
.arg(entry.URL)
|
|
||||||
.arg(entry.Password.getString())
|
|
||||||
.arg(entry.Creation.GetString(0))
|
|
||||||
.arg(entry.LastMod.GetString(0))
|
|
||||||
.arg(entry.LastAccess.GetString(0))
|
|
||||||
.arg(entry.Expire.GetString(0));
|
|
||||||
|
|
||||||
SummaryField->setText(str);
|
|
||||||
entry.Password.delRef();
|
|
||||||
CurrentEntry=(EntryItem*)item;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -480,14 +491,8 @@ QValueList<int> s;
|
||||||
s.push_back(25); s.push_back(100);
|
s.push_back(25); s.push_back(100);
|
||||||
parentWidget()->resize(750,450);
|
parentWidget()->resize(750,450);
|
||||||
splitter->setSizes(s);
|
splitter->setSizes(s);
|
||||||
GroupView->addColumn(trUtf8("Gruppen"));
|
|
||||||
GroupView->setColumnWidth(0,GroupView->width()-4);
|
|
||||||
SetupColumns();
|
|
||||||
InitMenus();
|
|
||||||
if(config.OpenLast && config.LastFile!="")
|
|
||||||
{ QFileInfo file(config.LastFile);
|
|
||||||
if(file.exists() && file.isFile())OpenDatabase(config.LastFile);
|
|
||||||
else config.LastFile="";}
|
|
||||||
|
|
||||||
////////////////////////////////////
|
////////////////////////////////////
|
||||||
/*Beim öffnen der Datenbank ist ein Fehler aufgetreten.
|
/*Beim öffnen der Datenbank ist ein Fehler aufgetreten.
|
||||||
|
@ -761,14 +766,14 @@ setModFlag(true);
|
||||||
|
|
||||||
void CMainWindow::OnPasswordToClipboard()
|
void CMainWindow::OnPasswordToClipboard()
|
||||||
{
|
{
|
||||||
Clipboard->setText(CurrentEntry->pEntry->Password.getString(),QClipboard::Clipboard);
|
Clipboard->setText(currentEntry()->Password.getString(),QClipboard::Clipboard);
|
||||||
ClipboardTimer.start(config.ClipboardTimeOut*1000,true);
|
ClipboardTimer.start(config.ClipboardTimeOut*1000,true);
|
||||||
CurrentEntry->pEntry->Password.delRef();
|
currentEntry()->Password.delRef();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMainWindow::OnUserNameToClipboard()
|
void CMainWindow::OnUserNameToClipboard()
|
||||||
{
|
{
|
||||||
Clipboard->setText(CurrentEntry->pEntry->UserName, QClipboard::Clipboard);
|
Clipboard->setText(currentEntry()->UserName, QClipboard::Clipboard);
|
||||||
ClipboardTimer.start(config.ClipboardTimeOut*1000,true);
|
ClipboardTimer.start(config.ClipboardTimeOut*1000,true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -778,7 +783,7 @@ Clipboard->clear(QClipboard::Clipboard); //löscht nicht den KDE-Klipper
|
||||||
|
|
||||||
void CMainWindow::OnOpenURL()
|
void CMainWindow::OnOpenURL()
|
||||||
{
|
{
|
||||||
OpenURL(CurrentEntry->pEntry->URL);
|
OpenURL(currentEntry()->URL);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMainWindow::OpenURL(QString url){
|
void CMainWindow::OpenURL(QString url){
|
||||||
|
@ -789,7 +794,7 @@ browser.start();
|
||||||
|
|
||||||
void CMainWindow::OnSaveAttachment()
|
void CMainWindow::OnSaveAttachment()
|
||||||
{
|
{
|
||||||
CEntry& entry=*CurrentEntry->pEntry;
|
CEntry& entry=*currentEntry();
|
||||||
if(entry.BinaryDataLength==0){
|
if(entry.BinaryDataLength==0){
|
||||||
QMessageBox::information(NULL,trUtf8("Hinweis"),trUtf8("Dieser Eintrag hat keinen Dateianhang."),"OK");
|
QMessageBox::information(NULL,trUtf8("Hinweis"),trUtf8("Dieser Eintrag hat keinen Dateianhang."),"OK");
|
||||||
return;
|
return;
|
||||||
|
@ -864,7 +869,7 @@ if(pDlg->exec()){
|
||||||
void CMainWindow::OnEditEntry()
|
void CMainWindow::OnEditEntry()
|
||||||
{
|
{
|
||||||
CEditEntryDlg* pDlg= new CEditEntryDlg(this,0,true);
|
CEditEntryDlg* pDlg= new CEditEntryDlg(this,0,true);
|
||||||
pDlg->entry=CurrentEntry->pEntry;
|
pDlg->entry=currentEntry();
|
||||||
pDlg->exec();
|
pDlg->exec();
|
||||||
updateEntryView();
|
updateEntryView();
|
||||||
if(pDlg->ModFlag)setModFlag(true);
|
if(pDlg->ModFlag)setModFlag(true);
|
||||||
|
@ -872,7 +877,7 @@ if(pDlg->ModFlag)setModFlag(true);
|
||||||
|
|
||||||
void CMainWindow::OnCopyEntry()
|
void CMainWindow::OnCopyEntry()
|
||||||
{
|
{
|
||||||
CEntry &src=*CurrentEntry->pEntry;
|
CEntry &src=*currentEntry();
|
||||||
CEntry entry=src;
|
CEntry entry=src;
|
||||||
entry.sID=(*(db->Entries.end()-1)).sID+1;
|
entry.sID=(*(db->Entries.end()-1)).sID+1;
|
||||||
while(1){
|
while(1){
|
||||||
|
@ -900,7 +905,7 @@ setModFlag(true);
|
||||||
|
|
||||||
void CMainWindow::OnDeleteEntry()
|
void CMainWindow::OnDeleteEntry()
|
||||||
{
|
{
|
||||||
db->deleteEntry(CurrentEntry->pEntry);
|
db->deleteEntry(currentEntry());
|
||||||
updateEntryView();
|
updateEntryView();
|
||||||
setModFlag(true);
|
setModFlag(true);
|
||||||
}
|
}
|
||||||
|
@ -1311,6 +1316,7 @@ void CMainWindow::OnView_HideUsernamesToggled(bool state)
|
||||||
{
|
{
|
||||||
config.ListView_HideUsernames=state;
|
config.ListView_HideUsernames=state;
|
||||||
updateEntryView();
|
updateEntryView();
|
||||||
|
updateEntryDetails();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1318,6 +1324,7 @@ void CMainWindow::OnView_HidePasswordsToggled(bool state)
|
||||||
{
|
{
|
||||||
config.ListView_HidePasswords=state;
|
config.ListView_HidePasswords=state;
|
||||||
updateEntryView();
|
updateEntryView();
|
||||||
|
updateEntryDetails();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMainWindow::OnGroupViewDrop(QDropEvent* e)
|
void CMainWindow::OnGroupViewDrop(QDropEvent* e)
|
||||||
|
@ -1375,4 +1382,41 @@ FileOpen=true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CMainWindow::updateEntryDetails(EntryItem* pItem){
|
||||||
|
if(pItem==NULL){
|
||||||
|
SummaryField->setText("");
|
||||||
|
return;}
|
||||||
|
CEntry& entry=*pItem->pEntry;
|
||||||
|
QString str=trUtf8("<B>Gruppe: </B>%1 <B>Titel: </B>%2 <B>Benutzername: </B>%3 <B>URL: </B>%4 <B>Passwort: </B>%5 <B>Erstellt: </B>%6 <B>letzte Änderung: </B>%7 <B>letzter Zugriff: </B>%8 <B>gültig bis: </B>%9");
|
||||||
|
str=str.arg(CurrentGroup->pGroup->Name).arg(entry.Title);
|
||||||
|
|
||||||
|
if(!config.ListView_HideUsernames) str=str.arg(entry.UserName);
|
||||||
|
else str=str.arg("****");
|
||||||
|
|
||||||
|
str=str.arg(entry.URL);
|
||||||
|
|
||||||
|
if(!config.ListView_HidePasswords) str=str.arg(entry.Password.getString());
|
||||||
|
else str=str.arg("****");
|
||||||
|
|
||||||
|
str=str.arg(entry.Creation.GetString(0))
|
||||||
|
.arg(entry.LastMod.GetString(0))
|
||||||
|
.arg(entry.LastAccess.GetString(0))
|
||||||
|
.arg(entry.Expire.GetString(0));
|
||||||
|
SummaryField->setText(str);
|
||||||
|
entry.Password.delRef();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CMainWindow::updateEntryDetails(){
|
||||||
|
updateEntryDetails( (EntryItem*)EntryView->currentItem() );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
EntryItem* CMainWindow::currentEntryItem(){
|
||||||
|
return (EntryItem*)EntryView->currentItem();
|
||||||
|
}
|
||||||
|
|
||||||
|
CEntry* CMainWindow::currentEntry(){
|
||||||
|
return ((EntryItem*)EntryView->currentItem())->pEntry;
|
||||||
|
}
|
|
@ -40,7 +40,7 @@ Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/*$PUBLIC_FUNCTIONS$*/
|
/*$PUBLIC_FUNCTIONS$*/
|
||||||
CMainWindow(QApplication* app, QWidget* parent = 0,const char* name = 0, WFlags fl = 0 );
|
CMainWindow(QApplication* app,QString ArgFile,QString ArgCfg, QWidget* parent = 0,const char* name = 0, WFlags fl = 0 );
|
||||||
~CMainWindow();
|
~CMainWindow();
|
||||||
protected:
|
protected:
|
||||||
/*$PROTECTED_FUNCTIONS$*/
|
/*$PROTECTED_FUNCTIONS$*/
|
||||||
|
@ -149,8 +149,11 @@ public:
|
||||||
void setCurrentGroup(GroupItem* item);
|
void setCurrentGroup(GroupItem* item);
|
||||||
void updateEntryView();
|
void updateEntryView();
|
||||||
void updateGroupView();
|
void updateGroupView();
|
||||||
|
void updateEntryDetails();
|
||||||
|
void updateEntryDetails(EntryItem* item);
|
||||||
|
inline EntryItem* currentEntryItem();
|
||||||
|
inline CEntry* currentEntry();
|
||||||
GroupItem* CurrentGroup;
|
GroupItem* CurrentGroup;
|
||||||
EntryItem* CurrentEntry;
|
|
||||||
QClipboard* Clipboard;
|
QClipboard* Clipboard;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -161,6 +164,7 @@ private:
|
||||||
bool modflag;
|
bool modflag;
|
||||||
void setModFlag(bool);
|
void setModFlag(bool);
|
||||||
bool FileOpen;
|
bool FileOpen;
|
||||||
|
QString IniFilename;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -22,8 +22,32 @@
|
||||||
#include "pwsafe.h"
|
#include "pwsafe.h"
|
||||||
|
|
||||||
PwSafe::PwSafe(QApplication* app):QMainWindow( 0, "Keepass",WDestructiveClose)
|
PwSafe::PwSafe(QApplication* app):QMainWindow( 0, "Keepass",WDestructiveClose)
|
||||||
{ mainWin=new CMainWindow(app,this);
|
{
|
||||||
|
QString ArgFile,ArgCfg;
|
||||||
|
if(app->argc()>1){
|
||||||
|
int i=1;
|
||||||
|
if(app->argv()[i][0]!='-'){
|
||||||
|
ArgFile=app->argv()[i];
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
for(i; i<app->argc();i++){
|
||||||
|
if(QString(app->argv()[i])=="-h")
|
||||||
|
argHelp();
|
||||||
|
else if(QString(app->argv()[i])=="-cfg"){
|
||||||
|
if(i-1==app->argc()) cout << "No configuration file specified" << endl;
|
||||||
|
else{ArgCfg=app->argv()[i];}
|
||||||
|
}
|
||||||
|
else{cout << "** Unrecognized option: " << app->argv()[i] << endl;
|
||||||
|
exit(1);}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
mainWin=new CMainWindow(app,ArgFile,ArgCfg,this);
|
||||||
setCentralWidget( mainWin );
|
setCentralWidget( mainWin );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PwSafe::~PwSafe()
|
PwSafe::~PwSafe()
|
||||||
|
@ -31,3 +55,10 @@ PwSafe::~PwSafe()
|
||||||
delete mainWin;
|
delete mainWin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PwSafe::argHelp(){
|
||||||
|
cout << "Keepass 0.1.3 (Alpha)" << endl;
|
||||||
|
cout << "Usage: keepass [Filename] [Options]" << endl;
|
||||||
|
cout << " -h This Help" << endl;
|
||||||
|
cout << " -cfg ConfigFile Use specified configuration" << endl;
|
||||||
|
exit(0);
|
||||||
|
}
|
|
@ -43,6 +43,7 @@ public:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
CMainWindow *mainWin;
|
CMainWindow *mainWin;
|
||||||
|
void argHelp();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // _PWSAFE_H_
|
#endif // _PWSAFE_H_
|
||||||
|
|
Loading…
Reference in New Issue