mirror of
https://github.com/Nheko-Reborn/nheko.git
synced 2024-11-26 04:58:49 +03:00
Notify the user on upload failures
This commit is contained in:
parent
cd9d1a2ec6
commit
a8e17b9c91
3 changed files with 12 additions and 5 deletions
|
@ -111,6 +111,7 @@ signals:
|
|||
const QString &homeserver,
|
||||
const QString &token);
|
||||
void versionSuccess();
|
||||
void uploadFailed(int statusCode, const QString &msg);
|
||||
void imageUploaded(const QString &roomid,
|
||||
const QString &filename,
|
||||
const QString &url,
|
||||
|
|
|
@ -256,6 +256,10 @@ ChatPage::ChatPage(QSharedPointer<MatrixClient> client,
|
|||
connect(
|
||||
client_.data(), &MatrixClient::roomCreationFailed, this, &ChatPage::showNotification);
|
||||
connect(client_.data(), &MatrixClient::joinFailed, this, &ChatPage::showNotification);
|
||||
connect(client_.data(), &MatrixClient::uploadFailed, this, [=](int, const QString &msg) {
|
||||
text_input_->hideUploadSpinner();
|
||||
emit showNotification(msg);
|
||||
});
|
||||
connect(client_.data(),
|
||||
&MatrixClient::imageUploaded,
|
||||
this,
|
||||
|
|
|
@ -1209,26 +1209,28 @@ MatrixClient::getUploadReply(QNetworkReply *reply)
|
|||
int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
|
||||
|
||||
if (status == 0 || status >= 400) {
|
||||
emit syncFailed(reply->errorString());
|
||||
emit uploadFailed(status,
|
||||
QString("Media upload failed - %1").arg(reply->errorString()));
|
||||
return object;
|
||||
}
|
||||
|
||||
auto res_data = reply->readAll();
|
||||
|
||||
if (res_data.isEmpty())
|
||||
if (res_data.isEmpty()) {
|
||||
emit uploadFailed(status, "Media upload failed - Empty response");
|
||||
return object;
|
||||
}
|
||||
|
||||
auto json = QJsonDocument::fromJson(res_data);
|
||||
|
||||
if (!json.isObject()) {
|
||||
qDebug() << "Media upload: Response is not a json object.";
|
||||
emit uploadFailed(status, "Media upload failed - Invalid response");
|
||||
return object;
|
||||
}
|
||||
|
||||
object = json.object();
|
||||
if (!object.contains("content_uri")) {
|
||||
qDebug() << "Media upload: Missing content_uri key";
|
||||
qDebug() << object;
|
||||
emit uploadFailed(status, "Media upload failed - Missing 'content_uri'");
|
||||
return QJsonObject{};
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue