| 94 | } |
| 95 | |
| 96 | void DiffWidgetManager::diffDocs(KTextEditor::Document *l, KTextEditor::Document *r, class KTextEditor::MainWindow *mw) |
| 97 | { |
| 98 | DiffParams p; |
| 99 | p.arguments = DiffWidget::diffDocsGitArgs(l, r); |
| 100 | p.flags.setFlag(DiffParams::Flag::ShowEditLeftSide, true); |
| 101 | p.flags.setFlag(DiffParams::Flag::ShowEditRightSide, true); |
| 102 | p.srcFile = l->url().toLocalFile(); |
| 103 | p.destFile = r->url().toLocalFile(); |
| 104 | DiffWidget *existing = existingDiffWidgetForParams(mw, p); |
| 105 | if (!existing) { |
| 106 | existing = new DiffWidget(p); |
| 107 | mw->connect(existing, &DiffWidget::openFileRequested, mw, [mw](QString path, int line, int columnNumber) { |
| 108 | auto view = mw->openUrl(QUrl(path)); |
| 109 | view->setCursorPosition(KTextEditor::Cursor(line - 1, columnNumber)); |
| 110 | }); |
| 111 | existing->diffDocs(l, r); |
| 112 | existing->setWindowTitle(i18n("Diff %1 .. %2", l->documentName(), r->documentName())); |
| 113 | existing->setWindowIcon(QIcon::fromTheme(QStringLiteral("text-x-patch"))); |
| 114 | mw->addWidget(existing); |
| 115 | } else { |
| 116 | existing->clearData(); |
| 117 | existing->m_params = p; |
| 118 | existing->diffDocs(l, r); |
| 119 | mw->activateWidget(existing); |
| 120 | } |
| 121 | } |
| 122 | |
| 123 | class Toolbar : public QToolBar |
| 124 | { |
nothing calls this directly
no test coverage detected