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 &homeserver,
|
||||||
const QString &token);
|
const QString &token);
|
||||||
void versionSuccess();
|
void versionSuccess();
|
||||||
|
void uploadFailed(int statusCode, const QString &msg);
|
||||||
void imageUploaded(const QString &roomid,
|
void imageUploaded(const QString &roomid,
|
||||||
const QString &filename,
|
const QString &filename,
|
||||||
const QString &url,
|
const QString &url,
|
||||||
|
|
|
@ -256,6 +256,10 @@ ChatPage::ChatPage(QSharedPointer<MatrixClient> client,
|
||||||
connect(
|
connect(
|
||||||
client_.data(), &MatrixClient::roomCreationFailed, this, &ChatPage::showNotification);
|
client_.data(), &MatrixClient::roomCreationFailed, this, &ChatPage::showNotification);
|
||||||
connect(client_.data(), &MatrixClient::joinFailed, 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(),
|
connect(client_.data(),
|
||||||
&MatrixClient::imageUploaded,
|
&MatrixClient::imageUploaded,
|
||||||
this,
|
this,
|
||||||
|
|
|
@ -1209,26 +1209,28 @@ MatrixClient::getUploadReply(QNetworkReply *reply)
|
||||||
int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
|
int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
|
||||||
|
|
||||||
if (status == 0 || status >= 400) {
|
if (status == 0 || status >= 400) {
|
||||||
emit syncFailed(reply->errorString());
|
emit uploadFailed(status,
|
||||||
|
QString("Media upload failed - %1").arg(reply->errorString()));
|
||||||
return object;
|
return object;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto res_data = reply->readAll();
|
auto res_data = reply->readAll();
|
||||||
|
|
||||||
if (res_data.isEmpty())
|
if (res_data.isEmpty()) {
|
||||||
|
emit uploadFailed(status, "Media upload failed - Empty response");
|
||||||
return object;
|
return object;
|
||||||
|
}
|
||||||
|
|
||||||
auto json = QJsonDocument::fromJson(res_data);
|
auto json = QJsonDocument::fromJson(res_data);
|
||||||
|
|
||||||
if (!json.isObject()) {
|
if (!json.isObject()) {
|
||||||
qDebug() << "Media upload: Response is not a json object.";
|
emit uploadFailed(status, "Media upload failed - Invalid response");
|
||||||
return object;
|
return object;
|
||||||
}
|
}
|
||||||
|
|
||||||
object = json.object();
|
object = json.object();
|
||||||
if (!object.contains("content_uri")) {
|
if (!object.contains("content_uri")) {
|
||||||
qDebug() << "Media upload: Missing content_uri key";
|
emit uploadFailed(status, "Media upload failed - Missing 'content_uri'");
|
||||||
qDebug() << object;
|
|
||||||
return QJsonObject{};
|
return QJsonObject{};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue