mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2025-12-18 14:38:04 -06:00
Merge pull request #4062 from glassez/speedup
Some TransferListWidget speedup.
This commit is contained in:
@@ -67,7 +67,7 @@ TorrentModel::TorrentModel(QObject *parent)
|
||||
// Listen for torrent changes
|
||||
connect(BitTorrent::Session::instance(), SIGNAL(torrentAdded(BitTorrent::TorrentHandle *const)), SLOT(addTorrent(BitTorrent::TorrentHandle *const)));
|
||||
connect(BitTorrent::Session::instance(), SIGNAL(torrentAboutToBeRemoved(BitTorrent::TorrentHandle *const)), SLOT(handleTorrentAboutToBeRemoved(BitTorrent::TorrentHandle *const)));
|
||||
connect(BitTorrent::Session::instance(), SIGNAL(torrentStatusUpdated(BitTorrent::TorrentHandle *const)), this, SLOT(handleTorrentStatusUpdated(BitTorrent::TorrentHandle *const)));
|
||||
connect(BitTorrent::Session::instance(), SIGNAL(torrentsUpdated()), SLOT(handleTorrentsUpdated()));
|
||||
|
||||
connect(BitTorrent::Session::instance(), SIGNAL(torrentFinished(BitTorrent::TorrentHandle *const)), SLOT(handleTorrentStatusUpdated(BitTorrent::TorrentHandle *const)));
|
||||
connect(BitTorrent::Session::instance(), SIGNAL(torrentMetadataLoaded(BitTorrent::TorrentHandle *const)), SLOT(handleTorrentStatusUpdated(BitTorrent::TorrentHandle *const)));
|
||||
@@ -307,6 +307,11 @@ void TorrentModel::handleTorrentStatusUpdated(BitTorrent::TorrentHandle *const t
|
||||
emit dataChanged(index(row, 0), index(row, columnCount() - 1));
|
||||
}
|
||||
|
||||
void TorrentModel::handleTorrentsUpdated()
|
||||
{
|
||||
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1));
|
||||
}
|
||||
|
||||
// Static functions
|
||||
|
||||
QIcon getIconByState(BitTorrent::TorrentState state)
|
||||
|
||||
@@ -97,6 +97,7 @@ private slots:
|
||||
void addTorrent(BitTorrent::TorrentHandle *const torrent);
|
||||
void handleTorrentAboutToBeRemoved(BitTorrent::TorrentHandle *const torrent);
|
||||
void handleTorrentStatusUpdated(BitTorrent::TorrentHandle *const torrent);
|
||||
void handleTorrentsUpdated();
|
||||
|
||||
private:
|
||||
QList<BitTorrent::TorrentHandle *> m_torrents;
|
||||
|
||||
@@ -110,7 +110,7 @@ void FiltersBase::toggleFilter(bool checked)
|
||||
StatusFiltersWidget::StatusFiltersWidget(QWidget *parent, TransferListWidget *transferList)
|
||||
: FiltersBase(parent, transferList)
|
||||
{
|
||||
connect(BitTorrent::Session::instance(), SIGNAL(torrentsUpdated(const BitTorrent::TorrentStatusReport &)), SLOT(updateTorrentNumbers(const BitTorrent::TorrentStatusReport &)));
|
||||
connect(BitTorrent::Session::instance(), SIGNAL(torrentsUpdated()), SLOT(updateTorrentNumbers()));
|
||||
|
||||
// Add status filters
|
||||
QListWidgetItem *all = new QListWidgetItem(this);
|
||||
@@ -148,8 +148,10 @@ StatusFiltersWidget::~StatusFiltersWidget()
|
||||
Preferences::instance()->setTransSelFilter(currentRow());
|
||||
}
|
||||
|
||||
void StatusFiltersWidget::updateTorrentNumbers(const BitTorrent::TorrentStatusReport &report)
|
||||
void StatusFiltersWidget::updateTorrentNumbers()
|
||||
{
|
||||
auto report = BitTorrent::Session::instance()->torrentStatusReport();
|
||||
|
||||
item(TorrentFilter::All)->setData(Qt::DisplayRole, QVariant(tr("All (%1)").arg(report.nbActive + report.nbInactive)));
|
||||
item(TorrentFilter::Downloading)->setData(Qt::DisplayRole, QVariant(tr("Downloading (%1)").arg(report.nbDownloading)));
|
||||
item(TorrentFilter::Seeding)->setData(Qt::DisplayRole, QVariant(tr("Seeding (%1)").arg(report.nbSeeding)));
|
||||
|
||||
@@ -45,7 +45,6 @@ namespace BitTorrent
|
||||
{
|
||||
class TorrentHandle;
|
||||
class TrackerEntry;
|
||||
struct TorrentStatusReport;
|
||||
}
|
||||
|
||||
class FiltersBase: public QListWidget
|
||||
@@ -80,7 +79,7 @@ public:
|
||||
~StatusFiltersWidget();
|
||||
|
||||
private slots:
|
||||
void updateTorrentNumbers(const BitTorrent::TorrentStatusReport &report);
|
||||
void updateTorrentNumbers();
|
||||
|
||||
private:
|
||||
// These 4 methods are virtual slots in the base class.
|
||||
|
||||
Reference in New Issue
Block a user