Summary: | Wish: Automaticly create albums with name based on shooting date when downloading images from camera | ||
---|---|---|---|
Product: | [Applications] digikam | Reporter: | lan |
Component: | Import-Albums | Assignee: | Digikam Developers <digikam-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | wishlist | ||
Priority: | NOR | ||
Version: | 0.7.0 | ||
Target Milestone: | --- | ||
Platform: | unspecified | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
Very first version of auto-album feature
Implemented auto album feature Hack AlbumManager::createPAlbum() to create album immidiate |
Description
lan
2004-10-29 13:04:20 UTC
As far as noone comment this wish I start to implement it myself. I have wrote very 'alpha' version of this feature. For now it looks like a huge hack. It act almost the same as 'exif rotation' do. Except I didn't add GUI control for this. The main idea is to take EXIF information form just downloaded temp file and subsitute destination for it (create new dir if needed - I know I should create PAlbum instead of new directory but for now it is not the main problem). That is bad in this implementation ? It does not check for duplicate files and silently overwrite them, it does tell me I have duplicate images when I dont. This is because this is checked during scheduling image downloading when we have no exif information. So I have to ask one of digikam developer to help me with right solution: 1. I should change tumbnails download by adding exif downloading too and change schedule to automaticly create albums. 2. I should move duplicate check into thread that download images (by the way, can it interact with user via gui?) Patch with my changes will be attached. Waiting for respones, Alexander Litvinov. Created attachment 8129 [details]
Very first version of auto-album feature
CVS commit by pahlibar: when user starts to download items from a camera, the new album dialog has name pre-filled with exif date for the first image in the camera. BUG: 92312 M +54 -2 cameraui.cpp 1.24 M +9 -5 dirselectdialog.cpp 1.8 M +6 -2 dirselectdialog.h 1.3 well, not exactly what you asked for, but close enough. when user starts to download files from the camera, the select folder dialog pops up. If you click on a new album, then the dialog which pops up to enter the name of the folder is prefilled with the Exif Date of the first item (for eg, "2004, September, 20"). This dialog used to be empty earlier. User just has to click couple of Ok buttons and you have files being downloaded into the new created album. This is not a 100% automated solution, but avoids making guesses for a new album name if there exists album with same name and also avoids adding additional GUI features to the camera interface. The main idea of my request was the ability automaticly sort images when I have not downloaded them from my camera for a long time and have a lot of images with different shooting dates. Thanks for implementing this feature, even if not 100% what I want. I have made the feature I want. I have add check box to the camera download from near 'auto rotate' checkbox and if it is set find and if search failed create PAlbum and download image to this album. I also try to set album date to the shooting date, but AlbumManager::createPAlbum() does not create album in db - it just create folder and wait for KDirWatch event to update albums. As far as I need PAlbum immidiatly I can't set shooting date easily. Patch will be attached. It requires patch from bug #92665 "Review: utilities/cameragui/cameraui.cpp has duplicate parts of code". If needed I can make standalone patch. Created attachment 8161 [details]
Implemented auto album feature
This one is working for me.
Created attachment 8162 [details]
Hack AlbumManager::createPAlbum() to create album immidiate
As I have described above, I can't set date of album when I create album.
That is why I hacked AlbumManager a little to make it possible.
At first, this is not patch ready for production use - I think it have memory
leak.
How it works: after directory creation in createPAlbum(), I add this directory
as PAlmub in db just after dir creation. Also I have add duplicate check in
addPAlmub() because album will be added twice : I add it just after dir
creationa and KDirWatcher used by album manager will find new dir and also it
will try to add the same PAlbum.
Memory leak is in the line 319-322 when I create KFileItem I can't free it and
this produce memory leak.
If someone know better solution for PAlbum creation, tell me please.
CVS commit by pahlibar: BUG: 92665 BUG: 92312 * Auto-album patch applied (with modifications) to automatically create sub-albums in destination album based on exif date of the camera. - while downloading each file, the corresponding directory is "stat ed" to see if it exists. if not, get albummanager to create the album and write out to database, the date of the album - if any of these steps fails, the whole process bails out * merged the two download (selected/all) into one functio * thanks to lan at ac-sw com for original patches M +93 -82 cameraui.cpp 1.27 M +8 -0 cameraui.h 1.14 Thanks for appling! |