mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-07-06 13:11:25 -07:00
parent
f8469d02f7
commit
e55b59d9ca
1 changed files with 66 additions and 53 deletions
|
@ -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())
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue