[KPhotoAlbum] Token setting in thumbnail view

Robert Krawitz rlk at alum.mit.edu
Sun Jul 7 02:15:49 CEST 2013


The following patch allows you to set/clear a token for all members of a
stack when in thumbnail view by typing an uppercase letter (similarly
for rating).

diff --git a/ThumbnailView/KeyboardEventHandler.cpp b/ThumbnailView/KeyboardEventHandler.cpp
index 9c341d1..e6a7195 100644
--- a/ThumbnailView/KeyboardEventHandler.cpp
+++ b/ThumbnailView/KeyboardEventHandler.cpp
@@ -34,12 +34,12 @@ ThumbnailView::KeyboardEventHandler::KeyboardEventHandler( ThumbnailFactory* fac
 
 bool ThumbnailView::KeyboardEventHandler::keyPressEvent( QKeyEvent* event )
 {
-    if ( event->modifiers() == Qt::NoModifier && ( event->key() >= Qt::Key_A && event->key() <= Qt::Key_Z ) ) {
+    if ( ( event->modifiers() == Qt::NoModifier || event->modifiers() == Qt::ShiftModifier )  && ( event->key() >= Qt::Key_A && event->key() <= Qt::Key_Z ) ) {
         QString token = event->text().toUpper().left(1);
         bool mustRemoveToken = false;
         bool hadHit          = false;
 
-        const DB::FileNameList selection = widget()->selection(NoExpandCollapsedStacks);
+        const DB::FileNameList selection = widget()->selection( event->modifiers() == Qt::NoModifier ? NoExpandCollapsedStacks : ExpandCollapsedStacks );
         Q_FOREACH( const DB::FileName& fileName, selection ) {
             DB::ImageInfoPtr info = fileName.info();
             if ( ! hadHit ) {
@@ -60,11 +60,11 @@ bool ThumbnailView::KeyboardEventHandler::keyPressEvent( QKeyEvent* event )
         return true;
     }
 
-    if ( event->modifiers() == Qt::NoModifier && ( event->key() >= Qt::Key_0 && event->key() <= Qt::Key_5 ) ) {
+    if ( ( event->modifiers() == Qt::NoModifier || event->modifiers() == Qt::ShiftModifier ) && ( event->key() >= Qt::Key_0 && event->key() <= Qt::Key_5 ) ) {
         bool ok;
         short rating = event->text().left(1).toShort(&ok, 10);
         if (ok) {
-            const DB::FileNameList selection = widget()->selection( NoExpandCollapsedStacks );
+            const DB::FileNameList selection = widget()->selection( event->modifiers() == Qt::NoModifier ? NoExpandCollapsedStacks : ExpandCollapsedStacks );
             Q_FOREACH( const DB::FileName& fileName, selection ) {
                 DB::ImageInfoPtr info = fileName.info();
                 info->setRating(rating * 2);

-- 
Robert Krawitz                                     <rlk at alum.mit.edu>

MIT VI-3 1987 - Congrats MIT Engineers 5 straight men's hoops tourney
Tall Clubs International  --  http://www.tall.org/ or 1-888-IM-TALL-2
Member of the League for Programming Freedom  --  http://ProgFree.org
Project lead for Gutenprint   --    http://gimp-print.sourceforge.net

"Linux doesn't dictate how I work, I dictate how Linux works."
--Eric Crampton


More information about the KPhotoAlbum mailing list