[Bug 220545] New: Cannot write XMP sidecar files

classic Classic list List threaded Threaded
109 messages Options
123456
Reply | Threaded
Open this post in threaded view
|

[Bug 220545] Cannot write XMP sidecar files

Marcel Wiesweg
https://bugs.kde.org/show_bug.cgi?id=220545





--- Comment #52 from Marcel Wiesweg <marcel wiesweg gmx de>  2010-07-05 12:49:57 ---
Yes, in metadatamanager.cpp is one occurrence of setWriteRawFiles. Nowhere
else.

--
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[Bug 220545] Cannot write XMP sidecar files

Gilles Caulier-4
In reply to this post by Bugzilla from jakob.malm@gmail.com
https://bugs.kde.org/show_bug.cgi?id=220545





--- Comment #53 from Gilles Caulier <caulier gilles gmail com>  2010-07-05 16:42:05 ---
Marcel,

Yes in MetadataManager, but here we talk about to _read_ XMP sidecar and
register data to DB. setWriteRAWFile() is only used to write/update metadata to
file. It's a different case.

The new method about XMP sidecar management is setUseXMPSidecar(). The question
is where we need to turn on/off this method in digiKam code.

Gilles Caulier

--
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[Bug 220545] Cannot write XMP sidecar files

Marcel Wiesweg
In reply to this post by Bugzilla from jakob.malm@gmail.com
https://bugs.kde.org/show_bug.cgi?id=220545





--- Comment #54 from Marcel Wiesweg <marcel wiesweg gmx de>  2010-07-05 19:06:30 ---
Oh, there are a lot of places where a DMetadata object is loaded. Grep for it,
can be about 100 occurrences. And a lot of places where AlbumSettings is not
available.

I suggest to set this setting / these settings centrally with a static method
in DMetadata. Because DMetadata can be used very early after startup, it should
even be able to read the setting directly from KConfig, with a method to
trigger re-reading it when changed.

If there are going to be more settings than just one, we should consider
setting up a MetadataSettings singleton.
We had similar problems and have come up with a similar solution for color
management settings: See the IccSettings class.

--
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[Bug 220545] Cannot write XMP sidecar files

Gilles Caulier-4
In reply to this post by Bugzilla from jakob.malm@gmail.com
https://bugs.kde.org/show_bug.cgi?id=220545


Gilles Caulier <[hidden email]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[hidden email]




--- Comment #55 from Gilles Caulier <caulier gilles gmail com>  2010-08-16 15:50:14 ---
*** Bug 228585 has been marked as a duplicate of this bug. ***

--
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[Bug 220545] Cannot write XMP sidecar files

Bugzilla from jakob.malm@gmail.com
In reply to this post by Bugzilla from jakob.malm@gmail.com
https://bugs.kde.org/show_bug.cgi?id=220545





--- Comment #56 from Jakob Malm <jakob malm gmail com>  2010-08-17 13:26:55 ---
I have not progressed any further with this...

Marcel and Gilles, have you discussed the strategy concerning settings any
further?

--
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[Bug 220545] Cannot write XMP sidecar files

Gilles Caulier-4
In reply to this post by Bugzilla from jakob.malm@gmail.com
https://bugs.kde.org/show_bug.cgi?id=220545





--- Comment #57 from Gilles Caulier <caulier gilles gmail com>  2010-08-17 13:36:52 ---
Jakob,

No more. Marcel as explained how to handle settings in #54 and give some vay to
check.

I don't have yet tried it, but it sound good for me afetr to take a look in
ICCSettings class as implementation example.

Note : XMP sidecar support must always be implemented in digiKam 2.0.0. Some
changes have been done by me recently : the libkexiv2 required to build digiKam
2.0.0 have been moved back to kdegraphics/libs from trunk, since KDE 4.5.0 have
been released.

We have planed to solve this entry for next coding sprint :

http://techbase.kde.org/Projects/Digikam/CodingSprint2010

