summaryrefslogtreecommitdiff
path: root/src/gui/windows/socialwindow.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2014-05-17 00:02:06 +0300
committerAndrei Karas <akaras@inbox.ru>2014-05-17 00:02:06 +0300
commitda9acd658f1d7f7b4a4e86d01743cb869e9be1f0 (patch)
tree868ec05128efdd910077d347d4b6df67903ef617 /src/gui/windows/socialwindow.cpp
parent06872aa9ca900f99df685a3c37cbfb7310cdd857 (diff)
downloadplus-da9acd658f1d7f7b4a4e86d01743cb869e9be1f0.tar.gz
plus-da9acd658f1d7f7b4a4e86d01743cb869e9be1f0.tar.bz2
plus-da9acd658f1d7f7b4a4e86d01743cb869e9be1f0.tar.xz
plus-da9acd658f1d7f7b4a4e86d01743cb869e9be1f0.zip
Move socialplayerstab into separate file.
Diffstat (limited to 'src/gui/windows/socialwindow.cpp')
-rw-r--r--src/gui/windows/socialwindow.cpp166
1 files changed, 1 insertions, 165 deletions
diff --git a/src/gui/windows/socialwindow.cpp b/src/gui/windows/socialwindow.cpp
index b2cc5610f..e878e0368 100644
--- a/src/gui/windows/socialwindow.cpp
+++ b/src/gui/windows/socialwindow.cpp
@@ -58,6 +58,7 @@
#include "gui/widgets/tabs/socialguildtab.h"
#include "gui/widgets/tabs/socialguildtab2.h"
#include "gui/widgets/tabs/socialpartytab.h"
+#include "gui/widgets/tabs/socialplayerstab.h"
#include "net/net.h"
#include "net/guildhandler.h"
@@ -97,171 +98,6 @@ namespace
} friendSorter;
} // namespace
-class SocialPlayersTab final : public SocialTab
-{
-public:
- SocialPlayersTab(const Widget2 *const widget,
- std::string name,
- const bool showBackground) :
- SocialTab(widget),
- mBeings(new BeingsListModel)
- {
- mList = new AvatarListBox(this, mBeings);
- mList->postInit();
- mScroll = new ScrollArea(this, mList, showBackground,
- "social_background.xml");
-
- mScroll->setHorizontalScrollPolicy(ScrollArea::SHOW_AUTO);
- mScroll->setVerticalScrollPolicy(ScrollArea::SHOW_ALWAYS);
-
- getPlayersAvatars();
- setCaption(name);
- }
-
- A_DELETE_COPY(SocialPlayersTab)
-
- ~SocialPlayersTab()
- {
- delete2(mList)
- delete2(mScroll)
- delete2(mBeings)
- }
-
- void updateList() override final
- {
- getPlayersAvatars();
- }
-
- void updateAvatar(const std::string &name) override final
- {
- if (!actorManager)
- return;
-
- Avatar *const avatar = findAvatarbyName(name);
- if (!avatar)
- return;
- if (Party::getParty(1))
- {
- const PartyMember *const pm = Party::getParty(1)->getMember(name);
- if (pm && pm->getMaxHp() > 0)
- {
- avatar->setMaxHp(pm->getMaxHp());
- avatar->setHp(pm->getHp());
- }
- }
- const Being *const being = actorManager->findBeingByName(
- name, ActorType::PLAYER);
- if (being)
- {
- avatar->setDamageHp(being->getDamageTaken());
- avatar->setLevel(being->getLevel());
- avatar->setGender(being->getGender());
- avatar->setIp(being->getIp());
- avatar->setPoison(being->getPoison());
- }
- }
-
- void resetDamage(const std::string &name) override final
- {
- if (!actorManager)
- return;
-
- Avatar *const avatar = findAvatarbyName(name);
- if (!avatar)
- return;
- avatar->setDamageHp(0);
- Being *const being = actorManager->findBeingByName(
- name, ActorType::PLAYER);
-
- if (being)
- being->setDamageTaken(0);
- }
-
- Avatar* findAvatarbyName(const std::string &name)
- {
- std::vector<Avatar*> *const avatars = mBeings->getMembers();
- if (!avatars)
- return nullptr;
-
- Avatar *ava = nullptr;
- std::vector<Avatar*>::const_iterator i = avatars->begin();
- const std::vector<Avatar*>::const_iterator i_end = avatars->end();
- while (i != i_end)
- {
- ava = (*i);
- if (ava && ava->getName() == name)
- return ava;
- ++i;
- }
- ava = new Avatar(name);
- ava->setOnline(true);
- avatars->push_back(ava);
- return ava;
- }
-
- void getPlayersAvatars()
- {
- std::vector<Avatar*> *const avatars = mBeings->getMembers();
- if (!avatars)
- return;
-
- if (actorManager)
- {
- StringVect names;
- actorManager->getPlayerNames(names, false);
-
- std::vector<Avatar*>::iterator ai = avatars->begin();
- while (ai != avatars->end())
- {
- bool finded = false;
- const Avatar *const ava = (*ai);
- if (!ava)
- break;
-
- StringVectCIter i = names.begin();
- const StringVectCIter i_end = names.end();
- while (i != i_end)
- {
- if (ava->getName() == (*i) && (*i) != "")
- {
- finded = true;
- break;
- }
- ++i;
- }
-
- if (!finded)
- {
- delete *ai;
- ai = avatars->erase(ai);
- }
- else
- {
- ++ai;
- }
- }
-
- StringVectCIter i = names.begin();
- const StringVectCIter i_end = names.end();
-
- while (i != i_end)
- {
- if ((*i) != "")
- updateAvatar(*i);
- ++i;
- }
- }
- // TRANSLATORS: social window label
- mCounterString = strprintf(_("Visible players: %d"),
- static_cast<int>(avatars->size()));
- updateCounter();
- }
-
-private:
- BeingsListModel *mBeings;
-};
-
-
class SocialNavigationTab final : public SocialTab
{
public: