Show full cached song as downloaded.

This commit is contained in:
John Preston 2020-10-06 10:10:22 +03:00
parent 72af170484
commit 9acf617c9f

View file

@ -384,9 +384,7 @@ void Document::draw(Painter &p, const QRect &r, TextSelection selection, crl::ti
_animation->radial.draw(p, rinner, st::msgFileRadialLine, fg); _animation->radial.draw(p, rinner, st::msgFileRadialLine, fg);
} }
if (!loaded) { drawCornerDownload(p, selected);
drawCornerDownload(p, selected);
}
} }
auto namewidth = width() - nameleft - nameright; auto namewidth = width() - nameleft - nameright;
auto statuswidth = namewidth; auto statuswidth = namewidth;
@ -530,7 +528,9 @@ bool Document::downloadInCorner() const {
} }
void Document::drawCornerDownload(Painter &p, bool selected) const { void Document::drawCornerDownload(Painter &p, bool selected) const {
if (!downloadInCorner()) { if (dataLoaded()
|| _data->loadedInMediaCache()
|| !downloadInCorner()) {
return; return;
} }
auto outbg = _parent->hasOutLayout(); auto outbg = _parent->hasOutLayout();
@ -570,7 +570,9 @@ TextState Document::cornerDownloadTextState(
QPoint point, QPoint point,
StateRequest request) const { StateRequest request) const {
auto result = TextState(_parent); auto result = TextState(_parent);
if (!downloadInCorner()) { if (dataLoaded()
|| _data->loadedInMediaCache()
|| !downloadInCorner()) {
return result; return result;
} }
auto topMinus = isBubbleTop() ? 0 : st::msgFileTopMinus; auto topMinus = isBubbleTop() ? 0 : st::msgFileTopMinus;
@ -627,10 +629,8 @@ TextState Document::textState(QPoint point, StateRequest request) const {
nametop = st::msgFileNameTop - topMinus; nametop = st::msgFileNameTop - topMinus;
bottom = st::msgFilePadding.top() + st::msgFileSize + st::msgFilePadding.bottom() - topMinus; bottom = st::msgFilePadding.top() + st::msgFileSize + st::msgFilePadding.bottom() - topMinus;
if (!loaded) { if (const auto state = cornerDownloadTextState(point, request); state.link) {
if (const auto state = cornerDownloadTextState(point, request); state.link) { return state;
return state;
}
} }
QRect inner(style::rtlrect(st::msgFilePadding.left(), st::msgFilePadding.top() - topMinus, st::msgFileSize, st::msgFileSize, width())); QRect inner(style::rtlrect(st::msgFilePadding.left(), st::msgFilePadding.top() - topMinus, st::msgFileSize, st::msgFileSize, width()));
if ((_data->loading() || _data->uploading()) && inner.contains(point) && !downloadInCorner()) { if ((_data->loading() || _data->uploading()) && inner.contains(point) && !downloadInCorner()) {