From da88f5f0bb5e73bc69bf7ed3962691622b1ae4f9 Mon Sep 17 00:00:00 2001 From: Manjeet Dahiya Date: Wed, 8 Sep 2010 09:23:18 +0000 Subject: add Gui Client example --- examples/GuiClient/rosterItem.cpp | 107 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 examples/GuiClient/rosterItem.cpp (limited to 'examples/GuiClient/rosterItem.cpp') diff --git a/examples/GuiClient/rosterItem.cpp b/examples/GuiClient/rosterItem.cpp new file mode 100644 index 00000000..4075f4fb --- /dev/null +++ b/examples/GuiClient/rosterItem.cpp @@ -0,0 +1,107 @@ +#include "rosterItem.h" +#include + +rosterItem::rosterItem(const QString& bareJid) //: QStandardItem(bareJid) +{ + setStatusType(QXmppPresence::Status::Offline); + setStatusText("Offline"); +} + +void rosterItem::setName(const QString& name) +{ + setText(name); +} + +QString rosterItem::getName() +{ + return text(); +} + +void rosterItem::setBareJid(const QString& bareJid) +{ + setData(bareJid, rosterItem::BareJid); +} + +void rosterItem::setStatusText(const QString& text) +{ + setData(text, rosterItem::StatusText); +} + +QString rosterItem::getBareJid() +{ + return data(rosterItem::BareJid).toString(); +} + +QString rosterItem::getStatusText() +{ + return data(rosterItem::StatusText).toString(); +} + +void rosterItem::setStatusType(QXmppPresence::Status::Type type) +{ + setData(static_cast(type), StatusType); + QString icon; + switch(type) + { + case QXmppPresence::Status::Online: + case QXmppPresence::Status::Chat: + icon = "green"; + break; + case QXmppPresence::Status::Away: + case QXmppPresence::Status::XA: + icon = "orange"; + break; + case QXmppPresence::Status::DND: + icon = "red"; + break; + case QXmppPresence::Status::Invisible: + case QXmppPresence::Status::Offline: + icon = "gray"; + break; + } + if(!icon.isEmpty()) + setIcon(QIcon(":/icons/resource/"+icon+".png")); +} + +QXmppPresence::Status::Type rosterItem::getStatusType() +{ + return static_cast(data(StatusType).toInt()); +} + +void rosterItem::setPresenceType(QXmppPresence::Type type) +{ + setData(static_cast(type), PresenceType); + QString icon; + switch(type) + { + case QXmppPresence::Available: + break; + case QXmppPresence::Unavailable: + icon = "gray"; + break; + case QXmppPresence::Error: + case QXmppPresence::Subscribe: + case QXmppPresence::Subscribed: + case QXmppPresence::Unsubscribe: + case QXmppPresence::Unsubscribed: + case QXmppPresence::Probe: + break; + } + if(!icon.isEmpty()) + setIcon(QIcon(":/icons/resource/"+icon+".png")); +} + +QXmppPresence::Type rosterItem::getPresenceType() +{ + return static_cast(data(PresenceType).toInt()); +} + +void rosterItem::setAvatar(const QImage& image) +{ + setData(QVariant(image), rosterItem::Avatar); +} + +QImage rosterItem::getAvatar() +{ + return qvariant_cast(data(rosterItem::Avatar)); +} -- cgit v1.2.3