aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/axivion/axivionoutputpane.cpp31
-rw-r--r--src/plugins/axivion/axivionplugin.cpp6
-rw-r--r--src/plugins/axivion/axivionplugin.h1
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