Fixed: "KeepassX 0.3.3 fails to lock itself after Ctrl-V (autotype)" (Bug #2106604)
Clear Klipper history on KDE4 git-svn-id: https://svn.code.sf.net/p/keepassx/code/trunk@230 b624d157-de02-0410-bad0-e51aec6abb33
This commit is contained in:
		
							parent
							
								
									f533ea45a7
								
							
						
					
					
						commit
						a8fafee769
					
				|  | @ -3,7 +3,7 @@ Name=KeePassX | |||
| GenericName=Cross Platform Password Manager | ||||
| GenericName[de]=Passwortverwaltung | ||||
| GenericName[fr]=Gestionnaire de mot de passe | ||||
| Exec=keepassx | ||||
| Exec=keepassx %f | ||||
| Icon=keepassx | ||||
| Comment=Cross Platform Password Manager | ||||
| Comment[de]=Passwortverwaltung | ||||
|  | @ -11,4 +11,4 @@ Comment[fr]=Gestionnaire de mot de passe | |||
| Terminal=false | ||||
| Type=Application | ||||
| Categories=Qt;Utility; | ||||
| MimeType=application/x-keepass | ||||
| MimeType=application/x-keepass; | ||||
|  |  | |||
|  | @ -3,6 +3,6 @@ Comment=KeePass database | |||
| Comment[de]=KeePass Datenbank | ||||
| Hidden=false | ||||
| Icon=keepassx | ||||
| MimeType=application/x-keepass | ||||
| Patterns=*.kdb | ||||
| MimeType=application/x-keepass; | ||||
| Patterns=*.kdb; | ||||
| Type=MimeType | ||||
|  | @ -19,7 +19,7 @@ | |||
| #include <QDesktopWidget> | ||||
| #include "AutoTypeDlg.h" | ||||
| 
 | ||||
| AutoTypeDlg::AutoTypeDlg(QList<IEntryHandle*> entries, QList<int> numbers){ | ||||
| AutoTypeDlg::AutoTypeDlg(QList<IEntryHandle*> entries, QList<int> numbers, bool wasLocked) : pWasLocked(wasLocked){ | ||||
| 	setupUi(this); | ||||
| 	 | ||||
| 	setAttribute(Qt::WA_DeleteOnClose); | ||||
|  | @ -101,5 +101,5 @@ bool AutoTypeDlg::event(QEvent* event){ | |||
| void AutoTypeDlg::itemSelected(QTreeWidgetItem* item){ | ||||
| 	close(); | ||||
| 	QString err; | ||||
| 	AutoType::perform(itemToEntry[item].dbHandle,err,false,itemToEntry[item].nr); | ||||
| 	AutoType::perform(itemToEntry[item].dbHandle, err, pWasLocked, itemToEntry[item].nr, pWasLocked); | ||||
| } | ||||
|  |  | |||
|  | @ -24,7 +24,7 @@ class AutoTypeDlg : public QWidget, private Ui::AutoTypeDlg | |||
| 	Q_OBJECT | ||||
| 	 | ||||
| 	public: | ||||
| 		AutoTypeDlg(QList<IEntryHandle*> entries, QList<int> numbers); | ||||
| 		AutoTypeDlg(QList<IEntryHandle*> entries, QList<int> numbers, bool wasLocked); | ||||
| 	 | ||||
| 	protected: | ||||
| 		void paintEvent(QPaintEvent* event); | ||||
|  | @ -42,4 +42,5 @@ class AutoTypeDlg : public QWidget, private Ui::AutoTypeDlg | |||
| 		static bool itemLessThan(QTreeWidgetItem* i1, QTreeWidgetItem* i2); | ||||
| 		QHash<QTreeWidgetItem*,AutoTypeEntry> itemToEntry; | ||||
| 		QPixmap BannerPixmap; | ||||
| 		bool pWasLocked; | ||||
| }; | ||||
|  |  | |||
|  | @ -34,7 +34,7 @@ class KeepassMainWindow; | |||
| class AutoType{ | ||||
| 	public: | ||||
| 		static KeepassMainWindow* MainWin; | ||||
| 		static void perform(IEntryHandle* entry, QString& err,bool hideWindow=true,int nr=0); | ||||
| 		static void perform(IEntryHandle* entry, QString& err,bool hideWindow=true,int nr=0,bool wasLocked=false); | ||||
| #ifdef GLOBAL_AUTOTYPE | ||||
| 		static Shortcut shortcut; | ||||
| 		static void performGlobal(); | ||||
|  |  | |||
|  | @ -55,7 +55,7 @@ KeepassMainWindow* AutoType::MainWin=NULL; | |||
| Shortcut AutoType::shortcut; | ||||
| #endif | ||||
| 
 | ||||
| void AutoType::perform(IEntryHandle* entry, QString& err,bool hideWindow,int nr){ | ||||
| void AutoType::perform(IEntryHandle* entry, QString& err,bool hideWindow,int nr,bool wasLocked){ | ||||
| 	QString indexStr; | ||||
| 	if (nr==0) | ||||
| 		indexStr = "Auto-Type:"; | ||||
|  | @ -154,8 +154,20 @@ void AutoType::perform(IEntryHandle* entry, QString& err,bool hideWindow,int nr) | |||
| 		XTestFakeKeyEvent(pDisplay,XKeysymToKeycode(pDisplay,XK_Caps_Lock),false,0); | ||||
| 	} | ||||
| 	 | ||||
| 	if (config->lockOnMinimize()){ | ||||
| 		if (hideWindow || wasLocked){ | ||||
| 			if ( !(config->showSysTrayIcon() && config->minimizeTray()) ) | ||||
| 				MainWin->showMinimized(); | ||||
| 			else | ||||
| 				MainWin->OnUnLockWorkspace(); | ||||
| 		} | ||||
| 	} | ||||
| 	else{ | ||||
| 		if (hideWindow && !(config->showSysTrayIcon() && config->minimizeTray()) ) | ||||
| 			MainWin->showMinimized(); | ||||
| 		if (wasLocked) | ||||
| 			MainWin->OnUnLockWorkspace(); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| #ifdef GLOBAL_AUTOTYPE | ||||
|  | @ -230,7 +242,8 @@ QStringList AutoType::getAllWindowTitles(){ | |||
| } | ||||
| 
 | ||||
| void AutoType::performGlobal(){ | ||||
| 	if (MainWin->isLocked()) | ||||
| 	bool wasLocked = MainWin->isLocked(); | ||||
| 	if (wasLocked) | ||||
| 		MainWin->OnUnLockWorkspace(); | ||||
| 	 | ||||
| 	if (!MainWin->isOpened()) | ||||
|  | @ -334,10 +347,10 @@ void AutoType::performGlobal(){ | |||
| 	 | ||||
| 	if (validEntries.size()==1){ | ||||
| 		QString err; | ||||
| 		perform(validEntries[0],err,false,entryNumbers[0]); | ||||
| 		perform(validEntries[0],err,wasLocked,entryNumbers[0],wasLocked); | ||||
| 	} | ||||
| 	else if (validEntries.size()>1){ | ||||
| 		AutoTypeDlg* dlg = new AutoTypeDlg(validEntries, entryNumbers); | ||||
| 		AutoTypeDlg* dlg = new AutoTypeDlg(validEntries, entryNumbers, wasLocked); | ||||
| 		dlg->show(); | ||||
| 	} | ||||
| } | ||||
|  |  | |||
|  | @ -322,10 +322,17 @@ void KeepassEntryView::OnClipboardTimeOut(){ | |||
| 		Clipboard->clear(QClipboard::Selection); | ||||
| 	} | ||||
| #ifdef Q_WS_X11 | ||||
| 	static bool clearKlipper = true; | ||||
| 	if (clearKlipper){ | ||||
| 	static bool clearKlipper3 = true; | ||||
| 	static bool clearKlipper4 = true; | ||||
| 	 | ||||
| 	if (clearKlipper3){ | ||||
| 		if (QProcess::execute("dcop klipper klipper clearClipboardHistory")!=0) | ||||
| 			clearKlipper = false; | ||||
| 			clearKlipper3 = false; | ||||
| 	} | ||||
| 	 | ||||
| 	if (clearKlipper4){ | ||||
| 		if (QProcess::execute("dbus-send --type=method_call --print-reply --dest=org.kde.klipper /klipper org.kde.klipper.klipper.clearClipboardHistory")!=0) | ||||
| 			clearKlipper4 = false; | ||||
| 	} | ||||
| #endif | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 sniperbeamer
						sniperbeamer