src/hbcore/effects/hbeffectcontroller.cpp
changeset 34 ed14f46c0e55
parent 7 923ff622b8b9
equal deleted inserted replaced
31:7516d6d86cf5 34:ed14f46c0e55
   250     effectEntry.mShared = shared;
   250     effectEntry.mShared = shared;
   251 
   251 
   252     if (!shared) {
   252     if (!shared) {
   253         HbEffectFxmlData fxmlData;
   253         HbEffectFxmlData fxmlData;
   254         QFile file(filePath);
   254         QFile file(filePath);
   255         if (!file.open(QFile::ReadOnly | QFile::Text)) {
   255         if (!file.open(QFile::ReadOnly)) {
   256             qWarning("HbEffect: Opening of %s failed", qPrintable(filePath));
   256             qWarning("HbEffect: Opening of %s failed", qPrintable(filePath));
   257             if (indexForSetInUseWhenFail >= 0) {
   257             if (indexForSetInUseWhenFail >= 0) {
   258                 mEffectEntries[indexForSetInUseWhenFail].mInUse = true;
   258                 mEffectEntries[indexForSetInUseWhenFail].mInUse = true;
   259             }
   259             }
   260             return false;
   260             return false;
   261         }
   261         }
   262         mParser->read(&file, &fxmlData);
   262         QByteArray arr(file.readAll());
   263         file.close();
   263         file.close();
       
   264 
       
   265         // Read effect using QBuffer, because XML parsing does unnecessary file accesses
       
   266         QBuffer fxmlBuffer(&arr, 0);
       
   267         if (!fxmlBuffer.open(QFile::ReadOnly | QFile::Text)) {
       
   268             // This really shouldn't fail, but better be sure
       
   269             qWarning("HbEffect: Opening QBuffer for %s failed", qPrintable(filePath));
       
   270             if (indexForSetInUseWhenFail >= 0) {
       
   271                 mEffectEntries[indexForSetInUseWhenFail].mInUse = true;
       
   272             }
       
   273             return false;
       
   274         }
       
   275 
       
   276         mParser->read(&fxmlBuffer, &fxmlData);
       
   277         fxmlBuffer.close();
   264 
   278 
   265         if (mParser->error() != QXmlStreamReader::NoError) {
   279         if (mParser->error() != QXmlStreamReader::NoError) {
   266             qWarning() << "HbEffect: Parsing of file" << qPrintable(filePath) << "failed:"
   280             qWarning() << "HbEffect: Parsing of file" << qPrintable(filePath) << "failed:"
   267                        << mParser->errorString();
   281                        << mParser->errorString();
   268             if (indexForSetInUseWhenFail >= 0) {
   282             if (indexForSetInUseWhenFail >= 0) {