summaryrefslogtreecommitdiff
path: root/src/gui/partywindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/partywindow.cpp')
-rw-r--r--src/gui/partywindow.cpp21
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;
+ }
+}