diff options
author | Anne Jan Brouwer <annejan@noprotocol.com> | 2015-06-11 19:46:01 +0200 |
---|---|---|
committer | Anne Jan Brouwer <annejan@noprotocol.com> | 2015-06-11 19:46:01 +0200 |
commit | 435964c7a94419c7918edfb80415156ad82a0a92 (patch) | |
tree | 20dff61bc74fcac124709d289fcfff32ac1d755c | |
parent | b36b79153b73606261018bfbe1b7395c2ecf54fb (diff) |
Right clicking in empty space now works correctly
-rw-r--r-- | mainwindow.cpp | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/mainwindow.cpp b/mainwindow.cpp index 9785be45..efaa2d11 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -1261,12 +1261,24 @@ void MainWindow::closeEvent(QCloseEvent *event) */ void MainWindow::showContextMenu(const QPoint& pos) { + QModelIndex index = ui->treeView->indexAt(pos); + bool selected = true; + if (!index.isValid()) { + ui->treeView->clearSelection(); + ui->deleteButton->setEnabled(false); + ui->editButton->setEnabled(false); + currentDir = ""; + selected = false; + } + + ui->treeView->setCurrentIndex(index); + QPoint globalPos = ui->treeView->viewport()->mapToGlobal(pos); QFileInfo fileOrFolder = model.fileInfo(proxyModel.mapToSource(ui->treeView->currentIndex())); QMenu contextMenu; - if (fileOrFolder.isDir()) { + if (!selected || fileOrFolder.isDir()) { QAction* addFolder = contextMenu.addAction(tr("Add folder")); QAction* addPassword = contextMenu.addAction(tr("Add password")); QAction* users = contextMenu.addAction(tr("Users")); @@ -1277,8 +1289,10 @@ void MainWindow::showContextMenu(const QPoint& pos) QAction* edit = contextMenu.addAction(tr("Edit")); connect(edit, SIGNAL(triggered()), this, SLOT(editPassword())); } - QAction* deleteItem = contextMenu.addAction(tr("Delete")); - connect(deleteItem, SIGNAL(triggered()), this, SLOT(on_deleteButton_clicked())); + if (selected) { + QAction* deleteItem = contextMenu.addAction(tr("Delete")); + connect(deleteItem, SIGNAL(triggered()), this, SLOT(on_deleteButton_clicked())); + } contextMenu.exec(globalPos); } @@ -1324,4 +1338,3 @@ void MainWindow::editPassword() } } } - |