[KimDaBa] Re: Problem with the import function
Jesper K. Pedersen
blackie at kde.org
Fri Oct 15 10:17:12 BST 2004
Thanks for your letter, and analysis of the problem.
I'll put it in my
to-be-considered-after-2.0-release-and-after-I-have-added-a-database-to-kimdaba
folder.
On Thursday 14 October 2004 18:03, Jean-Michel FAYARD wrote:
| Jesper, if I´m not mistaken, it is currently impossible to do this
| with KimDaBa : UserA take the picture, share its .kim file, UserB
| improve it ( he volunteers to enter persons, locations, keywords,
| ....) and give it back to User A
|
|
| User A :
| - launch kimdaba, import the pictures with the "Digital Camera" plugin
| - does not want / does not have the time to set Persons, Locations,
| Keywords - select those pictures
| - export as .kim file
| - How to handle images : include in .kim file
| - send the .kim file to userB
|
| User B :
| - launch kimdaba, import the .kim file
| - set Persons, Keywords, Locations, ...
| - export as .kim file
| - How to handle images : manual copy next to .kim file
| - he DOES NOT copy the pictures, since he wants to send them to
| user A which has the pictures already. It would be a waste of bandwith
| - send the .kim file without the pictures to UserA
|
| User A : OK, thanks, now I have the improvment over my old .kim file
| - launch kimdaba, import the .kim file
| - next > next > next
| - the import function try to copy the files that are not here. The
| application is blocked because the progress bar never gets updated and
| ends.
|
|
| WISH : when the pictures are not present, the import function should
| just merge the information in the database. Maybe the pictures are
| already in the database, a scan of the disk will find them thanks to
| the md5sum, maybe the user will copy them after, let them be images
| not on disk.
|
|
|
| The problem is im import.cpp :
|
| void Import::copyNextFromExternal()
| {
| ImageInfo* info = _pendingCopies.at(0);
| _pendingCopies.remove((uint)0);
| QString fileName = info->fileName( true );
| KURL src1 = _kimFile;
| KURL src2 = _baseUrl + QString::fromLatin1( "/" );
| for ( int i = 0; i < 2; ++i ) {
| KURL src = src1;
| if ( i == 1 )
| src = src2;
|
| src.setFileName( fileName );
| if ( KIO::NetAccess::exists( src, true, MainView::theMainView() ) )
| { KURL dest;
| dest.setPath( Options::instance()->imageDirectory() +
| _nameMap[fileName] );
| _job = KIO::file_copy( src, dest, -1, false, false, false );
| connect( _job, SIGNAL( result( KIO::Job* ) ), this, SLOT(
| aCopyJobCompleted( KIO::Job* ) ) );
| break;
| }
| // HERE, it lacks something, the progress bar is not updated,
| deleted, ...
| }
| }
|
|
| void Import::aCopyJobCompleted( KIO::Job* job )
| {
| // TODO: we never enter here if the pictures are not present
| if ( job->error() ) {
| job->showErrorDialog( 0 );
| deleteLater();
| delete _progress;
| }
| else if ( _pendingCopies.count() == 0 ) {
| updateDB();
| deleteLater();
| delete _progress;
| }
| else if ( _progress->wasCanceled() ) {
| deleteLater();
| delete _progress;
| }
| else {
| _progress->setProgress( ++_totalCopied ); // TODO :
| setProgress ( _totalCopied + _totalMergedInDatabase
| copyNextFromExternal();
| }
| }
--
Having trouble finding a given image in your collection containing
thousands of images?
http://ktown.kde.org/kimdaba might be the answer.
More information about the Kphotoalbum
mailing list