mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 11:48:09 +02:00
Set resource total size to content size when using a qrc:// resource
When a Resource is requested from qrc://, the Resource::handleDownloadProgress event is never called, and therefore _bytesTotal remains at zero. This confuses ResourceCache later, which has a sanity check that doesn't pass when resources are retrieved, yet no data accumulates. Fixes #1065
This commit is contained in:
parent
14292a042b
commit
b102b3477a
1 changed files with 8 additions and 2 deletions
|
@ -794,8 +794,6 @@ void Resource::handleReplyFinished() {
|
||||||
{ "size_mb", _bytesTotal / 1000000.0 }
|
{ "size_mb", _bytesTotal / 1000000.0 }
|
||||||
});
|
});
|
||||||
|
|
||||||
setSize(_bytesTotal);
|
|
||||||
|
|
||||||
// Make sure we keep the Resource alive here
|
// Make sure we keep the Resource alive here
|
||||||
auto self = _self.lock();
|
auto self = _self.lock();
|
||||||
ResourceCache::requestCompleted(_self);
|
ResourceCache::requestCompleted(_self);
|
||||||
|
@ -809,6 +807,14 @@ void Resource::handleReplyFinished() {
|
||||||
}
|
}
|
||||||
|
|
||||||
auto data = _request->getData();
|
auto data = _request->getData();
|
||||||
|
if (_request->getUrl().scheme() == "qrc") {
|
||||||
|
// For resources under qrc://, there's no actual download being done, so
|
||||||
|
// handleDownloadProgress never gets called. We get the full length here
|
||||||
|
// at the end.
|
||||||
|
_bytesTotal = data.length();
|
||||||
|
}
|
||||||
|
|
||||||
|
setSize(_bytesTotal);
|
||||||
emit loaded(data);
|
emit loaded(data);
|
||||||
downloadFinished(data);
|
downloadFinished(data);
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in a new issue