Bug 199482

Summary: Caption can't be changed
Product: [Applications] digikam Reporter: noeck <noeck.marburg>
Component: Tags-CaptionsAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: normal CC: caulier.gilles, marcel.wiesweg
Priority: NOR    
Version: 0.10.0   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 1.0.0
Sentry Crash Report:
Attachments: Image where caption can't be changed

Description noeck 2009-07-08 23:00:46 UTC
Version:           0.10.0 (using KDE 4.2.3)
OS:                Linux
Installed from:    Ubuntu Packages

Many of my pictures taken with a camera from YAKUMO AG have a caption like "167, 150, 252, 0, 0, 486".
This caption can't be canged, neither in the sidebar "Caption/Tags" nor in the menu Bild (picture/image) > Metadata > change caption. Everytime I try to change it, the caption is reset afterwards. Deleting the caption and/or the metadata doesn't help neither.
However the EXIF, IPTC and XMP-metadata is changed sometimes, but not if I have selected multiple pictures. And the caption in the sidebar caption/tags and neither the caption directly below the image are never changed.

I would like to send an example-picture with this bug, but I don't know how.
Comment 1 noeck 2009-07-08 23:03:36 UTC
Created attachment 35170 [details]
Image where caption can't be changed

I found out how to attach an example-picture for this bug-report.
Comment 2 caulier.gilles 2009-07-08 23:08:05 UTC
run digiKam from command. What do you see on the console when you try to change caption ?

Gilles Caulier
Comment 3 noeck 2009-07-08 23:56:43 UTC
Digikam says:

digikam(25883) Digikam::ScanControllerLoadingCacheFileWatch::slotImageChanged: 6834 "...path.../37 See.JPG"
Comment 4 noeck 2009-07-09 00:03:08 UTC
The previous comment #3 only quoted the output after trying to change the caption of "37 See.JPG" which is attached in comment #1.

Here is the full output in the terminal from starting up to closing digikam:

$ digikam
digikam(25883) Phonon::KdePlatformPlugin::createBackend: using backend:  "GStreamer"
Starting to load Plugins. 
=== MarbleDirs: === 
Local Path: "/home/user/.marble/data" 
Plugin Local Path: "/home/user/.marble/plugins" 
 
Marble Data Path (Run Time) : "" 
Marble Data Path (Compile Time): "/usr/local/share/apps/marble/data" 
 
Marble Plugin Path (Run Time) : "" 
Marble Plugin Path (Compile Time): "/usr/local/lib/kde4/plugins/marble" 
 
