diff --git a/src/lib/EntryView.cpp b/src/lib/EntryView.cpp index d71813d..2dd91e0 100644 --- a/src/lib/EntryView.cpp +++ b/src/lib/EntryView.cpp @@ -32,8 +32,39 @@ KeepassEntryView::KeepassEntryView(QWidget* parent):QTreeWidget(parent){ CurrentGroup=0; updateColumns(); header()->setResizeMode(QHeaderView::Stretch); +ContextMenu=new QMenu(this); } + +void KeepassEntryView::contextMenuEvent(QContextMenuEvent* e){ +if(itemAt(e->pos())){ + EntryViewItem* item=(EntryViewItem*)itemAt(e->pos()); + if(selectedItems().size()==0){ + setItemSelected(item,true);} + else{ + bool AlreadySelected=false; + for(int i=0;iaccept(); +ContextMenu->popup(e->globalPos()); +} + + + void KeepassEntryView::updateItems(){ clear(); Items.clear(); diff --git a/src/lib/EntryView.h b/src/lib/EntryView.h index a5bc118..4d7e6db 100644 --- a/src/lib/EntryView.h +++ b/src/lib/EntryView.h @@ -20,7 +20,9 @@ #ifndef _ENTRY_VIEW_H_ #define _ENTRY_VIEW_H_ +#include #include +#include #include "../PwManager.h" class EntryViewItem; @@ -35,8 +37,11 @@ public: void showSearchResults(QList& results); PwDatabase* db; vectorItems; + QMenu *ContextMenu; private: int CurrentGroup; +protected: + virtual void contextMenuEvent(QContextMenuEvent *event); }; diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index f2ed47e..60e3d1a 100755 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -169,6 +169,16 @@ void KeepassMainWindow::setupMenus(){ GroupView->ContextMenu->addSeparator(); GroupView->ContextMenu->addAction(EditGroupSearchAction); + EntryView->ContextMenu->addAction(EditPasswordToClipboardAction); + EntryView->ContextMenu->addAction(EditUsernameToClipboardAction); + EntryView->ContextMenu->addAction(EditOpenUrlAction); + EntryView->ContextMenu->addAction(EditSaveAttachmentAction); + EntryView->ContextMenu->addSeparator(); + EntryView->ContextMenu->addAction(EditNewEntryAction); + EntryView->ContextMenu->addAction(EditEditEntryAction); + EntryView->ContextMenu->addAction(EditCloneEntryAction); + EntryView->ContextMenu->addAction(EditDeleteEntryAction); + ViewHidePasswordsAction->setChecked(config.ListView_HidePasswords); ViewHideUsernamesAction->setChecked(config.ListView_HideUsernames); ViewColumnsTitleAction->setChecked(config.Columns[0]);