From d3259227f11d0101607db8ae54b64727608cb1f0 Mon Sep 17 00:00:00 2001 From: sniperbeamer Date: Sat, 17 May 2008 10:39:54 +0000 Subject: [PATCH] Automatically try to unlock db when global auto-type key has been pressed Fixed gcc 4.2 compiler warning git-svn-id: https://svn.code.sf.net/p/keepassx/code/trunk@199 b624d157-de02-0410-bad0-e51aec6abb33 --- src/crypto/twofish.cpp | 2 +- src/lib/AutoType_X11.cpp | 6 +++++- src/mainwindow.h | 6 +++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/crypto/twofish.cpp b/src/crypto/twofish.cpp index e0fec8e..ef1d402 100644 --- a/src/crypto/twofish.cpp +++ b/src/crypto/twofish.cpp @@ -476,7 +476,7 @@ #endif -void Twofish_fatal(char* msg){ +void Twofish_fatal(const char* msg){ qCritical("Twofish: Fatal Error: %s",msg); exit(1); } diff --git a/src/lib/AutoType_X11.cpp b/src/lib/AutoType_X11.cpp index e9fa21f..87b68f7 100644 --- a/src/lib/AutoType_X11.cpp +++ b/src/lib/AutoType_X11.cpp @@ -162,7 +162,11 @@ void AutoType::perform(IEntryHandle* entry, QString& err,bool hideWindow,int nr) #ifdef GLOBAL_AUTOTYPE void AutoType::performGlobal(){ - if (MainWin->db==NULL) return; + if (MainWin->isLocked()) + MainWin->OnUnLockWorkspace(); + + if (!MainWin->isOpened()) + return; Display* d = QX11Info::display(); Window w; diff --git a/src/mainwindow.h b/src/mainwindow.h index 70ab8ef..d20e2b0 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -34,6 +34,11 @@ class KeepassMainWindow : public QMainWindow, private Ui_MainWindow{ public: KeepassMainWindow (const QString& ArgFile,bool ArgMin,bool ArgLock,QWidget *parent=0, Qt::WFlags flags=0); IDatabase* db; + inline bool isLocked() { return IsLocked; }; + inline bool isOpened() { return FileOpen; }; + + public slots: + void OnUnLockWorkspace(); signals: void entryChanged(); @@ -76,7 +81,6 @@ class KeepassMainWindow : public QMainWindow, private Ui_MainWindow{ void OnImport(QAction*); void OnExport(QAction*); void OnDetailViewUrlClicked(const QUrl& url); - void OnUnLockWorkspace(); void OnLockClose(); void OnInactivityTimer();