So, if you have time to code the last patch to solve it before the sprint, we
will review it as well in time. This will simplify work team and we can
concentrate effort for other pending task...

Gilles Caulier

Gilles Caulier

--
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[Bug 220545] Cannot write XMP sidecar files

Gilles Caulier-4
In reply to this post by Bugzilla from jakob.malm@gmail.com
https://bugs.kde.org/show_bug.cgi?id=220545





--- Comment #58 from Gilles Caulier <caulier gilles gmail com>  2010-08-20 12:27:08 ---
SVN commit 1165878 by cgilles:

introduce Metadata Settings class to manage XMP sidecar files. Not yet used


 M  +2 -0      CMakeLists.txt
 AM            libs/dmetadata/metadatasettings.cpp   [License: GPL (v2+)]
 AM            libs/dmetadata/metadatasettings.h   [License: GPL (v2+)]
 AM            libs/dmetadata/metadatasettingscontainer.cpp   [License: GPL
(v2+)]
 AM            libs/dmetadata/metadatasettingscontainer.h   [License: GPL
(v2+)]


--- branches/extragear/graphics/digikam/CMakeLists.txt #1165877:1165878
@@ -625,6 +625,8 @@
    SET_SOURCE_FILES_PROPERTIES(${libdimgfilters_SRCS} PROPERTIES COMPILE_FLAGS
${KDE4_ENABLE_EXCEPTIONS})

    SET(libdmetadata_SRCS
+        ${CMAKE_CURRENT_SOURCE_DIR}/libs/dmetadata/metadatasettings.cpp
+      
${CMAKE_CURRENT_SOURCE_DIR}/libs/dmetadata/metadatasettingscontainer.cpp
        ${CMAKE_CURRENT_SOURCE_DIR}/libs/dmetadata/metadatainfo.cpp
        ${CMAKE_CURRENT_SOURCE_DIR}/libs/dmetadata/photoinfocontainer.cpp
        ${CMAKE_CURRENT_SOURCE_DIR}/libs/dmetadata/dmetadata.cpp

--
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[Bug 220545] Cannot write XMP sidecar files

Gilles Caulier-4
In reply to this post by Bugzilla from jakob.malm@gmail.com
https://bugs.kde.org/show_bug.cgi?id=220545





--- Comment #59 from Gilles Caulier <caulier gilles gmail com>  2010-08-20 15:50:48 ---
SVN commit 1165986 by cgilles:

use everywhere new MetadataSettings class to manage all metadata write
settings.
remove AlbumSettings metadata management methods
polish code when it's possible, especially set more private internal
containers.
CCBUGS: 220545


 M  +0 -193    digikam/albumsettings.cpp  
 M  +0 -30     digikam/albumsettings.h  
 M  +5 -6      digikam/albumthumbnailloader.cpp  
 M  +8 -4      digikam/albumthumbnailloader.h  
 M  +4 -3      digikam/digikamview.cpp  
 M  +1 -1      digikam/digikamview.h  
 M  +7 -6      digikam/imagepreviewbar.cpp  
 M  +2 -2      digikam/imagepreviewbar.h  
 M  +7 -6      digikam/imagepreviewview.cpp  
 M  +1 -1      digikam/imagepreviewview.h  
 M  +3 -2      digikam/imagepreviewviewv2.cpp  
 M  +1 -1      digikam/imagepreviewviewv2.h  
 M  +4 -39     digikam/metadatahub.cpp  
 M  +6 -42     digikam/metadatahub.h  
 M  +4 -3      digikam/metadatamanager.cpp  
 M  +0 -4      libs/dmetadata/metadatasettings.cpp  
 M  +36 -3     libs/dmetadata/metadatasettingscontainer.cpp  
 M  +17 -2     libs/dmetadata/metadatasettingscontainer.h  
 M  +2 -2      utilities/batch/batchfacedetector.cpp  
 M  +4 -4      utilities/batch/fingerprintsgenerator.cpp  
 M  +2 -2      utilities/batch/fingerprintsgenerator.h  
 M  +7 -4      utilities/imageeditor/editor/imagewindow.cpp  
 M  +2 -2      utilities/kipiiface/kipiimageinfo.cpp  
 M  +9 -3      utilities/kipiiface/kipiinterface.cpp  
 M  +6 -5      utilities/lighttable/lighttablepreview.cpp  
 M  +4 -3      utilities/lighttable/lighttablewindow.cpp  
 M  +2 -1      utilities/queuemanager/queuemgrwindow.cpp  
 M  +46 -33    utilities/setup/setupmetadata.cpp  
 M  +2 -3      utilities/setup/setupmetadata.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1165986

--
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[Bug 220545] Cannot write XMP sidecar files

Gilles Caulier-4
In reply to this post by Bugzilla from jakob.malm@gmail.com
https://bugs.kde.org/show_bug.cgi?id=220545





--- Comment #60 from Gilles Caulier <caulier gilles gmail com>  2010-08-20 15:56:28 ---
Marcel,

Please make a double verification of my big commit #1165986.

NOTES:

- Showfoto is not yet patched to read/save XMP sidecar.
- kipi-plugins are not yet patched to handle XMP sidecar. digiKam
kipi-interface must export this settings of course.

Jakob,

Please checkout digiKam from GoSC-2010 branch, recompile it and test with you
image collections including XMP sidecar. Please, turn on the right option from
Metadata settings panel to handle XMP sidecar.

Let's me hear if all work fine for you...

Gilles Caulier

--
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[Bug 220545] Cannot write XMP sidecar files

Gilles Caulier-4
In reply to this post by Bugzilla from jakob.malm@gmail.com
https://bugs.kde.org/show_bug.cgi?id=220545





--- Comment #61 from Gilles Caulier <caulier gilles gmail com>  2010-08-20 15:59:02 ---
Note : kipi-interface already export XMP sidecar settings, through
Digikam::KipiInterface::line 308.

Gilles Caulier

--
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[Bug 220545] Cannot write XMP sidecar files

Bugzilla from jakob.malm@gmail.com
In reply to this post by Bugzilla from jakob.malm@gmail.com
https://bugs.kde.org/show_bug.cgi?id=220545





--- Comment #62 from Jakob Malm <jakob malm gmail com>  2010-08-25 14:23:59 ---
Gilles,

I will hopefully find some time next week to test the GSoC-2010 branch. But I
believe last time I tried, I had some problems with qt or kde dependencies... I
will let you know how I fare.

--
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[Bug 220545] Cannot write XMP sidecar files

Gilles Caulier-4
In reply to this post by Bugzilla from jakob.malm@gmail.com
https://bugs.kde.org/show_bug.cgi?id=220545





--- Comment #63 from Gilles Caulier <caulier gilles gmail com>  2010-08-31 14:46:34 ---
SVN commit 1170226 by cgilles:

Add new wrapper for XMP sidecar support to provide a fine way to manage
writting in file and in sidecar.
Separate implementation into sidecar and image file.
Look MetadataWritingMode enum description to know how to deal with metadata
writting mode.
digiKam is not yet patched to compile with this API
Also, take a care, code is not yet fully tested in all conditions.
CCMAIL: [hidden email]


 M  +58 -200   kexiv2.cpp
 M  +22 -4     kexiv2.h
 M  +238 -11   kexiv2_p.cpp
 M  +7 -1      kexiv2_p.h

--
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[Bug 220545] Cannot write XMP sidecar files

Gilles Caulier-4
In reply to this post by Bugzilla from jakob.malm@gmail.com
https://bugs.kde.org/show_bug.cgi?id=220545





--- Comment #64 from Gilles Caulier <caulier gilles gmail com>  2010-08-31 14:50:18 ---
SVN commit 1170286 by cgilles:

use new API from libkexiv2 from trunk to deal with XMP sidecar


 M  +3 -2      digikam/metadatahub.cpp
 M  +1 -1      digikam/metadatahub.h
 M  +2 -1      digikam/metadatamanager.cpp
 M  +13 -3     libs/dmetadata/metadatasettingscontainer.cpp
 M  +3 -1      libs/dmetadata/metadatasettingscontainer.h
 M  +6 -2      utilities/kipiiface/kipiinterface.cpp
 M  +29 -19    utilities/setup/setupmetadata.cpp


--- branches/extragear/graphics/digikam/digikam/metadatahub.cpp
#1170285:1170286
@@ -203,9 +203,10 @@
    }
 }

