From e55b59d9cad842cba52209e32e45d519f4d57d98 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Sat, 8 Feb 2025 17:39:10 +0800 Subject: [PATCH] Use switch statement PR #22247. --- .../transferlistfilters/trackersfilterwidget.cpp | 121 ++++++++++++--------- 1 file changed, 67 insertions(+), 54 deletions(-) diff --git a/src/gui/transferlistfilters/trackersfilterwidget.cpp b/src/gui/transferlistfilters/trackersfilterwidget.cpp index 889c526b9..9ab0a54a1 100644 --- a/src/gui/transferlistfilters/trackersfilterwidget.cpp +++ b/src/gui/transferlistfilters/trackersfilterwidget.cpp @@ -392,68 +392,81 @@ void TrackersFilterWidget::handleTrackerStatusesUpdated(const BitTorrent::Torren for (const BitTorrent::TrackerEntryStatus &trackerEntryStatus : updatedTrackers) { - if (trackerEntryStatus.state == BitTorrent::TrackerEndpointState::Working) + switch (trackerEntryStatus.state) { - // remove tracker from "error" and "tracker error" categories - if (errorHashesIt != m_errors.end()) - errorHashesIt->remove(trackerEntryStatus.url); - if (trackerErrorHashesIt != m_trackerErrors.end()) - trackerErrorHashesIt->remove(trackerEntryStatus.url); - - const bool hasNoWarningMessages = std::all_of(trackerEntryStatus.endpoints.cbegin(), trackerEntryStatus.endpoints.cend() - , [](const BitTorrent::TrackerEndpointStatus &endpointEntry) + case BitTorrent::TrackerEndpointState::Working: { - return endpointEntry.message.isEmpty() || (endpointEntry.state != BitTorrent::TrackerEndpointState::Working); - }); - if (hasNoWarningMessages) + // remove tracker from "error" and "tracker error" categories + if (errorHashesIt != m_errors.end()) + errorHashesIt->remove(trackerEntryStatus.url); + if (trackerErrorHashesIt != m_trackerErrors.end()) + trackerErrorHashesIt->remove(trackerEntryStatus.url); + + const bool hasNoWarningMessages = std::all_of(trackerEntryStatus.endpoints.cbegin(), trackerEntryStatus.endpoints.cend() + , [](const BitTorrent::TrackerEndpointStatus &endpointEntry) + { + return endpointEntry.message.isEmpty() || (endpointEntry.state != BitTorrent::TrackerEndpointState::Working); + }); + if (hasNoWarningMessages) + { + if (warningHashesIt != m_warnings.end()) + { + warningHashesIt->remove(trackerEntryStatus.url); + } + } + else + { + if (warningHashesIt == m_warnings.end()) + warningHashesIt = m_warnings.insert(id, {}); + warningHashesIt->insert(trackerEntryStatus.url); + } + } + break; + + case BitTorrent::TrackerEndpointState::NotWorking: + case BitTorrent::TrackerEndpointState::Unreachable: { + // remove tracker from "tracker error" and "warning" categories if (warningHashesIt != m_warnings.end()) - { warningHashesIt->remove(trackerEntryStatus.url); - } + if (trackerErrorHashesIt != m_trackerErrors.end()) + trackerErrorHashesIt->remove(trackerEntryStatus.url); + + if (errorHashesIt == m_errors.end()) + errorHashesIt = m_errors.insert(id, {}); + errorHashesIt->insert(trackerEntryStatus.url); + } + break; + + case BitTorrent::TrackerEndpointState::TrackerError: + { + // remove tracker from "error" and "warning" categories + if (warningHashesIt != m_warnings.end()) + warningHashesIt->remove(trackerEntryStatus.url); + if (errorHashesIt != m_errors.end()) + errorHashesIt->remove(trackerEntryStatus.url); + + if (trackerErrorHashesIt == m_trackerErrors.end()) + trackerErrorHashesIt = m_trackerErrors.insert(id, {}); + trackerErrorHashesIt->insert(trackerEntryStatus.url); } - else + break; + + case BitTorrent::TrackerEndpointState::NotContacted: { - if (warningHashesIt == m_warnings.end()) - warningHashesIt = m_warnings.insert(id, {}); - warningHashesIt->insert(trackerEntryStatus.url); + // remove tracker from "error", "tracker error" and "warning" categories + if (warningHashesIt != m_warnings.end()) + warningHashesIt->remove(trackerEntryStatus.url); + if (errorHashesIt != m_errors.end()) + errorHashesIt->remove(trackerEntryStatus.url); + if (trackerErrorHashesIt != m_trackerErrors.end()) + trackerErrorHashesIt->remove(trackerEntryStatus.url); } - } - else if ((trackerEntryStatus.state == BitTorrent::TrackerEndpointState::NotWorking) - || (trackerEntryStatus.state == BitTorrent::TrackerEndpointState::Unreachable)) - { - // remove tracker from "tracker error" and "warning" categories - if (warningHashesIt != m_warnings.end()) - warningHashesIt->remove(trackerEntryStatus.url); - if (trackerErrorHashesIt != m_trackerErrors.end()) - trackerErrorHashesIt->remove(trackerEntryStatus.url); - - if (errorHashesIt == m_errors.end()) - errorHashesIt = m_errors.insert(id, {}); - errorHashesIt->insert(trackerEntryStatus.url); - } - else if (trackerEntryStatus.state == BitTorrent::TrackerEndpointState::TrackerError) - { - // remove tracker from "error" and "warning" categories - if (warningHashesIt != m_warnings.end()) - warningHashesIt->remove(trackerEntryStatus.url); - if (errorHashesIt != m_errors.end()) - errorHashesIt->remove(trackerEntryStatus.url); - - if (trackerErrorHashesIt == m_trackerErrors.end()) - trackerErrorHashesIt = m_trackerErrors.insert(id, {}); - trackerErrorHashesIt->insert(trackerEntryStatus.url); - } - else if (trackerEntryStatus.state == BitTorrent::TrackerEndpointState::NotContacted) - { - // remove tracker from "error", "tracker error" and "warning" categories - if (warningHashesIt != m_warnings.end()) - warningHashesIt->remove(trackerEntryStatus.url); - if (errorHashesIt != m_errors.end()) - errorHashesIt->remove(trackerEntryStatus.url); - if (trackerErrorHashesIt != m_trackerErrors.end()) - trackerErrorHashesIt->remove(trackerEntryStatus.url); - } + break; + + case BitTorrent::TrackerEndpointState::Updating: + break; + }; } if ((errorHashesIt != m_errors.end()) && errorHashesIt->isEmpty()) -- 2.11.4.GIT