[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdenetwork/kopete/protocols/oscar
From: Roman Jarosz <kedgedev () centrum ! cz>
Date: 2008-08-29 22:07:56
Message-ID: 1220047676.389019.9100.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 854615 by rjarosz:
Use the message state interface in ICQ and AIM.
M +2 -0 aimcontactbase.cpp
M +2 -0 icqcontactbase.cpp
M +24 -0 oscarcontact.cpp
M +2 -0 oscarcontact.h
--- trunk/KDE/kdenetwork/kopete/protocols/oscar/aimcontactbase.cpp #854614:854615
@@ -230,12 +230,14 @@
bool allowUCS2 = !isOnline() || !(m_details.userClass() & Oscar::CLASS_ICQ) || \
m_details.hasCap( CAP_UTF8 ); msg.setText( Oscar::Message::encodingForText( s, \
allowUCS2 ), s, contactCodec() );
+ msg.setId( message.id() );
msg.setReceiver(mName);
msg.setTimestamp(message.timestamp());
msg.setChannel(0x01);
mAccount->engine()->sendMessage(msg);
+ message.setState( Kopete::Message::StateSending );
// Show the message we just sent in the chat window
manager(Kopete::Contact::CanCreate)->appendMessage(message);
manager(Kopete::Contact::CanCreate)->messageSucceeded();
--- trunk/KDE/kdenetwork/kopete/protocols/oscar/icqcontactbase.cpp #854614:854615
@@ -93,6 +93,7 @@
msgPosition += msgChunk.length();
Oscar::Message message;
+ message.setId( msg.id() );
message.setText( Oscar::Message::encodingForText( msgChunk, allowUCS2 ), msgChunk, \
codec ); message.setChannel( messageChannel );
message.setTimestamp( msg.timestamp() );
@@ -101,6 +102,7 @@
mAccount->engine()->sendMessage( message );
} while ( msgPosition < msgText.length() );
+ msg.setState( Kopete::Message::StateSending );
manager(Kopete::Contact::CanCreate)->appendMessage(msg);
manager(Kopete::Contact::CanCreate)->messageSucceeded();
}
--- trunk/KDE/kdenetwork/kopete/protocols/oscar/oscarcontact.cpp #854614:854615
@@ -72,6 +72,10 @@
this, SLOT(requestBuddyIcon()) );
QObject::connect( mAccount->engine(), SIGNAL(receivedAwayMessage(const QString&, \
const QString& )),
this, SLOT(receivedStatusMessage(const QString&, const QString&)) \
); + QObject::connect( mAccount->engine(), SIGNAL(messageAck(const QString&, uint)),
+ this, SLOT(messageAck(const QString&, uint)) );
+ QObject::connect( mAccount->engine(), SIGNAL(messageError(const QString&, uint)),
+ this, SLOT(messageError(const QString&, uint)) );
}
OscarContact::~OscarContact()
@@ -271,6 +275,26 @@
account()->engine()->sendTyping( contactId(), typing );
}
+void OscarContact::messageAck( const QString& contact, uint messageId )
+{
+ if ( Oscar::normalize( contact ) != Oscar::normalize( contactId() ) )
+ return;
+
+ Kopete::ChatSession* chatSession = manager();
+ if ( chatSession )
+ chatSession->receivedMessageState( messageId, Kopete::Message::StateSent );
+}
+
+void OscarContact::messageError( const QString& contact, uint messageId )
+{
+ if ( Oscar::normalize( contact ) != Oscar::normalize( contactId() ) )
+ return;
+
+ Kopete::ChatSession* chatSession = manager();
+ if ( chatSession )
+ chatSession->receivedMessageState( messageId, Kopete::Message::StateError );
+}
+
QTextCodec* OscarContact::contactCodec() const
{
if ( hasProperty( "contactEncoding" ) )
--- trunk/KDE/kdenetwork/kopete/protocols/oscar/oscarcontact.h #854614:854615
@@ -146,6 +146,8 @@
protected slots:
void slotTyping( bool typing );
+ void messageAck( const QString& contact, uint messageId );
+ void messageError( const QString& contact, uint messageId );
protected:
OscarAccount *mAccount;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic