blob: 34365314094793db42fc1322d067ebb4b849b52e (
plain)
1
2
3
4
5
6
7
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
/*
* Copyright (c) 2010-2013 Kevin Smith
* Licensed under the GNU General Public License v3.
* See Documentation/Licenses/GPLv3.txt for more information.
*/
#include <Swift/QtUI/ChatSnippet.h>
#include <QFile>
#include <Swift/QtUI/QtSwiftUtil.h>
namespace Swift {
ChatSnippet::ChatSnippet(bool appendToPrevious) : appendToPrevious_(appendToPrevious) {
}
ChatSnippet::~ChatSnippet() {
}
QString ChatSnippet::timeToEscapedString(const QDateTime& time) {
QDate now(QDate::currentDate());
QString date = "";
if (time.date().daysTo(now) > 0) {
date = "ddd ";
}
if (time.date().month() != now.month()) {
date = date + "MMMM ";
}
if (time.date().daysTo(now) > 6) {
date = date + "d ";
}
if (time.date().year() != now.year()) {
date = date + "yy ";
}
date += "h:mm";
return escape(time.toString(date));
}
QString ChatSnippet::wrapResizable(const QString& text) {
return "<span class='swift_resizable'>" + text + "</span>";
}
QString ChatSnippet::directionToCSS(Direction direction) {
return direction == RTL ? QString("rtl") : QString("ltr");
}
ChatSnippet::Direction ChatSnippet::getDirection(const ChatWindow::ChatMessage& message) {
boost::shared_ptr<ChatWindow::ChatTextMessagePart> textPart;
std::string text = "";
foreach (boost::shared_ptr<ChatWindow::ChatMessagePart> part, message.getParts()) {
if ((textPart = boost::dynamic_pointer_cast<ChatWindow::ChatTextMessagePart>(part))) {
text = textPart->text;
break;
}
}
return getDirection(text);
}
ChatSnippet::Direction ChatSnippet::getDirection(const std::string& message) {
return getDirection(P2QSTRING(message));
}
ChatSnippet::Direction ChatSnippet::getDirection(const QString& message) {
/*
for (int i = 0; i < message.size(); ++i) {
switch (message.at(i).direction()) {
case QChar::DirL:
case QChar::DirLRE:
case QChar::DirLRO:
return ChatSnippet::LTR;
case QChar::DirR:
case QChar::DirAL:
case QChar::DirRLE:
case QChar::DirRLO:
return ChatSnippet::RTL;
case QChar::DirEN:
case QChar::DirES:
case QChar::DirET:
case QChar::DirAN:
case QChar::DirCS:
case QChar::DirB:
case QChar::DirWS:
case QChar::DirON:
case QChar::DirS:
case QChar::DirPDF:
case QChar::DirNSM:
case QChar::DirBN:
break;
}
}
return ChatSnippet::LTR;
*/
return message.isRightToLeft() ? ChatSnippet::RTL : ChatSnippet::LTR;
}
}
|