diff --git a/Changelog b/Changelog index 0fd5fe8a1..971d5a2d1 100644 --- a/Changelog +++ b/Changelog @@ -8,6 +8,7 @@ - BUGFIX: Fix rounding issue in torrent progress display - BUGFIX: Fix issue when altering files priorities of a seeding torrent - BUGFIX: Better fix for save path editing issues in torrent addition dialog + - BUGFIX: Peers can now be sorted by country * Tue Oct 19 2010 - Christophe Dumez - v2.4.7 - BUGFIX: Display the priority column when the queueing system gets enabled diff --git a/src/peerlistwidget.cpp b/src/peerlistwidget.cpp index 88944f5e2..4864db16d 100644 --- a/src/peerlistwidget.cpp +++ b/src/peerlistwidget.cpp @@ -45,7 +45,7 @@ #include #include "qinisettings.h" -PeerListWidget::PeerListWidget(PropertiesWidget *parent): properties(parent), display_flags(false) { +PeerListWidget::PeerListWidget(PropertiesWidget *parent): QTreeView(parent), properties(parent), display_flags(false) { // Visual settings setRootIsDecorated(false); setItemsExpandable(false); @@ -78,6 +78,9 @@ PeerListWidget::PeerListWidget(PropertiesWidget *parent): properties(parent), di loadSettings(); // IP to Hostname resolver updatePeerHostNameResolutionState(); + // SIGNAL/SLOT + connect(header(), SIGNAL(sectionClicked(int)), SLOT(handleSortColumnChanged(int))); + handleSortColumnChanged(header()->sortIndicatorSection()); } PeerListWidget::~PeerListWidget() { @@ -400,3 +403,13 @@ void PeerListWidget::handleResolved(QString ip, QString hostname) { //listModel->setData(listModel->index(item->row(), IP), hostname); } } + +void PeerListWidget::handleSortColumnChanged(int col) +{ + if(col == 0) { + qDebug("Sorting by decoration"); + proxyModel->setSortRole(Qt::ToolTipRole); + } else { + proxyModel->setSortRole(Qt::DisplayRole); + } +} diff --git a/src/peerlistwidget.h b/src/peerlistwidget.h index 55e1381f7..1e6fcf288 100644 --- a/src/peerlistwidget.h +++ b/src/peerlistwidget.h @@ -75,6 +75,7 @@ protected slots: void limitUpRateSelectedPeers(QStringList peer_ips); void limitDlRateSelectedPeers(QStringList peer_ips); void banSelectedPeers(QStringList peer_ips); + void handleSortColumnChanged(int col); private: QStandardItemModel *listModel;