diff --git a/src/dialogs/AboutDlg.h b/src/dialogs/AboutDlg.h index 1c03b94..2ea3fe7 100644 --- a/src/dialogs/AboutDlg.h +++ b/src/dialogs/AboutDlg.h @@ -22,7 +22,7 @@ #include "ui_AboutDlg.h" -class AboutDialog : public QDialog, public Ui_AboutDlg +class AboutDialog : public QDialog, private Ui_AboutDlg { Q_OBJECT diff --git a/src/dialogs/CollectEntropyDlg.cpp b/src/dialogs/CollectEntropyDlg.cpp index 63f747b..466c799 100644 --- a/src/dialogs/CollectEntropyDlg.cpp +++ b/src/dialogs/CollectEntropyDlg.cpp @@ -19,7 +19,6 @@ ***************************************************************************/ -#include "crypto/yarrow.h" #include "CollectEntropyDlg.h" diff --git a/src/dialogs/CollectEntropyDlg.h b/src/dialogs/CollectEntropyDlg.h index 015f8be..9a410a5 100644 --- a/src/dialogs/CollectEntropyDlg.h +++ b/src/dialogs/CollectEntropyDlg.h @@ -23,7 +23,7 @@ #include "ui_CollectEntropyDlg.h" -class CollectEntropyDlg: public QDialog, public Ui_CollectEntropyDlg{ +class CollectEntropyDlg: public QDialog, private Ui_CollectEntropyDlg{ Q_OBJECT public: CollectEntropyDlg(QWidget* parent); diff --git a/src/dialogs/CustomizeDetailViewDlg.h b/src/dialogs/CustomizeDetailViewDlg.h index 6e6c499..fa77772 100644 --- a/src/dialogs/CustomizeDetailViewDlg.h +++ b/src/dialogs/CustomizeDetailViewDlg.h @@ -22,7 +22,7 @@ #include "ui_CustomizeDetailViewDlg.h" -class CustomizeDetailViewDialog : public QDialog, public Ui_CustomizeDetailViewDialog{ +class CustomizeDetailViewDialog : public QDialog, private Ui_CustomizeDetailViewDialog{ Q_OBJECT public: CustomizeDetailViewDialog(QWidget* parent); diff --git a/src/dialogs/DatabaseSettingsDlg.h b/src/dialogs/DatabaseSettingsDlg.h index f15c3dc..7efc9ef 100644 --- a/src/dialogs/DatabaseSettingsDlg.h +++ b/src/dialogs/DatabaseSettingsDlg.h @@ -23,7 +23,7 @@ #include "ui_DatabaseSettingsDlg.h" -class CDbSettingsDlg : public QDialog, public Ui_DatabaseSettingsDlg +class CDbSettingsDlg : public QDialog, private Ui_DatabaseSettingsDlg { Q_OBJECT public: @@ -31,7 +31,7 @@ class CDbSettingsDlg : public QDialog, public Ui_DatabaseSettingsDlg ~CDbSettingsDlg(); virtual void paintEvent(QPaintEvent *); - public slots: + private slots: virtual void OnCancel(); virtual void OnOK(); diff --git a/src/dialogs/EditEntryDlg.h b/src/dialogs/EditEntryDlg.h index 1dd80fc..dc83b7c 100644 --- a/src/dialogs/EditEntryDlg.h +++ b/src/dialogs/EditEntryDlg.h @@ -24,7 +24,7 @@ #include "ui_EditEntryDlg.h" #include "Kdb3Database.h" -class CEditEntryDlg : public QDialog, public Ui_EditEntryDialog +class CEditEntryDlg : public QDialog, private Ui_EditEntryDialog { Q_OBJECT public: diff --git a/src/dialogs/EditGroupDlg.h b/src/dialogs/EditGroupDlg.h index b05e048..800f135 100644 --- a/src/dialogs/EditGroupDlg.h +++ b/src/dialogs/EditGroupDlg.h @@ -23,23 +23,23 @@ #include "ui_EditGroupDlg.h" -class CEditGroupDialog : public QDialog, public Ui_EditGroupDialog +class CEditGroupDialog : public QDialog, private Ui_EditGroupDialog { - Q_OBJECT -public: - CEditGroupDialog(IDatabase*,IGroupHandle*,QWidget* parent = 0, bool modal = FALSE, Qt::WFlags fl = 0 ); - CEditGroupDialog(IDatabase*,CGroup*,QWidget* parent = 0, bool modal = FALSE, Qt::WFlags fl = 0 ); - ~CEditGroupDialog(); - virtual void showEvent(QShowEvent *event); -private: - IDatabase* db; - IGroupHandle* handle; - CGroup* group; + Q_OBJECT + public: + CEditGroupDialog(IDatabase*,IGroupHandle*,QWidget* parent = 0, bool modal = FALSE, Qt::WFlags fl = 0 ); + CEditGroupDialog(IDatabase*,CGroup*,QWidget* parent = 0, bool modal = FALSE, Qt::WFlags fl = 0 ); + ~CEditGroupDialog(); + virtual void showEvent(QShowEvent *event); + private: + IDatabase* db; + IGroupHandle* handle; + CGroup* group; -public slots: - virtual void OnOK(); - virtual void OnCancel(); - virtual void OnIconDlg(); + private slots: + virtual void OnOK(); + virtual void OnCancel(); + virtual void OnIconDlg(); }; #endif diff --git a/src/dialogs/ExpiredEntriesDlg.h b/src/dialogs/ExpiredEntriesDlg.h index 29c5122..3f2834e 100644 --- a/src/dialogs/ExpiredEntriesDlg.h +++ b/src/dialogs/ExpiredEntriesDlg.h @@ -24,7 +24,7 @@ #include "ui_ExpiredEntriesDlg.h" -class ExpiredEntriesDialog:public QDialog, public Ui_ExpiredEntriesDialog{ +class ExpiredEntriesDialog:public QDialog, private Ui_ExpiredEntriesDialog{ Q_OBJECT public: ExpiredEntriesDialog(QWidget* parent,IDatabase* database,const QList& Entries); diff --git a/src/dialogs/ManageBookmarksDlg.h b/src/dialogs/ManageBookmarksDlg.h index d670f51..9caa1cb 100644 --- a/src/dialogs/ManageBookmarksDlg.h +++ b/src/dialogs/ManageBookmarksDlg.h @@ -22,8 +22,6 @@ #include "ui_ManageBookmarksDlg.h" -#include "main.h" - class ManageBookmarksDlg : public QDialog, private Ui::ManageBookmarksDlg { Q_OBJECT diff --git a/src/dialogs/PasswordDlg.h b/src/dialogs/PasswordDlg.h index d64a251..ae01475 100644 --- a/src/dialogs/PasswordDlg.h +++ b/src/dialogs/PasswordDlg.h @@ -20,65 +20,61 @@ #ifndef PASSWORDDIALOG_H #define PASSWORDDIALOG_H -#include #include #include "ui_PasswordDlg.h" -#include "main.h" -#include "lib/UrlLabel.h" -#include "Database.h" -class PasswordDialog : public QDialog, public Ui_PasswordDlg { -Q_OBJECT -public: - enum DlgMode { - Mode_Ask, // Normal password entry when opening a database - Mode_Set, // Setting password for the first time after creating a new database - Mode_Change // Changing the password of a database - }; - - enum DlgFlags { - Flag_None = 0x00, - Flag_Auto = 0x01 // Dialog was automatically opened on start-up - }; - - enum DlgExit { - Exit_Ok=QDialog::Accepted, - Exit_Cancel=QDialog::Rejected, - Exit_Quit=3 - }; - - typedef bool (KeyFileGenProc)(const QString& filename,QString* error); +class PasswordDialog : public QDialog, private Ui_PasswordDlg { + Q_OBJECT + public: + enum DlgMode { + Mode_Ask, // Normal password entry when opening a database + Mode_Set, // Setting password for the first time after creating a new database + Mode_Change // Changing the password of a database + }; - PasswordDialog(QWidget* parent,DlgMode mode,DlgFlags flags,const QString& filename=QString()); - - // result functions - QString selectedBookmark(); - QString keyFile(); - QString password(); + enum DlgFlags { + Flag_None = 0x00, + Flag_Auto = 0x01 // Dialog was automatically opened on start-up + }; + + enum DlgExit { + Exit_Ok=QDialog::Accepted, + Exit_Cancel=QDialog::Rejected, + Exit_Quit=3 + }; + + typedef bool (KeyFileGenProc)(const QString& filename,QString* error); + + PasswordDialog(QWidget* parent,DlgMode mode,DlgFlags flags,const QString& filename=QString()); + + // result functions + QString selectedBookmark(); + QString keyFile(); + QString password(); -public slots: - void OnOK(); - void OnCancel(); - void OnButtonBrowse(); - void OnButtonQuit(); - void OnGenKeyFile(); - void OnButtonBack(); - void ChangeEchoModeDatabaseKey(); - void OnBookmarkTriggered(QAction* action); - void OnCheckBoxesChanged(int state); + private slots: + void OnOK(); + void OnCancel(); + void OnButtonBrowse(); + void OnButtonQuit(); + void OnGenKeyFile(); + void OnButtonBack(); + void ChangeEchoModeDatabaseKey(); + void OnBookmarkTriggered(QAction* action); + void OnCheckBoxesChanged(int state); -private: - DlgMode Mode; - QPixmap BannerPixmap; - QString BookmarkFilename; - QString Filename; - QString Password; - QString KeyFile; - void setStatePasswordOnly(); - void setStateKeyFileOnly(); - void setStateBoth(); - virtual void paintEvent(QPaintEvent*); + private: + DlgMode Mode; + QPixmap BannerPixmap; + QString BookmarkFilename; + QString Filename; + QString Password; + QString KeyFile; + void setStatePasswordOnly(); + void setStateKeyFileOnly(); + void setStateBoth(); + virtual void paintEvent(QPaintEvent*); }; #endif diff --git a/src/dialogs/PasswordGenDlg.cpp b/src/dialogs/PasswordGenDlg.cpp index c71ecfa..44a1393 100644 --- a/src/dialogs/PasswordGenDlg.cpp +++ b/src/dialogs/PasswordGenDlg.cpp @@ -21,7 +21,6 @@ #include "dialogs/PasswordGenDlg.h" #include "dialogs/CollectEntropyDlg.h" -#include "crypto/yarrow.h" bool CGenPwDialog::EntropyCollected=false; diff --git a/src/dialogs/SearchDlg.h b/src/dialogs/SearchDlg.h index c4eae2c..a2bc57b 100644 --- a/src/dialogs/SearchDlg.h +++ b/src/dialogs/SearchDlg.h @@ -22,7 +22,7 @@ #include "ui_SearchDlg.h" -class SearchDialog : public QDialog, public Ui_Search_Dlg +class SearchDialog : public QDialog, private Ui_Search_Dlg { Q_OBJECT public: @@ -30,7 +30,7 @@ class SearchDialog : public QDialog, public Ui_Search_Dlg ~SearchDialog(); QList Result; - public slots: + private slots: virtual void OnClose(); virtual void OnSearch(); diff --git a/src/dialogs/SelectIconDlg.h b/src/dialogs/SelectIconDlg.h index 5882063..b67b1ab 100644 --- a/src/dialogs/SelectIconDlg.h +++ b/src/dialogs/SelectIconDlg.h @@ -23,31 +23,32 @@ #include "ui_SelectIconDlg.h" -class CSelectIconDlg:public QDialog, public Ui_SelectIconDlg{ - Q_OBJECT -public: - CSelectIconDlg(IDatabase* db,int ImageID,QWidget* parent = 0, bool modal = false, Qt::WFlags fl = 0); - -public slots: - void OnAddIcon(); - void OnPickIcon(); - void OnCancel(); - void OnDelete(); - void OnReplace(); - void OnSelectionChanged(QListWidgetItem*); - -private: - int Id; - IDatabase* db; - void updateView(); - QMenu* CtxMenu; - QAction* DeleteAction; - QAction* ReplaceAction; - QPushButton* Button_PickIcon; - -protected: - virtual void contextMenuEvent(QContextMenuEvent *event); - virtual void showEvent(QShowEvent* event); +class CSelectIconDlg:public QDialog, private Ui_SelectIconDlg{ + Q_OBJECT + + public: + CSelectIconDlg(IDatabase* db,int ImageID,QWidget* parent = 0, bool modal = false, Qt::WFlags fl = 0); + + private slots: + void OnAddIcon(); + void OnPickIcon(); + void OnCancel(); + void OnDelete(); + void OnReplace(); + void OnSelectionChanged(QListWidgetItem*); + + private: + int Id; + IDatabase* db; + void updateView(); + QMenu* CtxMenu; + QAction* DeleteAction; + QAction* ReplaceAction; + QPushButton* Button_PickIcon; + + protected: + virtual void contextMenuEvent(QContextMenuEvent *event); + virtual void showEvent(QShowEvent* event); }; diff --git a/src/dialogs/SettingsDlg.h b/src/dialogs/SettingsDlg.h index d0575c1..25a838f 100644 --- a/src/dialogs/SettingsDlg.h +++ b/src/dialogs/SettingsDlg.h @@ -24,7 +24,7 @@ #include "ui_SettingsDlg.h" #include "lib/AutoType.h" -class CSettingsDlg : public QDialog, public Ui_SettingsDialog +class CSettingsDlg : public QDialog, private Ui_SettingsDialog { Q_OBJECT public: diff --git a/src/dialogs/SimplePasswordDlg.h b/src/dialogs/SimplePasswordDlg.h index 4fcf77e..44dc44d 100644 --- a/src/dialogs/SimplePasswordDlg.h +++ b/src/dialogs/SimplePasswordDlg.h @@ -23,21 +23,20 @@ #include "ui_SimplePasswordDlg.h" -class SimplePasswordDialog : public QDialog, public Ui_SimplePasswordDialog +class SimplePasswordDialog : public QDialog, private Ui_SimplePasswordDialog { - Q_OBJECT - -public: - SimplePasswordDialog(QWidget* parent = 0, bool modal = FALSE, Qt::WFlags fl = 0 ); - ~SimplePasswordDialog(); - - public: QString password; - -public slots: - virtual void OnCancel(); - virtual void OnOK(); - virtual void OnHidePasswordToggled(bool state); - virtual void OnTextChanged(const QString&); + Q_OBJECT + + public: + SimplePasswordDialog(QWidget* parent = 0, bool modal = FALSE, Qt::WFlags fl = 0 ); + ~SimplePasswordDialog(); + QString password; + + private slots: + virtual void OnCancel(); + virtual void OnOK(); + virtual void OnHidePasswordToggled(bool state); + virtual void OnTextChanged(const QString&); }; #endif diff --git a/src/lib/EntryView.cpp b/src/lib/EntryView.cpp index be3af59..c404797 100644 --- a/src/lib/EntryView.cpp +++ b/src/lib/EntryView.cpp @@ -563,8 +563,9 @@ void KeepassEntryView::mouseMoveEvent(QMouseEvent *event){ mimeData->setData("text/plain;charset=UTF-8",DragItems.first()->text(0).toUtf8()); mimeData->setData("application/x-keepassx-entry",QByteArray((char*)&pDragItems,sizeof(void*))); drag->setMimeData(mimeData); + EventOccurredBlock = true; drag->exec(Qt::MoveAction); - + EventOccurredBlock = false; } void KeepassEntryView::removeDragItems(){ diff --git a/src/lib/EntryView.h b/src/lib/EntryView.h index 1dfccbf..e7f18d4 100644 --- a/src/lib/EntryView.h +++ b/src/lib/EntryView.h @@ -69,7 +69,7 @@ class KeepassEntryView:public QTreeWidget{ virtual void resizeEvent(QResizeEvent* event); virtual void mousePressEvent(QMouseEvent *event); virtual void mouseMoveEvent(QMouseEvent *event); - public slots: + private slots: void OnColumnResized(int index,int OldSize, int NewSize); void OnHeaderSectionClicked(int index); void OnGroupChanged(IGroupHandle* group); diff --git a/src/lib/GroupView.cpp b/src/lib/GroupView.cpp index c9256e5..7683fe5 100644 --- a/src/lib/GroupView.cpp +++ b/src/lib/GroupView.cpp @@ -467,7 +467,9 @@ void KeepassGroupView::mouseMoveEvent(QMouseEvent *event){ mimeData->setData("application/x-keepassx-group",QByteArray()); drag->setMimeData(mimeData); + EventOccurredBlock = true; drag->exec(Qt::MoveAction); + EventOccurredBlock = false; } void KeepassGroupView::OnItemExpanded(QTreeWidgetItem* item){ diff --git a/src/lib/GroupView.h b/src/lib/GroupView.h index b62149c..d863294 100644 --- a/src/lib/GroupView.h +++ b/src/lib/GroupView.h @@ -58,7 +58,7 @@ class KeepassGroupView:public QTreeWidget{ GroupViewDragType DragType; QList* EntryDragItems; - public slots: + private slots: void OnCurrentGroupChanged(QTreeWidgetItem*); void OnDeleteGroup(); void OnNewGroup(); diff --git a/src/lib/UrlLabel.h b/src/lib/UrlLabel.h index a34f748..a9a55ee 100644 --- a/src/lib/UrlLabel.h +++ b/src/lib/UrlLabel.h @@ -22,24 +22,25 @@ #define _LINKLABEL_H_ class LinkLabel : public QLabel{ -Q_OBJECT -public: -LinkLabel(QWidget *parent,const QString& text=QString::null, int x=0, int y=0,Qt::WFlags f=0); -~LinkLabel(); -void setPos(int x,int y); -QString url(); + Q_OBJECT + + public: + LinkLabel(QWidget *parent,const QString& text=QString::null, int x=0, int y=0,Qt::WFlags f=0); + ~LinkLabel(); + void setPos(int x,int y); + QString url(); -public slots: -virtual void setText(const QString&); + public slots: + virtual void setText(const QString&); -signals: - void clicked(); + signals: + void clicked(); -protected: -virtual void mouseReleaseEvent(QMouseEvent* event); + protected: + virtual void mouseReleaseEvent(QMouseEvent* event); -private: -QString URL; + private: + QString URL; }; diff --git a/src/lib/WaitAnimationWidget.h b/src/lib/WaitAnimationWidget.h index 5305319..94ab3b0 100644 --- a/src/lib/WaitAnimationWidget.h +++ b/src/lib/WaitAnimationWidget.h @@ -28,7 +28,7 @@ class WaitAnimationWidget:public QWidget{ void setRefreshRate(int fps); void start(); void stop(); - public slots: + private slots: void refreshAnimation(); private: virtual void paintEvent(QPaintEvent* event); diff --git a/src/main.cpp b/src/main.cpp index c7cc829..4be56c6 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -22,7 +22,6 @@ #include "plugins/interfaces/IFileDialog.h" #include "plugins/interfaces/IKdeInit.h" #include "plugins/interfaces/IGnomeInit.h" -#include "plugins/interfaces/IIconTheme.h" #include @@ -30,7 +29,6 @@ #include #include "mainwindow.h" #include "main.h" -#include "crypto/yarrow.h" #if defined(Q_WS_X11) && defined(GLOBAL_AUTOTYPE) #include "Application_X11.h" #endif @@ -46,6 +44,7 @@ bool TrActive; QString DetailViewTemplate; bool EventOccurred; bool EventOccurredBlock = false; +EventListener* eventListener; QPixmap* EntryIcons; IIconTheme* IconLoader=NULL; @@ -181,10 +180,14 @@ int main(int argc, char **argv) initYarrow(); //init random number generator SecString::generateSessionKey(); + eventListener = new EventListener(); + app->installEventFilter(eventListener); + QApplication::setQuitOnLastWindowClosed(false); KeepassMainWindow *mainWin = new KeepassMainWindow(args.file(), args.startMinimized(), args.startLocked()); int r=app->exec(); delete mainWin; + delete eventListener; fileDlgHistory.save(); delete app; @@ -312,4 +315,12 @@ QString findPlugin(const QString& filename){ } - +bool EventListener::eventFilter(QObject*, QEvent* event){ + if (!EventOccurred){ + int t = event->type(); + if ( t>=QEvent::MouseButtonPress&&t<=QEvent::KeyRelease || t>=QEvent::HoverEnter&&t<=QEvent::HoverMove ) + EventOccurred = true; + } + + return false; +} diff --git a/src/main.h b/src/main.h index 02b6cb9..41835b1 100644 --- a/src/main.h +++ b/src/main.h @@ -48,4 +48,11 @@ private: bool Help; }; +class EventListener : public QObject { + Q_OBJECT + + protected: + bool eventFilter(QObject*, QEvent* event); +}; + #endif diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 6dba2b9..b2981da 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -21,7 +21,6 @@ #include #include "mainwindow.h" #include "lib/AutoType.h" -#include "lib/FileDialogs.h" #include "import/Import_PwManager.h" #include "import/Import_KWalletXml.h" #include "import/Import_KeePassX_Xml.h" @@ -1009,15 +1008,6 @@ void KeepassMainWindow::showEvent(QShowEvent* event){ QMainWindow::showEvent(event); } -bool KeepassMainWindow::event(QEvent* event){ - if (!EventOccurred){ - int t = event->type(); - if ( t>=QEvent::MouseButtonPress&&t<=QEvent::KeyRelease || t>=QEvent::HoverEnter&&t<=QEvent::HoverMove ) - EventOccurred = true; - } - return QMainWindow::event(event); -} - void KeepassMainWindow::OnExtrasSettings(){ CSettingsDlg dlg(this); dlg.exec(); @@ -1256,8 +1246,12 @@ void KeepassMainWindow::OnInactivityTimer(){ } else{ inactivityCounter++; - if (inactivityCounter*(inactivityTimer->interval()) >= config->lockAfterSec()*1000) + if (inactivityCounter*(inactivityTimer->interval()) >= config->lockAfterSec()*1000){ + QWidget* popUpWidget = QApplication::activePopupWidget(); + if (popUpWidget!=NULL) + popUpWidget->hide(); OnUnLockWorkspace(); + } } } diff --git a/src/mainwindow.h b/src/mainwindow.h index d9d880f..70ab8ef 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -29,7 +29,7 @@ #include "ui_MainWindow.h" #include "ui_WorkspaceLockedWidget.h" -class KeepassMainWindow : public QMainWindow, public Ui_MainWindow{ +class KeepassMainWindow : public QMainWindow, private Ui_MainWindow{ Q_OBJECT public: KeepassMainWindow (const QString& ArgFile,bool ArgMin,bool ArgLock,QWidget *parent=0, Qt::WFlags flags=0); @@ -84,7 +84,6 @@ class KeepassMainWindow : public QMainWindow, public Ui_MainWindow{ void closeEvent(QCloseEvent* event); void hideEvent(QHideEvent* event); void showEvent(QShowEvent* event); - bool event(QEvent* event); void setLock(); void resetLock(); SelectionState GroupSelection, EntrySelection;