kiconloader/qbuffer device not open puzzle?

Boudewijn Rempt boud at valdyas.org
Thu Sep 17 12:25:27 UTC 2015


I'm wondering if others see this as well and if there's something simple
that I've missed that fixes it... For me, right now, with an up-to-date
home-grown Qt 5.5 and kdesrc-build-built frameworks, icons don't get
loaded once the cache exists.

In bool KIconLoaderPrivate::findCachedPixmapWithPath(const QString &key,
QPixmap &data, QString &path), this fragment:

     QBuffer buffer;
     buffer.setBuffer(&result);
     buffer.open(QIODevice::ReadOnly);

     QDataStream inputStream(&buffer);
     inputStream.setVersion(QDataStream::Qt_4_6);

     QString tempPath;
     inputStream >> tempPath;

     if (inputStream.status() == QDataStream::Ok) {
         QPixmap tempPixmap;
         inputStream >> tempPixmap;

Gives

krita(32136)/(default) unknown: QIODevice::seek (QBuffer): The device is not open

On the last line. I first thought it was a Krita porting bug, but kate
gives me the same, and commenting out this code gives me back my icons.

I sort of feel blind after spending two weeks porting calligra away
from kdelibs4support, so I might just be missing something here.

Boudewijn


More information about the Kde-frameworks-devel mailing list