diff --git a/Changelog b/Changelog index b68e28af7..ad88e0c4f 100644 --- a/Changelog +++ b/Changelog @@ -9,6 +9,7 @@ - BUGFIX: Add confirmation dialog for "Force recheck" action (closes #131) - BUGFIX: Greatly improve RSS manager performance (closes #34) - OTHER: Generate translations at configure time to reduce tarball size + - PERFORMANCE: Impove drawing speed of tranferlist when there are many torrents(>100) * Thu Aug 09 2012 - Christophe Dumez - v3.0.0 - FEATURE: Brand new torrent addition dialog diff --git a/src/qtlibtorrent/torrentmodel.cpp b/src/qtlibtorrent/torrentmodel.cpp index 435c62af7..bc8129262 100644 --- a/src/qtlibtorrent/torrentmodel.cpp +++ b/src/qtlibtorrent/torrentmodel.cpp @@ -29,6 +29,7 @@ */ #include +#include #include "torrentmodel.h" #include "torrentpersistentdata.h" @@ -301,6 +302,19 @@ QVariant TorrentModel::data(const QModelIndex &index, int role) const if (!index.isValid()) return QVariant(); try { if (index.row() >= 0 && index.row() < rowCount() && index.column() >= 0 && index.column() < columnCount()) + if (role == Qt::SizeHintRole) + { + QSize size(m_torrents[index.row()]->data(index.column(), role).toSize()); + QFont font; + QFontMetrics fm(font); + QIcon icon(":/Icons/skin/downloading.png"); + int fm_height(fm.height()); + QList ic_sizes(icon.availableSizes()); + int icon_height(ic_sizes[0].height()); + size.setHeight(fm_height > icon_height ? fm_height : icon_height); + return QVariant(size); + } + else return m_torrents[index.row()]->data(index.column(), role); } catch(invalid_handle&) {} return QVariant(); diff --git a/src/transferlistwidget.cpp b/src/transferlistwidget.cpp index df04528b7..d48638e10 100644 --- a/src/transferlistwidget.cpp +++ b/src/transferlistwidget.cpp @@ -67,6 +67,7 @@ using namespace libtorrent; TransferListWidget::TransferListWidget(QWidget *parent, MainWindow *main_window, QBtSession *_BTSession): QTreeView(parent), BTSession(_BTSession), main_window(main_window) { + setUniformRowHeights(true); // Load settings bool column_loaded = loadSettings();