diff options
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/axivion/axivionoutputpane.cpp | 31 | ||||
-rw-r--r-- | src/plugins/axivion/axivionplugin.cpp | 6 | ||||
-rw-r--r-- | src/plugins/axivion/axivionplugin.h | 1 |
3 files changed, 27 insertions, 11 deletions
diff --git a/src/plugins/axivion/axivionoutputpane.cpp b/src/plugins/axivion/axivionoutputpane.cpp index df8d87accdc..42046f78b14 100644 --- a/src/plugins/axivion/axivionoutputpane.cpp +++ b/src/plugins/axivion/axivionoutputpane.cpp @@ -189,28 +189,34 @@ void DashboardWidget::updateUi() class IssueTreeItem final : public StaticTreeItem { public: - IssueTreeItem(const QStringList &data, const QStringList &toolTips) + IssueTreeItem(const QString &id, const QStringList &data, const QStringList &toolTips) : StaticTreeItem(data, toolTips) + , m_id(id) {} void setLinks(const Links &links) { m_links = links; } bool setData(int column, const QVariant &value, int role) final { - if (role == BaseTreeView::ItemActivatedRole && !m_links.isEmpty()) { - // TODO for now only simple - just the first.. - Link link = m_links.first(); - Project *project = ProjectManager::startupProject(); - FilePath baseDir = project ? project->projectDirectory() : FilePath{}; - link.targetFilePath = baseDir.resolvePath(link.targetFilePath); - if (link.targetFilePath.exists()) - EditorManager::openEditorAt(link); + if (role == BaseTreeView::ItemActivatedRole) { + if (!m_links.isEmpty()) { + // TODO for now only simple - just the first.. + Link link = m_links.first(); + Project *project = ProjectManager::startupProject(); + FilePath baseDir = project ? project->projectDirectory() : FilePath{}; + link.targetFilePath = baseDir.resolvePath(link.targetFilePath); + if (link.targetFilePath.exists()) + EditorManager::openEditorAt(link); + } + if (!m_id.isEmpty()) + fetchIssueInfo(m_id); return true; } return StaticTreeItem::setData(column, value, role); } private: + const QString m_id; Links m_links; }; @@ -425,17 +431,20 @@ void IssuesWidget::addIssues(const Dto::IssueTableDto &dto) const std::vector<Dto::ColumnInfoDto> &tableColumns = m_currentTableInfo->columns; const std::vector<std::map<QString, Dto::Any>> &rows = dto.rows; for (const auto &row : rows) { + QString id; QStringList data; for (const auto &column : tableColumns) { const auto it = row.find(column.key); if (it != row.end()) { QString value = anyToSimpleString(it->second); - if (column.key == "id") + if (column.key == "id") { value.prepend(m_currentPrefix); + id = value; + } data << value; } } - IssueTreeItem *it = new IssueTreeItem(data, data); + IssueTreeItem *it = new IssueTreeItem(id, data, data); it->setLinks(linksForIssue(row)); m_issuesModel->rootItem()->appendChild(it); } diff --git a/src/plugins/axivion/axivionplugin.cpp b/src/plugins/axivion/axivionplugin.cpp index 1cd8c9fc140..6d6d5c98808 100644 --- a/src/plugins/axivion/axivionplugin.cpp +++ b/src/plugins/axivion/axivionplugin.cpp @@ -887,6 +887,12 @@ class AxivionPlugin final : public ExtensionSystem::IPlugin } }; +void fetchIssueInfo(const QString &id) +{ + QTC_ASSERT(dd, return); + dd->fetchIssueInfo(id); +} + } // Axivion::Internal #include "axivionplugin.moc" diff --git a/src/plugins/axivion/axivionplugin.h b/src/plugins/axivion/axivionplugin.h index 1d5245a5034..1d2ebe12129 100644 --- a/src/plugins/axivion/axivionplugin.h +++ b/src/plugins/axivion/axivionplugin.h @@ -72,6 +72,7 @@ bool handleCertificateIssue(); QIcon iconForIssue(const QString &prefix); QString anyToSimpleString(const Dto::Any &any); +void fetchIssueInfo(const QString &id); } // Axivion::Internal |