From 15e158e252a8cfa8687f5b2983749f79683aee58 Mon Sep 17 00:00:00 2001 From: Anne Jan Brouwer Date: Thu, 11 Jun 2015 19:46:01 +0200 Subject: Right clicking in empty space now works correctly --- mainwindow.cpp | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'mainwindow.cpp') 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() } } } - -- cgit v1.2.3