void MetadataTask::run() { if(d->cancel) { return; } if (d->direction == MetadataSynchronizer::WriteFromDatabaseToFile) { MetadataHub fileHub; // read in from database fileHub.load(d->item); // write out to file DMetadata if(d->tagsOnly) { fileHub.writeTags(d->item.filePath()); } else { fileHub.write(d->item.filePath(), MetadataHub::WRITE_ALL, true); } } else // MetadataSynchronizer::ReadFromFileToDatabase { CollectionScanner scanner; scanner.scanFile(d->item, CollectionScanner::Rescan); } emit signalFinished(QImage()); emit signalDone(); }
void ImageDescEditTab::slotReadFromFileMetadataToDatabase() { initProgressIndicator(); emit signalProgressMessageChanged(i18n("Reading metadata from files. Please wait...")); d->ignoreImageAttributesWatch = true; int i = 0; ScanController::instance()->suspendCollectionScan(); CollectionScanner scanner; foreach(const ImageInfo& info, d->currInfos) { scanner.scanFile(info, CollectionScanner::Rescan); emit signalProgressValueChanged(i++/(float)d->currInfos.count()); qApp->processEvents(); } ScanController::instance()->resumeCollectionScan(); d->ignoreImageAttributesWatch = false; emit signalProgressFinished(); // reload everything setInfos(d->currInfos); }
void ScanController::scanFileDirectly(const QString& filePath) { suspendCollectionScan(); CollectionScanner scanner; scanner.recordHints(d->itemHints); scanner.recordHints(d->itemChangeHints); scanner.scanFile(filePath); resumeCollectionScan(); }
void ScanController::scanFileDirectlyCopyAttributes(const QString& filePath, qlonglong parentVersion) { suspendCollectionScan(); CollectionScanner scanner; scanner.recordHints(d->itemHints); scanner.recordHints(d->itemChangeHints); qlonglong id = scanner.scanFile(filePath); ImageInfo dest(id), source(parentVersion); scanner.copyFileProperties(source, dest); resumeCollectionScan(); }