SVN commit 546901 by fjcruz:
A info message is showed if icc profiles path is not valid anymore. Gilles, if it's right for you, can you remove from TODO list? or drop me a mail and i'll do it. CCMAIL: [hidden email] , [hidden email] M +62 -52 dimginterface.cpp --- trunk/extragear/graphics/digikam/utilities/imageeditor/canvas/dimginterface.cpp #546900:546901 @@ -42,6 +42,7 @@ #include <kdebug.h> #include <kcursor.h> +#include <kmessagebox.h> // Local includes. @@ -303,75 +304,42 @@ if (d->cmSettings->enableCMSetting && enableICC) { - if (d->cmSettings->askOrApplySetting) + if (QFile::exists(d->cmSettings->workspaceSetting) && QFile::exists(d->cmSettings->inputSetting)) { - apply = true; - } - else - { - apply = false; - } - - IccTransform trans; - - // First possibility: image has no embedded profile - if(d->image.getICCProfil().isNull()) - { - // Ask or apply? - if (apply) + if (d->cmSettings->askOrApplySetting) { - if (d->parent) d->parent->setCursor( KCursor::waitCursor() ); - trans.setProfiles( QFile::encodeName(d->cmSettings->inputSetting), - QFile::encodeName(d->cmSettings->workspaceSetting)); - trans.apply( d->image ); - d->image.getICCProfilFromFile(QFile::encodeName(d->cmSettings->workspaceSetting)); - if (d->parent) d->parent->unsetCursor(); + apply = true; } else { - // To repaint image in canvas before to ask about to apply ICC profile. - emit signalImageLoaded(d->filename, valRet); - - DImg preview = d->image.smoothScale(240, 180, QSize::ScaleMin); - trans.setProfiles(QFile::encodeName(d->cmSettings->inputSetting), - QFile::encodeName(d->cmSettings->workspaceSetting)); - ColorCorrectionDlg dlg(d->parent, &preview, &trans, fileName); - - if (dlg.exec() == QDialog::Accepted) + apply = false; + } + + IccTransform trans; + + // First possibility: image has no embedded profile + if(d->image.getICCProfil().isNull()) + { + // Ask or apply? + if (apply) { if (d->parent) d->parent->setCursor( KCursor::waitCursor() ); + trans.setProfiles( QFile::encodeName(d->cmSettings->inputSetting), + QFile::encodeName(d->cmSettings->workspaceSetting)); trans.apply( d->image ); d->image.getICCProfilFromFile(QFile::encodeName(d->cmSettings->workspaceSetting)); if (d->parent) d->parent->unsetCursor(); } - } - } - // Second possibility: image has an embedded profile - else - { - trans.getEmbeddedProfile( d->image ); - - if (apply) - { - if (d->parent) d->parent->setCursor( KCursor::waitCursor() ); - trans.setProfiles(QFile::encodeName(d->cmSettings->workspaceSetting)); - trans.apply( d->image ); - if (d->parent) d->parent->unsetCursor(); - } - else - { - if (trans.getEmbeddedProfileDescriptor() - != trans.getProfileDescription( d->cmSettings->workspaceSetting )) + else { - kdDebug() << "Embedded profile: " << trans.getEmbeddedProfileDescriptor() << endl; - // To repaint image in canvas before to ask about to apply ICC profile. emit signalImageLoaded(d->filename, valRet); DImg preview = d->image.smoothScale(240, 180, QSize::ScaleMin); - trans.setProfiles(QFile::encodeName(d->cmSettings->workspaceSetting)); + trans.setProfiles(QFile::encodeName(d->cmSettings->inputSetting), + QFile::encodeName(d->cmSettings->workspaceSetting)); ColorCorrectionDlg dlg(d->parent, &preview, &trans, fileName); - + if (dlg.exec() == QDialog::Accepted) { if (d->parent) d->parent->setCursor( KCursor::waitCursor() ); @@ -381,7 +349,49 @@ } } } + // Second possibility: image has an embedded profile + else + { + trans.getEmbeddedProfile( d->image ); + + if (apply) + { + if (d->parent) d->parent->setCursor( KCursor::waitCursor() ); + trans.setProfiles(QFile::encodeName(d->cmSettings->workspaceSetting)); + trans.apply( d->image ); + if (d->parent) d->parent->unsetCursor(); + } + else + { + if (trans.getEmbeddedProfileDescriptor() + != trans.getProfileDescription( d->cmSettings->workspaceSetting )) + { + kdDebug() << "Embedded profile: " << trans.getEmbeddedProfileDescriptor() << endl; + + // To repaint image in canvas before to ask about to apply ICC profile. + emit signalImageLoaded(d->filename, valRet); + + DImg preview = d->image.smoothScale(240, 180, QSize::ScaleMin); + trans.setProfiles(QFile::encodeName(d->cmSettings->workspaceSetting)); + ColorCorrectionDlg dlg(d->parent, &preview, &trans, fileName); + + if (dlg.exec() == QDialog::Accepted) + { + if (d->parent) d->parent->setCursor( KCursor::waitCursor() ); + trans.apply( d->image ); + d->image.getICCProfilFromFile(QFile::encodeName(d->cmSettings->workspaceSetting)); + if (d->parent) d->parent->unsetCursor(); + } + } + } + } } + else + { + QString message = i18n("ICC profiles path seems to be invalid. No transform will be done.\n \ + Please solve it in digiKam setup."); + KMessageBox::information(d->parent, message); + } } } else _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
Free forum by Nabble | Edit this page |