Axivion: Add state filter handling

Contrary to the web dashboard selecting a filter means explicitly
enabling this instead of disabling.
May change later with other UI improvements.

Change-Id: I83b32464a6d9bdab03dce78587962960900af08b
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
This commit is contained in:
Christian Stenger
2024-01-31 11:41:01 +01:00
parent 1ea5f6fa92
commit a5e6efd4f7
2 changed files with 21 additions and 0 deletions

View File

@@ -276,11 +276,23 @@ IssuesWidget::IssuesWidget(QWidget *parent)
m_addedFilter = new QPushButton(this);
m_addedFilter->setIcon(trendIcon(1, 0));
m_addedFilter->setText("0");
m_addedFilter->setCheckable(true);
m_filtersLayout->addWidget(m_addedFilter);
m_removedFilter = new QPushButton(this);
m_removedFilter->setIcon(trendIcon(0, 1));
m_removedFilter->setText("0");
m_removedFilter->setCheckable(true);
m_filtersLayout->addWidget(m_removedFilter);
connect(m_addedFilter, &QPushButton::clicked, this, [this](bool checked) {
if (checked && m_removedFilter->isChecked())
m_removedFilter->setChecked(false);
onSearchParameterChanged();
});
connect(m_removedFilter, &QPushButton::clicked, this, [this](bool checked) {
if (checked && m_addedFilter->isChecked())
m_addedFilter->setChecked(false);
onSearchParameterChanged();
});
m_filtersLayout->addSpacing(1);
m_ownerFilter = new QComboBox(this);
m_ownerFilter->setToolTip(Tr::tr("Owner"));
@@ -525,6 +537,13 @@ IssueListSearch IssuesWidget::searchFromUi() const
search.filter_path = m_pathGlobFilter->text();
search.versionStart = m_versionStart->currentData().toString();
search.versionEnd = m_versionEnd->currentData().toString();
// different approach: checked means disabling in webview, checked here means explicitly request
// the checked one, having both checked is impossible (having none checked means fetch both)
// reason for different approach: currently poor reflected inside the ui (TODO)
if (m_addedFilter->isChecked())
search.state = "added";
else if (m_removedFilter->isChecked())
search.state = "removed";
return search;
}

View File

@@ -122,6 +122,8 @@ QString IssueListSearch::toQuery() const
result.append(QString("&filter_path=%1").arg(
QString::fromUtf8(QUrl::toPercentEncoding(filter_path))));
}
if (!state.isEmpty())
result.append(QString("&state=%1").arg(state));
if (computeTotalRowCount)
result.append("&computeTotalRowCount=true");
return result;