aboutsummaryrefslogtreecommitdiff
path: root/examples/GuiClient/rosterItem.cpp
diff options
context:
space:
mode:
authorManjeet Dahiya <manjeetdahiya@gmail.com>2010-09-08 09:23:18 +0000
committerManjeet Dahiya <manjeetdahiya@gmail.com>2010-09-08 09:23:18 +0000
commitda88f5f0bb5e73bc69bf7ed3962691622b1ae4f9 (patch)
treec3686f7649785a2bfcc2c637a1588acdb8a721e8 /examples/GuiClient/rosterItem.cpp
parent3431f5a37174b7eb8490672686db68df2b48e35f (diff)
downloadqxmpp-da88f5f0bb5e73bc69bf7ed3962691622b1ae4f9.tar.gz
add Gui Client example
Diffstat (limited to 'examples/GuiClient/rosterItem.cpp')
-rw-r--r--examples/GuiClient/rosterItem.cpp107
1 files changed, 107 insertions, 0 deletions
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 <QImage>
+
+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<int>(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<QXmppPresence::Status::Type>(data(StatusType).toInt());
+}
+
+void rosterItem::setPresenceType(QXmppPresence::Type type)
+{
+ setData(static_cast<int>(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<QXmppPresence::Type>(data(PresenceType).toInt());
+}
+
+void rosterItem::setAvatar(const QImage& image)
+{
+ setData(QVariant(image), rosterItem::Avatar);
+}
+
+QImage rosterItem::getAvatar()
+{
+ return qvariant_cast<QImage>(data(rosterItem::Avatar));
+}