------------------------------------------------------------
revno: 248
committer: Alan Alvarez <aalva...@aliensoft.net>
branch nick: login-system
timestamp: Tue 2010-10-05 15:28:40 -0400
message:
Remove user leaving workplace from workplace tab
modified:
mira-client/include/gui/qt/Workplace.h
mira-client/include/gui/qt/WorkplaceMember.h
mira-client/src/gui/qt/Workplace.cpp
--
lp:~mira-dev/mira/login-system
https://code.launchpad.net/~mira-dev/mira/login-system
You are subscribed to branch lp:~mira-dev/mira/login-system.
To unsubscribe from this branch go to
https://code.launchpad.net/~mira-dev/mira/login-system/+edit-subscription
=== modified file 'mira-client/include/gui/qt/Workplace.h'
--- mira-client/include/gui/qt/Workplace.h 2010-08-24 20:10:25 +0000
+++ mira-client/include/gui/qt/Workplace.h 2010-10-05 19:28:40 +0000
@@ -28,7 +28,6 @@
typedef GuiInterface Utility;
typedef std::list<Utility*> UtilityList;
typedef std::list<WorkplaceMember> MemberList;
- typedef std::list<QLabel*> MemberStatusList;
Workplace() {}
Workplace(const std::string& name);
@@ -60,7 +59,6 @@
std::string m_name;
UtilityList m_utilities;
MemberList m_members;
- MemberStatusList m_memberStatusList;
// GUI Objects
QWidget* m_summaryTab;
=== modified file 'mira-client/include/gui/qt/WorkplaceMember.h'
--- mira-client/include/gui/qt/WorkplaceMember.h 2010-02-18 13:40:18 +0000
+++ mira-client/include/gui/qt/WorkplaceMember.h 2010-10-05 19:28:40 +0000
@@ -2,6 +2,7 @@
#define _WORKPLACE_MEMBER__H
#include <string>
+#include <QLabel>
#define STATUS_ONLINE 'n'
#define STATUS_OFFLINE 'f'
@@ -10,6 +11,10 @@
{
std::string username;
char status;
+
+ // Used for Workplace tab (by class Workplace)
+ QLabel *iconLabel;
+ QLabel *usernameLabel;
};
#endif // _WORKPLACE_MEMBER__H
=== modified file 'mira-client/src/gui/qt/Workplace.cpp'
--- mira-client/src/gui/qt/Workplace.cpp 2010-09-09 00:19:31 +0000
+++ mira-client/src/gui/qt/Workplace.cpp 2010-10-05 19:28:40 +0000
@@ -10,6 +10,8 @@
#include <QThread>
#include <QLayoutItem>
+#include <iostream>
+
typedef GuiInterface Utility;
using namespace miraclient::gui;
@@ -145,18 +147,18 @@
void Workplace::addMember(const WorkplaceMember& member)
{
m_members.push_back(member);
- QLabel* icon = new QLabel(m_membersBox);
- m_memberStatusList.push_back(icon);
+
+ m_members.back().iconLabel = new QLabel(m_membersBox);
if (member.status == STATUS_ONLINE)
- icon->setPixmap(QPixmap(":/images/chat-online.png"));
+ m_members.back().iconLabel->setPixmap(QPixmap(":/images/chat-online.png"));
else if (member.status == STATUS_OFFLINE)
- icon->setPixmap(QPixmap(":/images/chat-offline.png"));
+ m_members.back().iconLabel->setPixmap(QPixmap(":/images/chat-offline.png"));
else
- icon->setPixmap(QPixmap(":/images/chat-offline.png"));
+ m_members.back().iconLabel->setPixmap(QPixmap(":/images/chat-offline.png"));
- QLabel* username = new QLabel(QString::fromStdString(member.username), m_membersBox);
- m_membersBoxLayout->addRow(icon, username);
+ m_members.back().usernameLabel = new QLabel(QString::fromStdString(member.username), m_membersBox);
+ m_membersBoxLayout->addRow( m_members.back().iconLabel, m_members.back().usernameLabel);
}
void Workplace::removeMember(const std::string &username)
@@ -164,9 +166,13 @@
unsigned int i = 1; // Start at 1, because the local user is at position 0 (look at constructor)
for (MemberList::iterator Iter = m_members.begin(); Iter != m_members.end(); ++Iter, ++i)
{
+ std::cout << "Member " << Iter->username << std::endl;
if (Iter->username == username)
{
+ delete Iter->iconLabel;
+ delete Iter->usernameLabel;
m_members.erase(Iter);
+
QLayoutItem *item = m_membersBoxLayout->takeAt(i);
if (item != 0)
delete item;
@@ -183,8 +189,7 @@
void Workplace::changeMemberStatus(const std::string& username, char status)
{
- MemberStatusList::iterator statusIter = m_memberStatusList.begin();
- for (MemberList::iterator Iter = m_members.begin(); Iter != m_members.end(); ++Iter, ++statusIter)
+ for (MemberList::iterator Iter = m_members.begin(); Iter != m_members.end(); ++Iter)
{
if (Iter->username == username)
{
@@ -193,10 +198,10 @@
switch (status)
{
case STATUS_ONLINE:
- (*statusIter)->setPixmap(QPixmap(":/images/chat-online.png"));
+ Iter->iconLabel->setPixmap(QPixmap(":/images/chat-online.png"));
break;
case STATUS_OFFLINE:
- (*statusIter)->setPixmap(QPixmap(":/images/chat-offline.png"));
+ Iter->iconLabel->setPixmap(QPixmap(":/images/chat-offline.png"));
break;
}
@@ -214,11 +219,10 @@
void Workplace::goOffline()
{
// Mark all users as offline
- MemberStatusList::iterator statusIter = m_memberStatusList.begin();
- for (MemberList::iterator Iter = m_members.begin(); Iter != m_members.end(); ++Iter, ++statusIter)
+ for (MemberList::iterator Iter = m_members.begin(); Iter != m_members.end(); ++Iter)
{
Iter->status = STATUS_OFFLINE;
- (*statusIter)->setPixmap(QPixmap(":/images/chat-offline.png"));
+ Iter->iconLabel->setPixmap(QPixmap(":/images/chat-offline.png"));
}
// TODO: Tell Utilities to go offline
------------------------------------------------------------------------------
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3.
Spend less time writing and rewriting code and more time creating great
experiences on the web. Be a part of the beta today.
http://p.sf.net/sfu/beautyoftheweb
_______________________________________________
Mira-development mailing list
Mira-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mira-development