23 #include <QHeaderView>
27 #include <kstandarddirs.h>
28 #include <kconfiggroup.h>
29 #include <interfaces/peerinterface.h>
30 #include <peer/accessmanager.h>
31 #include <util/functions.h>
42 setContextMenuPolicy(Qt::CustomContextMenu);
43 setRootIsDecorated(
false);
44 setSortingEnabled(
true);
45 setAlternatingRowColors(
true);
46 setUniformRowHeights(
true);
51 context_menu =
new KMenu(
this);
52 context_menu->addAction(KIcon(
"list-remove-user"),i18n(
"Kick Peer"),
this,SLOT(kickPeer()));
53 context_menu->addAction(KIcon(
"view-filter"),i18n(
"Ban Peer"),
this,SLOT(banPeer()));
54 connect(
this,SIGNAL(customContextMenuRequested(QPoint)),
55 this,SLOT(showContextMenu(QPoint)));
62 void PeerView::showContextMenu(
const QPoint& pos)
64 if (selectionModel()->selectedRows().count() == 0)
67 context_menu->popup(mapToGlobal(pos));
70 void PeerView::banPeer()
72 AccessManager & aman = AccessManager::instance();
74 QModelIndexList indices = selectionModel()->selectedRows();
75 foreach (
const QModelIndex &idx,indices)
80 aman.banPeer(peer->getStats().ip_address);
86 void PeerView::kickPeer()
88 QModelIndexList indices = selectionModel()->selectedRows();
89 foreach (
const QModelIndex &idx,indices)
119 KConfigGroup g = cfg->group(
"PeerView");
120 QByteArray s = header()->saveState();
121 g.writeEntry(
"state",s.toBase64());
126 KConfigGroup g = cfg->group(
"PeerView");
127 QByteArray s = QByteArray::fromBase64(g.readEntry(
"state",QByteArray()));
130 QHeaderView* v = header();
132 sortByColumn(v->sortIndicatorSection(),v->sortIndicatorOrder());
133 model->
sort(v->sortIndicatorSection(),v->sortIndicatorOrder());
138 #include "peerview.moc"
void sort(int col, Qt::SortOrder order)
void removeAll()
Remove all items.
void peerRemoved(bt::PeerInterface *peer)
A peer has been removed.
void saveState(KSharedConfigPtr cfg)
void peerRemoved(bt::PeerInterface *peer)
A peer has been removed.
void update()
Check to see if the GUI needs to be updated.
void peerAdded(bt::PeerInterface *peer)
A peer has been added.
void update()
Update the model.
void loadState(KSharedConfigPtr cfg)
void peerAdded(bt::PeerInterface *peer)
A peer has been added.
bt::PeerInterface * indexToPeer(const QModelIndex &idx)