--- ./digikam/digikam/albumsettings.cpp.orig 2007-12-22 19:19:47.000000000 +0200 +++ ./digikam/digikam/albumsettings.cpp 2008-02-05 22:45:23.000000000 +0200 @@ -121,6 +121,7 @@ QString credit; QString source; QString copyright; + QString iptcEncoding; QStringList albumCollectionNames; @@ -327,7 +328,8 @@ d->saveIptcTags = config->readBoolEntry("Save IPTC Tags", false); d->saveIptcPhotographerId = config->readBoolEntry("Save IPTC Photographer ID", false); d->saveIptcCredits = config->readBoolEntry("Save IPTC Credits", false); - + d->iptcEncoding = config->readEntry("IPTC Encoding"); + d->saveComments = config->readBoolEntry("Save EXIF Comments", false); d->saveDateTime = config->readBoolEntry("Save Date Time", false); d->saveRating = config->readBoolEntry("Save Rating", false); @@ -427,6 +429,8 @@ config->writeEntry("IPTC Credit", d->credit); config->writeEntry("IPTC Source", d->source); config->writeEntry("IPTC Copyright", d->copyright); + + config->writeEntry("IPTC Encoding", d->iptcEncoding, true, true); // write to kdeglobals // --------------------------------------------------------------------- @@ -1026,6 +1030,16 @@ return d->showTrashDeleteDialog; } +void AlbumSettings::setIptcEncoding(const QString& encoding) +{ + d->iptcEncoding = encoding; +} + +QString AlbumSettings::getIptcEncoding() const +{ + return d->iptcEncoding; +} + void AlbumSettings::setApplySidebarChangesDirectly(bool val) { d->sidebarApplyDirectly= val; --- ./digikam/digikam/albumsettings.h.orig 2007-12-22 19:19:47.000000000 +0200 +++ ./digikam/digikam/albumsettings.h 2008-02-05 22:30:11.000000000 +0200 @@ -245,6 +245,8 @@ void setShowTrashDeleteDialog(bool val); bool getShowTrashDeleteDialog() const; + void setIptcEncoding(const QString& encoding); + QString getIptcEncoding() const; void setApplySidebarChangesDirectly(bool val); bool getApplySidebarChangesDirectly() const; --- ./digikam/utilities/setup/setupmetadata.cpp.orig 2007-12-22 19:19:47.000000000 +0200 +++ ./digikam/utilities/setup/setupmetadata.cpp 2008-02-05 22:49:06.000000000 +0200 @@ -45,6 +45,8 @@ #include #include #include +#include +#include // // Local includes. @@ -70,6 +72,7 @@ saveDateTimeBox = 0; savePhotographerIdIptcBox = 0; saveCreditsIptcBox = 0; + iptcEncodingCombo = 0; } bool ExifAutoRotateAsChanged; @@ -83,6 +86,7 @@ QCheckBox *saveDateTimeBox; QCheckBox *savePhotographerIdIptcBox; QCheckBox *saveCreditsIptcBox; + KComboBox *iptcEncodingCombo; }; SetupMetadata::SetupMetadata(QWidget* parent ) @@ -122,6 +126,17 @@ "credit and copyright identity into the IPTC tags. " "You can set this value in the Identity setup page.")); + QHBox *box = new QHBox(IptcGroup); + box->setSpacing(10); + QLabel *iptcEncodingLabel = new QLabel(i18n("IPTC Encoding:"), box); + d->iptcEncodingCombo = new KComboBox(box); + iptcEncodingLabel->setBuddy(d->iptcEncodingCombo); + QWhatsThis::add( d->iptcEncodingCombo, i18n("

Encoding for IPTC caption and other text tags")); + d->iptcEncodingCombo->insertStringList(KGlobal::charsets()->descriptiveEncodingNames()); + d->iptcEncodingCombo->insertItem("ASCII", 0); + box->setStretchFactor(iptcEncodingLabel, 0); + box->setStretchFactor(d->iptcEncodingCombo, 1); + // -------------------------------------------------------- QGroupBox *commonGroup = new QGroupBox(1, Qt::Horizontal, i18n("Common Metadata Actions"), parent); @@ -202,6 +217,7 @@ settings->setSaveIptcTags(d->saveTagsIptcBox->isChecked()); settings->setSaveIptcPhotographerId(d->savePhotographerIdIptcBox->isChecked()); settings->setSaveIptcCredits(d->saveCreditsIptcBox->isChecked()); + settings->setIptcEncoding(d->iptcEncodingCombo->currentText()); settings->saveSettings(); } @@ -220,6 +236,17 @@ d->saveTagsIptcBox->setChecked(settings->getSaveIptcTags()); d->savePhotographerIdIptcBox->setChecked(settings->getSaveIptcPhotographerId()); d->saveCreditsIptcBox->setChecked(settings->getSaveIptcCredits()); + + bool found = false; + for (int i = 0; i < d->iptcEncodingCombo->count(); i++) + { + if (d->iptcEncodingCombo->text(i) == settings->getIptcEncoding()) { + d->iptcEncodingCombo->setCurrentItem(i); + found = true; + break; + } + } + if (!found) d->iptcEncodingCombo->setCurrentItem(0); } bool SetupMetadata::exifAutoRotateAsChanged()