Use switch statement

PR #22247.
This commit is contained in:
Chocobo1 2025-02-08 17:39:10 +08:00 committed by GitHub
parent f8469d02f7
commit e55b59d9ca
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -392,68 +392,81 @@ void TrackersFilterWidget::handleTrackerStatusesUpdated(const BitTorrent::Torren
for (const BitTorrent::TrackerEntryStatus &trackerEntryStatus : updatedTrackers) for (const BitTorrent::TrackerEntryStatus &trackerEntryStatus : updatedTrackers)
{ {
if (trackerEntryStatus.state == BitTorrent::TrackerEndpointState::Working) switch (trackerEntryStatus.state)
{ {
// remove tracker from "error" and "tracker error" categories case BitTorrent::TrackerEndpointState::Working:
if (errorHashesIt != m_errors.end()) {
errorHashesIt->remove(trackerEntryStatus.url); // remove tracker from "error" and "tracker error" categories
if (trackerErrorHashesIt != m_trackerErrors.end()) if (errorHashesIt != m_errors.end())
trackerErrorHashesIt->remove(trackerEntryStatus.url); 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 bool hasNoWarningMessages = std::all_of(trackerEntryStatus.endpoints.cbegin(), trackerEntryStatus.endpoints.cend()
, [](const BitTorrent::TrackerEndpointStatus &endpointEntry) , [](const BitTorrent::TrackerEndpointStatus &endpointEntry)
{
return endpointEntry.message.isEmpty() || (endpointEntry.state != BitTorrent::TrackerEndpointState::Working);
});
if (hasNoWarningMessages)
{
if (warningHashesIt != m_warnings.end())
{ {
warningHashesIt->remove(trackerEntryStatus.url); 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);
} }
} }
else break;
case BitTorrent::TrackerEndpointState::NotWorking:
case BitTorrent::TrackerEndpointState::Unreachable:
{ {
if (warningHashesIt == m_warnings.end()) // remove tracker from "tracker error" and "warning" categories
warningHashesIt = m_warnings.insert(id, {}); if (warningHashesIt != m_warnings.end())
warningHashesIt->insert(trackerEntryStatus.url); 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;
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()) case BitTorrent::TrackerEndpointState::TrackerError:
errorHashesIt = m_errors.insert(id, {}); {
errorHashesIt->insert(trackerEntryStatus.url); // remove tracker from "error" and "warning" categories
} if (warningHashesIt != m_warnings.end())
else if (trackerEntryStatus.state == BitTorrent::TrackerEndpointState::TrackerError) warningHashesIt->remove(trackerEntryStatus.url);
{ if (errorHashesIt != m_errors.end())
// remove tracker from "error" and "warning" categories errorHashesIt->remove(trackerEntryStatus.url);
if (warningHashesIt != m_warnings.end())
warningHashesIt->remove(trackerEntryStatus.url);
if (errorHashesIt != m_errors.end())
errorHashesIt->remove(trackerEntryStatus.url);
if (trackerErrorHashesIt == m_trackerErrors.end()) if (trackerErrorHashesIt == m_trackerErrors.end())
trackerErrorHashesIt = m_trackerErrors.insert(id, {}); trackerErrorHashesIt = m_trackerErrors.insert(id, {});
trackerErrorHashesIt->insert(trackerEntryStatus.url); trackerErrorHashesIt->insert(trackerEntryStatus.url);
} }
else if (trackerEntryStatus.state == BitTorrent::TrackerEndpointState::NotContacted) break;
{
// remove tracker from "error", "tracker error" and "warning" categories case BitTorrent::TrackerEndpointState::NotContacted:
if (warningHashesIt != m_warnings.end()) {
warningHashesIt->remove(trackerEntryStatus.url); // remove tracker from "error", "tracker error" and "warning" categories
if (errorHashesIt != m_errors.end()) if (warningHashesIt != m_warnings.end())
errorHashesIt->remove(trackerEntryStatus.url); warningHashesIt->remove(trackerEntryStatus.url);
if (trackerErrorHashesIt != m_trackerErrors.end()) if (errorHashesIt != m_errors.end())
trackerErrorHashesIt->remove(trackerEntryStatus.url); 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()) if ((errorHashesIt != m_errors.end()) && errorHashesIt->isEmpty())