diff options
author | Andrei Karas <akaras@inbox.ru> | 2014-02-03 21:23:24 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2014-02-03 21:23:24 +0300 |
commit | 808a0b7aeb9c58724d3ac2e1a8bb8f3d3c2bdb1e (patch) | |
tree | 208f3224627dea587f8f87b31459e721153e83ba /src/gui | |
parent | d0db8d81ebf49b0e3c9872152cb5749f701cb9d6 (diff) | |
download | manaplus-808a0b7aeb9c58724d3ac2e1a8bb8f3d3c2bdb1e.tar.gz manaplus-808a0b7aeb9c58724d3ac2e1a8bb8f3d3c2bdb1e.tar.bz2 manaplus-808a0b7aeb9c58724d3ac2e1a8bb8f3d3c2bdb1e.tar.xz manaplus-808a0b7aeb9c58724d3ac2e1a8bb8f3d3c2bdb1e.zip |
fix friend tab update in social window if friends was changed.
Diffstat (limited to 'src/gui')
-rw-r--r-- | src/gui/windows/socialwindow.cpp | 14 | ||||
-rw-r--r-- | src/gui/windows/socialwindow.h | 10 |
2 files changed, 23 insertions, 1 deletions
diff --git a/src/gui/windows/socialwindow.cpp b/src/gui/windows/socialwindow.cpp index 8b1d0d79c..ec7fce182 100644 --- a/src/gui/windows/socialwindow.cpp +++ b/src/gui/windows/socialwindow.cpp @@ -1276,6 +1276,7 @@ SocialWindow::SocialWindow() : // TRANSLATORS: social window name Window(_("Social"), false, nullptr, "social.xml"), gcn::ActionListener(), + PlayerRelationsListener(), mGuildInvited(0), mGuildAcceptDialog(nullptr), mGuildCreateDialog(nullptr), @@ -1372,10 +1373,12 @@ void SocialWindow::postInit() enableVisibleSound(true); updateButtons(); + player_relations.addListener(this); } SocialWindow::~SocialWindow() { + player_relations.removeListener(this); if (mGuildAcceptDialog) { mGuildAcceptDialog->close(); @@ -1740,6 +1743,7 @@ void SocialWindow::slowLogic() const unsigned int nowTime = cur_time; if (mNeedUpdate && nowTime - mLastUpdateTime > 1) { + logger->log("soc update"); mPlayers->updateList(); mFriends->updateList(); mNeedUpdate = false; @@ -1892,6 +1896,16 @@ void SocialWindow::updateGuildCounter(const int online, const int total) } } +void SocialWindow::updatedPlayer(const std::string &name) +{ + mNeedUpdate = true; +} + +void SocialWindow::updateAll() +{ + mNeedUpdate = true; +} + #ifdef USE_PROFILER void SocialWindow::logicChildren() { diff --git a/src/gui/windows/socialwindow.h b/src/gui/windows/socialwindow.h index 018b5f32c..e8dc44043 100644 --- a/src/gui/windows/socialwindow.h +++ b/src/gui/windows/socialwindow.h @@ -24,6 +24,8 @@ #include "gui/widgets/window.h" +#include "being/playerrelationslistener.h" + #include <guichan/actionlistener.hpp> #include <string> @@ -45,7 +47,9 @@ class TextDialog; * * \ingroup Interface */ -class SocialWindow final : public Window, private gcn::ActionListener +class SocialWindow final : public Window, + private gcn::ActionListener, + public PlayerRelationsListener { public: SocialWindow(); @@ -125,6 +129,10 @@ public: void updateGuildCounter(const int online = 0, const int total = 0); + void updatedPlayer(const std::string &name); + + void updateAll(); + #ifdef USE_PROFILER void logicChildren(); #endif |