本文整理汇总了C++中kopete::Message::escapedBody方法的典型用法代码示例。如果您正苦于以下问题:C++ Message::escapedBody方法的具体用法?C++ Message::escapedBody怎么用?C++ Message::escapedBody使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类kopete::Message
的用法示例。
在下文中一共展示了Message::escapedBody方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: slotSendMsg
void AIMContact::slotSendMsg(Kopete::Message& message, Kopete::ChatSession *)
{
Oscar::Message msg;
QString s;
if (message.plainBody().isEmpty()) // no text, do nothing
return;
//okay, now we need to change the message.escapedBody from real HTML to aimhtml.
//looking right now for docs on that "format".
//looks like everything except for alignment codes comes in the format of spans
//font-style:italic -> <i>
//font-weight:600 -> <b> (anything > 400 should be <b>, 400 is not bold)
//text-decoration:underline -> <u>
//font-family: -> <font face="">
//font-size:xxpt -> <font ptsize=xx>
s=message.escapedBody();
s.replace ( QRegExp( QString::fromLatin1("<span style=\"([^\"]*)\">([^<]*)</span>")),
QString::fromLatin1("<style>\\1;\"\\2</style>"));
s.replace ( QRegExp( QString::fromLatin1("<style>([^\"]*)font-style:italic;([^\"]*)\"([^<]*)</style>")),
QString::fromLatin1("<i><style>\\1\\2\"\\3</style></i>"));
s.replace ( QRegExp( QString::fromLatin1("<style>([^\"]*)font-weight:600;([^\"]*)\"([^<]*)</style>")),
QString::fromLatin1("<b><style>\\1\\2\"\\3</style></b>"));
s.replace ( QRegExp( QString::fromLatin1("<style>([^\"]*)text-decoration:underline;([^\"]*)\"([^<]*)</style>")),
QString::fromLatin1("<u><style>\\1\\2\"\\3</style></u>"));
s.replace ( QRegExp( QString::fromLatin1("<style>([^\"]*)font-family:([^;]*);([^\"]*)\"([^<]*)</style>")),
QString::fromLatin1("<font face=\"\\2\"><style>\\1\\3\"\\4</style></font>"));
s.replace ( QRegExp( QString::fromLatin1("<style>([^\"]*)font-size:([^p]*)pt;([^\"]*)\"([^<]*)</style>")),
QString::fromLatin1("<font ptsize=\"\\2\"><style>\\1\\3\"\\4</style></font>"));
s.replace ( QRegExp( QString::fromLatin1("<style>([^\"]*)color:([^;]*);([^\"]*)\"([^<]*)</style>")),
QString::fromLatin1("<font color=\"\\2\"><style>\\1\\3\"\\4</style></font>"));
s.replace ( QRegExp( QString::fromLatin1("<style>([^\"]*)\"([^<]*)</style>")),
QString::fromLatin1("\\2"));
//okay now change the <font ptsize="xx"> to <font size="xx">
//0-9 are size 1
s.replace ( QRegExp ( QString::fromLatin1("<font ptsize=\"\\d\">")),
QString::fromLatin1("<font size=\"1\">"));
//10-11 are size 2
s.replace ( QRegExp ( QString::fromLatin1("<font ptsize=\"1[01]\">")),
QString::fromLatin1("<font size=\"2\">"));
//12-13 are size 3
s.replace ( QRegExp ( QString::fromLatin1("<font ptsize=\"1[23]\">")),
QString::fromLatin1("<font size=\"3\">"));
//14-16 are size 4
s.replace ( QRegExp ( QString::fromLatin1("<font ptsize=\"1[456]\">")),
QString::fromLatin1("<font size=\"4\">"));
//17-22 are size 5
s.replace ( QRegExp ( QString::fromLatin1("<font ptsize=\"(?:1[789]|2[012])\">")),
QString::fromLatin1("<font size=\"5\">"));
//23-29 are size 6
s.replace ( QRegExp ( QString::fromLatin1("<font ptsize=\"2[3456789]\">")),QString::fromLatin1("<font size=\"6\">"));
//30- (and any I missed) are size 7
s.replace ( QRegExp ( QString::fromLatin1("<font ptsize=\"[^\"]*\">")),QString::fromLatin1("<font size=\"7\">"));
s.replace ( QRegExp ( QString::fromLatin1("<br[ /]*>")), QString::fromLatin1("<br>") );
// strip left over line break
s.remove( QRegExp( QString::fromLatin1( "<br>$" ) ) );
kdDebug(14190) << k_funcinfo << "sending "
<< s << endl;
// XXX Need to check for message size?
if ( m_details.hasCap( CAP_UTF8 ) )
msg.setText( Oscar::Message::UCS2, s );
else
msg.setText( Oscar::Message::UserDefined, s, contactCodec() );
msg.setReceiver(mName);
msg.setTimestamp(message.timestamp());
msg.setType(0x01);
mAccount->engine()->sendMessage(msg);
// Show the message we just sent in the chat window
manager(Kopete::Contact::CanCreate)->appendMessage(message);
manager(Kopete::Contact::CanCreate)->messageSucceeded();
}