diff --git a/src/properties/peerlistwidget.cpp b/src/properties/peerlistwidget.cpp index 88944f5e2..4864db16d 100644 --- a/src/properties/peerlistwidget.cpp +++ b/src/properties/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/properties/peerlistwidget.h b/src/properties/peerlistwidget.h index 55e1381f7..1e6fcf288 100644 --- a/src/properties/peerlistwidget.h +++ b/src/properties/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;