diff options
Diffstat (limited to 'src/gui/partywindow.cpp')
-rw-r--r-- | src/gui/partywindow.cpp | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/gui/partywindow.cpp b/src/gui/partywindow.cpp index 996073bd..1260a2c3 100644 --- a/src/gui/partywindow.cpp +++ b/src/gui/partywindow.cpp @@ -92,9 +92,10 @@ PartyMember *PartyWindow::findOrCreateMember(int id) { member = new PartyMember; mMembers[id] = member; - add(member->avatar, 0, (mMembers.size() - 1) * 14); } + buildLayout(); + return member; } @@ -148,6 +149,8 @@ void PartyWindow::removeMember(int id) void PartyWindow::removeMember(const std::string &name) { removeMember(findMember(name)); + + buildLayout(); } void PartyWindow::updateOnlne(int id, bool online) @@ -225,3 +228,19 @@ void PartyWindow::clearMembers() delete_all(mMembers); mMembers.clear(); } + +void PartyWindow::buildLayout() +{ + clearLayout(); + int lastPos = 0; + + PartyList::iterator it; + PartyMember *member; + + for (it = mMembers.begin(); it != mMembers.end(); it++) + { + member = (*it).second; + add(member->avatar, 0, lastPos); + lastPos += member->avatar->getHeight() + 2; + } +} |