SVN commit 775053 by rjarosz: Fix bug 154972: MSN Contact pictures and custom emoticons are not displayed This will probably fix other problems too because for QDataStreams we were using Qt 3.1 version which didn't write int64 correctly. BUG: 154972 M +2 -2 dispatcher.cpp M +2 -2 messageformatter.cpp M +1 -1 msnchallengehandler.cpp M +5 -1 msncontact.cpp M +1 -1 msnp2pdisplatcher.cpp M +1 -1 msnsocket.cpp M +6 -1 msnswitchboardsocket.cpp M +2 -2 webcam.cpp --- trunk/KDE/kdenetwork/kopete/protocols/msn/dispatcher.cpp #775052:775053 @@ -129,7 +129,7 @@ QByteArray header(638, '\0'); QDataStream writer( &header,QIODevice::WriteOnly); - writer.setVersion(QDataStream::Qt_3_1); + writer.setVersion(QDataStream::Qt_3_3); writer.setByteOrder(QDataStream::LittleEndian); // Write the header length to the stream. @@ -460,7 +460,7 @@ // Decode the file context from base64 encoding. context = QByteArray::fromBase64(regex.cap(1).toUtf8()); QDataStream reader( &context,QIODevice::ReadOnly); - reader.setVersion(QDataStream::Qt_3_1); + reader.setVersion(QDataStream::Qt_3_3); reader.setByteOrder(QDataStream::LittleEndian); //Retrieve the file info from the context field. // File Size [8..15] Int64 --- trunk/KDE/kdenetwork/kopete/protocols/msn/messageformatter.cpp #775052:775053 @@ -74,7 +74,7 @@ QByteArray tempStream = stream; QDataStream reader( &tempStream,QIODevice::ReadOnly); - reader.setVersion(QDataStream::Qt_3_1); + reader.setVersion(QDataStream::Qt_3_3); reader.setByteOrder(QDataStream::LittleEndian); // Seek to the start position of the message // transport header. @@ -128,7 +128,7 @@ // kDebug(14140) ; QDataStream writer( &stream,QIODevice::WriteOnly); - writer.setVersion(QDataStream::Qt_3_1); + writer.setVersion(QDataStream::Qt_3_3); writer.setByteOrder(QDataStream::LittleEndian); if(compact == false) --- trunk/KDE/kdenetwork/kopete/protocols/msn/msnchallengehandler.cpp #775052:775053 @@ -123,7 +123,7 @@ QByteArray tempArray; tempArray.reserve(8); QDataStream buffer(&tempArray,QIODevice::ReadWrite); - //buffer.setVersion(QDataStream::Qt_3_1); + //buffer.setVersion(QDataStream::Qt_3_3); buffer.setByteOrder(QDataStream::LittleEndian); buffer << (qint32)high; buffer << (qint32)low; --- trunk/KDE/kdenetwork/kopete/protocols/msn/msncontact.cpp #775052:775053 @@ -23,6 +23,7 @@ #include #include +#include #undef KDE_NO_COMPAT #include @@ -689,8 +690,11 @@ entry.name = contactId(); entry.category = Kopete::AvatarManager::Contact; entry.contact = this; - entry.image = QImage(f->fileName()); + f->open(); + entry.image = QImageReader(f).read(); + f->close(); + entry = Kopete::AvatarManager::self()->add(entry); f->setAutoRemove(true); --- trunk/KDE/kdenetwork/kopete/protocols/msn/msnp2pdisplatcher.cpp #775052:775053 @@ -616,7 +616,7 @@ QCString utf16FileName=codec->fromUnicode(fileN.right( fileN.length() - fileN.lastIndexOf( '/' ) - 1 ) , taille );*/ QByteArray utf16FileName; QDataStream stream( &utf16FileName,QIODevice::WriteOnly); - stream.setVersion(QDataStream::Qt_3_1); + stream.setVersion(QDataStream::Qt_3_3); stream.setByteOrder(QDataStream::LittleEndian); stream << fileN.right( fileN.length() - fileN.lastIndexOf( '/' ) - 1 ); --- trunk/KDE/kdenetwork/kopete/protocols/msn/msnsocket.cpp #775052:775053 @@ -1062,7 +1062,7 @@ content[i] = bytes[offset + i]; // Create the web response stream from the response content bytes. m_stream = new QDataStream( &content,QIODevice::ReadOnly); - m_stream->setVersion(QDataStream::Qt_3_1); + m_stream->setVersion(QDataStream::Qt_3_3); } } } --- trunk/KDE/kdenetwork/kopete/protocols/msn/msnswitchboardsocket.cpp #775052:775053 @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -935,9 +936,11 @@ } else if(msnObj == "inkformatgif") { + file->open(); // Open otherwise fileName will be empty! QString msg=i18n("\"Typed", file->fileName() ); kDebug(14140) << file->fileName(); + file->close(); m_typewrited.append(file); @@ -1032,8 +1035,10 @@ KTemporaryFile *f=it.value().second; if(message.contains(es) && f) { + f->open(); // Open otherwise fileName will be empty! QString imgPath = f->fileName(); - QImage iconImage(imgPath); + QImage iconImage = QImageReader(f).read(); + f->close(); /* We don't use a comple algoritm (like the one in the #if) because the msn client shows * emoticons like that. So, in that case, we show like the MSN client */ #if 0 --- trunk/KDE/kdenetwork/kopete/protocols/msn/webcam.cpp #775052:775053 @@ -430,7 +430,7 @@ { QByteArray dataMessage; //(12+message.length()*2); QDataStream writer( &dataMessage,QIODevice::WriteOnly); - writer.setVersion(QDataStream::Qt_3_1); + writer.setVersion(QDataStream::Qt_3_3); writer.setByteOrder(QDataStream::LittleEndian); writer << (quint8)0x80; writer << (quint8)XX; @@ -859,7 +859,7 @@ QByteArray header; QDataStream writer( &header,QIODevice::WriteOnly); - writer.setVersion(QDataStream::Qt_3_1); + writer.setVersion(QDataStream::Qt_3_3); writer.setByteOrder(QDataStream::LittleEndian); writer << (quint16)24; // header size writer << (quint16)img.width();