[Qt-interest] QAbstractFileEngine behaves strange in different Qt versions (4.6 <> 4.7)

Sebastian Gibb lists at sebastiangibb.de
Tue Dec 21 10:18:36 CET 2010


Hello,

Mostly I'm using debian sid with qt-4.6.3.
Now I try Qt 4.7.1 and my application can't load images from a database 
anymore (same code working with debians qt-4.6.3).
I configure Qt 4.7.1 with the following command:
./configure -confirm-license -prefix "/home/sebastian/qt-devel/qt4.7.1/" -
opensource -fast -plugin-sql-mysql -plugin-sql-sqlite -system-sqlite -
xmlpatterns -multimedia -audio-backend -phonon -svg -webkit -system-zlib -qt-
gif -system-libtiff -system-libpng -system-libjpeg -optimized-qmake -
lfontconfig -I/usr/include/freetype2 -qvfb -gtkstyle

I have written a little example application ([1]
http://www.sebastiangibb.de/downloads/sqlimagetest.tar.gz
).
I get the following output:
Qt 4.6.3 => loading an image from file (show it as a pixmap), put it into the 
database, load it from the database (and show it as a pixmap, too)
---
5447 "ÿØÿà
sqlFileEngine::sqlFileEngine(const QString&) "questions/tImages/bild.jpg" 
void sqlFileEngine::init() 
"SELECT data FROM tImages WHERE LOWER(filename)=LOWER('bild.jpg')" 
"ÿØÿà
sqlFileEngine::sqlFileEngine(const QString&) RAW: 5447 
virtual qint64 sqlFileEngine::size() const 
virtual QString sqlFileEngine::fileName(QAbstractFileEngine::FileName) const 3 
sqlFileEngine::sqlFileEngine(const QString&) "questions/tImages/bild.jpg" 
void sqlFileEngine::init() 
"SELECT data FROM tImages WHERE LOWER(filename)=LOWER('bild.jpg')" 
"ÿØÿà
sqlFileEngine::sqlFileEngine(const QString&) RAW: 5447 
virtual bool sqlFileEngine::open(QFlags<QIODevice::OpenModeFlag>) OpenMode( 
"ReadOnly|Unbuffered" ) 
virtual QString sqlFileEngine::fileName(QAbstractFileEngine::FileName) const 0 
virtual bool sqlFileEngine::isSequential() const 
virtual bool sqlFileEngine::seek(qint64) 0 
virtual bool sqlFileEngine::isSequential() const 
virtual qint64 sqlFileEngine::read(char*, qint64) 0 16384 
virtual qint64 sqlFileEngine::read(char*, qint64) 5447 2745 
virtual bool sqlFileEngine::isSequential() const 
virtual bool sqlFileEngine::seek(qint64) 5447 
virtual bool sqlFileEngine::close()
---

Qt 4.7.1 => loading an image from file (show it as a pixmap), put it into the 
database; These both steps work properly. But loading the image from database 
fails.
---
5447 "ÿØÿà
sqlFileEngine::sqlFileEngine(const QString&) "questions/tImages/bild.jpg" 
void sqlFileEngine::init() 
"SELECT data FROM tImages WHERE LOWER(filename)=LOWER('bild.jpg')" 
"ÿØÿà
sqlFileEngine::sqlFileEngine(const QString&) RAW: 5447 
virtual qint64 sqlFileEngine::size() const 
virtual QString sqlFileEngine::fileName(QAbstractFileEngine::FileName) const 3 
virtual QString sqlFileEngine::fileName(QAbstractFileEngine::FileName) const 1 
---

Because showing jpeg file from harddisk works very well, I suppose 
QAbstractFileEngine behaves strange.

What did happen between Qt 4.6 and 4.7?
What did I wrong? 

Kind regards,

Sebastian

1.
http://www.sebastiangibb.de/downloads/sqlimagetest.tar.gz



More information about the Qt-interest-old mailing list