Fix empty tooltips showed at the progress bar borders

If tooltip text contains an empty HTML body, Qt still shows it as an
empty rectangle. Thus, output HTML tags only if we are within the
image region, and return true empty string if we are at the borders.
This commit is contained in:
Eugene Shalygin 2016-06-02 20:51:57 +02:00 committed by sledgehammer999
commit d43466d466

View file

@ -253,11 +253,11 @@ void PiecesBar::showToolTip(const QHelpEvent *e)
QTextStream stream(&toolTipText, QIODevice::WriteOnly);
bool showDetailedInformation = QApplication::keyboardModifiers().testFlag(Qt::ShiftModifier);
if (showDetailedInformation) {
stream << "<html><body>";
const int imagePos = e->pos().x() - borderWidth;
if ((imagePos >=0) && (imagePos < m_image.width())) {
stream << "<html><body>";
PieceIndexToImagePos transform {m_torrent->info(), m_image};
int pieceIndex = transform.pieceIndex(e->pos().x() - borderWidth);
int pieceIndex = transform.pieceIndex(imagePos);
QVector<int> files {m_torrent->info().fileIndicesForPiece(pieceIndex)};
QString tooltipTitle;
@ -281,8 +281,8 @@ void PiecesBar::showToolTip(const QHelpEvent *e)
renderer(Utils::Misc::friendlyUnit(m_torrent->info().fileSize(f)), filePath);
}
stream << "</body></html>";
}
stream << "</body></html>";
}
else {
stream << simpleToolTipText();