-bool MetadataHub::load(const QString& filePath)
+bool MetadataHub::load(const QString& filePath, const
MetadataSettingsContainer& settings)
 {
    DMetadata metadata;
+    metadata.setUseXMPSidecar4Reading(settings.useXMPSidecar4Reading);
    bool success = metadata.load(filePath);
    load(metadata); // increments count
    return success;
@@ -453,7 +454,7 @@
    bool dirty = false;

    metadata.setWriteRawFiles(settings.writeRawFiles);
-    metadata.setUseXMPSidecar(settings.useXMPSidecar);
+    metadata.setMetadataWritingMode(settings.metadataWritingMode);

 #if KEXIV2_VERSION >= 0x000600
    metadata.setUpdateFileTimeStamp(settings.updateFileTimeStamp);
--- branches/extragear/graphics/digikam/digikam/metadatahub.h #1170285:1170286
@@ -142,7 +142,7 @@
        (Uses DMetadata, QFileInfo)
        @returns True if the metadata could be loaded
    */
-    bool load(const QString& filePath);
+    bool load(const QString& filePath, const MetadataSettingsContainer&
settings = MetadataSettingsContainer());

    // --------------------------------------------------

--- branches/extragear/graphics/digikam/digikam/metadatamanager.cpp
#1170285:1170286
@@ -474,7 +474,8 @@
        DMetadata::ImageOrientation o =
(DMetadata::ImageOrientation)orientation;
        metadata.setImageOrientation(o);
       
metadata.setWriteRawFiles(MetadataSettings::instance()->settings().writeRawFiles);
-      
metadata.setUseXMPSidecar(MetadataSettings::instance()->settings().useXMPSidecar);
+      
metadata.setUseXMPSidecar4Reading(MetadataSettings::instance()->settings().useXMPSidecar4Reading);
+      
metadata.setMetadataWritingMode(MetadataSettings::instance()->settings().metadataWritingMode);

        if (!metadata.applyChanges())
        {
---
branches/extragear/graphics/digikam/libs/dmetadata/metadatasettingscontainer.cpp
#1170285:1170286
@@ -27,10 +27,17 @@

 #include <kconfiggroup.h>

+
+// LibKExiv2 includes
+
+#include <libkexiv2/kexiv2.h>
+
 // Local includes

 #include "metadatasettings.h"

+using namespace KExiv2Iface;
+
 namespace Digikam
 {

@@ -44,7 +51,8 @@
    saveTemplate        = false;
    saveTags            = false;
    writeRawFiles       = false;
-    useXMPSidecar       = false;
+    useXMPSidecar4Reading = false;
+    metadataWritingMode   = KExiv2::WRITETOIMAGEONLY;
    updateFileTimeStamp = false;
 }

@@ -61,7 +69,8 @@
    saveRating          = group.readEntry("Save Rating",           false);

    writeRawFiles       = group.readEntry("Write RAW Files",       false);
-    useXMPSidecar       = group.readEntry("Use XMP Sidecar",       false);
+    useXMPSidecar4Reading = group.readEntry("Use XMP Sidecar For Reading",
false);
+    metadataWritingMode   = group.readEntry("Metadata Writing Mode",      
(int)KExiv2::WRITETOIMAGEONLY);
    updateFileTimeStamp = group.readEntry("Update File Timestamp", false);
 }

@@ -78,7 +87,8 @@
    group.writeEntry("Save Rating",           saveRating);

    group.writeEntry("Write RAW Files",       writeRawFiles);
-    group.writeEntry("Use XMP Sidecar",       useXMPSidecar);
+    group.writeEntry("Use XMP Sidecar For Reading", useXMPSidecar4Reading);
+    group.writeEntry("Metadata Writing Mode",       metadataWritingMode);
    group.writeEntry("Update File Timestamp", updateFileTimeStamp);
 }

---
branches/extragear/graphics/digikam/libs/dmetadata/metadatasettingscontainer.h
#1170285:1170286
@@ -66,8 +66,10 @@
    bool saveTags;

    bool writeRawFiles;
-    bool useXMPSidecar;
    bool updateFileTimeStamp;
+    bool useXMPSidecar4Reading;
+
+    int  metadataWritingMode;
 };

 }  // namespace Digikam
--- branches/extragear/graphics/digikam/utilities/kipiiface/kipiinterface.cpp
#1170285:1170286
@@ -303,10 +303,14 @@
    {
        return (set.writeRawFiles);
    }
-    else if (settingName == QString("UseXMPSidecar"))
+    else if (settingName == QString("UseXMPSidecar4Reading"))
    {
-        return (set.useXMPSidecar);
+        return (set.useXMPSidecar4Reading);
    }
+    else if (settingName == QString("MetadataWritingMode"))
+    {
+        return (set.metadataWritingMode);
+    }
    else if (settingName == QString("FileExtensions"))
    {
        // do not save this into a local variable, as this
--- branches/extragear/graphics/digikam/utilities/setup/setupmetadata.cpp
#1170285:1170286
@@ -48,6 +48,8 @@
 #include <ktoolinvocation.h>
 #include <kurllabel.h>
 #include <kvbox.h>
+#include <khbox.h>
+#include <kcombobox.h>

 // LibKExiv2 includes

@@ -61,6 +63,8 @@
 #include "metadatapanel.h"
 #include "metadatasettings.h"

+using namespace KExiv2Iface;
+
 namespace Digikam
 {

@@ -86,6 +90,7 @@
        resyncButton            = 0;
        tagsCfgPanel            = 0;
        tab                     = 0;
+        writingModeCombo        = 0;
    }

    bool           exifAutoRotateAsChanged;
@@ -106,6 +111,7 @@
    QCheckBox*     readFromNepomukBox;
    QToolButton*   resyncButton;

+    KComboBox*     writingModeCombo;
    KTabWidget*    tab;

    MetadataPanel* tagsCfgPanel;
@@ -174,35 +180,37 @@
    d->writeRawFilesBox->setWhatsThis( i18n("Turn on this option to write
metadata into RAW TIFF/EP files. "
                                            "This feature requires the Exiv2
shared library, version >= 0.18.0. It is still "
                                            "experimental, and is disabled by
default."));
-  
d->writeRawFilesBox->setEnabled(KExiv2Iface::KExiv2::supportMetadataWritting("image/x-raw"));
+  
d->writeRawFilesBox->setEnabled(KExiv2::supportMetadataWritting("image/x-raw"));

-    d->useXMPSidecarBox = new QCheckBox(commonGroup);
-    d->useXMPSidecarBox->setText(i18n("&Read metadata from and write metadata
to XMP sidecar files"));
-    d->useXMPSidecarBox->setWhatsThis( i18n("Turn on this option to write
metadata into XMP sidecar files, "
-                                            "and prefer metadata from XMP
sidecar files when reading metadata."
-                                            "This feature requires the Exiv2
shared library, version >= 0.18.0. It is still "
-                                            "experimental, and is disabled by
default."));
-    // TODO: Should perhaps do some testing for XMP sidecar support in
libkexiv2
-    //
d->useXMPSidecarBox->setEnabled(KExiv2Iface::KExiv2::supportXMPSidecar());
-
    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 timestamps when metadata are saved."));

-#if KEXIV2_VERSION >= 0x000600
-    d->updateFileTimeStampBox->show();
-#else
-    d->updateFileTimeStampBox->hide();
-#endif
+    d->useXMPSidecarBox = new QCheckBox(commonGroup);
+    d->useXMPSidecarBox->setText(i18n("&Read metadata from XMP sidecar
files"));
+    d->useXMPSidecarBox->setWhatsThis( i18n("Turn on this option to prefer
metadata from XMP sidecar files when reading metadata."));
+    d->useXMPSidecarBox->setEnabled(KExiv2::supportXmp());

+    KHBox* hbox = new KHBox(commonGroup);
+    QLabel* writingModeLabel = new QLabel(i18n("Metadata Writting Mode:"),
hbox);
+    writingModeLabel->setEnabled(KExiv2::supportXmp());
+    d->writingModeCombo      = new KComboBox(hbox);
+    d->writingModeCombo->addItem(i18n("Write to image only"),                
         KExiv2::WRITETOIMAGEONLY);
+    d->writingModeCombo->addItem(i18n("Write to XMP sidecar only"),          
         KExiv2::WRITETOSIDECARONLY);
+    d->writingModeCombo->addItem(i18n("Write to image and XMP Sidecar"),      
         KExiv2::WRITETOSIDECARANDIMAGE);
+    d->writingModeCombo->addItem(i18n("Write to XMP sidecar for read-only
image only"), KExiv2::WRITETOSIDECARONLY4READONLYFILES);
+    d->writingModeCombo->setToolTip(i18n("Choose there how to write
metadata."));
+    d->writingModeCombo->setEnabled(KExiv2::supportXmp());
+
    gLayout2->addWidget(d->saveTagsBox);
    gLayout2->addWidget(d->saveTemplateBox);
    gLayout2->addWidget(d->saveCommentsBox);
    gLayout2->addWidget(d->saveDateTimeBox);
    gLayout2->addWidget(d->saveRatingBox);
+    gLayout2->addWidget(d->updateFileTimeStampBox);
    gLayout2->addWidget(d->writeRawFilesBox);
    gLayout2->addWidget(d->useXMPSidecarBox);
-    gLayout2->addWidget(d->updateFileTimeStampBox);
+    gLayout2->addWidget(hbox);
    gLayout2->setMargin(KDialog::spacingHint());
    gLayout2->setSpacing(0);

@@ -231,7 +239,7 @@
                    "an older standard used in digital photography to store "
                    "photographer information in images.</p>"));

-    if (KExiv2Iface::KExiv2::supportXmp())
+    if (KExiv2::supportXmp())
        txt.append(i18n("<p><a
href='http://en.wikipedia.org/wiki/Extensible_Metadata_Platform'>XMP</a> - "
                        "a new standard used in digital photography, designed
to replace IPTC.</p>"));

@@ -387,7 +395,8 @@
    set.saveTags            = d->saveTagsBox->isChecked();
    set.saveTemplate        = d->saveTemplateBox->isChecked();
    set.writeRawFiles       = d->writeRawFilesBox->isChecked();
-    set.useXMPSidecar       = d->useXMPSidecarBox->isChecked();
+    set.useXMPSidecar4Reading = d->useXMPSidecarBox->isChecked();
+    set.metadataWritingMode   = d->writingModeCombo->currentIndex();
    set.updateFileTimeStamp = d->updateFileTimeStampBox->isChecked();
    mSettings->setSettings(set);

@@ -421,7 +430,8 @@
    d->saveTagsBox->setChecked(set.saveTags);
    d->saveTemplateBox->setChecked(set.saveTemplate);
    d->writeRawFilesBox->setChecked(set.writeRawFiles);
-    d->useXMPSidecarBox->setChecked(set.useXMPSidecar);
+    d->useXMPSidecarBox->setChecked(set.useXMPSidecar4Reading);
+    d->writingModeCombo->setCurrentIndex(set.metadataWritingMode);
    d->updateFileTimeStampBox->setChecked(set.updateFileTimeStamp);

 #ifdef HAVE_NEPOMUK

--
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[Bug 220545] Cannot write XMP sidecar files

Bugzilla from jakob.malm@gmail.com
In reply to this post by Bugzilla from jakob.malm@gmail.com
https://bugs.kde.org/show_bug.cgi?id=220545





--- Comment #65 from Jakob Malm <jakob malm gmail com>  2010-09-04 12:02:50 ---
I see you've been hard at work!

I finally managed to build all the pieces of software needed for the GSoC
branch. I've just done some very brief tests, but will return and report
further. A few observations so far:

1. I like the way you've added more configuration options for how to write
metadata, so that both image and sidecar can have the information.

2. Adding tags to an image makes it write metadata to sidecar when configured
to do so, and otherwise not. Correct behaviour.

3. Selecting "Image > Write metadata to image" for some reason does NOT write
to XMP sidecar. Incorrect behaviour.

4. I tried adding geolocation data, but I'm getting segmentation faults.
Perhaps I didn't build libkmap correctly?

5. Selecting "Image > Read metadata from image again" (or something like that)
does NOT update image keywords. Incorrect behaviour.

I will do some further tests, perhaps also with gdb to see what's going on,
when I get time (unless you find the problems first).

Sidenote: Digikam crashes when I quit the application...
digikam(22856)/digikam (core)
Digikam::StateSavingObjectPriv::getGroupFromObjectName: Object name for
Digikam::MapWidgetView(0xaae7ed8)  is empty. Returning the default config group
ASSERT: "d" in file /usr/include/qt4/QtCore/qscopedpointer.h, line 112
KCrash: Application 'digikam' crashing...
sock_file=/home/malmjako/.kde/socket-lorenzo/kdeinit4__0
QSocketNotifier: Invalid socket 39 and type 'Read', disabling...

--
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[Bug 220545] Cannot write XMP sidecar files

Gilles Caulier-4
In reply to this post by Bugzilla from jakob.malm@gmail.com
https://bugs.kde.org/show_bug.cgi?id=220545


Gilles Caulier <[hidden email]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Version|1.4.0                       |2.0.0




--
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[Bug 220545] Cannot write XMP sidecar files

Gilles Caulier-4
In reply to this post by Bugzilla from jakob.malm@gmail.com
https://bugs.kde.org/show_bug.cgi?id=220545





--- Comment #66 from Gilles Caulier <caulier gilles gmail com>  2011-03-23 10:19:25 ---
Git commit db70bd2c91af66cf34e23bcc49d337d0e085532f by Gilles Caulier.
Committed on 23/03/2011 at 10:16.
Pushed by cgilles into branch 'master'.

DMetadata : handle digiKam metadata settings in constructor to manage XMP
sidecar files everywhere in core implementation
CCBUGS: 220545

M  +3    -1    digikam/main/digikamapp.cpp    
M  +2    -7    digikam/metadata/metadatahub.cpp    
M  +0    -3    digikam/metadata/metadatamanager.cpp    
M  +1    -8    libs/database/imagescanner.cpp    
M  +3    -5    libs/dimg/loaders/dimgloader.cpp    
M  +1    -1    libs/dimg/loaders/dimgloaderobserver.h    
M  +20   -0    libs/dmetadata/dmetadata.cpp    
M  +4    -0    libs/dmetadata/dmetadata.h    

http://commits.kde.org/digikam/db70bd2c91af66cf34e23bcc49d337d0e085532f

--
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[Bug 220545] Cannot write XMP sidecar files

Gilles Caulier-4
In reply to this post by Bugzilla from jakob.malm@gmail.com
https://bugs.kde.org/show_bug.cgi?id=220545





--- Comment #67 from Gilles Caulier <caulier gilles gmail com>  2011-03-23 11:18:34 ---
Marcel,

As you said in your comment #54, now metadata settings are handle in DMetadata
constructors.

https://bugs.kde.org/show_bug.cgi?id=220545#c54

To complete XMP sidecar support, it still a lead problem to solve : manage
image and sidecar files at the same in these cases :

1/ Image Editor : File Save/SaveAs : when temp image file is created, it's
moved move to target file path. XMP sidecar still in temp place. Code relevant
is there :

https://projects.kde.org/projects/extragear/graphics/digikam/repository/revisions/master/entry/utilities/imageeditor/editor/editorwindow.cpp#L2705

2/ Album GUI : When image files are moved, copied, renamed, deleted, sidecar
files must be managed with the same rules at the same time. Code relevant is in
DIO if i'm not too wrong :

https://projects.kde.org/projects/extragear/graphics/digikam/repository/revisions/master/entry/digikam/database/dio.cpp

3/ In BQM, when new file is created in a workflow, sidecar file must be managed
at the the time. A temp file is created as in editor, it's the same problem.
Code relevant is there :

https://projects.kde.org/projects/extragear/graphics/digikam/repository/revisions/master/entry/utilities/queuemanager/main/queuemgrwindow.cpp#L1116

4/ In CameraGUI, sidecar file must be managed during import. Code relevant is
there :

https://projects.kde.org/projects/extragear/graphics/digikam/repository/revisions/master/entry/utilities/cameragui/controller/cameracontroller.cpp#L870

5/ In kipi-plugins, all tools which create new files must manage sidecar
accordingly with digiKam metadata settings.

I hope to not forget another place where image files are managed like this...

Gilles Caulier

--
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[Bug 220545] Cannot write XMP sidecar files

Gilles Caulier-4
In reply to this post by Bugzilla from jakob.malm@gmail.com
https://bugs.kde.org/show_bug.cgi?id=220545





--- Comment #68 from Gilles Caulier <caulier gilles gmail com>  2011-05-05 08:42:55 ---
Response from Marcel by private mail:

I see the problem, and I'm not very sure how to solve it.

I think the sidecar should be moved along with each single file, ideally
atomically, so when an operation is cancelled, a clean situation remains.

If a file transfer fails, then usually the subsequent transfer of the sidecar
will fail as well. But I see we want to be sure.

I had the idea to implement it in the ioslave, but I'm not sure the copy()
method is always called. We'd need to double check that. If get() is called,
no other file operation can be managed.
For each file we'd need to check if a sidecar is available, and this can take
a long time when many files are moved. This means the task needs to be done
asynchronously. The ioslave would come really handy.

--
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[Bug 220545] Cannot write XMP sidecar files

Gilles Caulier-4
In reply to this post by Bugzilla from jakob.malm@gmail.com
https://bugs.kde.org/show_bug.cgi?id=220545


Gilles Caulier <[hidden email]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[hidden email]




--- Comment #69 from Gilles Caulier <caulier gilles gmail com>  2011-07-11 21:21:04 ---
*** Bug 277574 has been marked as a duplicate of this bug. ***

--
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[Bug 220545] Cannot write XMP sidecar files

Jonas Norlander
In reply to this post by Bugzilla from jakob.malm@gmail.com
https://bugs.kde.org/show_bug.cgi?id=220545


Jonas Norlander <[hidden email]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[hidden email]




--- Comment #70 from Jonas Norlander <jonorland gmail com>  2011-07-24 09:26:10 ---
Digikam 2.0.0-rc

When moving files from within Digikam there is a dialog saying
"somefile.jpg.xmp is not in the database" and i can choose cancel or skip. If i
choose "skip" is it safe to move the corresponding xpm files to the the new
place outside of Digikam? There is also a hidden file
.digikam-exifrotate-2284.jpg what is this file for and should it also be moved?

--
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
123456