Removed sigc++ signal from ConnectionList.

This commit is contained in:
rakshasa
2012-04-07 15:06:25 +09:00
parent 36f8e5d349
commit fdc6ee56de
2 changed files with 16 additions and 6 deletions
+10 -4
View File
@@ -65,8 +65,12 @@ ElementPeerList::ElementPeerList(core::Download* d) :
std::for_each(m_download->download()->connection_list()->begin(), m_download->download()->connection_list()->end(),
rak::bind1st(std::mem_fun<void,PList,PList::const_reference>(&PList::push_back), &m_list));
m_connPeerConnected = m_download->download()->connection_list()->signal_connected().connect(sigc::mem_fun(*this, &ElementPeerList::receive_peer_connected));
m_connPeerDisconnected = m_download->download()->connection_list()->signal_disconnected().connect(sigc::mem_fun(*this, &ElementPeerList::receive_peer_disconnected));
torrent::ConnectionList* connection_list = m_download->download()->connection_list();
m_peer_connected = connection_list->signal_connected().insert(connection_list->signal_connected().end(),
tr1::bind(&ElementPeerList::receive_peer_connected, this, tr1::placeholders::_1));
m_peer_disconnected = connection_list->signal_disconnected().insert(connection_list->signal_disconnected().end(),
tr1::bind(&ElementPeerList::receive_peer_disconnected, this, tr1::placeholders::_1));
m_windowList = new display::WindowPeerList(m_download, &m_list, &m_listItr);
m_elementInfo = create_info();
@@ -84,8 +88,10 @@ ElementPeerList::ElementPeerList(core::Download* d) :
}
ElementPeerList::~ElementPeerList() {
m_connPeerConnected.disconnect();
m_connPeerDisconnected.disconnect();
torrent::ConnectionList* connection_list = m_download->download()->connection_list();
connection_list->signal_connected().erase(m_peer_connected);
connection_list->signal_disconnected().erase(m_peer_disconnected);
delete m_windowList;
delete m_elementInfo;
+6 -2
View File
@@ -37,6 +37,8 @@
#ifndef RTORRENT_UI_ELEMENT_PEER_LIST_H
#define RTORRENT_UI_ELEMENT_PEER_LIST_H
#include <torrent/peer/connection_list.h>
#include "core/download.h"
#include "element_base.h"
@@ -49,6 +51,8 @@ class ElementPeerList : public ElementBase {
public:
typedef std::list<torrent::Peer*> PList;
typedef torrent::ConnectionList::signal_peer_type::iterator signal_connection;
typedef enum {
DISPLAY_LIST,
DISPLAY_INFO,
@@ -89,8 +93,8 @@ private:
PList m_list;
PList::iterator m_listItr;
sigc::connection m_connPeerConnected;
sigc::connection m_connPeerDisconnected;
signal_connection m_peer_connected;
signal_connection m_peer_disconnected;
};
}