summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Smith <git@kismith.co.uk>2010-03-21 22:33:09 (GMT)
committerKevin Smith <git@kismith.co.uk>2010-03-22 14:54:54 (GMT)
commitf5c2750f56c78d115bb9e8a7c5d50316da98b6d5 (patch)
tree661c761e7ebb526e1d71848c127046605e036729 /Swift/QtUI/EventViewer/QtEvent.cpp
parent37a3ff6afe96c39bbf075d05da72e5f2c684dfa4 (diff)
downloadswift-f5c2750f56c78d115bb9e8a7c5d50316da98b6d5.zip
swift-f5c2750f56c78d115bb9e8a7c5d50316da98b6d5.tar.bz2
Lots of plumbing for event view.
This isn't ready yet, but clicking on a message in the event view will now cause the chat to pop up, and the plumbing is there for doing something with subscription requests - I just don't, yet.
Diffstat (limited to 'Swift/QtUI/EventViewer/QtEvent.cpp')
-rw-r--r--Swift/QtUI/EventViewer/QtEvent.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/Swift/QtUI/EventViewer/QtEvent.cpp b/Swift/QtUI/EventViewer/QtEvent.cpp
index 2dc1fb0..3aae213 100644
--- a/Swift/QtUI/EventViewer/QtEvent.cpp
+++ b/Swift/QtUI/EventViewer/QtEvent.cpp
@@ -1,22 +1,23 @@
#include "Swift/QtUI/EventViewer/QtEvent.h"
#include "Swiften/Events/MessageEvent.h"
+#include "Swiften/Events/SubscriptionRequestEvent.h"
#include "Swift/QtUI/QtSwiftUtil.h"
namespace Swift {
-QtEvent::QtEvent(boost::shared_ptr<Event> event, bool active) : event_(event) {
+QtEvent::QtEvent(boost::shared_ptr<StanzaEvent> event, bool active) : event_(event) {
active_ = active;
}
QVariant QtEvent::data(int role) {
switch (role) {
+ case Qt::ToolTipRole:
case Qt::DisplayRole: return QVariant(text());
case Qt::TextColorRole: return active_ ? Qt::black : Qt::darkGray;
case Qt::BackgroundColorRole: return active_ ? Qt::white : Qt::lightGray;
- /*case Qt::ToolTipRole: return isContact() ? toolTipString() : QVariant();
- case StatusTextRole: return statusText_;
+ /*case StatusTextRole: return statusText_;
case AvatarRole: return avatar_;
case PresenceIconRole: return getPresenceIcon();*/
default: return QVariant();
@@ -25,7 +26,16 @@ QVariant QtEvent::data(int role) {
QString QtEvent::text() {
boost::shared_ptr<MessageEvent> messageEvent = boost::dynamic_pointer_cast<MessageEvent>(event_);
- return messageEvent ? P2QSTRING(messageEvent->getStanza()->getBody()) : "Bob: ";
+ if (messageEvent) {
+ return P2QSTRING(messageEvent->getStanza()->getBody());
+ }
+ boost::shared_ptr<SubscriptionRequestEvent> subscriptionRequestEvent = boost::dynamic_pointer_cast<SubscriptionRequestEvent>(event_);
+ if (subscriptionRequestEvent) {
+ String reason = subscriptionRequestEvent->getReason();
+ String message = subscriptionRequestEvent->getJID().toBare().toString() + " would like to add you to their roster" + (reason.isEmpty() ? "." : ", saying '" + reason + "'.");
+ return P2QSTRING(message);
+ }
+ return "";
}
}