System Path: "/usr/local/share/apps/marble/data" 
Plugin System Path: "/usr/local/lib/kde4/plugins/marble" 
=================== 
"CompassFloatItem.so"  -  "/usr/local/lib/kde4/plugins/marble/CompassFloatItem.so" 
loading:  Marble::CompassFloatItem(0x9bd6600) Marble::CompassFloatItem(0x9bd3728) 
"MapScaleFloatItem.so"  -  "/usr/local/lib/kde4/plugins/marble/MapScaleFloatItem.so" 
loading:  Marble::MapScaleFloatItem(0x9be76a8) Marble::MapScaleFloatItem(0x9bd5af8) 
"MarbleCrosshairsPlugin.so"  -  "/usr/local/lib/kde4/plugins/marble/MarbleCrosshairsPlugin.so" 
loading:  Marble::MarbleCrosshairsPlugin(0x9be6f08) Marble::MarbleCrosshairsPlugin(0x9be4c80) 
"MarbleGeoDataPlugin.so"  -  "/usr/local/lib/kde4/plugins/marble/MarbleGeoDataPlugin.so" 
loading:  Marble::MarbleGeoDataPlugin(0x9be4ec0) Marble::MarbleGeoDataPlugin(0x9bd3448) 
"MarbleOverviewMap.so"  -  "/usr/local/lib/kde4/plugins/marble/MarbleOverviewMap.so" 
loading:  Marble::MarbleOverviewMap(0x9bdee40) Marble::MarbleOverviewMap(0x9bd6560) 
"MarbleStarsPlugin.so"  -  "/usr/local/lib/kde4/plugins/marble/MarbleStarsPlugin.so" 
loading:  Marble::MarbleStarsPlugin(0x9bdf2f8) Marble::MarbleStarsPlugin(0x9bdf640) 
"NavigationFloatItem.so"  -  "/usr/local/lib/kde4/plugins/marble/NavigationFloatItem.so" 
loading:  Marble::NavigationFloatItem(0x9be0890) Marble::NavigationFloatItem(0x9bdfef8) 
Time elapsed: 327 ms
Use workaround:  0 
loadMapTheme "earth/citylights/citylights.dgml" 
loadMapTheme "earth/bluemarble/bluemarble.dgml" 
MapThemeId "earth/srtm/srtm.dgml" 
loadMapTheme "earth/srtm/srtm.dgml" 
DGML2 Name       :  "Atlas" 
adding container: "cityplacemarks.kml" false 
starting parser for "cityplacemarks" 
adding container: "baseplacemarks.kml" false 
starting parser for "baseplacemarks" 
adding container: "elevplacemarks.kml" false 
starting parser for "elevplacemarks" 
adding container: "otherplacemarks.kml" false 
starting parser for "otherplacemarks" 
adding container: "boundaryplacemarks" true 
starting parser for "boundaryplacemarks" 
"Loading Default Placemark Cache File:/usr/local/share/apps/marble/data/placemarks/cityplacemarks.cache" 
"Loading Default Placemark Cache File:/usr/local/share/apps/marble/data/placemarks/baseplacemarks.cache" 
"Loading Default Placemark Cache File:/usr/local/share/apps/marble/data/placemarks/elevplacemarks.cache" 
"Loading Default Placemark Cache File:/usr/local/share/apps/marble/data/placemarks/otherplacemarks.cache" 
"Loading Default Placemark Cache File:/usr/local/share/apps/marble/data/placemarks/boundaryplacemarks.cache" 
Loading ended true 
Loading ended true 
Loading ended true 
Loading ended true 
TextureColorizer: Time elapsed: 299 ms
THEME CHANGED: *** "earth/srtm/srtm.dgml" 
SunLocator::setBody( QString ) 
Loading ended true 
Starting to load Plugins. 
=== MarbleDirs: === 
Local Path: "/home/user/.marble/data" 
Plugin Local Path: "/home/user/.marble/plugins" 
 
Marble Data Path (Run Time) : "" 
Marble Data Path (Compile Time): "/usr/local/share/apps/marble/data" 
 
Marble Plugin Path (Run Time) : "" 
Marble Plugin Path (Compile Time): "/usr/local/lib/kde4/plugins/marble" 
 
