diff options
author | Hannah von Reth <hannah.vonreth@owncloud.com> | 2022-01-25 18:14:24 +0300 |
---|---|---|
committer | Hannah von Reth <vonreth@kde.org> | 2022-01-26 17:18:23 +0300 |
commit | cc3b63f9dea76f1b164ebb8f316745f5afa8213d (patch) | |
tree | db03f8d459a13dbf4671d113600f472718c3f01b /src/gui/issueswidget.cpp | |
parent | fae3a39cc235154e69c2fc6156d4de976a71ea2f (diff) |
Introduce new error category that is not handled by the ignore list
Fixes: #9382
Diffstat (limited to 'src/gui/issueswidget.cpp')
-rw-r--r-- | src/gui/issueswidget.cpp | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/src/gui/issueswidget.cpp b/src/gui/issueswidget.cpp index 41a7b006a..e53c7d794 100644 --- a/src/gui/issueswidget.cpp +++ b/src/gui/issueswidget.cpp @@ -302,14 +302,15 @@ std::function<void(void)> IssuesWidget::addStatusFilter(QMenu *menu) const auto initialFilter = _statusSortModel->filter(); { // Add all errors under 1 action: - const std::array<SyncFileItem::Status, 5> ErrorStatusItems = { + const std::vector<SyncFileItem::Status> ErrorStatusItems = { SyncFileItem::Status::FatalError, SyncFileItem::Status::NormalError, SyncFileItem::Status::SoftError, - SyncFileItem::Status::DetailError + SyncFileItem::Status::DetailError, }; - auto action = menu->addAction(SyncFileItem::statusEnumDisplayName(SyncFileItem::NormalError), [this, ErrorStatusItems](bool checked) { + + auto action = menu->addAction(SyncFileItem::statusEnumDisplayName(SyncFileItem::NormalError), this, [this, ErrorStatusItems](bool checked) { auto currentFilter = _statusSortModel->filter(); for (const auto &item : ErrorStatusItems) { currentFilter[item] = checked; @@ -320,23 +321,34 @@ std::function<void(void)> IssuesWidget::addStatusFilter(QMenu *menu) action->setChecked(initialFilter[ErrorStatusItems[0]]); statusFilterGroup->addAction(action); } + menu->addSeparator(); // Add the other non-error items: - const std::array<SyncFileItem::Status, 5> OtherStatusItems = { + const std::vector<SyncFileItem::Status> OtherStatusItems = { SyncFileItem::Status::Conflict, SyncFileItem::Status::FileIgnored, SyncFileItem::Status::Restoration, SyncFileItem::Status::BlacklistedError, - SyncFileItem::Status::Excluded + SyncFileItem::Status::Excluded, + SyncFileItem::Status::Message }; + // list of OtherStatusItems with the localised name + std::vector<std::pair<QString, SyncFileItem::Status>> otherStatusItems; + otherStatusItems.reserve(OtherStatusItems.size()); for (const auto &item : OtherStatusItems) { - auto action = menu->addAction(SyncFileItem::statusEnumDisplayName(item), [this, item](bool checked) { + otherStatusItems.emplace_back(SyncFileItem::statusEnumDisplayName(item), item); + } + std::sort(otherStatusItems.begin(), otherStatusItems.end(), [](const auto &a, const auto &b) { + return a.first < b.first; + }); + for (const auto &item : otherStatusItems) { + auto action = menu->addAction(item.first, this, [this, item](bool checked) { auto currentFilter = _statusSortModel->filter(); - currentFilter[item] = checked; + currentFilter[item.second] = checked; _statusSortModel->setFilter(currentFilter); }); action->setCheckable(true); - action->setChecked(initialFilter[item]); + action->setChecked(initialFilter[item.second]); statusFilterGroup->addAction(action); } |