[Digikam-devel] extragear/graphics/digikam
Gilles Caulier
caulier.gilles at gmail.com
Fri Jan 9 11:20:58 GMT 2009
SVN commit 908159 by cgilles:
digiKam from trunk :
- added new option to Metadata settings panel to enable/disable file time stamp updating when metadata are saved.
- fix internal Metadata hub accordingly.
- add new rule in digiKam kipi-interface to share this settings with kipi-plugins.
Note: to use this option, you need libkexiv2 from trunk (KDE 4.3). digiKam still compilable with libkexiv2 for
KDE 4.2 but option is not available in gui.
CCMAIL: digikam-devel at kde.org
M +14 -0 digikam/albumsettings.cpp
M +3 -0 digikam/albumsettings.h
M +27 -21 digikam/metadatahub.cpp
M +3 -2 digikam/metadatahub.h
M +5 -1 utilities/kipiiface/kipiinterface.cpp
M +17 -1 utilities/setup/setupmetadata.cpp
M +1 -1 utilities/setup/setupmetadata.h
--- trunk/extragear/graphics/digikam/digikam/albumsettings.cpp #908158:908159
@@ -125,6 +125,7 @@
bool saveRating;
bool writeRawFiles;
+ bool updateFileTimeStamp;
// preview settings
bool previewLoadFullImageSize;
@@ -264,6 +265,7 @@
d->saveRating = false;
d->writeRawFiles = false;
+ d->updateFileTimeStamp = false;
d->previewLoadFullImageSize = false;
d->showThumbbar = true;
@@ -379,6 +381,7 @@
d->copyright = group.readEntry("Copyright", QString());
d->writeRawFiles = group.readEntry("Write RAW Files", false);
+ d->updateFileTimeStamp = group.readEntry("Update File Timestamp", false);
// ---------------------------------------------------------------------
@@ -479,6 +482,7 @@
group.writeEntry("Copyright", d->copyright);
group.writeEntry("Write RAW Files", d->writeRawFiles);
+ group.writeEntry("Update File Timestamp", d->updateFileTimeStamp);
// ---------------------------------------------------------------------
@@ -845,6 +849,16 @@
return d->writeRawFiles;
}
+void AlbumSettings::setUpdateFileTimeStamp(bool val)
+{
+ d->updateFileTimeStamp = val;
+}
+
+bool AlbumSettings::getUpdateFileTimeStamp() const
+{
+ return d->updateFileTimeStamp;
+}
+
void AlbumSettings::setAuthor(const QString& author)
{
d->author = author;
--- trunk/extragear/graphics/digikam/digikam/albumsettings.h #908158:908159
@@ -175,6 +175,9 @@
void setWriteRawFiles(bool val);
bool getWriteRawFiles() const;
+ void setUpdateFileTimeStamp(bool val);
+ bool getUpdateFileTimeStamp() const;
+
void setAuthor(const QString& author);
QString getAuthor() const;
--- trunk/extragear/graphics/digikam/digikam/metadatahub.cpp #908158:908159
@@ -6,8 +6,8 @@
* Date : 2007-01-05
* Description : Metadata handling
*
- * Copyright (C) 2007-2008 by Marcel Wiesweg <marcel.wiesweg at gmx.de>
- * Copyright (C) 2007-2008 by Gilles Caulier <caulier dot gilles at gmail dot com>
+ * Copyright (C) 2007-2009 by Marcel Wiesweg <marcel.wiesweg at gmx.de>
+ * Copyright (C) 2007-2009 by Gilles Caulier <caulier dot gilles at gmail dot com>
*
* This program is free software you can redistribute it
* and/or modify it under the terms of the GNU General
@@ -95,30 +95,32 @@
MetadataWriteSettings::MetadataWriteSettings()
{
- saveComments = false;
- saveDateTime = false;
- saveRating = false;
- saveTags = false;
- savePhotographerId = false;
- saveCredits = false;
- writeRawFiles = false;
+ saveComments = false;
+ saveDateTime = false;
+ saveRating = false;
+ saveTags = false;
+ savePhotographerId = false;
+ saveCredits = false;
+ writeRawFiles = false;
+ updateFileTimeStamp = false;
}
MetadataWriteSettings::MetadataWriteSettings(AlbumSettings *albumSettings)
{
- saveComments = albumSettings->getSaveComments();
- saveDateTime = albumSettings->getSaveDateTime();
- saveRating = albumSettings->getSaveRating();
- saveTags = albumSettings->getSaveTags();
- savePhotographerId = albumSettings->getSavePhotographerId();
- saveCredits = albumSettings->getSaveCredits();
- writeRawFiles = albumSettings->getWriteRawFiles();
+ saveComments = albumSettings->getSaveComments();
+ saveDateTime = albumSettings->getSaveDateTime();
+ saveRating = albumSettings->getSaveRating();
+ saveTags = albumSettings->getSaveTags();
+ savePhotographerId = albumSettings->getSavePhotographerId();
+ saveCredits = albumSettings->getSaveCredits();
+ writeRawFiles = albumSettings->getWriteRawFiles();
+ updateFileTimeStamp = albumSettings->getUpdateFileTimeStamp();
- Author = albumSettings->getAuthor();
- AuthorTitle = albumSettings->getAuthorTitle();
- Credit = albumSettings->getCredit();
- Source = albumSettings->getSource();
- Copyright = albumSettings->getCopyright();
+ Author = albumSettings->getAuthor();
+ AuthorTitle = albumSettings->getAuthorTitle();
+ Credit = albumSettings->getCredit();
+ Source = albumSettings->getSource();
+ Copyright = albumSettings->getCopyright();
}
MetadataHub::MetadataHub(DatabaseMode dbmode)
@@ -476,6 +478,10 @@
metadata.setWriteRawFiles(settings.writeRawFiles);
+#if KEXIV2_VERSION >= 0x000600
+ metadata.setUpdateFileTimestamp(settings.updateFileTimeStamp);
+#endif
+
// find out in advance if we have something to write - needed for FullWriteIfChanged mode
bool saveComment = (settings.saveComments && d->commentStatus == MetadataAvailable);
bool saveDateTime = (settings.saveDateTime && d->dateTimeStatus == MetadataAvailable);
--- trunk/extragear/graphics/digikam/digikam/metadatahub.h #908158:908159
@@ -6,8 +6,8 @@
* Date : 2007-01-05
* Description : Metadata handling
*
- * Copyright (C) 2007-2008 by Marcel Wiesweg <marcel.wiesweg at gmx.de>
- * Copyright (C) 2007-2008 by Gilles Caulier <caulier dot gilles at gmail dot com>
+ * Copyright (C) 2007-2009 by Marcel Wiesweg <marcel.wiesweg at gmx.de>
+ * Copyright (C) 2007-2009 by Gilles Caulier <caulier dot gilles at gmail dot com>
*
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU General
@@ -76,6 +76,7 @@
bool savePhotographerId;
bool saveCredits;
bool writeRawFiles;
+ bool updateFileTimeStamp;
QString Author;
QString AuthorTitle;
--- trunk/extragear/graphics/digikam/utilities/kipiiface/kipiinterface.cpp #908158:908159
@@ -273,8 +273,12 @@
#if KIPI_VERSION >= 0x000300
QVariant KipiInterface::hostSetting(const QString& settingName)
{
- if (settingName == QString("WriteMetadataToRAW"))
+ if (settingName == QString("WriteMetadataUpdateFiletimeStamp"))
{
+ return (AlbumSettings::instance()->getUpdateFileTimeStamp());
+ }
+ else if (settingName == QString("WriteMetadataToRAW"))
+ {
return (AlbumSettings::instance()->getWriteRawFiles());
}
else if (settingName == QString("FileExtensions"))
--- trunk/extragear/graphics/digikam/utilities/setup/setupmetadata.cpp #908158:908159
@@ -7,7 +7,7 @@
* Description : setup Metadata tab.
*
* Copyright (C) 2003-2004 by Ralf Holzer <ralf at well.com>
- * Copyright (C) 2003-2008 by Gilles Caulier <caulier dot gilles at gmail dot com>
+ * Copyright (C) 2003-2009 by Gilles Caulier <caulier dot gilles at gmail dot com>
*
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU General
@@ -47,6 +47,7 @@
// Libkexiv2 includes.
+#include <libkexiv2/version.h>
#include <libkexiv2/kexiv2.h>
// Local includes.
@@ -72,6 +73,7 @@
savePhotographerIdBox = 0;
saveCreditsBox = 0;
writeRawFilesBox = 0;
+ updateFileTimeStampBox = 0;
}
bool ExifAutoRotateAsChanged;
@@ -86,6 +88,7 @@
QCheckBox *savePhotographerIdBox;
QCheckBox *saveCreditsBox;
QCheckBox *writeRawFilesBox;
+ QCheckBox *updateFileTimeStampBox;
};
SetupMetadata::SetupMetadata(QWidget* parent )
@@ -154,6 +157,16 @@
"experimental, and disabled by default."));
d->writeRawFilesBox->setEnabled(KExiv2Iface::KExiv2::supportMetadataWritting("image/x-raw"));
+ d->updateFileTimeStampBox = new QCheckBox(commonGroup);
+ d->updateFileTimeStampBox->setText(i18n("&Update file timestamp when Metadata are saved"));
+ d->updateFileTimeStampBox->setWhatsThis( i18n("Turn on this option to update file timestamp when metadata are saved."));
+
+#if KEXIV2_VERSION >= 0x000600
+ d->updateFileTimeStampBox->show();
+#else
+ d->updateFileTimeStampBox->hide();
+#endif
+
gLayout2->addWidget(d->saveTagsBox);
gLayout2->addWidget(d->savePhotographerIdBox);
gLayout2->addWidget(d->saveCreditsBox);
@@ -161,6 +174,7 @@
gLayout2->addWidget(d->saveDateTimeBox);
gLayout2->addWidget(d->saveRatingBox);
gLayout2->addWidget(d->writeRawFilesBox);
+ gLayout2->addWidget(d->updateFileTimeStampBox);
gLayout2->setMargin(KDialog::spacingHint());
gLayout2->setSpacing(0);
@@ -249,6 +263,7 @@
settings->setSavePhotographerId(d->savePhotographerIdBox->isChecked());
settings->setSaveCredits(d->saveCreditsBox->isChecked());
settings->setWriteRawFiles(d->writeRawFilesBox->isChecked());
+ settings->setUpdateFileTimeStamp(d->updateFileTimeStampBox->isChecked());
settings->saveSettings();
}
@@ -267,6 +282,7 @@
d->savePhotographerIdBox->setChecked(settings->getSavePhotographerId());
d->saveCreditsBox->setChecked(settings->getSaveCredits());
d->writeRawFilesBox->setChecked(settings->getWriteRawFiles());
+ d->updateFileTimeStampBox->setChecked(settings->getUpdateFileTimeStamp());
}
bool SetupMetadata::exifAutoRotateAsChanged()
--- trunk/extragear/graphics/digikam/utilities/setup/setupmetadata.h #908158:908159
@@ -7,7 +7,7 @@
* Description : setup Metadata tab.
*
* Copyright (C) 2003-2004 by Ralf Holzer <ralf at well.com>
- * Copyright (C) 2003-2008 by Gilles Caulier <caulier dot gilles at gmail dot com>
+ * Copyright (C) 2003-2009 by Gilles Caulier <caulier dot gilles at gmail dot com>
*
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU General
More information about the Digikam-devel
mailing list