System Path: "/usr/local/share/apps/marble/data" 
Plugin System Path: "/usr/local/lib/kde4/plugins/marble" 
=================== 
"CompassFloatItem.so"  -  "/usr/local/lib/kde4/plugins/marble/CompassFloatItem.so" 
loading:  Marble::CompassFloatItem(0x9bd6600) Marble::CompassFloatItem(0xaeaad28) 
"MapScaleFloatItem.so"  -  "/usr/local/lib/kde4/plugins/marble/MapScaleFloatItem.so" 
loading:  Marble::MapScaleFloatItem(0x9be76a8) Marble::MapScaleFloatItem(0xaeaca10) 
"MarbleCrosshairsPlugin.so"  -  "/usr/local/lib/kde4/plugins/marble/MarbleCrosshairsPlugin.so" 
loading:  Marble::MarbleCrosshairsPlugin(0x9be6f08) Marble::MarbleCrosshairsPlugin(0xaeac358) 
"MarbleGeoDataPlugin.so"  -  "/usr/local/lib/kde4/plugins/marble/MarbleGeoDataPlugin.so" 
loading:  Marble::MarbleGeoDataPlugin(0x9be4ec0) Marble::MarbleGeoDataPlugin(0xaeaca80) 
"MarbleOverviewMap.so"  -  "/usr/local/lib/kde4/plugins/marble/MarbleOverviewMap.so" 
loading:  Marble::MarbleOverviewMap(0x9bdee40) Marble::MarbleOverviewMap(0xaeabd98) 
"MarbleStarsPlugin.so"  -  "/usr/local/lib/kde4/plugins/marble/MarbleStarsPlugin.so" 
loading:  Marble::MarbleStarsPlugin(0x9bdf2f8) Marble::MarbleStarsPlugin(0xaeaae20) 
"NavigationFloatItem.so"  -  "/usr/local/lib/kde4/plugins/marble/NavigationFloatItem.so" 
loading:  Marble::NavigationFloatItem(0x9be0890) Marble::NavigationFloatItem(0xaead028) 
Time elapsed: 43 ms
Use workaround:  0 
loadMapTheme "earth/citylights/citylights.dgml" 
loadMapTheme "earth/bluemarble/bluemarble.dgml" 
MapThemeId "earth/srtm/srtm.dgml" 
loadMapTheme "earth/srtm/srtm.dgml" 
DGML2 Name       :  "Atlas" 
adding container: "cityplacemarks.kml" false 
starting parser for "cityplacemarks" 
"Loading Default Placemark Cache File:/usr/local/share/apps/marble/data/placemarks/cityplacemarks.cache" 
adding container: "baseplacemarks.kml" false 
starting parser for "baseplacemarks" 
"Loading Default Placemark Cache File:/usr/local/share/apps/marble/data/placemarks/baseplacemarks.cache" 
adding container: "elevplacemarks.kml" false 
starting parser for "elevplacemarks" 
"Loading Default Placemark Cache File:/usr/local/share/apps/marble/data/placemarks/elevplacemarks.cache" 
adding container: "otherplacemarks.kml" false 
starting parser for "otherplacemarks" 
"Loading Default Placemark Cache File:/usr/local/share/apps/marble/data/placemarks/otherplacemarks.cache" 
adding container: "boundaryplacemarks" true 
Loading ended true 
Loading ended true 
Loading ended true 
starting parser for "boundaryplacemarks" 
"Loading Default Placemark Cache File:/usr/local/share/apps/marble/data/placemarks/boundaryplacemarks.cache" 
THEME CHANGED: *** "earth/srtm/srtm.dgml" 
SunLocator::setBody( QString ) 
Loading ended true 
Loading ended true 
Style reset requested. 
Style reset requested. 
Style reset requested. 
Style reset requested. 
start generate indexes 
generated indexes 
MarblePlacemarkModel (generateIndex): Time elapsed: 44 ms 
Style reset requested. 
Style reset requested. 
Style reset requested. 
Style reset requested. 
Style reset requested. 
Style reset requested. 
start generate indexes 
generated indexes 
MarblePlacemarkModel (generateIndex): Time elapsed: 46 ms 
Style reset requested. 
Style reset requested. 
timeChanged 
void SunLocator::update() 
timeChanged 
void SunLocator::update() 
digikam(25883): Attempt to use QAction "camera_solid" with KXMLGUIFactory! 
digikam(25883): Attempt to use QAction "usb_media" with KXMLGUIFactory! 
digikam(25883): Attempt to use QAction "card_reader" with KXMLGUIFactory! 
digikam(25883): Attempt to use QAction "camera_addedmanually" with KXMLGUIFactory! 
timeChanged 
void SunLocator::update() 
timeChanged 
void SunLocator::update() 
digikam(25883) Sonnet::Loader::loadPlugin: Successfully loaded plugin: "kspell_enchant.desktop"
digikam(25883) Sonnet::Loader::loadPlugin: Successfully loaded plugin: "kspell_hspell.desktop"
Enchant dict for "de" 0xe0f6978 
digikam(25883) Sonnet::Highlighter::slotRehighlight: Highlighter::slotRehighlight()
timeChanged 
void SunLocator::update() 
timeChanged 
void SunLocator::update() 
digikam(25883) Digikam::ScanControllerLoadingCacheFileWatch::slotImageChanged: 6834 "...path.../37 See.JPG"
timeChanged 
void SunLocator::update() 
timeChanged 
void SunLocator::update() 
deleting all render Plugins! 
rp: 163395368 
rp: 163404536 
rp: 163466368 
rp: 163394632 
rp: 163407200 
rp: 163444288 
rp: 163446520 
Model deleted: Marble::MarbleModel(0x9bd4ec8) 
deleting all render Plugins! 
rp: 183151912 
rp: 183159312 
rp: 183157592 
rp: 183159424 
rp: 183156120 
rp: 183152160 
rp: 183160872 
Model deleted: Marble::MarbleModel(0xaeaa820) 
QSqlDatabasePrivate::removeDatabase: connection 'digikamDatabase-155911824' is still in use, all queries will cease to work.
digikam(25883) Sonnet::Loader::~Loader: Removing loader :  Sonnet::Loader(0x10755ba8)
Comment 5 Marcel Wiesweg 2009-07-09 10:36:39 UTC
If

