SVN commit 553996 by cgilles:
digikam from trunk : Setup ICC support now by default all ICC color-space profiles files included in digiKam. CCMAIL: [hidden email] M +51 -36 setupicc.cpp M +2 -0 setupicc.h --- trunk/extragear/graphics/digikam/utilities/setup/setupicc.cpp #553995:553996 @@ -36,7 +36,6 @@ #include <qpixmap.h> #include <qpushbutton.h> #include <qstringlist.h> -#include <qdir.h> #include <qmap.h> #include <qtooltip.h> @@ -415,7 +414,6 @@ if (!d->enableColorManagement->isChecked()) return; - cmsHPROFILE tmpProfile=0; d->inProfilesKC->clear(); d->monitorProfilesKC->clear(); d->workProfilesKC->clear(); @@ -437,10 +435,57 @@ } d->mainDialog->enableButtonOK(true); - QDir profilesDir(QFile::encodeName(path), "*.icc;*.icm", QDir::Files); - const QFileInfoList* files = profilesDir.entryInfoList(); - bool findIccFiles = false; + // Look the ICC profile path repository set by user. + QDir userProfilesDir(QFile::encodeName(path), "*.icc;*.icm", QDir::Files); + const QFileInfoList* usersFiles = userProfilesDir.entryInfoList(); + kdDebug() << "Scanning ICC profiles from user repository: " << path << endl; + if ( !parseProfilesfromDir(usersFiles) ) + { + if (report) + { + QString message = i18n("<p>Sorry, there is no ICC profiles files in "); + message.append(path); + message.append(i18n("</p>")); + KMessageBox::sorry(this, message); + } + + kdDebug() << "No ICC profile files found!!!" << endl; + d->mainDialog->enableButtonOK(false); + return; + } + + // Look the ICC color-space profile path include with digiKam dist. + KGlobal::dirs()->addResourceType("profiles", KGlobal::dirs()->kde_default("data") + "digikam/profiles"); + QString digiKamProfilesPath = KGlobal::dirs()->findResourceDir("profiles", "srgb.icm"); + QDir digiKamProfilesDir(QFile::encodeName(digiKamProfilesPath), "*.icc;*.icm", QDir::Files); + const QFileInfoList* digiKamFiles = digiKamProfilesDir.entryInfoList(); + kdDebug() << "Scanning ICC profiles include with digiKam: " << digiKamProfilesPath << endl; + parseProfilesfromDir(digiKamFiles); + + d->inProfilesKC->insertStringList(d->inICCPath.keys(), 0); + + d->monitorProfilesKC->insertStringList(d->monitorICCPath.keys(), 0); + if (d->monitorICCPath.keys().isEmpty()) + { + d->managedView->setEnabled(false); + d->managedView->setChecked(false); + } + else + { + d->managedView->setEnabled(true); + } + + d->workProfilesKC->insertStringList(d->workICCPath.keys(), 0); + + d->proofProfilesKC->insertStringList(d->proofICCPath.keys(), 0); +} + +bool SetupICC::parseProfilesfromDir(const QFileInfoList* files) +{ + cmsHPROFILE tmpProfile=0; + bool findIccFiles=false; + if (files) { QFileInfoListIterator it(*files); @@ -524,38 +569,8 @@ ++it; } } - - if (!findIccFiles) - { - if (report) - { - QString message = i18n("<p>Sorry, there is no ICC profiles files in "); - message.append(path); - message.append(i18n("</p>")); - KMessageBox::sorry(this, message); - } - - kdDebug() << "No ICC profile files found!!!" << endl; - d->mainDialog->enableButtonOK(false); - return; - } - - d->inProfilesKC->insertStringList(d->inICCPath.keys(), 0); - d->monitorProfilesKC->insertStringList(d->monitorICCPath.keys(), 0); - if (d->monitorICCPath.keys().isEmpty()) - { - d->managedView->setEnabled(false); - d->managedView->setChecked(false); - } - else - { - d->managedView->setEnabled(true); - } - - d->workProfilesKC->insertStringList(d->workICCPath.keys(), 0); - - d->proofProfilesKC->insertStringList(d->proofICCPath.keys(), 0); + return findIccFiles; } void SetupICC::slotToggledWidgets(bool t) --- trunk/extragear/graphics/digikam/utilities/setup/setupicc.h #553995:553996 @@ -27,6 +27,7 @@ #include <qwidget.h> #include <qmap.h> +#include <qdir.h> class KDialogBase; @@ -54,6 +55,7 @@ void disableWidgets(); void profileInfo(const QString&); void restoreSettings(); + bool parseProfilesfromDir(const QFileInfoList* files); private slots: _______________________________________________ Digikam-devel mailing list [hidden email] https://mail.kde.org/mailman/listinfo/digikam-devel |
Free forum by Nabble | Edit this page |