forked from qt-creator/qt-creator
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:
@@ -276,11 +276,23 @@ IssuesWidget::IssuesWidget(QWidget *parent)
|
|||||||
m_addedFilter = new QPushButton(this);
|
m_addedFilter = new QPushButton(this);
|
||||||
m_addedFilter->setIcon(trendIcon(1, 0));
|
m_addedFilter->setIcon(trendIcon(1, 0));
|
||||||
m_addedFilter->setText("0");
|
m_addedFilter->setText("0");
|
||||||
|
m_addedFilter->setCheckable(true);
|
||||||
m_filtersLayout->addWidget(m_addedFilter);
|
m_filtersLayout->addWidget(m_addedFilter);
|
||||||
m_removedFilter = new QPushButton(this);
|
m_removedFilter = new QPushButton(this);
|
||||||
m_removedFilter->setIcon(trendIcon(0, 1));
|
m_removedFilter->setIcon(trendIcon(0, 1));
|
||||||
m_removedFilter->setText("0");
|
m_removedFilter->setText("0");
|
||||||
|
m_removedFilter->setCheckable(true);
|
||||||
m_filtersLayout->addWidget(m_removedFilter);
|
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_filtersLayout->addSpacing(1);
|
||||||
m_ownerFilter = new QComboBox(this);
|
m_ownerFilter = new QComboBox(this);
|
||||||
m_ownerFilter->setToolTip(Tr::tr("Owner"));
|
m_ownerFilter->setToolTip(Tr::tr("Owner"));
|
||||||
@@ -525,6 +537,13 @@ IssueListSearch IssuesWidget::searchFromUi() const
|
|||||||
search.filter_path = m_pathGlobFilter->text();
|
search.filter_path = m_pathGlobFilter->text();
|
||||||
search.versionStart = m_versionStart->currentData().toString();
|
search.versionStart = m_versionStart->currentData().toString();
|
||||||
search.versionEnd = m_versionEnd->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;
|
return search;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -122,6 +122,8 @@ QString IssueListSearch::toQuery() const
|
|||||||
result.append(QString("&filter_path=%1").arg(
|
result.append(QString("&filter_path=%1").arg(
|
||||||
QString::fromUtf8(QUrl::toPercentEncoding(filter_path))));
|
QString::fromUtf8(QUrl::toPercentEncoding(filter_path))));
|
||||||
}
|
}
|
||||||
|
if (!state.isEmpty())
|
||||||
|
result.append(QString("&state=%1").arg(state));
|
||||||
if (computeTotalRowCount)
|
if (computeTotalRowCount)
|
||||||
result.append("&computeTotalRowCount=true");
|
result.append("&computeTotalRowCount=true");
|
||||||
return result;
|
return result;
|
||||||
|
Reference in New Issue
Block a user