0.1.3b
git-svn-id: https://svn.code.sf.net/p/keepassx/code/trunk@4 b624d157-de02-0410-bad0-e51aec6abb33
This commit is contained in:
		
							parent
							
								
									95b9a258a1
								
							
						
					
					
						commit
						192dbba0e4
					
				
										
											Binary file not shown.
										
									
								
							| 
						 | 
					@ -85,8 +85,8 @@ public:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class Database:public AbstractDatabase{
 | 
					class Database:public AbstractDatabase{
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
 int CryptoAlgorithmus;
 | 
					 UINT32 CryptoAlgorithmus;
 | 
				
			||||||
 int KeyEncRounds;
 | 
					 UINT32 KeyEncRounds;
 | 
				
			||||||
 QString filename;
 | 
					 QString filename;
 | 
				
			||||||
 bool modflag;
 | 
					 bool modflag;
 | 
				
			||||||
 int SearchGroupID;
 | 
					 int SearchGroupID;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -18,6 +18,7 @@
 | 
				
			||||||
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
 | 
					 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
 | 
				
			||||||
 ***************************************************************************/
 | 
					 ***************************************************************************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "global.h"
 | 
				
			||||||
#include <iostream.h>
 | 
					#include <iostream.h>
 | 
				
			||||||
#include <time.h>
 | 
					#include <time.h>
 | 
				
			||||||
#include <qfile.h>
 | 
					#include <qfile.h>
 | 
				
			||||||
| 
						 | 
					@ -31,6 +32,8 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "PwManager.h"
 | 
					#include "PwManager.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool PwDatabase::loadDatabase(QString _filename, QString& err){
 | 
					bool PwDatabase::loadDatabase(QString _filename, QString& err){
 | 
				
			||||||
unsigned long total_size,crypto_size;
 | 
					unsigned long total_size,crypto_size;
 | 
				
			||||||
UINT32 Signature1,Signature2,Version,NumGroups,NumEntries,Flags;
 | 
					UINT32 Signature1,Signature2,Version,NumGroups,NumEntries,Flags;
 | 
				
			||||||
| 
						 | 
					@ -51,17 +54,17 @@ if(total_size < DB_HEADER_SIZE){
 | 
				
			||||||
err=trUtf8("Unerwartete Dateigröße (Dateigröße < DB_HEADER_SIZE)");
 | 
					err=trUtf8("Unerwartete Dateigröße (Dateigröße < DB_HEADER_SIZE)");
 | 
				
			||||||
return false; }
 | 
					return false; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
memcpy(&Signature1,buffer,4);
 | 
					memcpyFromLEnd32(&Signature1,buffer);
 | 
				
			||||||
memcpy(&Signature2,buffer+4,4);
 | 
					memcpyFromLEnd32(&Signature2,buffer+4);
 | 
				
			||||||
memcpy(&Flags,buffer+8,4);
 | 
					memcpyFromLEnd32(&Flags,buffer+8);
 | 
				
			||||||
memcpy(&Version,buffer+12,4);
 | 
					memcpyFromLEnd32(&Version,buffer+12);
 | 
				
			||||||
memcpy(FinalRandomSeed,buffer+16,16);
 | 
					memcpy(FinalRandomSeed,buffer+16,16);
 | 
				
			||||||
memcpy(EncryptionIV,buffer+32,16);
 | 
					memcpy(EncryptionIV,buffer+32,16);
 | 
				
			||||||
memcpy(&NumGroups,buffer+48,4);
 | 
					memcpyFromLEnd32(&NumGroups,buffer+48);
 | 
				
			||||||
memcpy(&NumEntries,buffer+52,4);
 | 
					memcpyFromLEnd32(&NumEntries,buffer+52);
 | 
				
			||||||
memcpy(ContentsHash,buffer+56,32);
 | 
					memcpy(ContentsHash,buffer+56,32);
 | 
				
			||||||
memcpy(TrafoRandomSeed,buffer+88,32);
 | 
					memcpy(TrafoRandomSeed,buffer+88,32);
 | 
				
			||||||
memcpy(&KeyEncRounds,buffer+120,4);
 | 
					memcpyFromLEnd32(&KeyEncRounds,buffer+120);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if((Signature1!=PWM_DBSIG_1) || (Signature2!=PWM_DBSIG_2)){
 | 
					if((Signature1!=PWM_DBSIG_1) || (Signature2!=PWM_DBSIG_2)){
 | 
				
			||||||
err=trUtf8("Falsche Signatur");
 | 
					err=trUtf8("Falsche Signatur");
 | 
				
			||||||
| 
						 | 
					@ -134,12 +137,12 @@ bool bRet;
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		pField = buffer+pos;
 | 
							pField = buffer+pos;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		memcpy(&FieldType, pField, 2);
 | 
							memcpyFromLEnd16(&FieldType, pField);
 | 
				
			||||||
		pField += 2; pos += 2;
 | 
							pField += 2; pos += 2;
 | 
				
			||||||
		if(pos >= total_size) {
 | 
							if(pos >= total_size) {
 | 
				
			||||||
		 return false; }
 | 
							 return false; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		memcpy(&FieldSize, pField, 4);
 | 
							memcpyFromLEnd32(&FieldSize, pField);
 | 
				
			||||||
		pField += 4; pos += 4;
 | 
							pField += 4; pos += 4;
 | 
				
			||||||
		if(pos >= (total_size + FieldSize)) {
 | 
							if(pos >= (total_size + FieldSize)) {
 | 
				
			||||||
		return false;}
 | 
							return false;}
 | 
				
			||||||
| 
						 | 
					@ -158,12 +161,12 @@ bool bRet;
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		pField = buffer+pos;
 | 
							pField = buffer+pos;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		memcpy(&FieldType, pField, 2);
 | 
							memcpyFromLEnd16(&FieldType, pField);
 | 
				
			||||||
		pField += 2; pos += 2;
 | 
							pField += 2; pos += 2;
 | 
				
			||||||
		if(pos >= total_size){
 | 
							if(pos >= total_size){
 | 
				
			||||||
		 return false;}
 | 
							 return false;}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		memcpy(&FieldSize, pField, 4);
 | 
							memcpyFromLEnd32(&FieldSize, pField);
 | 
				
			||||||
		pField += 4; pos += 4;
 | 
							pField += 4; pos += 4;
 | 
				
			||||||
		if(pos >= (total_size + FieldSize)) {
 | 
							if(pos >= (total_size + FieldSize)) {
 | 
				
			||||||
		return false; }
 | 
							return false; }
 | 
				
			||||||
| 
						 | 
					@ -408,7 +411,7 @@ bool CGroup::ReadGroupField(UINT16 FieldType, UINT32 FieldSize, UINT8 *pData)
 | 
				
			||||||
		// Ignore field
 | 
							// Ignore field
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
	case 0x0001:
 | 
						case 0x0001:
 | 
				
			||||||
		memcpy(&ID, pData, 4);
 | 
							memcpyFromLEnd32(&ID, (char*)pData);
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
	case 0x0002:
 | 
						case 0x0002:
 | 
				
			||||||
		//Name.fromUtf8((char*)pData);
 | 
							//Name.fromUtf8((char*)pData);
 | 
				
			||||||
| 
						 | 
					@ -427,13 +430,13 @@ bool CGroup::ReadGroupField(UINT16 FieldType, UINT32 FieldSize, UINT8 *pData)
 | 
				
			||||||
		Expire.Set(pData);
 | 
							Expire.Set(pData);
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
	case 0x0007:
 | 
						case 0x0007:
 | 
				
			||||||
		memcpy(&ImageID, pData, 4);
 | 
							memcpyFromLEnd32(&ImageID, (char*)pData);
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
	case 0x0008:
 | 
						case 0x0008:
 | 
				
			||||||
		memcpy(&Level, pData, 2);
 | 
							memcpyFromLEnd16(&Level, (char*)pData);
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
	case 0x0009:
 | 
						case 0x0009:
 | 
				
			||||||
		memcpy(&Flags, pData, 4);
 | 
							memcpyFromLEnd32(&Flags, (char*)pData);
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
	case 0xFFFF:
 | 
						case 0xFFFF:
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
| 
						 | 
					@ -465,10 +468,10 @@ switch(FieldType)
 | 
				
			||||||
		memcpy(ID, pData, 16);
 | 
							memcpy(ID, pData, 16);
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
	case 0x0002:
 | 
						case 0x0002:
 | 
				
			||||||
		memcpy(&GroupID, pData, 4);
 | 
							memcpyFromLEnd32(&GroupID, (char*)pData);
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
	case 0x0003:
 | 
						case 0x0003:
 | 
				
			||||||
		memcpy(&ImageID, pData, 4);
 | 
							memcpyFromLEnd32(&ImageID, (char*)pData);
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
	case 0x0004:
 | 
						case 0x0004:
 | 
				
			||||||
		//Title=(char*)pData;
 | 
							//Title=(char*)pData;
 | 
				
			||||||
| 
						 | 
					@ -936,3 +939,25 @@ for(int i=0; i<64; i+=2){
 | 
				
			||||||
	memcpy(dst+(i/2),&bin,1);
 | 
						memcpy(dst+(i/2),&bin,1);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void memcpyFromLEnd32(UINT32* dst,char* src){
 | 
				
			||||||
 | 
					#ifdef KEEPASS_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					  memcpy(dst,src,4);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef KEEPASS_BIG_ENDIAN
 | 
				
			||||||
 | 
					  memcpy(dst+3,src+0,1);
 | 
				
			||||||
 | 
					  memcpy(dst+2,src+1,1);
 | 
				
			||||||
 | 
					  memcpy(dst+1,src+2,1);
 | 
				
			||||||
 | 
					  memcpy(dst+0,src+3,1);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void memcpyFromLEnd16(UINT16* dst,char* src){
 | 
				
			||||||
 | 
					#ifdef KEEPASS_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					  memcpy(dst,src,2);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef KEEPASS_BIG_ENDIAN
 | 
				
			||||||
 | 
					  memcpy(dst+1,src+0,1);
 | 
				
			||||||
 | 
					  memcpy(dst+0,src+1,1);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -30,7 +30,7 @@
 | 
				
			||||||
 #define PWM_STD_KEYENCROUNDS 	6000
 | 
					 #define PWM_STD_KEYENCROUNDS 	6000
 | 
				
			||||||
 #define ALGO_AES         		0
 | 
					 #define ALGO_AES         		0
 | 
				
			||||||
 #define ALGO_TWOFISH			1
 | 
					 #define ALGO_TWOFISH			1
 | 
				
			||||||
 #define KEEPASS_VERSION			"0.1.2"
 | 
					 #define KEEPASS_VERSION			"0.1.3"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <qcolor.h>
 | 
					#include <qcolor.h>
 | 
				
			||||||
#include <qobject.h>
 | 
					#include <qobject.h>
 | 
				
			||||||
| 
						 | 
					@ -77,4 +77,7 @@ private:
 | 
				
			||||||
 bool convHexToBinaryKey(char* HexKey, char* dst);
 | 
					 bool convHexToBinaryKey(char* HexKey, char* dst);
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 void memcpyFromLEnd32(UINT32* dst,char* src);
 | 
				
			||||||
 | 
					 void memcpyFromLEnd16(UINT16* dst,char* src);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -45,6 +45,7 @@ ParseBoolString(ini.GetValue("Options","PwGenOptions","1111100001"),PwGenOptions
 | 
				
			||||||
PwGenLength=ini.GetValueI("Options","PwGenLength",25);
 | 
					PwGenLength=ini.GetValueI("Options","PwGenLength",25);
 | 
				
			||||||
PwGenCharList=ini.GetValue("Options","PwGenCharList","");
 | 
					PwGenCharList=ini.GetValue("Options","PwGenCharList","");
 | 
				
			||||||
ExpandGroupTree=ini.GetValueB("Options","ExpandGroupTree",true);
 | 
					ExpandGroupTree=ini.GetValueB("Options","ExpandGroupTree",true);
 | 
				
			||||||
 | 
					EnableKdePlugin=ini.GetValueB("KDE Plugin","Enabled",false);
 | 
				
			||||||
return true;
 | 
					return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -70,6 +71,7 @@ ini.SetValue("Options","PwGenOptions",CreateBoolString(PwGenOptions,10),true);
 | 
				
			||||||
ini.SetValueI("Options","PwGenLength",PwGenLength,true);
 | 
					ini.SetValueI("Options","PwGenLength",PwGenLength,true);
 | 
				
			||||||
ini.SetValue("Options","PwGenCharList",PwGenCharList,true);
 | 
					ini.SetValue("Options","PwGenCharList",PwGenCharList,true);
 | 
				
			||||||
ini.SetValueB("Options","ExpandGroupTree",ExpandGroupTree,true);
 | 
					ini.SetValueB("Options","ExpandGroupTree",ExpandGroupTree,true);
 | 
				
			||||||
 | 
					ini.SetValueB("KDE Plugin","Enabled",EnableKdePlugin,true);
 | 
				
			||||||
if(!ini.WriteFile())return false;
 | 
					if(!ini.WriteFile())return false;
 | 
				
			||||||
else return true;
 | 
					else return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -45,6 +45,7 @@ public:
 | 
				
			||||||
 int PwGenLength;
 | 
					 int PwGenLength;
 | 
				
			||||||
 QString PwGenCharList;
 | 
					 QString PwGenCharList;
 | 
				
			||||||
 bool ExpandGroupTree;
 | 
					 bool ExpandGroupTree;
 | 
				
			||||||
 | 
					 bool EnableKdePlugin;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 bool loadFromIni(QString filename);
 | 
					 bool loadFromIni(QString filename);
 | 
				
			||||||
 bool saveToIni(QString filename);
 | 
					 bool saveToIni(QString filename);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -431,7 +431,7 @@ int Blowfish::do_bf_setkey(byte * key, unsigned int keylen)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for (i = j = 0; i < BLOWFISH_ROUNDS + 2; ++i) {
 | 
						for (i = j = 0; i < BLOWFISH_ROUNDS + 2; ++i) {
 | 
				
			||||||
#ifdef BIG_ENDIAN_HOST
 | 
					#ifdef KEEPASS_BIG_ENDIAN
 | 
				
			||||||
		((byte *) & data)[0] = key[j];
 | 
							((byte *) & data)[0] = key[j];
 | 
				
			||||||
		((byte *) & data)[1] = key[(j + 1) % keylen];
 | 
							((byte *) & data)[1] = key[(j + 1) % keylen];
 | 
				
			||||||
		((byte *) & data)[2] = key[(j + 2) % keylen];
 | 
							((byte *) & data)[2] = key[(j + 2) % keylen];
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15,6 +15,7 @@
 | 
				
			||||||
#ifndef BLOWFISH_H
 | 
					#ifndef BLOWFISH_H
 | 
				
			||||||
#define BLOWFISH_H
 | 
					#define BLOWFISH_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "global.h"
 | 
				
			||||||
#include <stdint.h>
 | 
					#include <stdint.h>
 | 
				
			||||||
#include <string>
 | 
					#include <string>
 | 
				
			||||||
using std::string;
 | 
					using std::string;
 | 
				
			||||||
| 
						 | 
					@ -68,7 +69,7 @@ protected:
 | 
				
			||||||
	uint32_t function_F( uint32_t x)
 | 
						uint32_t function_F( uint32_t x)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		uint16_t a, b, c, d;
 | 
							uint16_t a, b, c, d;
 | 
				
			||||||
	#ifdef BIG_ENDIAN_HOST
 | 
						#ifdef KEEPASS_BIG_ENDIAN
 | 
				
			||||||
		a = ((byte *) & x)[0];
 | 
							a = ((byte *) & x)[0];
 | 
				
			||||||
		b = ((byte *) & x)[1];
 | 
							b = ((byte *) & x)[1];
 | 
				
			||||||
		c = ((byte *) & x)[2];
 | 
							c = ((byte *) & x)[2];
 | 
				
			||||||
| 
						 | 
					@ -86,7 +87,7 @@ protected:
 | 
				
			||||||
	       uint32_t *s0, uint32_t *s1, uint32_t *s2, uint32_t *s3)
 | 
						       uint32_t *s0, uint32_t *s1, uint32_t *s2, uint32_t *s3)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		l ^= p[i];
 | 
							l ^= p[i];
 | 
				
			||||||
	#ifdef BIG_ENDIAN_HOST
 | 
						#ifdef KEEPASS_BIG_ENDIAN
 | 
				
			||||||
		r ^= (( s0[((byte*)&l)[0]] + s1[((byte*)&l)[1]])
 | 
							r ^= (( s0[((byte*)&l)[0]] + s1[((byte*)&l)[1]])
 | 
				
			||||||
			^ s2[((byte*)&l)[2]]) + s3[((byte*)&l)[3]];
 | 
								^ s2[((byte*)&l)[2]]) + s3[((byte*)&l)[3]];
 | 
				
			||||||
	#else
 | 
						#else
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -19,7 +19,7 @@
 | 
				
			||||||
	SHA1(A million repetitions of "a") =
 | 
						SHA1(A million repetitions of "a") =
 | 
				
			||||||
		34AA973C D4C4DAA4 F61EEB2B DBAD2731 6534016F
 | 
							34AA973C D4C4DAA4 F61EEB2B DBAD2731 6534016F
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
 | 
					#include "global.h"
 | 
				
			||||||
#include "sha1.h"
 | 
					#include "sha1.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define SHA1_MAX_FILE_BUFFER 8000
 | 
					#define SHA1_MAX_FILE_BUFFER 8000
 | 
				
			||||||
| 
						 | 
					@ -33,7 +33,7 @@
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef SHA1_LITTLE_ENDIAN
 | 
					#ifdef KEEPASS_LITTLE_ENDIAN
 | 
				
			||||||
#define SHABLK0(i) (m_block->l[i] = \
 | 
					#define SHABLK0(i) (m_block->l[i] = \
 | 
				
			||||||
	(ROL32(m_block->l[i],24) & 0xFF00FF00) | (ROL32(m_block->l[i],8) & 0x00FF00FF))
 | 
						(ROL32(m_block->l[i],24) & 0xFF00FF00) | (ROL32(m_block->l[i],8) & 0x00FF00FF))
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -29,7 +29,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// If you're compiling big endian, just comment out the following line
 | 
					// If you're compiling big endian, just comment out the following line
 | 
				
			||||||
#define SHA1_LITTLE_ENDIAN
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// #define or #undef this, if you want the CSHA1 class to wipe all
 | 
					// #define or #undef this, if you want the CSHA1 class to wipe all
 | 
				
			||||||
// temporary variables after processing
 | 
					// temporary variables after processing
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -38,7 +38,7 @@ CChangeKeyDlg::CChangeKeyDlg(QWidget* parent,PwDatabase* _db,const char* name, b
 | 
				
			||||||
db=_db;
 | 
					db=_db;
 | 
				
			||||||
parentwnd=((CMainWindow*)parentWidget());
 | 
					parentwnd=((CMainWindow*)parentWidget());
 | 
				
			||||||
parentwnd->CreateBanner(Banner,parentwnd->Icon_Key32x32,trUtf8("Hauptschlüssel ändern"));
 | 
					parentwnd->CreateBanner(Banner,parentwnd->Icon_Key32x32,trUtf8("Hauptschlüssel ändern"));
 | 
				
			||||||
if(!parentwnd->config.ShowPasswords)ChangeEchoMode();
 | 
					if(!parentwnd->config->ShowPasswords)ChangeEchoMode();
 | 
				
			||||||
///@PlatformSpecific
 | 
					///@PlatformSpecific
 | 
				
			||||||
QDir media("/media");
 | 
					QDir media("/media");
 | 
				
			||||||
if(media.exists()){
 | 
					if(media.exists()){
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -33,6 +33,7 @@
 | 
				
			||||||
#include <qpen.h>
 | 
					#include <qpen.h>
 | 
				
			||||||
#include <qfiledialog.h>
 | 
					#include <qfiledialog.h>
 | 
				
			||||||
#include <qmessagebox.h>
 | 
					#include <qmessagebox.h>
 | 
				
			||||||
 | 
					#include <qtoolbutton.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "PasswordGenDlg.h"
 | 
					#include "PasswordGenDlg.h"
 | 
				
			||||||
| 
						 | 
					@ -72,7 +73,7 @@ Edit_URL->setText(entry->URL);
 | 
				
			||||||
Edit_Password->setText(entry->Password.getString());
 | 
					Edit_Password->setText(entry->Password.getString());
 | 
				
			||||||
Edit_Password_w->setText(entry->Password.getString());
 | 
					Edit_Password_w->setText(entry->Password.getString());
 | 
				
			||||||
entry->Password.delRef();
 | 
					entry->Password.delRef();
 | 
				
			||||||
if(!mainwnd->config.ShowPasswords)ChangeEchoMode();
 | 
					if(!mainwnd->config->ShowPasswords)ChangeEchoMode();
 | 
				
			||||||
OnPasswordwLostFocus();
 | 
					OnPasswordwLostFocus();
 | 
				
			||||||
int bits=(entry->Password.length()*8);
 | 
					int bits=(entry->Password.length()*8);
 | 
				
			||||||
Label_Bits->setText(QString::number(bits)+" Bit");
 | 
					Label_Bits->setText(QString::number(bits)+" Bit");
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -42,7 +42,7 @@ parentwnd=((CMainWindow*)parentWidget());
 | 
				
			||||||
parentwnd->CreateBanner(Banner,parentwnd->Icon_I18n32x32,trUtf8("Spracheinstellungen"));
 | 
					parentwnd->CreateBanner(Banner,parentwnd->Icon_I18n32x32,trUtf8("Spracheinstellungen"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
QListViewItem* item;
 | 
					QListViewItem* item;
 | 
				
			||||||
QString& config_lang=parentwnd->config.Language;
 | 
					QString& config_lang=parentwnd->config->Language;
 | 
				
			||||||
QStringList files;
 | 
					QStringList files;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
QString langdir=parentwnd->appdir+"/../share/keepass/i18n/";
 | 
					QString langdir=parentwnd->appdir+"/../share/keepass/i18n/";
 | 
				
			||||||
| 
						 | 
					@ -111,10 +111,10 @@ if(!translator.load(langdir+filenames[i])){
 | 
				
			||||||
QMessageBox::information(this,translator.findMessage("_MSG",msg[2]).translation()
 | 
					QMessageBox::information(this,translator.findMessage("_MSG",msg[2]).translation()
 | 
				
			||||||
			     ,translator.findMessage("_MSG",msg[0]).translation()
 | 
								     ,translator.findMessage("_MSG",msg[0]).translation()
 | 
				
			||||||
			     ,translator.findMessage("_MSG",msg[1]).translation()
 | 
								     ,translator.findMessage("_MSG",msg[1]).translation()
 | 
				
			||||||
			     ,0,0,2,1);
 | 
								     ,0,0);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
else QMessageBox::information(this,QString::fromUtf8(msg[2]),QString::fromUtf8(msg[0]),QString::fromUtf8(msg[1]),0,0,2,1);
 | 
					else QMessageBox::information(this,QString::fromUtf8(msg[2]),QString::fromUtf8(msg[0]),QString::fromUtf8(msg[1]),0,0,2,1);
 | 
				
			||||||
parentwnd->config.Language=filenames[i];
 | 
					parentwnd->config->Language=filenames[i];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
for(int j=0;j<pItems.size();j++){
 | 
					for(int j=0;j<pItems.size();j++){
 | 
				
			||||||
if(j==i)pItems[j]->setPixmap(0,*parentwnd->Icon_Ok16x16);
 | 
					if(j==i)pItems[j]->setPixmap(0,*parentwnd->Icon_Ok16x16);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -57,7 +57,7 @@ Combo_Dirs->insertItem(0,Paths[i]);
 | 
				
			||||||
IsFile.append(false);
 | 
					IsFile.append(false);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(!parentwnd->config.ShowPasswords)ChangeEchoMode();
 | 
					if(!parentwnd->config->ShowPasswords)ChangeEchoMode();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -33,26 +33,26 @@ parentwnd->CreateBanner(Banner,parentwnd->Icon_Search32x32,tr("Suchen"));
 | 
				
			||||||
group=pGroup;
 | 
					group=pGroup;
 | 
				
			||||||
pw=parentwnd->db;
 | 
					pw=parentwnd->db;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
checkBox_Cs->setChecked(parentwnd->config.SearchOptions[0]);
 | 
					checkBox_Cs->setChecked(parentwnd->config->SearchOptions[0]);
 | 
				
			||||||
checkBox_regExp->setChecked(parentwnd->config.SearchOptions[1]);
 | 
					checkBox_regExp->setChecked(parentwnd->config->SearchOptions[1]);
 | 
				
			||||||
checkBox_Title->setChecked(parentwnd->config.SearchOptions[2]);
 | 
					checkBox_Title->setChecked(parentwnd->config->SearchOptions[2]);
 | 
				
			||||||
checkBox_Username->setChecked(parentwnd->config.SearchOptions[3]);
 | 
					checkBox_Username->setChecked(parentwnd->config->SearchOptions[3]);
 | 
				
			||||||
checkBox_Password->setChecked(parentwnd->config.SearchOptions[4]);
 | 
					checkBox_Password->setChecked(parentwnd->config->SearchOptions[4]);
 | 
				
			||||||
checkBox_Comment->setChecked(parentwnd->config.SearchOptions[5]);
 | 
					checkBox_Comment->setChecked(parentwnd->config->SearchOptions[5]);
 | 
				
			||||||
checkBox_URL->setChecked(parentwnd->config.SearchOptions[6]);
 | 
					checkBox_URL->setChecked(parentwnd->config->SearchOptions[6]);
 | 
				
			||||||
checkBox_Attachment->setChecked(parentwnd->config.SearchOptions[7]);
 | 
					checkBox_Attachment->setChecked(parentwnd->config->SearchOptions[7]);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CSearchDlg::~CSearchDlg()
 | 
					CSearchDlg::~CSearchDlg()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
parentwnd->config.SearchOptions[0]=checkBox_Cs->isChecked();
 | 
					parentwnd->config->SearchOptions[0]=checkBox_Cs->isChecked();
 | 
				
			||||||
parentwnd->config.SearchOptions[1]=checkBox_regExp->isChecked();
 | 
					parentwnd->config->SearchOptions[1]=checkBox_regExp->isChecked();
 | 
				
			||||||
parentwnd->config.SearchOptions[2]=checkBox_Title->isChecked();
 | 
					parentwnd->config->SearchOptions[2]=checkBox_Title->isChecked();
 | 
				
			||||||
parentwnd->config.SearchOptions[3]=checkBox_Username->isChecked();
 | 
					parentwnd->config->SearchOptions[3]=checkBox_Username->isChecked();
 | 
				
			||||||
parentwnd->config.SearchOptions[4]=checkBox_Password->isChecked();
 | 
					parentwnd->config->SearchOptions[4]=checkBox_Password->isChecked();
 | 
				
			||||||
parentwnd->config.SearchOptions[5]=checkBox_Comment->isChecked();
 | 
					parentwnd->config->SearchOptions[5]=checkBox_Comment->isChecked();
 | 
				
			||||||
parentwnd->config.SearchOptions[6]=checkBox_URL->isChecked();
 | 
					parentwnd->config->SearchOptions[6]=checkBox_URL->isChecked();
 | 
				
			||||||
parentwnd->config.SearchOptions[7]=checkBox_Attachment->isChecked();
 | 
					parentwnd->config->SearchOptions[7]=checkBox_Attachment->isChecked();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void CSearchDlg::OnButtonClose()
 | 
					void CSearchDlg::OnButtonClose()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -33,24 +33,24 @@ pw=((CMainWindow*)parentWidget())->db;
 | 
				
			||||||
mainwnd=((CMainWindow*)parentWidget());
 | 
					mainwnd=((CMainWindow*)parentWidget());
 | 
				
			||||||
mainwnd->CreateBanner(Banner,mainwnd->Icon_Settings32x32,trUtf8("Einstellungen"));
 | 
					mainwnd->CreateBanner(Banner,mainwnd->Icon_Settings32x32,trUtf8("Einstellungen"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CheckBox_OpenLast->setChecked(mainwnd->config.OpenLast);
 | 
					CheckBox_OpenLast->setChecked(mainwnd->config->OpenLast);
 | 
				
			||||||
SpinBox_ClipboardTime->setValue(mainwnd->config.ClipboardTimeOut);
 | 
					SpinBox_ClipboardTime->setValue(mainwnd->config->ClipboardTimeOut);
 | 
				
			||||||
pixmTextColor->setPixmap(*(new QPixmap(pixmTextColor->width(),pixmTextColor->height())));
 | 
					pixmTextColor->setPixmap(*(new QPixmap(pixmTextColor->width(),pixmTextColor->height())));
 | 
				
			||||||
pixmTextColor->pixmap()->fill(mainwnd->config.BannerTextColor);
 | 
					pixmTextColor->pixmap()->fill(mainwnd->config->BannerTextColor);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pixmColor1->setPixmap(*(new QPixmap(pixmColor1->width(),pixmColor1->height())));
 | 
					pixmColor1->setPixmap(*(new QPixmap(pixmColor1->width(),pixmColor1->height())));
 | 
				
			||||||
pixmColor1->pixmap()->fill(mainwnd->config.BannerColor1);
 | 
					pixmColor1->pixmap()->fill(mainwnd->config->BannerColor1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pixmColor2->setPixmap(*(new QPixmap(pixmColor2->width(),pixmColor2->height())));
 | 
					pixmColor2->setPixmap(*(new QPixmap(pixmColor2->width(),pixmColor2->height())));
 | 
				
			||||||
pixmColor2->pixmap()->fill(mainwnd->config.BannerColor2);
 | 
					pixmColor2->pixmap()->fill(mainwnd->config->BannerColor2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
color1=mainwnd->config.BannerColor1;
 | 
					color1=mainwnd->config->BannerColor1;
 | 
				
			||||||
color2=mainwnd->config.BannerColor2;
 | 
					color2=mainwnd->config->BannerColor2;
 | 
				
			||||||
textcolor=mainwnd->config.BannerTextColor;
 | 
					textcolor=mainwnd->config->BannerTextColor;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CheckBox_ShowPasswords->setChecked(mainwnd->config.ShowPasswords);
 | 
					CheckBox_ShowPasswords->setChecked(mainwnd->config->ShowPasswords);
 | 
				
			||||||
Edit_BrowserCmd->setText(mainwnd->config.OpenUrlCommand);
 | 
					Edit_BrowserCmd->setText(mainwnd->config->OpenUrlCommand);
 | 
				
			||||||
CheckBox_ExpandGroupTree->setChecked(mainwnd->config.ExpandGroupTree);
 | 
					CheckBox_ExpandGroupTree->setChecked(mainwnd->config->ExpandGroupTree);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -60,14 +60,14 @@ CSettingsDlg::~CSettingsDlg()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void CSettingsDlg::OnOK()
 | 
					void CSettingsDlg::OnOK()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
mainwnd->config.OpenLast=CheckBox_OpenLast->isChecked();
 | 
					mainwnd->config->OpenLast=CheckBox_OpenLast->isChecked();
 | 
				
			||||||
mainwnd->config.ClipboardTimeOut=SpinBox_ClipboardTime->value();
 | 
					mainwnd->config->ClipboardTimeOut=SpinBox_ClipboardTime->value();
 | 
				
			||||||
mainwnd->config.BannerColor1=color1;
 | 
					mainwnd->config->BannerColor1=color1;
 | 
				
			||||||
mainwnd->config.BannerColor2=color2;
 | 
					mainwnd->config->BannerColor2=color2;
 | 
				
			||||||
mainwnd->config.BannerTextColor=textcolor;
 | 
					mainwnd->config->BannerTextColor=textcolor;
 | 
				
			||||||
mainwnd->config.ShowPasswords=CheckBox_ShowPasswords->isChecked();
 | 
					mainwnd->config->ShowPasswords=CheckBox_ShowPasswords->isChecked();
 | 
				
			||||||
mainwnd->config.OpenUrlCommand=Edit_BrowserCmd->text();
 | 
					mainwnd->config->OpenUrlCommand=Edit_BrowserCmd->text();
 | 
				
			||||||
mainwnd->config.ExpandGroupTree=CheckBox_ExpandGroupTree->isChecked();
 | 
					mainwnd->config->ExpandGroupTree=CheckBox_ExpandGroupTree->isChecked();
 | 
				
			||||||
close();
 | 
					close();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -80,7 +80,7 @@
 | 
				
			||||||
            <string>120 Bits</string>
 | 
					            <string>120 Bits</string>
 | 
				
			||||||
        </property>
 | 
					        </property>
 | 
				
			||||||
    </widget>
 | 
					    </widget>
 | 
				
			||||||
    <widget class="QPushButton">
 | 
					    <widget class="QToolButton">
 | 
				
			||||||
        <property name="name">
 | 
					        <property name="name">
 | 
				
			||||||
            <cstring>ButtonDeleteAttachment</cstring>
 | 
					            <cstring>ButtonDeleteAttachment</cstring>
 | 
				
			||||||
        </property>
 | 
					        </property>
 | 
				
			||||||
| 
						 | 
					@ -99,7 +99,7 @@
 | 
				
			||||||
            <pixmap>image0</pixmap>
 | 
					            <pixmap>image0</pixmap>
 | 
				
			||||||
        </property>
 | 
					        </property>
 | 
				
			||||||
    </widget>
 | 
					    </widget>
 | 
				
			||||||
    <widget class="QPushButton">
 | 
					    <widget class="QToolButton">
 | 
				
			||||||
        <property name="name">
 | 
					        <property name="name">
 | 
				
			||||||
            <cstring>ButtonGenPw</cstring>
 | 
					            <cstring>ButtonGenPw</cstring>
 | 
				
			||||||
        </property>
 | 
					        </property>
 | 
				
			||||||
| 
						 | 
					@ -205,7 +205,7 @@
 | 
				
			||||||
            <string>Icon:</string>
 | 
					            <string>Icon:</string>
 | 
				
			||||||
        </property>
 | 
					        </property>
 | 
				
			||||||
    </widget>
 | 
					    </widget>
 | 
				
			||||||
    <widget class="QPushButton">
 | 
					    <widget class="QToolButton">
 | 
				
			||||||
        <property name="name">
 | 
					        <property name="name">
 | 
				
			||||||
            <cstring>ButtonEchoMode</cstring>
 | 
					            <cstring>ButtonEchoMode</cstring>
 | 
				
			||||||
        </property>
 | 
					        </property>
 | 
				
			||||||
| 
						 | 
					@ -220,11 +220,8 @@
 | 
				
			||||||
        <property name="text">
 | 
					        <property name="text">
 | 
				
			||||||
            <string>...</string>
 | 
					            <string>...</string>
 | 
				
			||||||
        </property>
 | 
					        </property>
 | 
				
			||||||
        <property name="flat">
 | 
					 | 
				
			||||||
            <bool>false</bool>
 | 
					 | 
				
			||||||
        </property>
 | 
					 | 
				
			||||||
    </widget>
 | 
					    </widget>
 | 
				
			||||||
    <widget class="QPushButton">
 | 
					    <widget class="QToolButton">
 | 
				
			||||||
        <property name="name">
 | 
					        <property name="name">
 | 
				
			||||||
            <cstring>ButtonSaveAttachment</cstring>
 | 
					            <cstring>ButtonSaveAttachment</cstring>
 | 
				
			||||||
        </property>
 | 
					        </property>
 | 
				
			||||||
| 
						 | 
					@ -243,7 +240,7 @@
 | 
				
			||||||
            <pixmap>image1</pixmap>
 | 
					            <pixmap>image1</pixmap>
 | 
				
			||||||
        </property>
 | 
					        </property>
 | 
				
			||||||
    </widget>
 | 
					    </widget>
 | 
				
			||||||
    <widget class="QPushButton">
 | 
					    <widget class="QToolButton">
 | 
				
			||||||
        <property name="name">
 | 
					        <property name="name">
 | 
				
			||||||
            <cstring>ButtonOpenAttachment</cstring>
 | 
					            <cstring>ButtonOpenAttachment</cstring>
 | 
				
			||||||
        </property>
 | 
					        </property>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,3 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define KEEPASS_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					//#define KEEPASS_BIG_ENDIAN
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,8 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "KdePlugin.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool CKdePlugin::resolveSymbols(QLibrary& lib){
 | 
				
			||||||
 | 
					getAppObj=(QApplication*(*)(int,char**))lib.resolve("getAppObj");
 | 
				
			||||||
 | 
					if(getAppObj == NULL) return false;
 | 
				
			||||||
 | 
					return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,13 @@
 | 
				
			||||||
 | 
					#ifndef _KDEPLUGIN_H_
 | 
				
			||||||
 | 
					#define _KDEPLUGIN_H_
 | 
				
			||||||
 | 
					#include <qlibrary.h>
 | 
				
			||||||
 | 
					#include <qapplication.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class CKdePlugin{
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
						bool resolveSymbols(QLibrary& lib);
 | 
				
			||||||
 | 
						QApplication*(*getAppObj)(int,char**);
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										136
									
								
								src/main.cpp
								
								
								
								
							
							
						
						
									
										136
									
								
								src/main.cpp
								
								
								
								
							| 
						 | 
					@ -19,21 +19,141 @@
 | 
				
			||||||
 ***************************************************************************/
 | 
					 ***************************************************************************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <iostream.h>
 | 
					#include <iostream.h>
 | 
				
			||||||
#include "pwsafe.h"
 | 
					 | 
				
			||||||
#include <qapplication.h>
 | 
					#include <qapplication.h>
 | 
				
			||||||
 | 
					#include <qlibrary.h>
 | 
				
			||||||
 | 
					#include <qlocale.h>
 | 
				
			||||||
 | 
					#include <qdir.h>
 | 
				
			||||||
 | 
					#include <qmessagebox.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "pwsafe.h"
 | 
				
			||||||
 | 
					#include "PwmConfig.h"
 | 
				
			||||||
 | 
					#include "lib/KdePlugin.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void parseCmdLineArgs(int argc, char** argv,QString &ArgFile,QString& ArgCfg){
 | 
				
			||||||
 | 
					if(argc>1){
 | 
				
			||||||
 | 
					int i=1;
 | 
				
			||||||
 | 
						if(argv[i][0]!='-'){
 | 
				
			||||||
 | 
							ArgFile=QString::fromUtf8(argv[i]);
 | 
				
			||||||
 | 
							i++;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						for(i; i<argc;i++){
 | 
				
			||||||
 | 
							if(QString(argv[i])=="-h"){
 | 
				
			||||||
 | 
								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);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							else if(QString(argv[i])=="-cfg"){
 | 
				
			||||||
 | 
								if(i-1==argc) cout << "No configuration file specified." << endl;
 | 
				
			||||||
 | 
								else{ArgCfg=QString::fromUtf8(argv[i+1]); i++;}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							else{cout << "** Unrecognized option: " << argv[i] <<  endl;
 | 
				
			||||||
 | 
								exit(1);}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int main(int argc, char **argv)
 | 
					int main(int argc, char **argv)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    QApplication app(argc,argv);
 | 
					QString ArgFile,ArgCfg,IniFilename;
 | 
				
			||||||
    PwSafe *mainWin = 0;
 | 
					parseCmdLineArgs(argc,argv,ArgFile,ArgCfg);
 | 
				
			||||||
    /// @todo do something with the command line args here
 | 
					CConfig config;
 | 
				
			||||||
    mainWin = new PwSafe(&app);
 | 
					
 | 
				
			||||||
    app.setMainWidget( mainWin );
 | 
					//Load Config
 | 
				
			||||||
    mainWin->show();
 | 
					if(ArgCfg==""){
 | 
				
			||||||
    return app.exec();
 | 
					 if(!QDir(QDir::homeDirPath()+"/.keepass").exists()){
 | 
				
			||||||
 | 
						QDir conf(QDir::homeDirPath());
 | 
				
			||||||
 | 
						if(!conf.mkdir(".keepass")){
 | 
				
			||||||
 | 
							cout << "Warning: Could not create directory '~/.keepass'." << endl;}
 | 
				
			||||||
 | 
					 }
 | 
				
			||||||
 | 
					 IniFilename=QDir::homeDirPath()+"/.keepass/config";
 | 
				
			||||||
 | 
					 config.loadFromIni(IniFilename);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					 IniFilename=ArgCfg;
 | 
				
			||||||
 | 
					 config.loadFromIni(IniFilename);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//KDE PlugIn
 | 
				
			||||||
 | 
					QApplication* app=NULL;
 | 
				
			||||||
 | 
					if(config.EnableKdePlugin){
 | 
				
			||||||
 | 
					cout << "don't activate the kde plugin option" << endl;
 | 
				
			||||||
 | 
					exit(1);
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					  QLibrary lib("/home/tarek/Documents/keepass_kde/bin/libkeepass_kde.so");
 | 
				
			||||||
 | 
					  if(!lib.load()){
 | 
				
			||||||
 | 
							cout << "Could not load KDE plugin." << endl;
 | 
				
			||||||
 | 
							exit(1);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  CKdePlugin KdePlugin;
 | 
				
			||||||
 | 
					  if(!KdePlugin.resolveSymbols(lib)){
 | 
				
			||||||
 | 
							cout << "KDE plugin: Symbols could not be resolved." << endl;
 | 
				
			||||||
 | 
							exit(1);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					  app=KdePlugin.getAppObj(argc,argv);
 | 
				
			||||||
 | 
					  QApplication*(*_getAppObj)(int,char**);
 | 
				
			||||||
 | 
					  _getAppObj=(QApplication*(*)(int,char**))lib.resolve("getAppObj");
 | 
				
			||||||
 | 
					  app=_getAppObj(argc,argv**);
 | 
				
			||||||
 | 
					  if(!app){cout << "app==NULL" << endl;
 | 
				
			||||||
 | 
							 exit(1);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					else{
 | 
				
			||||||
 | 
					app=new QApplication(argc,argv);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					//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;}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					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);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 PwSafe *mainWin = 0;
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					 mainWin = new PwSafe(app,ArgFile,&config);
 | 
				
			||||||
 | 
					 app->setMainWidget( mainWin );
 | 
				
			||||||
 | 
					 mainWin->show();
 | 
				
			||||||
 | 
					 int ret=app->exec();
 | 
				
			||||||
 | 
					 if(!config.saveToIni(IniFilename))
 | 
				
			||||||
 | 
						QMessageBox::warning(NULL,QObject::tr("Warnung"),QObject::trUtf8("Die Konfigurationsdatei konnte nicht gespeichert werden.Stellen Sie sicher, dass\nSie Schreibrechte im Verzeichnis ~/.keepass besitzen."),QObject::tr("OK"),"","",0.0);
 | 
				
			||||||
 | 
					 delete app;
 | 
				
			||||||
 | 
					 return ret;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -37,6 +37,7 @@
 | 
				
			||||||
#include <qvaluelist.h>
 | 
					#include <qvaluelist.h>
 | 
				
			||||||
#include <qlocale.h>
 | 
					#include <qlocale.h>
 | 
				
			||||||
#include <qmessagebox.h>
 | 
					#include <qmessagebox.h>
 | 
				
			||||||
 | 
					#include <qlibrary.h>
 | 
				
			||||||
//STD
 | 
					//STD
 | 
				
			||||||
#include <time.h>
 | 
					#include <time.h>
 | 
				
			||||||
//local
 | 
					//local
 | 
				
			||||||
| 
						 | 
					@ -60,65 +61,16 @@
 | 
				
			||||||
#include "import/Import_PwManager.h"
 | 
					#include "import/Import_PwManager.h"
 | 
				
			||||||
#include "import/Import_KWalletXml.h"
 | 
					#include "import/Import_KWalletXml.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CMainWindow::CMainWindow(QApplication* app,QString ArgFile,QString ArgCfg,QWidget* parent,const char* name, WFlags fl)
 | 
					CMainWindow::CMainWindow(QApplication* app,QString ArgFile,CConfig* cfg,QWidget* parent,const char* name, WFlags fl)
 | 
				
			||||||
: MainFrame(parent,name,fl)
 | 
					: MainFrame(parent,name,fl)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
					config=cfg;
 | 
				
			||||||
FileOpen=false;
 | 
					FileOpen=false;
 | 
				
			||||||
App=app;
 | 
					App=app;
 | 
				
			||||||
appdir=app->applicationDirPath();
 | 
					appdir=app->applicationDirPath();
 | 
				
			||||||
parentWidget()->setCaption(tr("Keepass Passwortsafe"));
 | 
					parentWidget()->setCaption(tr("Keepass Passwortsafe"));
 | 
				
			||||||
SecString::generateSessionKey();
 | 
					SecString::generateSessionKey();
 | 
				
			||||||
 | 
					CGroup::UI_ExpandByDefault=config->ExpandGroupTree;
 | 
				
			||||||
// Config //
 | 
					 | 
				
			||||||
if(ArgCfg==""){
 | 
					 | 
				
			||||||
 if(!QDir(QDir::homeDirPath()+"/.keepass").exists()){
 | 
					 | 
				
			||||||
	QDir conf(QDir::homeDirPath());
 | 
					 | 
				
			||||||
	if(!conf.mkdir(".keepass")){
 | 
					 | 
				
			||||||
		cout << trUtf8("Warnung: Verzeichnis ~/.keepass konnte nicht erstellt werden.") << endl;}
 | 
					 | 
				
			||||||
 }
 | 
					 | 
				
			||||||
 IniFilename=QDir::homeDirPath()+"/.keepass/config";
 | 
					 | 
				
			||||||
 config.loadFromIni(IniFilename);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
else
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
 IniFilename=ArgCfg;
 | 
					 | 
				
			||||||
 config.loadFromIni(IniFilename);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CGroup::UI_ExpandByDefault=config.ExpandGroupTree;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Language //
 | 
					 | 
				
			||||||
QLocale loc=QLocale::system();
 | 
					 | 
				
			||||||
translator = 0;
 | 
					 | 
				
			||||||
translator =new QTranslator;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if(config.Language==""){
 | 
					 | 
				
			||||||
 switch(loc.language()){
 | 
					 | 
				
			||||||
   case QLocale::German:
 | 
					 | 
				
			||||||
	config.Language="_DEUTSCH_";
 | 
					 | 
				
			||||||
	break;
 | 
					 | 
				
			||||||
   case QLocale::English:
 | 
					 | 
				
			||||||
	config.Language="english.qm";
 | 
					 | 
				
			||||||
	break;
 | 
					 | 
				
			||||||
   default:
 | 
					 | 
				
			||||||
	config.Language="english.qm";
 | 
					 | 
				
			||||||
	break;}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if(config.Language!="_DEUTSCH_"){
 | 
					 | 
				
			||||||
  if(!translator->load(appdir+"/../share/keepass/i18n/"+config.Language)){
 | 
					 | 
				
			||||||
   if(!translator->load(appdir+"/share/i18n/"+config.Language)){
 | 
					 | 
				
			||||||
    config.Language="_DEUTSCH_";
 | 
					 | 
				
			||||||
    QMessageBox::warning(this,tr("Warnung"),
 | 
					 | 
				
			||||||
			 trUtf8("Die Übersetzungsdatei '%1' konnte nicht geladen werden.\n Die Sprache wurde auf Deutsch zurückgesetzt.")
 | 
					 | 
				
			||||||
			 .arg(config.Language),tr("OK"),0,0,2,1);
 | 
					 | 
				
			||||||
    delete translator;
 | 
					 | 
				
			||||||
   translator=NULL;}}
 | 
					 | 
				
			||||||
  else app->installTranslator(translator);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Icons, Pixmaps //
 | 
					// Icons, Pixmaps //
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -168,73 +120,73 @@ CurrentGroup=NULL;
 | 
				
			||||||
Clipboard=QApplication::clipboard();
 | 
					Clipboard=QApplication::clipboard();
 | 
				
			||||||
GroupView->setSorting(-1);
 | 
					GroupView->setSorting(-1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(config.Toolbar){
 | 
					if(config->Toolbar){
 | 
				
			||||||
	View_ShowToolBar->setOn(true);}
 | 
						View_ShowToolBar->setOn(true);}
 | 
				
			||||||
else{	Toolbar->hide();
 | 
					else{	Toolbar->hide();
 | 
				
			||||||
	View_ShowToolBar->setOn(false);}
 | 
						View_ShowToolBar->setOn(false);}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(config.EntryDetails){
 | 
					if(config->EntryDetails){
 | 
				
			||||||
	View_ShowEntryDetails->setOn(true);}
 | 
						View_ShowEntryDetails->setOn(true);}
 | 
				
			||||||
else{	SummaryField->hide();
 | 
					else{	SummaryField->hide();
 | 
				
			||||||
	View_ShowEntryDetails->setOn(false);}
 | 
						View_ShowEntryDetails->setOn(false);}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(config.Columns[0]){
 | 
					if(config->Columns[0]){
 | 
				
			||||||
	View_Column_Title->setOn(true);}
 | 
						View_Column_Title->setOn(true);}
 | 
				
			||||||
else{
 | 
					else{
 | 
				
			||||||
	View_Column_Title->setOn(false);}
 | 
						View_Column_Title->setOn(false);}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(config.Columns[1]){
 | 
					if(config->Columns[1]){
 | 
				
			||||||
	View_Column_Username->setOn(true);}
 | 
						View_Column_Username->setOn(true);}
 | 
				
			||||||
else{
 | 
					else{
 | 
				
			||||||
	View_Column_Username->setOn(false);}
 | 
						View_Column_Username->setOn(false);}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(config.Columns[2]){
 | 
					if(config->Columns[2]){
 | 
				
			||||||
	View_Column_URL->setOn(true);}
 | 
						View_Column_URL->setOn(true);}
 | 
				
			||||||
else{
 | 
					else{
 | 
				
			||||||
	View_Column_URL->setOn(false);}
 | 
						View_Column_URL->setOn(false);}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(config.Columns[3]){
 | 
					if(config->Columns[3]){
 | 
				
			||||||
	View_Column_Password->setOn(true);}
 | 
						View_Column_Password->setOn(true);}
 | 
				
			||||||
else{
 | 
					else{
 | 
				
			||||||
	View_Column_Password->setOn(false);}
 | 
						View_Column_Password->setOn(false);}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(config.Columns[4]){
 | 
					if(config->Columns[4]){
 | 
				
			||||||
	View_Column_Comment->setOn(true);}
 | 
						View_Column_Comment->setOn(true);}
 | 
				
			||||||
else{
 | 
					else{
 | 
				
			||||||
	View_Column_Comment->setOn(false);}
 | 
						View_Column_Comment->setOn(false);}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(config.Columns[5]){
 | 
					if(config->Columns[5]){
 | 
				
			||||||
	View_Column_Expire->setOn(true);}
 | 
						View_Column_Expire->setOn(true);}
 | 
				
			||||||
else{
 | 
					else{
 | 
				
			||||||
	View_Column_Expire->setOn(false);}
 | 
						View_Column_Expire->setOn(false);}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(config.Columns[6]){
 | 
					if(config->Columns[6]){
 | 
				
			||||||
	View_Column_Creation->setOn(true);}
 | 
						View_Column_Creation->setOn(true);}
 | 
				
			||||||
else{
 | 
					else{
 | 
				
			||||||
	View_Column_Creation->setOn(false);}
 | 
						View_Column_Creation->setOn(false);}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(config.Columns[7]){
 | 
					if(config->Columns[7]){
 | 
				
			||||||
	View_Column_LastMod->setOn(true);}
 | 
						View_Column_LastMod->setOn(true);}
 | 
				
			||||||
else{
 | 
					else{
 | 
				
			||||||
	View_Column_LastMod->setOn(false);}
 | 
						View_Column_LastMod->setOn(false);}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(config.Columns[8]){
 | 
					if(config->Columns[8]){
 | 
				
			||||||
	View_Column_LastAccess->setOn(true);}
 | 
						View_Column_LastAccess->setOn(true);}
 | 
				
			||||||
else{
 | 
					else{
 | 
				
			||||||
	View_Column_LastAccess->setOn(false);}
 | 
						View_Column_LastAccess->setOn(false);}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(config.Columns[9]){
 | 
					if(config->Columns[9]){
 | 
				
			||||||
	View_Column_Attachment->setOn(true);}
 | 
						View_Column_Attachment->setOn(true);}
 | 
				
			||||||
else{
 | 
					else{
 | 
				
			||||||
	View_Column_Attachment->setOn(false);}
 | 
						View_Column_Attachment->setOn(false);}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(config.ListView_HidePasswords){
 | 
					if(config->ListView_HidePasswords){
 | 
				
			||||||
	View_HidePasswords->setOn(true);}
 | 
						View_HidePasswords->setOn(true);}
 | 
				
			||||||
else{
 | 
					else{
 | 
				
			||||||
	View_HidePasswords->setOn(false);}
 | 
						View_HidePasswords->setOn(false);}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(config.ListView_HideUsernames){
 | 
					if(config->ListView_HideUsernames){
 | 
				
			||||||
	View_HideUsernames->setOn(true);}
 | 
						View_HideUsernames->setOn(true);}
 | 
				
			||||||
else{
 | 
					else{
 | 
				
			||||||
	View_HideUsernames->setOn(false);}
 | 
						View_HideUsernames->setOn(false);}
 | 
				
			||||||
| 
						 | 
					@ -246,16 +198,16 @@ SetupColumns();
 | 
				
			||||||
InitMenus();
 | 
					InitMenus();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(ArgFile==""){
 | 
					if(ArgFile==""){
 | 
				
			||||||
 if(config.OpenLast && config.LastFile!="")
 | 
					 if(config->OpenLast && config->LastFile!="")
 | 
				
			||||||
  {QFileInfo file(config.LastFile);
 | 
					  {QFileInfo file(config->LastFile);
 | 
				
			||||||
   if(file.exists() && file.isFile())OpenDatabase(config.LastFile);
 | 
					   if(file.exists() && file.isFile())OpenDatabase(config->LastFile);
 | 
				
			||||||
   else config.LastFile="";}
 | 
					   else config->LastFile="";}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
else
 | 
					else
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  QFileInfo file(ArgFile);
 | 
					  QFileInfo file(ArgFile);
 | 
				
			||||||
  if(file.exists() && file.isFile())OpenDatabase(ArgFile);
 | 
					  if(file.exists() && file.isFile())OpenDatabase(ArgFile);
 | 
				
			||||||
   else cout << "file not found "<< ArgFile << endl;
 | 
					   else {cout << "file not found "<< ArgFile << endl;}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -275,9 +227,6 @@ if(tmpImg.load(appdir+"/../share/keepass/"+name)==false){
 | 
				
			||||||
CMainWindow::~CMainWindow()
 | 
					CMainWindow::~CMainWindow()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
OnClose();
 | 
					OnClose();
 | 
				
			||||||
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);
 | 
					 | 
				
			||||||
if(translator)delete translator;
 | 
					 | 
				
			||||||
delete [] EntryIcons;
 | 
					delete [] EntryIcons;
 | 
				
			||||||
delete Icon_Key32x32;
 | 
					delete Icon_Key32x32;
 | 
				
			||||||
delete Icon_Settings32x32;
 | 
					delete Icon_Settings32x32;
 | 
				
			||||||
| 
						 | 
					@ -400,25 +349,25 @@ int NumColumns=EntryView->columns();
 | 
				
			||||||
for(int i=0;i<NumColumns;i++)EntryView->removeColumn(0);
 | 
					for(int i=0;i<NumColumns;i++)EntryView->removeColumn(0);
 | 
				
			||||||
int columnID[10];
 | 
					int columnID[10];
 | 
				
			||||||
int i=0;
 | 
					int i=0;
 | 
				
			||||||
if(config.Columns[0]){
 | 
					if(config->Columns[0]){
 | 
				
			||||||
columnID[0]=EntryView->addColumn(trUtf8("Titel"),0); i++;}
 | 
					columnID[0]=EntryView->addColumn(trUtf8("Titel"),0); i++;}
 | 
				
			||||||
if(config.Columns[1]){
 | 
					if(config->Columns[1]){
 | 
				
			||||||
columnID[1]=EntryView->addColumn(trUtf8("Benutzername"),0); i++;}
 | 
					columnID[1]=EntryView->addColumn(trUtf8("Benutzername"),0); i++;}
 | 
				
			||||||
if(config.Columns[2]){
 | 
					if(config->Columns[2]){
 | 
				
			||||||
columnID[2]=EntryView->addColumn(trUtf8("URL"),0); i++;}
 | 
					columnID[2]=EntryView->addColumn(trUtf8("URL"),0); i++;}
 | 
				
			||||||
if(config.Columns[3]){
 | 
					if(config->Columns[3]){
 | 
				
			||||||
columnID[3]=EntryView->addColumn(trUtf8("Passwort"),0); i++;}
 | 
					columnID[3]=EntryView->addColumn(trUtf8("Passwort"),0); i++;}
 | 
				
			||||||
if(config.Columns[4]){
 | 
					if(config->Columns[4]){
 | 
				
			||||||
columnID[4]=EntryView->addColumn(trUtf8("Kommentare"),0); i++;}
 | 
					columnID[4]=EntryView->addColumn(trUtf8("Kommentare"),0); i++;}
 | 
				
			||||||
if(config.Columns[5]){
 | 
					if(config->Columns[5]){
 | 
				
			||||||
columnID[5]=EntryView->addColumn(trUtf8("Gültig bis"),0); i++;}
 | 
					columnID[5]=EntryView->addColumn(trUtf8("Gültig bis"),0); i++;}
 | 
				
			||||||
if(config.Columns[6]){
 | 
					if(config->Columns[6]){
 | 
				
			||||||
columnID[6]=EntryView->addColumn(trUtf8("Erstellung"),0); i++;}
 | 
					columnID[6]=EntryView->addColumn(trUtf8("Erstellung"),0); i++;}
 | 
				
			||||||
if(config.Columns[7]){
 | 
					if(config->Columns[7]){
 | 
				
			||||||
columnID[7]=EntryView->addColumn(trUtf8("letzte Änderung"),0); i++;}
 | 
					columnID[7]=EntryView->addColumn(trUtf8("letzte Änderung"),0); i++;}
 | 
				
			||||||
if(config.Columns[8]){
 | 
					if(config->Columns[8]){
 | 
				
			||||||
columnID[8]=EntryView->addColumn(trUtf8("letzter Zugriff"),0); i++;}
 | 
					columnID[8]=EntryView->addColumn(trUtf8("letzter Zugriff"),0); i++;}
 | 
				
			||||||
if(config.Columns[9]){
 | 
					if(config->Columns[9]){
 | 
				
			||||||
columnID[9]=EntryView->addColumn(trUtf8("Anhang"),0); i++;}
 | 
					columnID[9]=EntryView->addColumn(trUtf8("Anhang"),0); i++;}
 | 
				
			||||||
ResizeColumns();
 | 
					ResizeColumns();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -445,32 +394,32 @@ CEntry* entry=&db->Entries[i];
 | 
				
			||||||
if((CurrentGroup->pGroup->ID==entry->GroupID) || (CurrentGroup->pGroup->ID==db->SearchGroupID && isInSearchResults(entry))){
 | 
					if((CurrentGroup->pGroup->ID==entry->GroupID) || (CurrentGroup->pGroup->ID==db->SearchGroupID && isInSearchResults(entry))){
 | 
				
			||||||
EntryItems.push_back(tmp=new EntryItem(entry,EntryView));
 | 
					EntryItems.push_back(tmp=new EntryItem(entry,EntryView));
 | 
				
			||||||
int j=0;
 | 
					int j=0;
 | 
				
			||||||
if(config.Columns[0]){
 | 
					if(config->Columns[0]){
 | 
				
			||||||
tmp->setText(j++,entry->Title);}
 | 
					tmp->setText(j++,entry->Title);}
 | 
				
			||||||
if(config.Columns[1]){
 | 
					if(config->Columns[1]){
 | 
				
			||||||
  if(config.ListView_HideUsernames)
 | 
					  if(config->ListView_HideUsernames)
 | 
				
			||||||
    tmp->setText(j++,"******");
 | 
					    tmp->setText(j++,"******");
 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
    tmp->setText(j++,entry->UserName);}
 | 
					    tmp->setText(j++,entry->UserName);}
 | 
				
			||||||
if(config.Columns[2]){
 | 
					if(config->Columns[2]){
 | 
				
			||||||
tmp->setText(j++,entry->URL);}
 | 
					tmp->setText(j++,entry->URL);}
 | 
				
			||||||
if(config.Columns[3]){
 | 
					if(config->Columns[3]){
 | 
				
			||||||
  if(config.ListView_HidePasswords)
 | 
					  if(config->ListView_HidePasswords)
 | 
				
			||||||
    tmp->setText(j++,"******");
 | 
					    tmp->setText(j++,"******");
 | 
				
			||||||
  else{
 | 
					  else{
 | 
				
			||||||
    tmp->setText(j++,entry->Password.getString());
 | 
					    tmp->setText(j++,entry->Password.getString());
 | 
				
			||||||
    entry->Password.delRef();}}
 | 
					    entry->Password.delRef();}}
 | 
				
			||||||
if(config.Columns[4]){
 | 
					if(config->Columns[4]){
 | 
				
			||||||
tmp->setText(j++,entry->Additional.section('\n',0,0));}
 | 
					tmp->setText(j++,entry->Additional.section('\n',0,0));}
 | 
				
			||||||
if(config.Columns[5]){
 | 
					if(config->Columns[5]){
 | 
				
			||||||
tmp->setText(j++,entry->Expire.GetString(0));}
 | 
					tmp->setText(j++,entry->Expire.GetString(0));}
 | 
				
			||||||
if(config.Columns[6]){
 | 
					if(config->Columns[6]){
 | 
				
			||||||
tmp->setText(j++,entry->Creation.GetString(0));}
 | 
					tmp->setText(j++,entry->Creation.GetString(0));}
 | 
				
			||||||
if(config.Columns[7]){
 | 
					if(config->Columns[7]){
 | 
				
			||||||
tmp->setText(j++,entry->LastMod.GetString(0));}
 | 
					tmp->setText(j++,entry->LastMod.GetString(0));}
 | 
				
			||||||
if(config.Columns[8]){
 | 
					if(config->Columns[8]){
 | 
				
			||||||
tmp->setText(j++,entry->LastAccess.GetString(0));}
 | 
					tmp->setText(j++,entry->LastAccess.GetString(0));}
 | 
				
			||||||
if(config.Columns[9]){
 | 
					if(config->Columns[9]){
 | 
				
			||||||
tmp->setText(j++,entry->BinaryDesc);}
 | 
					tmp->setText(j++,entry->BinaryDesc);}
 | 
				
			||||||
  (*(EntryItems.end()-1))->setPixmap(0,EntryIcons[entry->ImageID]);
 | 
					  (*(EntryItems.end()-1))->setPixmap(0,EntryIcons[entry->ImageID]);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
| 
						 | 
					@ -509,6 +458,11 @@ updateGroupView();
 | 
				
			||||||
SetFileMenuState(STATE_FileOpen);
 | 
					SetFileMenuState(STATE_FileOpen);
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
////////////////////////////////////
 | 
					////////////////////////////////////
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -520,9 +474,9 @@ OnEditEntry();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void CMainWindow::CreateBanner(QLabel *Banner,QPixmap* symbol,QString text){
 | 
					void CMainWindow::CreateBanner(QLabel *Banner,QPixmap* symbol,QString text){
 | 
				
			||||||
CreateBanner(Banner,symbol,text,config.BannerColor1
 | 
					CreateBanner(Banner,symbol,text,config->BannerColor1
 | 
				
			||||||
			       ,config.BannerColor2
 | 
								       ,config->BannerColor2
 | 
				
			||||||
			       ,config.BannerTextColor); //überladene Funktion wird aufgerufen
 | 
								       ,config->BannerTextColor); //überladene Funktion wird aufgerufen
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void CMainWindow::CreateBanner(QLabel *Banner,QPixmap* symbol,QString text,QColor color1,QColor color2,QColor textcolor){
 | 
					void CMainWindow::CreateBanner(QLabel *Banner,QPixmap* symbol,QString text,QColor color1,QColor color2,QColor textcolor){
 | 
				
			||||||
| 
						 | 
					@ -582,7 +536,7 @@ EntryView->clear();
 | 
				
			||||||
EntryItems.clear();
 | 
					EntryItems.clear();
 | 
				
			||||||
GroupView->clear();
 | 
					GroupView->clear();
 | 
				
			||||||
GroupItems.clear();
 | 
					GroupItems.clear();
 | 
				
			||||||
config.LastFile=db->filename;
 | 
					config->LastFile=db->filename;
 | 
				
			||||||
db->CloseDataBase();
 | 
					db->CloseDataBase();
 | 
				
			||||||
delete db;
 | 
					delete db;
 | 
				
			||||||
FileOpen=false;
 | 
					FileOpen=false;
 | 
				
			||||||
| 
						 | 
					@ -611,7 +565,7 @@ void CMainWindow::OnFileSaveAs()
 | 
				
			||||||
QString filename=QFileDialog::getSaveFileName(QDir::homeDirPath(),"*.kdb",this,trUtf8("Datenbank öffnen"));
 | 
					QString filename=QFileDialog::getSaveFileName(QDir::homeDirPath(),"*.kdb",this,trUtf8("Datenbank öffnen"));
 | 
				
			||||||
if(filename=="")return;
 | 
					if(filename=="")return;
 | 
				
			||||||
db->filename=filename;
 | 
					db->filename=filename;
 | 
				
			||||||
config.LastFile=filename;
 | 
					config->LastFile=filename;
 | 
				
			||||||
db->SaveDataBase(filename);
 | 
					db->SaveDataBase(filename);
 | 
				
			||||||
setModFlag(false);
 | 
					setModFlag(false);
 | 
				
			||||||
parentWidget()->setCaption(tr("Keepass - %1").arg(filename));
 | 
					parentWidget()->setCaption(tr("Keepass - %1").arg(filename));
 | 
				
			||||||
| 
						 | 
					@ -767,14 +721,14 @@ setModFlag(true);
 | 
				
			||||||
void CMainWindow::OnPasswordToClipboard()
 | 
					void CMainWindow::OnPasswordToClipboard()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
Clipboard->setText(currentEntry()->Password.getString(),QClipboard::Clipboard);
 | 
					Clipboard->setText(currentEntry()->Password.getString(),QClipboard::Clipboard);
 | 
				
			||||||
ClipboardTimer.start(config.ClipboardTimeOut*1000,true);
 | 
					ClipboardTimer.start(config->ClipboardTimeOut*1000,true);
 | 
				
			||||||
currentEntry()->Password.delRef();
 | 
					currentEntry()->Password.delRef();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void CMainWindow::OnUserNameToClipboard()
 | 
					void CMainWindow::OnUserNameToClipboard()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
Clipboard->setText(currentEntry()->UserName,  QClipboard::Clipboard);
 | 
					Clipboard->setText(currentEntry()->UserName,  QClipboard::Clipboard);
 | 
				
			||||||
ClipboardTimer.start(config.ClipboardTimeOut*1000,true);
 | 
					ClipboardTimer.start(config->ClipboardTimeOut*1000,true);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void CMainWindow::OnClipboardTimerEvent(){
 | 
					void CMainWindow::OnClipboardTimerEvent(){
 | 
				
			||||||
| 
						 | 
					@ -788,7 +742,7 @@ OpenURL(currentEntry()->URL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void CMainWindow::OpenURL(QString url){
 | 
					void CMainWindow::OpenURL(QString url){
 | 
				
			||||||
QProcess browser;
 | 
					QProcess browser;
 | 
				
			||||||
browser.setArguments(QStringList::split(' ',config.OpenUrlCommand.arg(url)));
 | 
					browser.setArguments(QStringList::split(' ',config->OpenUrlCommand.arg(url)));
 | 
				
			||||||
browser.start();
 | 
					browser.start();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1077,7 +1031,7 @@ else delete db;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void CMainWindow::OnViewToolbarToggled(bool toggled)
 | 
					void CMainWindow::OnViewToolbarToggled(bool toggled)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
config.Toolbar=toggled;
 | 
					config->Toolbar=toggled;
 | 
				
			||||||
if(toggled){
 | 
					if(toggled){
 | 
				
			||||||
Toolbar->show();
 | 
					Toolbar->show();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1089,7 +1043,7 @@ Toolbar->hide();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void CMainWindow::OnViewEntryDetailsToggled(bool toggled)
 | 
					void CMainWindow::OnViewEntryDetailsToggled(bool toggled)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
config.EntryDetails=toggled;
 | 
					config->EntryDetails=toggled;
 | 
				
			||||||
if(toggled){
 | 
					if(toggled){
 | 
				
			||||||
SummaryField->show();
 | 
					SummaryField->show();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1115,7 +1069,7 @@ pDlg->show();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void CMainWindow::OnView_ColumnExpireToggled(bool value)
 | 
					void CMainWindow::OnView_ColumnExpireToggled(bool value)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
config.Columns[5]=value;
 | 
					config->Columns[5]=value;
 | 
				
			||||||
SetupColumns();
 | 
					SetupColumns();
 | 
				
			||||||
updateEntryView();
 | 
					updateEntryView();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1123,14 +1077,14 @@ updateEntryView();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void CMainWindow::OnView_ColumnAttachmentToggled(bool value)
 | 
					void CMainWindow::OnView_ColumnAttachmentToggled(bool value)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
config.Columns[9]=value;
 | 
					config->Columns[9]=value;
 | 
				
			||||||
SetupColumns();
 | 
					SetupColumns();
 | 
				
			||||||
updateEntryView();
 | 
					updateEntryView();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void CMainWindow::OnView_ColumnUrlToggled(bool value)
 | 
					void CMainWindow::OnView_ColumnUrlToggled(bool value)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
config.Columns[2]=value;
 | 
					config->Columns[2]=value;
 | 
				
			||||||
SetupColumns();
 | 
					SetupColumns();
 | 
				
			||||||
updateEntryView();
 | 
					updateEntryView();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1138,7 +1092,7 @@ updateEntryView();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void CMainWindow::OnView_ColumnTitleToggled(bool value)
 | 
					void CMainWindow::OnView_ColumnTitleToggled(bool value)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
config.Columns[0]=value;
 | 
					config->Columns[0]=value;
 | 
				
			||||||
SetupColumns();
 | 
					SetupColumns();
 | 
				
			||||||
updateEntryView();
 | 
					updateEntryView();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1146,7 +1100,7 @@ updateEntryView();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void CMainWindow::OnView_ColumnCreationToggled(bool value)
 | 
					void CMainWindow::OnView_ColumnCreationToggled(bool value)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
config.Columns[6]=value;
 | 
					config->Columns[6]=value;
 | 
				
			||||||
SetupColumns();
 | 
					SetupColumns();
 | 
				
			||||||
updateEntryView();
 | 
					updateEntryView();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1154,7 +1108,7 @@ updateEntryView();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void CMainWindow::OnView_ColumnLastAccessToggled(bool value)
 | 
					void CMainWindow::OnView_ColumnLastAccessToggled(bool value)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
config.Columns[8]=value;
 | 
					config->Columns[8]=value;
 | 
				
			||||||
SetupColumns();
 | 
					SetupColumns();
 | 
				
			||||||
updateEntryView();
 | 
					updateEntryView();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1162,7 +1116,7 @@ updateEntryView();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void CMainWindow::OnView_ColumnLastModToggled(bool value)
 | 
					void CMainWindow::OnView_ColumnLastModToggled(bool value)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
config.Columns[7]=value;
 | 
					config->Columns[7]=value;
 | 
				
			||||||
SetupColumns();
 | 
					SetupColumns();
 | 
				
			||||||
updateEntryView();
 | 
					updateEntryView();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1170,7 +1124,7 @@ updateEntryView();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void CMainWindow::OnView_ColumnCommentToggled(bool value)
 | 
					void CMainWindow::OnView_ColumnCommentToggled(bool value)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
config.Columns[4]=value;
 | 
					config->Columns[4]=value;
 | 
				
			||||||
SetupColumns();
 | 
					SetupColumns();
 | 
				
			||||||
updateEntryView();
 | 
					updateEntryView();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1178,14 +1132,14 @@ updateEntryView();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void CMainWindow::OnView_ColumnPasswordToggled(bool value)
 | 
					void CMainWindow::OnView_ColumnPasswordToggled(bool value)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
config.Columns[3]=value;
 | 
					config->Columns[3]=value;
 | 
				
			||||||
SetupColumns();
 | 
					SetupColumns();
 | 
				
			||||||
updateEntryView();
 | 
					updateEntryView();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void CMainWindow::OnView_ColumnUsernameToggled(bool value)
 | 
					void CMainWindow::OnView_ColumnUsernameToggled(bool value)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
config.Columns[1]=value;
 | 
					config->Columns[1]=value;
 | 
				
			||||||
SetupColumns();
 | 
					SetupColumns();
 | 
				
			||||||
updateEntryView();
 | 
					updateEntryView();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1281,7 +1235,7 @@ switch(ret){
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
QString filename=QFileDialog::getOpenFileName(QDir::homeDirPath(),"*.pwm",this,trUtf8("Datenbank importieren"));
 | 
					QString filename=QFileDialog::getOpenFileName(QDir::homeDirPath(),"*.pwm",this,trUtf8("Datenbank importieren"));
 | 
				
			||||||
if(filename=="")return;
 | 
					if(filename=="")return;
 | 
				
			||||||
CSimplePasswordDialog dlg(!config.ShowPasswords,this,"SimplePasswordDlg",true);
 | 
					CSimplePasswordDialog dlg(!config->ShowPasswords,this,"SimplePasswordDlg",true);
 | 
				
			||||||
if(!dlg.exec())return;
 | 
					if(!dlg.exec())return;
 | 
				
			||||||
Import_PwManager importer;
 | 
					Import_PwManager importer;
 | 
				
			||||||
QString err;
 | 
					QString err;
 | 
				
			||||||
| 
						 | 
					@ -1314,7 +1268,7 @@ FileOpen=true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void CMainWindow::OnView_HideUsernamesToggled(bool state)
 | 
					void CMainWindow::OnView_HideUsernamesToggled(bool state)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
config.ListView_HideUsernames=state;
 | 
					config->ListView_HideUsernames=state;
 | 
				
			||||||
updateEntryView();
 | 
					updateEntryView();
 | 
				
			||||||
updateEntryDetails();
 | 
					updateEntryDetails();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1322,7 +1276,7 @@ updateEntryDetails();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void CMainWindow::OnView_HidePasswordsToggled(bool state)
 | 
					void CMainWindow::OnView_HidePasswordsToggled(bool state)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
config.ListView_HidePasswords=state;
 | 
					config->ListView_HidePasswords=state;
 | 
				
			||||||
updateEntryView();
 | 
					updateEntryView();
 | 
				
			||||||
updateEntryDetails();
 | 
					updateEntryDetails();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1390,12 +1344,12 @@ 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");
 | 
					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);
 | 
					str=str.arg(CurrentGroup->pGroup->Name).arg(entry.Title);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(!config.ListView_HideUsernames)	str=str.arg(entry.UserName);
 | 
					if(!config->ListView_HideUsernames)	str=str.arg(entry.UserName);
 | 
				
			||||||
else str=str.arg("****");
 | 
					else str=str.arg("****");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
str=str.arg(entry.URL);
 | 
					str=str.arg(entry.URL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if(!config.ListView_HidePasswords)	str=str.arg(entry.Password.getString());
 | 
					if(!config->ListView_HidePasswords)	str=str.arg(entry.Password.getString());
 | 
				
			||||||
else	str=str.arg("****");
 | 
					else	str=str.arg("****");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
str=str.arg(entry.Creation.GetString(0))
 | 
					str=str.arg(entry.Creation.GetString(0))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -40,7 +40,7 @@ Q_OBJECT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
  /*$PUBLIC_FUNCTIONS$*/
 | 
					  /*$PUBLIC_FUNCTIONS$*/
 | 
				
			||||||
  CMainWindow(QApplication* app,QString ArgFile,QString ArgCfg, QWidget* parent = 0,const char* name = 0, WFlags fl = 0 );
 | 
					  CMainWindow(QApplication* app,QString ArgFile,CConfig* config, QWidget* parent = 0,const char* name = 0, WFlags fl = 0 );
 | 
				
			||||||
  ~CMainWindow();
 | 
					  ~CMainWindow();
 | 
				
			||||||
protected:
 | 
					protected:
 | 
				
			||||||
  /*$PROTECTED_FUNCTIONS$*/
 | 
					  /*$PROTECTED_FUNCTIONS$*/
 | 
				
			||||||
| 
						 | 
					@ -125,7 +125,7 @@ public:
 | 
				
			||||||
  QPixmap* Icon_Ok16x16;
 | 
					  QPixmap* Icon_Ok16x16;
 | 
				
			||||||
  QTimer ClipboardTimer;
 | 
					  QTimer ClipboardTimer;
 | 
				
			||||||
  QString appdir;
 | 
					  QString appdir;
 | 
				
			||||||
  CConfig config;
 | 
					  CConfig* config;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 enum FileMenuState{STATE_FileOpen,
 | 
					 enum FileMenuState{STATE_FileOpen,
 | 
				
			||||||
				STATE_NoFileOpen};
 | 
									STATE_NoFileOpen};
 | 
				
			||||||
| 
						 | 
					@ -146,6 +146,7 @@ public:
 | 
				
			||||||
 void OpenURL(QString url);
 | 
					 void OpenURL(QString url);
 | 
				
			||||||
 GroupItem* getLastSameLevelItem(int i);
 | 
					 GroupItem* getLastSameLevelItem(int i);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 void setCurrentGroup(GroupItem* item);
 | 
					 void setCurrentGroup(GroupItem* item);
 | 
				
			||||||
 void updateEntryView();
 | 
					 void updateEntryView();
 | 
				
			||||||
 void updateGroupView();
 | 
					 void updateGroupView();
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -21,31 +21,10 @@
 | 
				
			||||||
#include "mainwindow.h"
 | 
					#include "mainwindow.h"
 | 
				
			||||||
#include "pwsafe.h"
 | 
					#include "pwsafe.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PwSafe::PwSafe(QApplication* app):QMainWindow( 0, "Keepass",WDestructiveClose)
 | 
					PwSafe::PwSafe(QApplication* app,QString& ArgFile,CConfig* cfg):QMainWindow( 0, "Keepass")
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
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,cfg,this);
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
  mainWin=new CMainWindow(app,ArgFile,ArgCfg,this);
 | 
					 | 
				
			||||||
  setCentralWidget( mainWin );
 | 
					  setCentralWidget( mainWin );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -53,12 +32,4 @@ int i=1;
 | 
				
			||||||
PwSafe::~PwSafe()
 | 
					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);
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -24,6 +24,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <qapplication.h>
 | 
					#include <qapplication.h>
 | 
				
			||||||
#include <qmainwindow.h>
 | 
					#include <qmainwindow.h>
 | 
				
			||||||
 | 
					#include "PwmConfig.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class CMainWindow;
 | 
					class CMainWindow;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -34,7 +35,7 @@ public:
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Default Constructor
 | 
					     * Default Constructor
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    PwSafe(QApplication*);
 | 
					    PwSafe(QApplication*,QString&, CConfig*);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Default Destructor
 | 
					     * Default Destructor
 | 
				
			||||||
| 
						 | 
					@ -43,7 +44,6 @@ public:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
private:
 | 
					private:
 | 
				
			||||||
  CMainWindow *mainWin;
 | 
					  CMainWindow *mainWin;
 | 
				
			||||||
  void argHelp();
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif // _PWSAFE_H_
 | 
					#endif // _PWSAFE_H_
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										29
									
								
								src/src.pro
								
								
								
								
							
							
						
						
									
										29
									
								
								src/src.pro
								
								
								
								
							| 
						 | 
					@ -8,17 +8,6 @@ INSTALLS += Share \
 | 
				
			||||||
target.path = /usr/local/bin 
 | 
					target.path = /usr/local/bin 
 | 
				
			||||||
Share.files += ../share/keepass/* 
 | 
					Share.files += ../share/keepass/* 
 | 
				
			||||||
Share.path = /usr/local/share/keepass 
 | 
					Share.path = /usr/local/share/keepass 
 | 
				
			||||||
MOC_DIR = ../build/moc 
 | 
					 | 
				
			||||||
UI_DIR = ../build/ui 
 | 
					 | 
				
			||||||
OBJECTS_DIR = ../build/ 
 | 
					 | 
				
			||||||
TARGET = ../bin/keepass 
 | 
					 | 
				
			||||||
CONFIG += debug \
 | 
					 | 
				
			||||||
          warn_off \
 | 
					 | 
				
			||||||
          qt \
 | 
					 | 
				
			||||||
          thread \
 | 
					 | 
				
			||||||
          exceptions \
 | 
					 | 
				
			||||||
          stl 
 | 
					 | 
				
			||||||
TEMPLATE = app 
 | 
					 | 
				
			||||||
FORMS += forms/ui_EditGroupDlg.ui \
 | 
					FORMS += forms/ui_EditGroupDlg.ui \
 | 
				
			||||||
         forms/ui_SearchDlg.ui \
 | 
					         forms/ui_SearchDlg.ui \
 | 
				
			||||||
         forms/ui_AboutDlg.ui \
 | 
					         forms/ui_AboutDlg.ui \
 | 
				
			||||||
| 
						 | 
					@ -62,7 +51,9 @@ HEADERS += lib/IniReader.h \
 | 
				
			||||||
           dialogs/PasswordGenDlg.h \
 | 
					           dialogs/PasswordGenDlg.h \
 | 
				
			||||||
           lib/random.h \
 | 
					           lib/random.h \
 | 
				
			||||||
           Database.h \
 | 
					           Database.h \
 | 
				
			||||||
           lib/PwmTime.h 
 | 
					           lib/PwmTime.h \
 | 
				
			||||||
 | 
					           lib/KdePlugin.h \
 | 
				
			||||||
 | 
					           global.h 
 | 
				
			||||||
SOURCES += lib/IniReader.cpp \
 | 
					SOURCES += lib/IniReader.cpp \
 | 
				
			||||||
           lib/UrlLabel.cpp \
 | 
					           lib/UrlLabel.cpp \
 | 
				
			||||||
           main.cpp \
 | 
					           main.cpp \
 | 
				
			||||||
| 
						 | 
					@ -93,4 +84,16 @@ SOURCES += lib/IniReader.cpp \
 | 
				
			||||||
           dialogs/PasswordGenDlg.cpp \
 | 
					           dialogs/PasswordGenDlg.cpp \
 | 
				
			||||||
           lib/random.cpp \
 | 
					           lib/random.cpp \
 | 
				
			||||||
           Database.cpp \
 | 
					           Database.cpp \
 | 
				
			||||||
           lib/PwmTime.cpp 
 | 
					           lib/PwmTime.cpp \
 | 
				
			||||||
 | 
					           lib/KdePlugin.cpp 
 | 
				
			||||||
 | 
					MOC_DIR = ../build/moc
 | 
				
			||||||
 | 
					UI_DIR = ../build/ui
 | 
				
			||||||
 | 
					OBJECTS_DIR = ../build/
 | 
				
			||||||
 | 
					TARGET = ../bin/keepass
 | 
				
			||||||
 | 
					CONFIG += debug \
 | 
				
			||||||
 | 
					warn_off \
 | 
				
			||||||
 | 
					qt \
 | 
				
			||||||
 | 
					thread \
 | 
				
			||||||
 | 
					exceptions \
 | 
				
			||||||
 | 
					stl
 | 
				
			||||||
 | 
					TEMPLATE = app
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue