Axivion: Limit fetch data when sorting

If just the sorting of the current dashboard changes
there is no need to refetch every bit again as this
also includes additional server-side work which is
not needed and decreases overall performance.

Fixes: QTCREATORBUG-31998
Change-Id: I3bc1841b66587b59cdf764157252e9c4b04b8605
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Reviewed-by: Mohammad Mehdi Salem Naraghi <mehdi.salem@qt.io>
This commit is contained in:
Christian Stenger
2024-11-14 12:51:13 +01:00
parent 1ca67ada59
commit 890fd56cc9

View File

@@ -202,6 +202,7 @@ private:
void updateTable(); void updateTable();
void addIssues(const Dto::IssueTableDto &dto, int startRow); void addIssues(const Dto::IssueTableDto &dto, int startRow);
void onSearchParameterChanged(); void onSearchParameterChanged();
void onSortParameterChanged();
void updateVersionItemsEnabledState(); void updateVersionItemsEnabledState();
void updateBasicProjectInfo(const std::optional<Dto::ProjectInfoDto> &info); void updateBasicProjectInfo(const std::optional<Dto::ProjectInfoDto> &info);
void updateAllFilters(const QVariant &namedFilter); void updateAllFilters(const QVariant &namedFilter);
@@ -362,7 +363,7 @@ IssuesWidget::IssuesWidget(QWidget *parent)
m_headerView = new IssueHeaderView(this); m_headerView = new IssueHeaderView(this);
m_headerView->setSectionsMovable(true); m_headerView->setSectionsMovable(true);
connect(m_headerView, &IssueHeaderView::sortTriggered, connect(m_headerView, &IssueHeaderView::sortTriggered,
this, &IssuesWidget::onSearchParameterChanged); this, &IssuesWidget::onSortParameterChanged);
connect(m_headerView, &IssueHeaderView::filterChanged, connect(m_headerView, &IssueHeaderView::filterChanged,
this, &IssuesWidget::onSearchParameterChanged); this, &IssuesWidget::onSearchParameterChanged);
m_issuesView->setHeader(m_headerView); m_issuesView->setHeader(m_headerView);
@@ -696,6 +697,14 @@ void IssuesWidget::onSearchParameterChanged()
fetchIssues(search); fetchIssues(search);
} }
void IssuesWidget::onSortParameterChanged()
{
m_issuesModel->clear();
m_issuesModel->setExpectedRowCount(m_totalRowCount);
IssueListSearch search = searchFromUi();
fetchIssues(search);
}
void IssuesWidget::updateVersionItemsEnabledState() void IssuesWidget::updateVersionItemsEnabledState()
{ {
const int versionCount = m_versionDates.size(); const int versionCount = m_versionDates.size();