| Summary: | saving user preferences not possible | ||
|---|---|---|---|
| Product: | [Applications] digikam | Reporter: | Heiner Lamprecht <heiner> |
| Component: | ImageEditor-Workflow | Assignee: | Digikam Developers <digikam-bugs-null> |
| Status: | CLOSED WORKSFORME | ||
| Severity: | normal | CC: | caulier.gilles |
| Priority: | NOR | ||
| Version First Reported In: | 0.9.0 | ||
| Target Milestone: | --- | ||
| Platform: | openSUSE | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | 0.9.0 | |
| Sentry Crash Report: | |||
|
Description
Heiner Lamprecht
2006-04-14 19:55:18 UTC
This is relevant of setup ICC dialog page implementation. Today, i have commited some changes in this implementation to fix any problems. Please checkout the code and give me a feedback, especially a screenshot of this page from your computer and a copy of your ~/.kde/share/config/digikamrc file. Thanks in advance Nota : I cannot reproduce this problem here. Somebody can confirm with a fresh checkout ? Gilles Caulier SVN commit 529923 by cgilles:
digikam from trunk : fix Ok dialog button rules with ICC setup page.
CCBUGS: 125589
M +39 -29 setupicc.cpp
--- trunk/extragear/graphics/digikam/utilities/setup/setupicc.cpp #529922:529923
@@ -46,6 +46,7 @@
#include <kdialog.h>
#include <kdialogbase.h>
#include <kurlrequester.h>
+#include <klineedit.h>
#include <kconfig.h>
#include <kcombobox.h>
#include <kapplication.h>
@@ -177,6 +178,7 @@
defaultPath->setTitle(i18n("Color Profiles Directory"));
d->defaultPathKU = new KURLRequester(defaultPath);
+ d->defaultPathKU->lineEdit()->setReadOnly(true);
d->defaultPathKU->setMode(KFile::Directory | KFile::LocalOnly | KFile::ExistingOnly);
QWhatsThis::add( d->defaultPathKU, i18n("<p>Default path to the color profiles folder. "
"You must store all your color profiles in this directory.</p>"));
@@ -187,7 +189,7 @@
QGroupBox *profiles = new QGroupBox(0, Qt::Horizontal, i18n("ICC Profiles Settings"), parent);
QGridLayout* grid2 = new QGridLayout( profiles->layout(), 3, 2, KDialog::spacingHint());
- grid2->setColStretch(0, 10);
+ grid2->setColStretch(1, 10);
QLabel *workProfiles = new QLabel(i18n("Workspace:"), profiles);
d->workProfilesKC = new KComboBox(false, profiles);
@@ -323,9 +325,6 @@
connect(d->infoWorkProfiles, SIGNAL(clicked()),
this, SLOT(slotClickedWork()));
-
- connect(d->defaultPathKU, SIGNAL(textChanged(const QString&)),
- this, SLOT(slotFillCombos(const QString&)));
connect(d->defaultPathKU, SIGNAL(urlSelected(const QString&)),
this, SLOT(slotFillCombos(const QString&)));
@@ -385,18 +384,17 @@
config->setGroup("Color Management");
- d->enableColorManagement->setChecked(config->readBoolEntry("EnableCM", false));
+ d->defaultPathKU->setURL(config->readPathEntry("DefaultPath", QString::null)); d->enableColorManagement->setChecked(config->readBoolEntry("EnableCM", false));
d->bpcAlgorithm->setChecked(config->readBoolEntry("BPCAlgorithm", false));
d->renderingIntentKC->setCurrentItem(config->readNumEntry("RenderingIntent", 0));
d->managedView->setChecked(config->readBoolEntry("ManagedView", false));
- slotToggledWidgets(d->enableColorManagement->isChecked());
if (config->readBoolEntry("BehaviourICC"))
d->defaultApplyICC->setChecked(true);
else
d->defaultAskICC->setChecked(true);
- d->defaultPathKU->setURL(config->readPathEntry("DefaultPath", QString::null));
+ slotToggledWidgets(d->enableColorManagement->isChecked());
fillCombos(d->defaultPathKU->url(), false);
d->workProfilesKC->setCurrentItem(config->readNumEntry("WorkSpaceProfile", 0));
@@ -405,30 +403,37 @@
d->proofProfilesKC->setCurrentItem(config->readNumEntry("ProofProfile", 0));
}
-void SetupICC::slotFillCombos(const QString& url)
+void SetupICC::slotFillCombos(const QString& path)
{
- fillCombos(url, true);
+ fillCombos(path, true);
}
-void SetupICC::fillCombos(const QString& url, bool report)
+void SetupICC::fillCombos(const QString& path, bool report)
{
+ if (!d->enableColorManagement->isChecked())
+ return;
+
cmsHPROFILE tmpProfile=0;
+ d->inProfilesKC->clear();
+ d->monitorProfilesKC->clear();
+ d->workProfilesKC->clear();
+ d->proofProfilesKC->clear();
+ QDir dir(path);
- if (url.isEmpty())
+ if (path.isEmpty() || !dir.exists() || !dir.isReadable())
{
+ if (report)
+ KMessageBox::sorry(this, i18n("<p>You must set a correct default path for your ICC color profiles files.</p>"));
+
d->mainDialog->enableButtonOK(false);
-
- if (report)
- KMessageBox::sorry(this, i18n("<p>You must set a default path to color profiles files.</p>"));
-
return;
- }
+ }
d->mainDialog->enableButtonOK(true);
-
- QDir profilesDir(QFile::encodeName(url), "*.icc;*.icm", QDir::Files);
+ QDir profilesDir(QFile::encodeName(path), "*.icc;*.icm", QDir::Files);
const QFileInfoList* files = profilesDir.entryInfoList();
-
+ bool findIccFiles = false;
+
if (files)
{
QFileInfoListIterator it(*files);
@@ -451,6 +456,7 @@
kdDebug() << "ICC file: " << fileName << " ==> Input device class ("
<< cmsGetDeviceClass(tmpProfile) << ")" << endl;
+ findIccFiles = true;
break;
case icSigDisplayClass:
@@ -468,6 +474,7 @@
kdDebug() << "ICC file: " << fileName << " ==> Monitor device class ("
<< cmsGetDeviceClass(tmpProfile) << ")" << endl;
+ findIccFiles = true;
break;
case icSigOutputClass:
@@ -479,6 +486,7 @@
kdDebug() << "ICC file: " << fileName << " ==> Output device class ("
<< cmsGetDeviceClass(tmpProfile) << ")" << endl;
+ findIccFiles = true;
break;
case icSigColorSpaceClass:
@@ -496,6 +504,7 @@
kdDebug() << "ICC file: " << fileName << " ==> WorkingSpace device class ("
<< cmsGetDeviceClass(tmpProfile) << ")" << endl;
+ findIccFiles = true;
break;
default:
@@ -508,26 +517,24 @@
++it;
}
}
- else
+
+ if (!findIccFiles)
{
- d->mainDialog->enableButtonOK(false);
- kdDebug() << "No ICC profile files found!!!" << endl;
-
if (report)
{
QString message = i18n("<p>Sorry, there is no ICC profiles files in ");
- message.append(url);
+ message.append(path);
message.append(i18n("</p>"));
- KMessageBox::sorry(this,message);
+ KMessageBox::sorry(this, message);
}
+ kdDebug() << "No ICC profile files found!!!" << endl;
+ d->mainDialog->enableButtonOK(false);
return;
}
- d->inProfilesKC->clear();
d->inProfilesKC->insertStringList(d->inICCPath.keys(), 0);
- d->monitorProfilesKC->clear();
d->monitorProfilesKC->insertStringList(d->monitorICCPath.keys(), 0);
if (d->monitorICCPath.keys().isEmpty())
{
@@ -539,10 +546,8 @@
d->managedView->setEnabled(true);
}
- d->workProfilesKC->clear();
d->workProfilesKC->insertStringList(d->workICCPath.keys(), 0);
- d->proofProfilesKC->clear();
d->proofProfilesKC->insertStringList(d->proofICCPath.keys(), 0);
}
@@ -568,6 +573,11 @@
d->infoMonitorProfiles->setEnabled(t);
d->infoInProfiles->setEnabled(t);
d->infoProofProfiles->setEnabled(t);
+
+ if (t)
+ fillCombos(d->defaultPathKU->url(), true);
+ else
+ d->mainDialog->enableButtonOK(true);
}
void SetupICC::slotClickedWork()
Now saving works again. Thanks. Ok i close this file. Thansk for the report Gilles |