void ImageTags::applyUserAction(QList<QTreeWidgetItem *> tagsList) { int processEventsCounter = 0; ProgressDialog *dialog = new ProgressDialog(this); dialog->show(); QStringList currentSelectedImages = thumbView->getSelectedThumbsList(); for (int i = 0; i < currentSelectedImages.size(); ++i) { QString imageName = currentSelectedImages[i]; for (int i = tagsList.size() - 1; i > -1; --i) { Qt::CheckState tagState = tagsList.at(i)->checkState(0); setTagIcon(tagsList.at(i), (tagState == Qt::Checked? TagIconEnabled : TagIconDisabled)); QString tagName = tagsList.at(i)->text(0); if (tagState == Qt::Checked) { dialog->opLabel->setText(tr("Tagging ") + imageName); mdCache->addTagToImage(imageName, tagName); } else { dialog->opLabel->setText(tr("Untagging ") + imageName); mdCache->removeTagFromImage(imageName, tagName); } } if (!writeTagsToImage(imageName, mdCache->getImageTags(imageName))) { mdCache->removeImage(imageName); } ++processEventsCounter; if (processEventsCounter > 9) { processEventsCounter = 0; QApplication::processEvents(); } if (dialog->abortOp) { break; } } dialog->close(); delete(dialog); }