| 427 | } |
| 428 | |
| 429 | void VcsPluginHelper::annotationContextMenuAboutToShow( KTextEditor::View* view, QMenu* menu, int line ) |
| 430 | { |
| 431 | Q_D(VcsPluginHelper); |
| 432 | |
| 433 | view->annotationItemDelegate()->hideTooltip(view); |
| 434 | |
| 435 | const auto* const model = qobject_cast<VcsAnnotationModel*>(view->document()->annotationModel()); |
| 436 | Q_ASSERT(model); |
| 437 | |
| 438 | VcsRevision rev = model->revisionForLine(line); |
| 439 | // check if the user clicked on a row without revision information |
| 440 | if (rev.revisionType() == VcsRevision::Invalid) { |
| 441 | // in this case, do not action depending on revision information |
| 442 | return; |
| 443 | } |
| 444 | |
| 445 | d->diffForRevAction->setData(QVariant::fromValue(rev)); |
| 446 | d->diffForRevGlobalAction->setData(QVariant::fromValue(rev)); |
| 447 | menu->addSeparator(); |
| 448 | menu->addAction(d->diffForRevAction); |
| 449 | menu->addAction(d->diffForRevGlobalAction); |
| 450 | |
| 451 | QAction* copyAction = menu->addAction(QIcon::fromTheme(QStringLiteral("edit-copy")), i18nc("@action:inmenu", "Copy Revision Id")); |
| 452 | connect(copyAction, &QAction::triggered, this, [rev]() { |
| 453 | QApplication::clipboard()->setText(rev.revisionValue().toString()); |
| 454 | }); |
| 455 | |
| 456 | QAction* historyAction = menu->addAction(QIcon::fromTheme(QStringLiteral("view-history")), i18nc("@action:inmenu revision history", "History...")); |
| 457 | connect(historyAction, &QAction::triggered, this, [this, rev]() { |
| 458 | history(rev); |
| 459 | }); |
| 460 | } |
| 461 | |
| 462 | void VcsPluginHelper::handleAnnotationBorderVisibilityChanged(KTextEditor::View* view, bool visible) |
| 463 | { |
nothing calls this directly
no test coverage detected