Attached is the tentative patch to fix this bug. It has been submitted to upstream for review. An upload of a fixed version of 5.6.1.3 will happen shortly.
A proper fix will be implemented in an upcoming upstream release that will be uploaded after the release of squeeze. Michael -- Michael Hanke http://mih.voxindeserto.de
diff --git a/caret_common/HttpFileDownload.cxx b/caret_common/HttpFileDownload.cxx index 365c29a..7f16fb5 100644 --- a/caret_common/HttpFileDownload.cxx +++ b/caret_common/HttpFileDownload.cxx @@ -199,11 +199,13 @@ HttpFileDownload::uploadFileToSums(const std::vector<QString>& additionalTags, } //#endif // QT4_FILE_POS_BUG QDataStream dataStream(&file); + dataStream.setVersion(QDataStream::Qt_4_3); // file contents QFile inputFile(uploadFileName); if (inputFile.open(QIODevice::ReadOnly)) { QDataStream inputStream(&inputFile); + inputStream.setVersion(QDataStream::Qt_4_3); const int inputFileSize = inputFile.size(); const int bufferSize = 4096; @@ -549,6 +551,7 @@ HttpFileDownload::slotDone(bool error) QFile file(outputFileName); if (file.open(QIODevice::WriteOnly)) { QDataStream stream(&file); + stream.setVersion(QDataStream::Qt_4_3); stream.writeRawData(ba.data(), num); file.close(); } diff --git a/caret_files/AbstractFile.cxx b/caret_files/AbstractFile.cxx index 696eaaf..b98e369 100644 --- a/caret_files/AbstractFile.cxx +++ b/caret_files/AbstractFile.cxx @@ -1028,6 +1028,7 @@ AbstractFile::readFileFromArray(const char* data, throw FileException("", "Unable to create temporary read/write file in AbstractFile::readFile"); } QDataStream stream(&file); + stream.setVersion(QDataStream::Qt_4_3); stream.writeRawData(data, dataLength); //char newline[2] = { '\n', '\0' }; //stream.writeRawBytes(newline, 1); @@ -1050,6 +1051,7 @@ AbstractFile::readFileContents(QFile& file) throw (FileException) // QTextStream stream(&file); QDataStream binStream(&file); + binStream.setVersion(QDataStream::Qt_4_3); // // Determine if GIFTI node data file @@ -2253,6 +2255,7 @@ AbstractFile::writeFileToArray(QByteArray& ba) throw (FileException) { QTextStream ts(ba, QIODevice::WriteOnly); QDataStream ds(&ba, QIODevice::WriteOnly); + ds.setVersion(QDataStream::Qt_4_3); writeFileContents(ts, ds); } @@ -2463,6 +2466,7 @@ AbstractFile::writeFile(const QString& filenameIn) throw (FileException) if (writingQFile->open(QFile::WriteOnly)) { QTextStream stream(writingQFile); QDataStream binStream(writingQFile); + binStream.setVersion(QDataStream::Qt_4_3); try { writeFileContents(stream, binStream); @@ -3421,6 +3425,7 @@ AbstractFile::findBinaryDataOffsetQT4Bug(QFile& file, file.seek(0); QDataStream dataStream(&file); + dataStream.setVersion(QDataStream::Qt_4_3); const int arraySize = 2048; char buffer[arraySize]; diff --git a/caret_files/CommaSeparatedValueFile.cxx b/caret_files/CommaSeparatedValueFile.cxx index 85ec309..84de5d0 100644 --- a/caret_files/CommaSeparatedValueFile.cxx +++ b/caret_files/CommaSeparatedValueFile.cxx @@ -107,6 +107,7 @@ CommaSeparatedValueFile::readFromTextStream(QFile& file, QTextStream& stream) throw (FileException) { QDataStream dummyDataStream(&file); + dummyDataStream.setVersion(QDataStream::Qt_4_3); QDomElement dummyDomElement; readFileData(file, stream, dummyDataStream, dummyDomElement); } @@ -118,6 +119,7 @@ void CommaSeparatedValueFile::writeToTextStream(QTextStream& stream) throw (FileException) { QDataStream dummyDataStream; + dummyDataStream.setVersion(QDataStream::Qt_4_3); QDomDocument dummyDomDocument; QDomElement dummyDomElement; diff --git a/caret_files/GiftiDataArray.cxx b/caret_files/GiftiDataArray.cxx index 43e7dcb..11eacf2 100644 --- a/caret_files/GiftiDataArray.cxx +++ b/caret_files/GiftiDataArray.cxx @@ -929,6 +929,7 @@ GiftiDataArray::readFromText(QString& text, // Read the data // QDataStream stream(&file); + stream.setVersion(QDataStream::Qt_4_3); const int numBytesRead = stream.readRawData((char*)pointerToForReadingData, numberOfBytes); if (numBytesRead != numberOfBytes) { diff --git a/caret_files/GiftiDataArrayFile.cxx b/caret_files/GiftiDataArrayFile.cxx index 62372f7..5841942 100644 --- a/caret_files/GiftiDataArrayFile.cxx +++ b/caret_files/GiftiDataArrayFile.cxx @@ -947,6 +947,7 @@ GiftiDataArrayFile::readFileDataXML(QFile& file) throw (FileException) // Create a data stream // QDataStream stream(&file); + stream.setVersion(QDataStream::Qt_4_3); // // buffer for data read diff --git a/caret_files/NiftiFileHeader.cxx b/caret_files/NiftiFileHeader.cxx index 37cfdeb..fc54039 100644 --- a/caret_files/NiftiFileHeader.cxx +++ b/caret_files/NiftiFileHeader.cxx @@ -1663,6 +1663,7 @@ NiftiFileHeader::hdrIsNiftiFile(const QString& hdrFileName) int numBytesToRead = 348; char bytes[numBytesToRead]; QDataStream stream(&file); + stream.setVersion(QDataStream::Qt_4_3); const bool errorFlag = (stream.readRawData(bytes, numBytesToRead) != numBytesToRead); file.close(); if (errorFlag) { diff --git a/caret_files/NiftiHelper.cxx b/caret_files/NiftiHelper.cxx index ab29df1..1b9eb75 100644 --- a/caret_files/NiftiHelper.cxx +++ b/caret_files/NiftiHelper.cxx @@ -640,6 +640,7 @@ NiftiHelper::hdrIsNiftiFile(const QString& hdrFileName) int numBytesToRead = 348; char bytes[numBytesToRead]; QDataStream stream(&file); + stream.setVersion(QDataStream::Qt_4_3); const bool errorFlag = (stream.readRawData(bytes, numBytesToRead) != numBytesToRead); file.close(); if (errorFlag) { diff --git a/caret_files/SpecFile.cxx b/caret_files/SpecFile.cxx index 0557dd4..aff6456 100644 --- a/caret_files/SpecFile.cxx +++ b/caret_files/SpecFile.cxx @@ -1724,6 +1724,7 @@ SpecFile::readTagsFromXML(QDomElement& topElement) throw (FileException) QFile file; QTextStream textStream; QDataStream dataStream; + dataStream.setVersion(QDataStream::Qt_4_3); readFileData(file, textStream, dataStream, topElement); setFileReadType(savedReadType); @@ -1791,6 +1792,7 @@ SpecFile::writeTagsToXML(QDomDocument& xmlDoc, QTextStream textStream; QDataStream dataStream; + dataStream.setVersion(QDataStream::Qt_4_3); writeFileData(textStream, dataStream, xmlDoc, topElement); setFileWriteType(savedWriteType); diff --git a/caret_widgets/WuQFileDialog.cxx b/caret_widgets/WuQFileDialog.cxx index 15c0a94..769fd68 100644 --- a/caret_widgets/WuQFileDialog.cxx +++ b/caret_widgets/WuQFileDialog.cxx @@ -2314,6 +2314,7 @@ WuQFileDialog::restoreState(const QByteArray& state) { QByteArray sd = state; QDataStream stream(&sd, QIODevice::ReadOnly); + stream.setVersion(QDataStream::Qt_4_3); if (stream.atEnd()) { return false; } @@ -2364,6 +2365,7 @@ WuQFileDialog::saveState() const { QByteArray data; QDataStream stream(&data, QIODevice::WriteOnly); + stream.setVersion(QDataStream::Qt_4_3); stream << qint32(WUQFileDialogMagic); stream << qint32(WUQFileDialogVersion);