diff options
| author | Manjeet Dahiya <manjeetdahiya@gmail.com> | 2010-09-08 09:23:18 +0000 |
|---|---|---|
| committer | Manjeet Dahiya <manjeetdahiya@gmail.com> | 2010-09-08 09:23:18 +0000 |
| commit | da88f5f0bb5e73bc69bf7ed3962691622b1ae4f9 (patch) | |
| tree | c3686f7649785a2bfcc2c637a1588acdb8a721e8 /examples/GuiClient/rosterItem.cpp | |
| parent | 3431f5a37174b7eb8490672686db68df2b48e35f (diff) | |
| download | qxmpp-da88f5f0bb5e73bc69bf7ed3962691622b1ae4f9.tar.gz | |
add Gui Client example
Diffstat (limited to 'examples/GuiClient/rosterItem.cpp')
| -rw-r--r-- | examples/GuiClient/rosterItem.cpp | 107 |
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));
+}
|
