| 46 | } |
| 47 | |
| 48 | QWidget* CommitToolViewFactory::create(QWidget* parent) |
| 49 | { |
| 50 | auto statusModel = m_statusModel.lock(); |
| 51 | if (!statusModel) { |
| 52 | statusModel = std::make_shared<RepoStatusModel>(); |
| 53 | m_statusModel = statusModel; |
| 54 | } |
| 55 | |
| 56 | auto* const tool = new CommitToolView(std::move(statusModel), parent); |
| 57 | tool->connect(tool, &CommitToolView::updateDiff, m_diffViewsCtrl, [=](const QUrl& url, const RepoStatusModel::Areas area){ |
| 58 | m_diffViewsCtrl->updateDiff(url, area, DiffViewsCtrl::NoActivate); |
| 59 | }); |
| 60 | tool->connect(tool, &CommitToolView::updateUrlDiffs, m_diffViewsCtrl, &DiffViewsCtrl::updateUrlDiffs); |
| 61 | tool->connect(tool, &CommitToolView::updateProjectDiffs, m_diffViewsCtrl, &DiffViewsCtrl::updateProjectDiffs); |
| 62 | tool->connect(tool, &CommitToolView::showDiff, m_diffViewsCtrl, [=](const QUrl& url, const RepoStatusModel::Areas area){ |
| 63 | m_diffViewsCtrl->updateDiff(url, area, DiffViewsCtrl::Activate); |
| 64 | }); |
| 65 | tool->connect(tool, &CommitToolView::showSource, m_diffViewsCtrl, [=](const QUrl& url) { |
| 66 | if (url.fileName().isEmpty()) return; |
| 67 | auto* docCtrl = ICore::self()->documentController(); |
| 68 | if (auto* srcDoc = docCtrl->openDocument(url)) { |
| 69 | docCtrl->activateDocument(srcDoc); |
| 70 | } |
| 71 | }); |
| 72 | return tool; |
| 73 | } |
| 74 | |
| 75 | CommitToolViewFactory::~CommitToolViewFactory() |
| 76 | { |
no test coverage detected