1) You have upgraded your database from 0.9.x
2) You had comments for these pictures in your old database
3) The newly added captions can be found in one of the comment fields in the metadata of the image

then you are affected by the unfortunate bug #189080.
Comment 6 noeck 2009-07-09 16:00:15 UTC
I have
1) upgraded form Intrepid-version (I think it was 0.9.*) and I still have the digikam3.db in my pictures directory (and the new digikam4.db).
2) these images already had captions before (the camera set them)
3) there is also an EXIF-entry called "Anmerkungen des Herstellers" (maker note?) with the same content as the "Anmerkungen des Benutzers" (user note?) that can't be changed and is the same as the caption in the sidebar.

What am I to do now?  bug #189080 is marked as resolved, so I will be able to change captions with a new version of digikam (coming with karmic)?

Or do I have to do something to change this? I found "Users already affected by this bug need to solve it manually as outlined in the bug report." in the bug #189080, but I don't know nothing about SQL.

Could you give me some help how to do this?
Comment 7 Marcel Wiesweg 2009-07-10 17:51:03 UTC
Any newly upgraded database should be fine, but I did not add code to do an automatic fix (in 189080 the affected user said that the automatic code sometimes got the good comment and sometimes the bad one).

You will with 1.0 be able to change comments again.

If you want to fix it now:
There is a piece of SQL in 189080 which will remove one of the two entries - as said above, it may not only catch the good one.
To execute the SQL, open a console, type "sqlite3 /path/to/your/digikam4.db", paste the SQL, hit enter, type ".exit". 
The user in 189080 decided to hand-pick the comments to remove using the database application knoda, which, in turn, i have never used.
If all bad comments have a special format, e.g. containing six commas, I can probably come up with an SQL command that identifies them this way.
Comment 8 noeck 2009-07-10 21:21:02 UTC
I have set only a few comments (and tried to change it with even fewer pictures where it didn't work), so I can wait for 1.0 and (re-)change it then.

Thank you for your fix in digikam and thank you for your SQL-hints! 

So as far as I understand this bug-report could be closed/marked as resolved or as a duplicate of bug #189080. What is the policy for that?

But one objection: If this bug is closed, another user with the same problem won't find it if he sends a bug report, because the resolved bugs are not listed in the list of possible duplicates.
Comment 9 noeck 2009-07-10 21:28:49 UTC
One more question: can digikam3.db be deleted if I have now digikam4.db or are both needed?
Comment 10 caulier.gilles 2009-07-10 22:41:21 UTC
Noeck,

All bugzilla entries fixed are listed in NEWS file joined to digiKam tarball when a release is done. Also, this list is posted to the announcement done on the web. 

This give a public resume of all works done on this project.

Gilles Caulier
Comment 11 Marcel Wiesweg 2009-07-11 15:35:28 UTC
@8: I mark this as duplicate of 189080 now.
I think the list of possible duplicates cannot contain all solved bugs, the number would be huge. In these cases, it's up to us to point to solved bugs.

@9: You can remove the digikam3.db file. Only digikam4.db is used by versions >= 0.10.

*** This bug has been marked as a duplicate of bug 189080 ***
Comment 12 noeck 2009-07-11 15:47:21 UTC
ok and thank you!