void DkImageContainerT::loadingFinished() { DkTimer dt; if (getLoadState() == loading_canceled) { loadState = not_loaded; clear(); return; } if (!loader->hasImage()) { fileUpdateTimer.stop(); edited = false; QString msg = tr("Sorry, I could not load: %1").arg(fileInfo.fileName()); emit showInfoSignal(msg); emit fileLoadedSignal(false); loadState = exists_not; return; } else if (!thumb->hasImage()) { thumb->setImage(DkImage::createThumb(loader->image())); } // clear file buffer if it exceeds a certain size?! e.g. psd files if (fileBuffer && fileBuffer->size()/(1024.0f*1024.0f) > DkSettings::resources.cacheMemory*0.5f) fileBuffer->clear(); loadState = loaded; emit fileLoadedSignal(true); }
bool DkImageContainerT::loadImageThreaded(bool force) { #ifdef WITH_QUAZIP //zip archives: get zip file fileInfo for checks if(isFromZip()) setFilePath(getZipData()->getZipFilePath()); #endif // check file for updates QFileInfo fileInfo = filePath(); QDateTime modifiedBefore = fileInfo.lastModified(); fileInfo.refresh(); if (force || fileInfo.lastModified() != modifiedBefore || getLoader()->isDirty()) { qDebug() << "updating image..."; getThumb()->setImage(QImage()); clear(); } // null file? if (fileInfo.fileName().isEmpty() || !fileInfo.exists()) { QString msg = tr("Sorry, the file: %1 does not exist... ").arg(fileName()); emit showInfoSignal(msg); mLoadState = exists_not; return false; } else if (!fileInfo.permission(QFile::ReadUser)) { QString msg = tr("Sorry, you are not allowed to read: %1").arg(fileName()); emit showInfoSignal(msg); mLoadState = exists_not; return false; } #ifdef WITH_QUAZIP //zip archives: use the image file info from now on if(isFromZip()) setFilePath(getZipData()->getImageFileName()); #endif mLoadState = loading; fetchFile(); return true; }
void DkImageContainerT::fileDownloaded() { if (!mFileDownloader) { qDebug() << "empty fileDownloader, where it should not be"; emit fileLoadedSignal(false); return; } mFileBuffer = mFileDownloader->downloadedData(); if (!mFileBuffer || mFileBuffer->isEmpty()) { qDebug() << mFileDownloader->getUrl() << " not downloaded..."; mEdited = false; emit showInfoSignal(tr("Sorry, I could not download:\n%1").arg(mFileDownloader->getUrl().toString())); emit fileLoadedSignal(false); mLoadState = exists_not; return; } mDownloaded = true; fetchImage(); }