SVN commit 488349 by blackie: OK seems like we've got searching for EXIF implemented by now M +3 -1 Exif/Database.cpp M +5 -3 Exif/SearchDialog.cpp M +2 -1 Exif/SearchDialog.h M +4 -4 Exif/SearchInfo.cpp M +2 -3 imagedb.cpp M +7 -0 tips --- trunk/extragear/graphics/kimdaba/Exif/Database.cpp #488348:488349 @@ -27,6 +27,7 @@ elms.append( new RationalExifElement( "Exif.Photo.ExposureTime" ) ); elms.append( new RationalExifElement( "Exif.Photo.ApertureValue" ) ); + elms.append( new RationalExifElement( "Exif.Photo.FNumber" ) ); elms.append( new RationalExifElement( "Exif.Photo.FlashEnergy" ) ); elms.append( new IntExifElement( "Exif.Photo.Flash" ) ); @@ -189,7 +190,8 @@ int ret = KMessageBox::questionYesNo( MainView::theMainView(), i18n("

Congratulation, your KimDaBa version now supports searching " "for EXIF information.

" - "

For this to work, I need to rescan your images. Do you want me to do so now?

"), + "

For this to work, KimDaBa needs to rescan your images. " + "Do you want this to happen now?

"), i18n("Rescan for EXIF information") ); if ( ret == KMessageBox::Yes ) ImageDB::instance()->slotReread( ImageDB::instance()->images(), EXIFMODE_DATABASE_UPDATE ); --- trunk/extragear/graphics/kimdaba/Exif/SearchDialog.cpp #488348:488349 @@ -21,7 +21,8 @@ hlay->addWidget( grid ); makeISO( grid ); makeExposureTime( grid ); - makeApertureValue( grid ); + _apertureValue = makeApertureOrFNumber( i18n( "Aperture Value" ), QString::fromLatin1( "Exif_Photo_ApertureValue" ), grid ); + _fNumber = makeApertureOrFNumber( i18n( "F Number" ), QString::fromLatin1( "Exif_Photo_FNumber" ), grid ); hlay->addWidget( makeOrientation( top ), 1 ); @@ -108,7 +109,7 @@ _exposureTime = new RangeWidget( i18n("Exposure time" ), QString::fromLatin1( "Exif_Photo_ExposureTime" ), list, parent ); } -void Exif::SearchDialog::makeApertureValue( QGrid* parent ) +RangeWidget* Exif::SearchDialog::makeApertureOrFNumber( const QString& text, const QString& key, QGrid* parent ) { Exif::RangeWidget::ValueList list; list @@ -143,7 +144,7 @@ << Exif::RangeWidget::Value( 40, QString::fromLatin1( "40" ) ) << Exif::RangeWidget::Value( 45, QString::fromLatin1( "45" ) ); - _apertureValue = new RangeWidget( i18n("F Number" ), QString::fromLatin1( "Exif_Photo_ApertureValue" ), list, parent ); + return new RangeWidget( text, key, list, parent ); } QWidget* Exif::SearchDialog::makeExposureProgram( QWidget* parent ) @@ -240,6 +241,7 @@ result.addRangeKey( _iso->range() ); result.addRangeKey( _exposureTime->range() ); result.addRangeKey( _apertureValue->range() ); + result.addRangeKey( _fNumber->range() ); return result; } --- trunk/extragear/graphics/kimdaba/Exif/SearchDialog.h #488348:488349 @@ -29,7 +29,7 @@ QWidget* makeSaturation( QWidget* parent ); QWidget* makeCamera( QWidget* parent ); void makeExposureTime( QGrid* parent ); - void makeApertureValue( QGrid* parent ); + RangeWidget* makeApertureOrFNumber( const QString& text, const QString& key, QGrid* parent ); QStringList availableCameras(); @@ -37,6 +37,7 @@ Exif::RangeWidget* _iso; Exif::RangeWidget* _exposureTime; Exif::RangeWidget* _apertureValue; + Exif::RangeWidget* _fNumber; IntSettings _exposureProgram; IntSettings _orientation; IntSettings _meteringMode; --- trunk/extragear/graphics/kimdaba/Exif/SearchInfo.cpp #488348:488349 @@ -69,19 +69,19 @@ if ( range.isLowerMin ) { // Min to Min means < x if ( range.isUpperMin ) - return QString::fromLatin1( "%1 < %2" ).arg( range.key ).arg( range.min *1.01 ); + return QString::fromLatin1( "%1 < %2 and %3 > 0" ).arg( range.key ).arg( range.min *1.01 ).arg( range.key ); // Min to Max means all images if ( range.isUpperMax ) return QString::null; // Min to y means <= y - return QString::fromLatin1( "%1 <= %2" ).arg( range.key ).arg( range.max * 1.01 ); + return QString::fromLatin1( "%1 <= %2 and %3 > 0" ).arg( range.key ).arg( range.max * 1.01 ).arg( range.key ); } - // MAX to MAX means y + // MAX to MAX means >= y if ( range.isLowerMax ) - return QString::fromLatin1( "%1 > %2" ).arg( range.key ).arg( range.max*1.01 ); + return QString::fromLatin1( "%1 > %2" ).arg( range.key ).arg( range.max*0.99 ); // x to Max means >= x if ( range.isUpperMax ) --- trunk/extragear/graphics/kimdaba/imagedb.cpp #488348:488349 @@ -138,9 +138,8 @@ void ImageDB::slotReread( const QStringList& list, int mode) { // Do here a reread of the exif info and change the info correctly in the database without loss of previous added data - QProgressDialog dialog( i18n("

Loading time information from images

" - "

Depending on the number of images, this may take some time.

"), - i18n("Cancel"), list.count() ); + QProgressDialog dialog( i18n("Loading information from images"), + i18n("Cancel"), list.count(), 0, "progress dialog", true ); int count=0; for( QStringList::ConstIterator it = list.begin(); it != list.end(); ++it, ++count ) { --- trunk/extragear/graphics/kimdaba/tips #488348:488349 @@ -1,5 +1,12 @@ +

On KimDaBa's home page (http://ktown.kde.org/kimdaba/) you may see a few videos featuring a number of +different KimDaBa features.

+ +
+ + +

It is possible to create new categories - that are alternatives to Person, Location, and Keywords - in the image property page. Simply go to the Settings->Configure KimDaBa dialog to add your own, or