void OptimizePage::slotAction(const KIPIPanoramaPlugin::ActionData& ad) { QString text; QMutexLocker lock(&d->progressMutex); if (!ad.starting) // Something is complete... { if (!ad.success) // Something is failed... { if (d->canceled) // In that case, the error is expected { return; } switch (ad.action) { case(OPTIMIZE): { disconnect(d->mngr->thread(), SIGNAL(finished(KIPIPanoramaPlugin::ActionData)), this, SLOT(slotAction(KIPIPanoramaPlugin::ActionData))); d->title->setText(i18n("<qt>" "<p>Optimization has failed.</p>" "<p>Press \"Details\" to show processing messages.</p>" "</qt>")); d->progressTimer->stop(); d->horizonCheckbox->hide(); d->projectionAndSizeCheckbox->hide(); d->detailsBtn->show(); d->progressLabel->clear(); d->output = ad.message; emit signalOptimized(KUrl()); break; } default: { kWarning() << "Unknown action " << ad.action; break; } } } else // Something is done... { switch (ad.action) { case(OPTIMIZE): { disconnect(d->mngr->thread(), SIGNAL(finished(KIPIPanoramaPlugin::ActionData)), this, SLOT(slotAction(KIPIPanoramaPlugin::ActionData))); d->progressTimer->stop(); d->progressLabel->clear(); emit signalOptimized(ad.ptoUrl); break; } default: { kWarning() << "Unknown action " << ad.action; break; } } } } }
void PanoOptimizePage::slotPanoAction(const DigikamGenericPanoramaPlugin::PanoActionData& ad) { qCDebug(DIGIKAM_DPLUGIN_GENERIC_LOG) << "SlotPanoAction (optimize)"; qCDebug(DIGIKAM_DPLUGIN_GENERIC_LOG) << "starting, success, canceled, action: " << ad.starting << ad.success << d->canceled << ad.action; QString text; QMutexLocker lock(&d->progressMutex); if (!ad.starting) // Something is complete... { if (!ad.success) // Something is failed... { if (d->canceled) // In that case, the error is expected { return; } switch (ad.action) { case PANO_OPTIMIZE: case PANO_AUTOCROP: { disconnect(d->mngr->thread(), SIGNAL(stepFinished(DigikamGenericPanoramaPlugin::PanoActionData)), this, SLOT(slotPanoAction(DigikamGenericPanoramaPlugin::PanoActionData))); disconnect(d->mngr->thread(), SIGNAL(jobCollectionFinished(DigikamGenericPanoramaPlugin::PanoActionData)), this, SLOT(slotPanoAction(DigikamGenericPanoramaPlugin::PanoActionData))); qCWarning(DIGIKAM_DPLUGIN_GENERIC_LOG) << "Job failed (optimize): " << ad.action; if (d->detailsText->isHidden()) { d->title->setText(i18n("<qt>" "<h1>Optimization has failed.</h1>" "<p>See processing messages below.</p>" "</qt>")); d->progressTimer->stop(); d->horizonCheckbox->hide(); // d->projectionAndSizeCheckbox->hide(); d->detailsText->show(); d->progressLabel->clear(); d->detailsText->setText(ad.message); setComplete(false); emit completeChanged(); } break; } default: { qCWarning(DIGIKAM_DPLUGIN_GENERIC_LOG) << "Unknown action (optimize) " << ad.action; break; } } } else // Something is done... { switch (ad.action) { case PANO_OPTIMIZE: { return; } case PANO_AUTOCROP: { disconnect(d->mngr->thread(), SIGNAL(stepFinished(DigikamGenericPanoramaPlugin::PanoActionData)), this, SLOT(slotPanoAction(DigikamGenericPanoramaPlugin::PanoActionData))); disconnect(d->mngr->thread(), SIGNAL(jobCollectionFinished(DigikamGenericPanoramaPlugin::PanoActionData)), this, SLOT(slotPanoAction(DigikamGenericPanoramaPlugin::PanoActionData))); d->progressTimer->stop(); d->progressLabel->clear(); d->optimisationDone = true; emit signalOptimized(); initializePage(); break; } default: { qCWarning(DIGIKAM_DPLUGIN_GENERIC_LOG) << "Unknown action (optimize) " << ad.action; break; } } } } }