diff options
| author | Tobias Markmann <tm@ayena.de> | 2015-07-09 08:30:11 (GMT) |
|---|---|---|
| committer | Tobias Markmann <tm@ayena.de> | 2015-07-10 14:00:16 (GMT) |
| commit | 7af21fdd59af3b3112cff69996301605859af84c (patch) | |
| tree | 5a1c79ac5d8c3a5521b098f68ae6c190a291455c /Swift/QtUI/EventViewer/EventDelegate.cpp | |
| parent | a23d903d67f05257f0e9376a212b83045ea768f1 (diff) | |
| download | swift-7af21fdd59af3b3112cff69996301605859af84c.zip swift-7af21fdd59af3b3112cff69996301605859af84c.tar.bz2 | |
Create notice events for incoming file-transfers
Test-Information:
Send a file from one Swift instance to another. The UX is similar to
that of a MUC invite, clicking the notice will bring the relevant chat
in front.
Change-Id: Ief3cd7371ae01b2b38b6d1af36189df961eacef4
Diffstat (limited to 'Swift/QtUI/EventViewer/EventDelegate.cpp')
| -rw-r--r-- | Swift/QtUI/EventViewer/EventDelegate.cpp | 26 |
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 | ||
| 16 | namespace Swift { | 17 | namespace Swift { |
| 17 | 18 | ||
| 18 | EventDelegate::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) { | 19 | EventDelegate::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 | ||
| 22 | QSize EventDelegate::sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index ) const { | 28 | QSize 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 | ||
| 51 | EventType EventDelegate::getEventType(boost::shared_ptr<StanzaEvent> event) const { | 59 | EventType 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 | ||
Swift