void HistoryDialog::contextMenu(QPoint point) { mContextIndex = ui->tableView->indexAt(point);; QMenu contextMenu(ui->tableView); QAction copyAction((mContextIndex.column() == 0) ? tr("Copy Path") : tr("Copy URL"), &contextMenu); connect(©Action, SIGNAL(triggered()), this, SLOT(copy())); contextMenu.addAction(©Action); QAction deleteAction(tr("Delete from imgur.com"), &contextMenu); QAction locationAction(tr("Open Location"), &contextMenu); QAction removeAction(tr("Remove history entry"), &contextMenu); if (mContextIndex.data().toString().isEmpty()) { copyAction.setEnabled(false); deleteAction.setEnabled(false); } if (mContextIndex.column() == 0) { connect(&locationAction, SIGNAL(triggered()), this, SLOT(location())); contextMenu.addAction(&locationAction); } else { connect(&deleteAction, SIGNAL(triggered()), this, SLOT(deleteImage())); contextMenu.addAction(&deleteAction); } connect(&removeAction, SIGNAL(triggered()), this, SLOT(removeHistoryEntry())); contextMenu.addAction(&removeAction); contextMenu.exec(QCursor::pos()); }
void HistoryManager::removeHistoryEntry(const QUrl &url, const QString &title) { for (int i = 0; i < m_history.count(); ++i) { if (url == m_history.at(i).url && (title.isEmpty() || title == m_history.at(i).title)) { removeHistoryEntry(m_history.at(i)); break; } } }