diff options
Diffstat (limited to 'src/gui/socialwindow.cpp')
-rw-r--r-- | src/gui/socialwindow.cpp | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/src/gui/socialwindow.cpp b/src/gui/socialwindow.cpp index 85f08204..d57db749 100644 --- a/src/gui/socialwindow.cpp +++ b/src/gui/socialwindow.cpp @@ -40,9 +40,9 @@ #include "gui/widgets/tabbedarea.h" #include "net/net.h" +#include "net/chathandler.h" #include "net/guildhandler.h" #include "net/partyhandler.h" -#include "net/playerlisthandler.h" #include "resources/theme.h" @@ -238,11 +238,15 @@ class PlayerList : public AvatarListModel { public: - void addAvatar(Avatar *avatar) { - mPlayers.push_back(avatar); + void addAvatars(const std::vector<Avatar*> &onlineUsers) { + mPlayers = onlineUsers; } void clearPlayerList() { + for (unsigned i = 0; i < mPlayers.size(); ++i) + { + delete mPlayers[i]; + } mPlayers.clear(); } @@ -277,7 +281,7 @@ public: mScroll->setHorizontalScrollPolicy(gcn::ScrollArea::SHOW_AUTO); mScroll->setVerticalScrollPolicy(gcn::ScrollArea::SHOW_AUTO); - Net::getPlayerListHandler()->refreshList(); + Net::getChatHandler()->refreshList(); } ~PlayerListTab() { @@ -287,9 +291,9 @@ public: { mPlayerList->clearPlayerList(); } - void addOnlinePlayer(Avatar *avatar) + void addOnlinePlayers(const std::vector<Avatar*> &onlineUsers) { - mPlayerList->addAvatar(avatar); + mPlayerList->addAvatars(onlineUsers); } protected: @@ -539,7 +543,7 @@ void SocialWindow::action(const gcn::ActionEvent &event) } else if (event.getId() == "refresh") { - Net::getPlayerListHandler()->refreshList(); + Net::getChatHandler()->refreshList(); } else if (event.getId() == "create guild") { @@ -687,11 +691,7 @@ void SocialWindow::showPartyCreate() void SocialWindow::setPlayersOnline(const std::vector<Avatar*> &onlineUsers) { mPlayerListTab->clearPlayerList(); - for (auto itr = onlineUsers.begin(); - itr != onlineUsers.end(); ++itr) - { - mPlayerListTab->addOnlinePlayer(*(itr)); - } + mPlayerListTab->addOnlinePlayers(onlineUsers); } void SocialWindow::updateButtons() |