summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swift/QtUI/EventViewer/EventDelegate.cpp')
-rw-r--r--Swift/QtUI/EventViewer/EventDelegate.cpp26
1 files changed, 19 insertions, 7 deletions
diff --git a/Swift/QtUI/EventViewer/EventDelegate.cpp b/Swift/QtUI/EventViewer/EventDelegate.cpp
index 7bbfee2..cd657b8 100644
--- a/Swift/QtUI/EventViewer/EventDelegate.cpp
+++ b/Swift/QtUI/EventViewer/EventDelegate.cpp
@@ -1,23 +1,29 @@
1/* 1/*
2 * Copyright (c) 2010 Isode Limited. 2 * Copyright (c) 2010-2015 Isode Limited.
3 * All rights reserved. 3 * All rights reserved.
4 * See the COPYING file for more information. 4 * See the COPYING file for more information.
5 */ 5 */
6 6
7#include "EventDelegate.h" 7#include <Swift/QtUI/EventViewer/EventDelegate.h>
8 8
9#include <QDebug> 9#include <QDebug>
10 10
11#include "Swift/Controllers/XMPPEvents/MessageEvent.h" 11#include <Swift/Controllers/XMPPEvents/ErrorEvent.h>
12#include "Swift/Controllers/XMPPEvents/ErrorEvent.h" 12#include <Swift/Controllers/XMPPEvents/IncomingFileTransferEvent.h>
13#include "Swift/Controllers/XMPPEvents/SubscriptionRequestEvent.h" 13#include <Swift/Controllers/XMPPEvents/MUCInviteEvent.h>
14#include "Swift/Controllers/XMPPEvents/MUCInviteEvent.h" 14#include <Swift/Controllers/XMPPEvents/MessageEvent.h>
15#include <Swift/Controllers/XMPPEvents/SubscriptionRequestEvent.h>
15 16
16namespace Swift { 17namespace Swift {
17 18
18EventDelegate::EventDelegate() : QStyledItemDelegate(), messageDelegate_(QtEvent::SenderRole, Qt::DisplayRole, false), subscriptionDelegate_(QtEvent::SenderRole, Qt::DisplayRole, true), errorDelegate_(QtEvent::SenderRole, Qt::DisplayRole, true), mucInviteDelegate_(QtEvent::SenderRole, Qt::DisplayRole, false) { 19EventDelegate::EventDelegate() : QStyledItemDelegate(),
20 messageDelegate_(QtEvent::SenderRole, Qt::DisplayRole, false),
21 subscriptionDelegate_(QtEvent::SenderRole, Qt::DisplayRole, true),
22 errorDelegate_(QtEvent::SenderRole, Qt::DisplayRole, true),
23 mucInviteDelegate_(QtEvent::SenderRole, Qt::DisplayRole, false),
24 incomingFileTransferDelegate_(QtEvent::SenderRole, Qt::DisplayRole, false) {
19 25
20} 26}
21 27
22QSize EventDelegate::sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index ) const { 28QSize EventDelegate::sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index ) const {
23 QtEvent* item = static_cast<QtEvent*>(index.internalPointer()); 29 QtEvent* item = static_cast<QtEvent*>(index.internalPointer());
@@ -27,10 +33,11 @@ QSize EventDelegate::sizeHint(const QStyleOptionViewItem& option, const QModelIn
27 switch (getEventType(item->getEvent())) { 33 switch (getEventType(item->getEvent())) {
28 case MessageEventType: return messageDelegate_.sizeHint(option, item); 34 case MessageEventType: return messageDelegate_.sizeHint(option, item);
29 case SubscriptionEventType: return subscriptionDelegate_.sizeHint(option, item); 35 case SubscriptionEventType: return subscriptionDelegate_.sizeHint(option, item);
30 case ErrorEventType: return errorDelegate_.sizeHint(option, item); 36 case ErrorEventType: return errorDelegate_.sizeHint(option, item);
31 case MUCInviteEventType: return mucInviteDelegate_.sizeHint(option, item); 37 case MUCInviteEventType: return mucInviteDelegate_.sizeHint(option, item);
38 case IncomingFileTransferEventType: return incomingFileTransferDelegate_.sizeHint(option, item);
32 } 39 }
33 assert(false); 40 assert(false);
34 return QSize(); 41 return QSize();
35} 42}
36 43
@@ -43,10 +50,11 @@ void EventDelegate::paint(QPainter* painter, const QStyleOptionViewItem& option,
43 switch (getEventType(item->getEvent())) { 50 switch (getEventType(item->getEvent())) {
44 case MessageEventType: messageDelegate_.paint(painter, option, item);break; 51 case MessageEventType: messageDelegate_.paint(painter, option, item);break;
45 case SubscriptionEventType: subscriptionDelegate_.paint(painter, option, item);break; 52 case SubscriptionEventType: subscriptionDelegate_.paint(painter, option, item);break;
46 case ErrorEventType: errorDelegate_.paint(painter, option, item);break; 53 case ErrorEventType: errorDelegate_.paint(painter, option, item);break;
47 case MUCInviteEventType: mucInviteDelegate_.paint(painter, option, item);break; 54 case MUCInviteEventType: mucInviteDelegate_.paint(painter, option, item);break;
55 case IncomingFileTransferEventType: incomingFileTransferDelegate_.paint(painter, option, item);break;
48 } 56 }
49} 57}
50 58
51EventType EventDelegate::getEventType(boost::shared_ptr<StanzaEvent> event) const { 59EventType EventDelegate::getEventType(boost::shared_ptr<StanzaEvent> event) const {
52 boost::shared_ptr<MessageEvent> messageEvent = boost::dynamic_pointer_cast<MessageEvent>(event); 60 boost::shared_ptr<MessageEvent> messageEvent = boost::dynamic_pointer_cast<MessageEvent>(event);
@@ -63,10 +71,14 @@ EventType EventDelegate::getEventType(boost::shared_ptr<StanzaEvent> event) cons
63 } 71 }
64 boost::shared_ptr<MUCInviteEvent> mucInviteEvent = boost::dynamic_pointer_cast<MUCInviteEvent>(event); 72 boost::shared_ptr<MUCInviteEvent> mucInviteEvent = boost::dynamic_pointer_cast<MUCInviteEvent>(event);
65 if (mucInviteEvent) { 73 if (mucInviteEvent) {
66 return MUCInviteEventType; 74 return MUCInviteEventType;
67 } 75 }
76 boost::shared_ptr<IncomingFileTransferEvent> incomingFileTransferEvent = boost::dynamic_pointer_cast<IncomingFileTransferEvent>(event);
77 if (incomingFileTransferEvent) {
78 return IncomingFileTransferEventType;
79 }
68 //I don't know what this is. 80 //I don't know what this is.
69 assert(false); 81 assert(false);
70 return MessageEventType; 82 return MessageEventType;
71} 83}
72 84