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) { |