mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-07-15 01:33:07 -07:00
Improve TransferListDelegate::sizeHint
This commit is contained in:
parent
93d8cadaaf
commit
4eadda5c9a
2 changed files with 10 additions and 13 deletions
|
@ -215,17 +215,19 @@ QWidget* TransferListDelegate::createEditor(QWidget*, const QStyleOptionViewItem
|
|||
|
||||
QSize TransferListDelegate::sizeHint(const QStyleOptionViewItem & option, const QModelIndex & index) const
|
||||
{
|
||||
static int iconHeight = -1;
|
||||
if (iconHeight == -1) {
|
||||
QIcon icon(":/icons/skin/downloading.png");
|
||||
QList<QSize> icSizes(icon.availableSizes());
|
||||
iconHeight = icSizes[0].height();
|
||||
// Reimplementing sizeHint() because the 'name' column contains text+icon.
|
||||
// When that WHOLE column goes out of view(eg user scrolls horizontally)
|
||||
// the rows shrink if the text's height is smaller than the icon's height.
|
||||
// This happens because icon from the 'name' column is no longer drawn.
|
||||
|
||||
static int nameColHeight = -1;
|
||||
if (nameColHeight == -1) {
|
||||
QModelIndex nameColumn = index.sibling(index.row(), TorrentModel::TR_NAME);
|
||||
nameColHeight = QItemDelegate::sizeHint(option, nameColumn).height();
|
||||
}
|
||||
|
||||
QSize size = QItemDelegate::sizeHint(option, index);
|
||||
if (size.height() < iconHeight)
|
||||
size.setHeight(iconHeight);
|
||||
|
||||
size.setHeight(std::max(nameColHeight, size.height()));
|
||||
return size;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue