Newer
Older
#include "messagesearchresultsmodel.h"
MessageSearchResultsModel::MessageSearchResultsModel()
{
}
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
void MessageSearchResultsModel::clear()
{
beginResetModel();
mElements.clear();
endResetModel();
}
int MessageSearchResultsModel::rowCount(const QModelIndex &parent) const
{
Q_UNUSED(parent)
return mElements.length();
}
QVariant MessageSearchResultsModel::data(const QModelIndex &index, int role) const
{
QSharedPointer<RocketChatMessage> message;
if(mElements.size()){
message = mElements.at(index.row());
}else{
return QVariant();
}
if(role == text){
return message->getMessageString();
}else if(role == author){
return message->getAuthor();
}else if(role == authorId){
return message->getAuthorId();
}else if(role == linkurl){
if ( !message->getAttachments().empty() ) {
return message->getAttachments().first()->getUrl();
} else {
qWarning() << "linkurl not found";
}
}else if(role == type){
return message->getMessageType();
}else if(role == date){
return message->getFormattedDate();
}else if(role == time){
return message->getFormattedTime();
}else if(role == ownMessage){
return message->getOwnMessage();
}else if(role == height){
if ( !message->getAttachments().empty() ) {
return message->getAttachments().first()->getHeight();
} else {
qWarning() << "height not found";
}
}else if(role == width){
if ( !message->getAttachments().empty() ) {
return message->getAttachments().first()->getWidth();
} else {
qWarning() << "height not found";
}
}else if(role == formattedDate){
return message->getFormattedDate();
}else if(role == formattedTime){
return message->getFormattedTime();
}else if(role == messageType){
return message->getMessageType();
}else if(role == blocked){
return false;
}else if(role == id){
return message->getId();
}else if(role == rid){
return message->getRoomId();
}else if(role == timestamp){
return message->getTimestamp();
}
}
QHash<int, QByteArray> MessageSearchResultsModel::roleNames() const
{
QHash<int, QByteArray> roles;
roles[text] = QByteArrayLiteral( "msg" );
roles[author] = QByteArrayLiteral( "author" );
roles[authorId] = QByteArrayLiteral( "authorId" );
roles[linkurl] = QByteArrayLiteral( "linkurl" );
roles[type] = QByteArrayLiteral( "type" );
roles[date] = QByteArrayLiteral( "date" );
roles[time] = QByteArrayLiteral( "time" );
roles[ownMessage] = QByteArrayLiteral( "ownMessage" );
roles[height] = QByteArrayLiteral( "height" );
roles[width ] = QByteArrayLiteral( "width" );
roles[formattedDate ] = QByteArrayLiteral( "formattedDate" );
roles[formattedTime] = QByteArrayLiteral( "formattedTime" );
roles[messageType] = QByteArrayLiteral( "messageType" );
roles[blocked] = QByteArrayLiteral( "blocked" );
roles[id] = QByteArrayLiteral( "id" );
roles[rid] = QByteArrayLiteral("rid");
void MessageSearchResultsModel::setSearchResults(MessageList pResults)
{
beginResetModel();
mElements.clear();
mElements << pResults;
endResetModel();
}
int MessageSearchResultsModel::getPositionOfMessage(const QString &pId)
{
int pos = -1;
for(int i=0; i<mElements.size();i++){
auto element = mElements.at(i);
if(element->getId()==pId){
pos = i;
break;
}
}
return pos;
}