本文整理汇总了C++中kopete::Message::plainBody方法的典型用法代码示例。如果您正苦于以下问题:C++ Message::plainBody方法的具体用法?C++ Message::plainBody怎么用?C++ Message::plainBody使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类kopete::Message
的用法示例。
在下文中一共展示了Message::plainBody方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: while
QStringList Kopete::ChatSession::findUrls(const Kopete::Message &msg )
{
Kopete::Message message = msg;
//we check the message for every pattern
QString tempstr = message.plainBody();
QStringList regexppatterns = message.regexpPatterns();
QRegExp linkregexp;
QMap<int,QString> mapUrl;
for (int i = 0; i < regexppatterns.size(); ++i) {
linkregexp.setPattern(regexppatterns[i]);
int pos = 0;
while ((pos = linkregexp.indexIn(tempstr, pos)) != -1) {
mapUrl.insert(pos,linkregexp.cap(0));
pos += linkregexp.matchedLength(); }
}
//we use QMap to sort links as they are in the message (if there are many links in one message)
//lasturllist[0] - is the earliest
QStringList lasturllist;
QMapIterator< int, QString > i(mapUrl);
while (i.hasNext()) { i.next(); lasturllist << i.value(); }
lasturllist.replaceInStrings(" ", "");
//add "http://" to link if needed to open it with a browser
lasturllist.replaceInStrings(QRegExp( regexppatterns[1] ), QLatin1String("\\1http://\\2\\3" ));
return lasturllist;
}
示例2: gg_send_message
int
GaduSession::sendMessage( uin_t recipient, const Kopete::Message& msg, int msgClass )
{
QString sendMsg;
QCString cpMsg;
KGaduMessage* gadumessage;
if ( isConnected() ) {
gadumessage = rtf->convertToGaduMessage( msg );
if ( gadumessage ) {
const void* data = (const void*)gadumessage->rtf.data();
cpMsg = textcodec->fromUnicode( gadumessage->message );
int o;
o = gg_send_message_richtext( session_, msgClass, recipient, (const unsigned char *)cpMsg.data(), (const unsigned char*) data, gadumessage->rtf.size() );
gadumessage->rtf.resize(0);
delete gadumessage;
return o;
}
else {
sendMsg = msg.plainBody();
sendMsg.replace( QString::fromAscii( "\n" ), QString::fromAscii( "\r\n" ) );
cpMsg = textcodec->fromUnicode( sendMsg );
return gg_send_message( session_, msgClass, recipient, (const unsigned char *)cpMsg.data() );
}
}
else {
emit error( i18n("Not Connected"), i18n("You are not connected to the server.") );
}
return 1;
}
示例3: messageReceived
void Kopete::ChatSession::appendMessage( Kopete::Message &msg )
{
msg.setManager( this );
if ( msg.direction() == Kopete::Message::Inbound )
{
QString nick=myself()->property(Kopete::Global::Properties::self()->nickName()).value().toString();
if ( KopetePrefs::prefs()->highlightEnabled() && !nick.isEmpty() &&
msg.plainBody().contains( QRegExp( QString::fromLatin1( "\\b(%1)\\b" ).arg( nick ), false ) ) )
{
msg.setImportance( Kopete::Message::Highlight );
}
emit messageReceived( msg, this );
}
// outbound messages here are ones the user has sent that are now
// getting reflected back to the chatwindow. they should go down
// the incoming chain.
Kopete::Message::MessageDirection chainDirection = msg.direction();
if( chainDirection == Kopete::Message::Outbound )
chainDirection = Kopete::Message::Inbound;
chainForDirection( chainDirection )->processMessage( msg );
// emit messageAppended( msg, this );
}
示例4: messageReceived
void Kopete::ChatSession::appendMessage( Kopete::Message &msg )
{
msg.setManager( this );
if ( msg.direction() == Kopete::Message::Inbound )
{
const QString nick = myself()->nickName();
if ( Kopete::BehaviorSettings::self()->highlightEnabled() && !nick.isEmpty() )
{
const QString nickNameRegExp = QString::fromLatin1( "(^|[\\W])(%1)([\\W]|$)" ).arg( QRegExp::escape( nick ) );
if ( msg.plainBody().contains( QRegExp( nickNameRegExp, Qt::CaseInsensitive ) ) )
{
msg.setImportance( Kopete::Message::Highlight );
}
}
emit messageReceived( msg, this );
}
// outbound messages here are ones the user has sent that are now
// getting reflected back to the chatwindow. they should go down
// the incoming chain.
Kopete::Message::MessageDirection chainDirection = msg.direction();
if( chainDirection == Kopete::Message::Outbound )
chainDirection = Kopete::Message::Inbound;
chainForDirection( chainDirection )->processMessage( msg );
//looking for urls in the message
urlSearch( msg );
// emit messageAppended( msg, this );
}
示例5: send
void SMSClient::send(const Kopete::Message& msg)
{
kdWarning( 14160 ) << k_funcinfo << "m_account = " << m_account << " (should be non-zero!!)" << endl;
if (!m_account) return;
m_msg = msg;
KConfigGroup* c = m_account->configGroup();
QString provider = c->readEntry(QString("%1:%2").arg("SMSClient").arg("ProviderName"), QString::null);
if (provider.isNull())
{
KMessageBox::error(Kopete::UI::Global::mainWidget(), i18n("No provider configured"), i18n("Could Not Send Message"));
return;
}
QString programName = c->readEntry(QString("%1:%2").arg("SMSClient").arg("ProgramName"). QString::null);
if (programName.isNull())
programName = "/usr/bin/sms_client";
KProcess* p = new KProcess;
QString message = msg.plainBody();
QString nr = msg.to().first()->contactId();
*p << programName;
*p << provider + ":" + nr;
*p << message;
QObject::connect(p, SIGNAL(processExited(KProcess *)), this, SLOT(slotSendFinished(KProcess*)));
QObject::connect(p, SIGNAL(receivedStdout(KProcess*, char*, int)), this, SLOT(slotReceivedOutput(KProcess*, char*, int)));
QObject::connect(p, SIGNAL(receivedStderr(KProcess*, char*, int)), this, SLOT(slotReceivedOutput(KProcess*, char*, int)));
p->start(KProcess::Block, KProcess::AllOutput);
}
示例6: slotTranslateChat
void TranslatorGUIClient::slotTranslateChat()
{
if ( !m_manager->view() )
return;
Kopete::Message msg = m_manager->view()->currentMessage();
QString body = msg.plainBody();
if ( body.isEmpty() )
return;
QString src_lang = TranslatorPlugin::plugin()->m_myLang;
QString dst_lang;
QList<Kopete::Contact*> list = m_manager->members();
Kopete::MetaContact *to = list.first()->metaContact();
dst_lang = to->pluginData( TranslatorPlugin::plugin(), "languageKey" );
if ( dst_lang.isEmpty() || dst_lang == "null" )
{
kDebug( 14308 ) << "Cannot determine dst Metacontact language (" << to->displayName() << ")";
return;
}
// We search for src_dst
TranslatorPlugin::plugin()->translateMessage( body, src_lang, dst_lang, this, SLOT(messageTranslated(QVariant)) );
}
示例7: slotOutgoingMessage
void NowListeningPlugin::slotOutgoingMessage(Kopete::Message& msg)
{
// Only do stuff if autoadvertising is on
if(!NowListeningConfig::self()->chatAdvertising())
return;
QString originalBody = msg.plainBody();
// If it is a /media message, don't process it
if(originalBody.startsWith(NowListeningConfig::self()->header()))
return;
// What will be sent
QString newBody;
// Getting the list of contacts the message will be sent to to determine if at least
// one of them has never gotten the current music information.
Kopete::ContactPtrList dest = msg.to();
bool mustSendAnyway = false;
for( Kopete::Contact *c = dest.first() ; c ; c = dest.next() )
{
const QString& cId = c->contactId();
if( 0 == d->m_musicSentTo.contains( cId ) )
{
mustSendAnyway = true;
// The contact will get the music information so we put it in the list.
d->m_musicSentTo.push_back( cId );
}
}
bool newTrack = newTrackPlaying();
// We must send the music information if someone has never gotten it or the track(s)
// has changed since it was last sent.
if ( mustSendAnyway || newTrack )
{
QString advert = mediaPlayerAdvert(false); // false since newTrackPlaying() did the update
if( !advert.isEmpty() )
newBody = originalBody + "<br>" + advert;
// If we send because the information has changed since it was last sent, we must
// rebuild the list of contacts the latest information was sent to.
if( newTrack )
{
d->m_musicSentTo.clear();
for( Kopete::Contact *c = dest.first() ; c ; c = dest.next() )
{
d->m_musicSentTo.push_back( c->contactId() );
}
}
}
// If the body has been modified, change the message
if( !newBody.isEmpty() )
{
msg.setBody( newBody, Kopete::Message::RichText );
}
}
示例8: sendAutoResponse
void AIMContact::sendAutoResponse(Kopete::Message& msg)
{
// The target time is 2 minutes later than the last message
int delta = m_lastAutoresponseTime.secsTo( QDateTime::currentDateTime() );
kdDebug(14152) << k_funcinfo << "Last autoresponse time: " << m_lastAutoresponseTime << endl;
kdDebug(14152) << k_funcinfo << "Current time: " << QDateTime::currentDateTime() << endl;
kdDebug(14152) << k_funcinfo << "Difference: " << delta << endl;
// Check to see if we're past that time
if(delta > 120)
{
kdDebug(14152) << k_funcinfo << "Sending auto response" << endl;
// This code was yoinked straight from OscarContact::slotSendMsg()
// If only that slot wasn't private, but I'm not gonna change it right now.
Oscar::Message message;
if ( m_details.hasCap( CAP_UTF8 ) )
{
message.setText( Oscar::Message::UCS2, msg.plainBody() );
}
else
{
QTextCodec* codec = contactCodec();
message.setText( Oscar::Message::UserDefined, msg.plainBody(), codec );
}
message.setTimestamp( msg.timestamp() );
message.setSender( mAccount->accountId() );
message.setReceiver( mName );
message.setType( 0x01 );
// isAuto defaults to false
mAccount->engine()->sendMessage( message, true);
kdDebug(14152) << k_funcinfo << "Sent auto response" << endl;
manager(Kopete::Contact::CanCreate)->appendMessage(msg);
manager(Kopete::Contact::CanCreate)->messageSucceeded();
// Update the last autoresponse time
m_lastAutoresponseTime = QDateTime::currentDateTime();
}
else
{
kdDebug(14152) << k_funcinfo << "Not enough time since last autoresponse, NOT sending" << endl;
}
}
示例9: sendMessage
int MeanwhileSession::sendMessage(Kopete::Message &message)
{
HERE;
MeanwhileContact *contact =
static_cast<MeanwhileContact *>(message.to().first());
if (!contact) {
mwDebug() << "No target for message!" <<endl;
return 0;
}
struct mwIdBlock target = { strdup(contact->meanwhileId().toAscii()), 0L };
struct mwConversation *conv;
conv = mwServiceIm_getConversation(imService, &target);
free(target.user);
if (conv == 0L) {
mwDebug() << "No target for conversation with '"
<< contact->meanwhileId() << "'" << endl;
return 0;
}
struct ConversationData *convdata = (struct ConversationData *)
mwConversation_getClientData(conv);
if (convdata == 0L) {
convdata = createConversationData(conv, contact, true);
if (convdata == 0L) {
mwDebug() << "No memory for conversation data!" << endl;
return 0;
}
}
/* if there's other messages in the queue, or the conversation isn't open,
* then append to the queue instead of sending right away */
if ((convdata->queue && !convdata->queue->isEmpty()) ||
!mwConversation_isOpen(conv)) {
convdata->queue->append(message);
mwConversation_open(conv);
} else if (!mwConversation_send(conv, mwImSend_PLAIN,
message.plainBody().toAscii())) {
convdata->chat->appendMessage(message);
convdata->chat->messageSucceeded();
}
return 1;
}
示例10: 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();
}
示例11: slotOutgoingMessage
void TextEffectPlugin::slotOutgoingMessage( Kopete::Message& msg )
{
if(msg.direction() != Kopete::Message::Outbound)
return;
QStringList colors=m_config->colors();
if(m_config->colorChar() || m_config->colorWords() || m_config->lamer() || m_config->waves() )
{
QString original=msg.plainBody();
QString resultat;
unsigned int c=0;
bool wavein=false;
for(unsigned int f=0;f<original.length();f++)
{
QChar x=original[f];
if(f==0 || m_config->colorChar() || (m_config->colorWords() && x==' ' ))
{
if(f!=0)
resultat+="</font>";
resultat+="<font color=\"";
resultat+=colors[c];
if(m_config->colorRandom())
c=rand()%colors.count();
else
{
c++;
if(c >= colors.count())
c=0;
}
resultat+="\">";
}
switch (x.latin1())
{
case '>':
resultat+=">";
break;
case '<':
resultat+="<";
break;
case '&':
resultat+="&";
break;
case '\n':
resultat+="<br>";
case 'a':
case 'A':
if(m_config->lamer())
{
resultat+="4";
break;
} //else, go to the default, all other case have this check
case 'e':
case 'E':
if(m_config->lamer())
{
resultat+="3";
break;
}//else, go to the default, all other case have this check
case 'i':
case 'I':
if(m_config->lamer())
{
resultat+="1";
break;
}//else, go to the default, all other case have this check
case 'l':
case 'L':
if(m_config->lamer())
{
resultat+="|";
break;
}//else, go to the default, all other case have this check
case 't':
case 'T':
if(m_config->lamer())
{
resultat+="7";
break;
}//else, go to the default, all other case have this check
case 's':
case 'S':
if(m_config->lamer())
{
resultat+="5";
break;
}//else, go to the default, all other case have this check
case 'o':
case 'O':
if(m_config->lamer())
{
resultat+="0";
break;
}//else, go to the default, all other case have this check
default:
if(m_config->waves())
{
resultat+= wavein ? x.lower() : x.upper();
//.........这里部分代码省略.........
示例12: testPrimitives
void KopeteMessage_Test::testPrimitives()
{
/**********************************************
* from(), to()
*********************************************/
{
Kopete::Message msg( m_contactFrom, m_contactTo);
Q_ASSERT(msg.from());
Q_ASSERT(!msg.to().isEmpty());
}
/**********************************************
* Direction
*********************************************/
{
Kopete::Message msg;
msg.setDirection( Kopete::Message::Inbound );
QCOMPARE(msg.direction(), Kopete::Message::Inbound);
}
{
Kopete::Message msg;
msg.setDirection( Kopete::Message::Outbound );
QCOMPARE(msg.direction(), Kopete::Message::Outbound);
}
{
Kopete::Message msg;
msg.setDirection( Kopete::Message::Internal );
QCOMPARE(msg.direction(), Kopete::Message::Internal);
}
/**********************************************
* Message Format
*********************************************/
{
Kopete::Message msg;
msg.setPlainBody( QLatin1String("foobar") );
QCOMPARE(msg.format(), Qt::PlainText);
}
{
Kopete::Message msg;
msg.setHtmlBody( QLatin1String("foobar") );
QCOMPARE(msg.format(), Qt::RichText);
}
{
QString m = "foobar";
Kopete::Message msg;
msg.setPlainBody(m);
QCOMPARE(msg.format(), Qt::PlainText);
msg.setHtmlBody(m);
QCOMPARE(msg.format(), Qt::RichText);
}
/**********************************************
* setBody()
*********************************************/
{
QString m = "foobar";
Kopete::Message msg;
msg.setHtmlBody( m );
msg.setPlainBody("NEW");
QCOMPARE(QString("NEW"), msg.plainBody());
msg.setPlainBody("NEW_NEW");
QCOMPARE(msg.plainBody(), QString("NEW_NEW"));
}
{
QString m = "foobar";
Kopete::Message msg;
msg.setPlainBody( m );
msg.setPlainBody("NEW");
QCOMPARE(msg.plainBody(), QString("NEW"));
msg.setHtmlBody("NEW_NEW");
QCOMPARE(msg.plainBody(), QString("NEW_NEW"));
}
{
QString m = "<html><head></head><body foo=\"bar\"> <b>HELLO WORLD</b> </body></html>";
Kopete::Message msg;
msg.setPlainBody( m );
QCOMPARE(msg.plainBody(), m);
msg.setPlainBody("<simple> SIMPLE");
QCOMPARE(msg.plainBody(), QString("<simple> SIMPLE"));
msg.setHtmlBody("<simple>SIMPLE</simple>");
QCOMPARE(msg.plainBody(), QString("SIMPLE") );
QCOMPARE(Kopete::Message::unescape( QString( "<simple>SIMPLE</simple>" ) ), QString("SIMPLE") );
QCOMPARE(Kopete::Message::unescape( QString( "Foo <img src=\"foo.png\" />" ) ), QString("Foo ") );
QCOMPARE(Kopete::Message::unescape( QString( "Foo <img src=\"foo.png\" title=\"Bar\" />" ) ), QString("Foo Bar") );
//.........这里部分代码省略.........