diff --git a/src/attica/atticaprovider.cpp b/src/attica/atticaprovider.cpp --- a/src/attica/atticaprovider.cpp +++ b/src/attica/atticaprovider.cpp @@ -446,6 +446,8 @@ if (job->metadata().error() == Attica::Metadata::OcsError) { if (job->metadata().statusCode() == 200) { emit signalErrorCode(KNSCore::OcsError, i18n("Too many requests to server. Please try again in a few minutes."), job->metadata().statusCode()); + } else if (job->metadata().statusCode() == 405) { + emit signalErrorCode(KNSCore::OcsError, i18n("The Open Collaboration Services instance %1 does not support the attempted function.").arg(name()), job->metadata().statusCode()); } else { emit signalErrorCode(KNSCore::OcsError, i18n("Unknown Open Collaboration Service API error. (%1)", job->metadata().statusCode()), job->metadata().statusCode()); } diff --git a/src/ui/itemsviewdelegate.cpp b/src/ui/itemsviewdelegate.cpp --- a/src/ui/itemsviewdelegate.cpp +++ b/src/ui/itemsviewdelegate.cpp @@ -280,8 +280,11 @@ if (rating) { if (entry.rating() > 0) { rating->setToolTip(i18n("Rating: %1%", entry.rating())); + // Don't attempt to send a rating to the server if we're just updating the UI + rating->blockSignals(true); // assume all entries come with rating 0..100 but most are in the range 20 - 80, so 20 is 0 stars, 80 is 5 stars rating->setRating((entry.rating() - 20) * 10 / 60); + rating->blockSignals(true); // put the rating label below the install button rating->move(right - installButton->width() - margin, option.rect.height() / 2 + installButton->height() / 2); rating->resize(m_buttonSize); diff --git a/src/ui/progressindicator.cpp b/src/ui/progressindicator.cpp --- a/src/ui/progressindicator.cpp +++ b/src/ui/progressindicator.cpp @@ -24,6 +24,7 @@ #include #include #include +#include #include "kjob.h" @@ -59,8 +60,11 @@ busyWidget->setSequence(m_busyPixmap); } -void KNS3::ProgressIndicator::error(const KNSCore::ErrorCode& /*errorCode*/, const QString& message, const QVariant& /*metadata*/) +void KNS3::ProgressIndicator::error(const KNSCore::ErrorCode& errorCode, const QString& message, const QVariant& metadata) { + if(errorCode == KNSCore::OcsError && metadata.value() == 405) { + return; + } m_statusLabel->setText(message); busyWidget->setVisible(true); busyWidget->setSequence(m_errorPixmap);