[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    extragear/graphics/digikam
From:       Martin Klapetek <martin.klapetek () gmail ! com>
Date:       2011-01-17 19:14:46
Message-ID: 20110117191446.21721AC8B5 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1215136 by mklapetek:

Add the capability to rebuild thumbnails just for one album, not necessarilly for the \
whole collection

 M  +11 -1     digikam/albumselectiontreeview.cpp  
 M  +14 -1     digikam/digikamapp.cpp  
 M  +1 -0      digikam/digikamapp.h  
 M  +2 -0      digikam/digikamapp_p.h  
 M  +31 -1     utilities/batch/batchthumbsgenerator.cpp  
 M  +1 -0      utilities/batch/batchthumbsgenerator.h  


--- trunk/extragear/graphics/digikam/digikam/albumselectiontreeview.cpp \
#1215135:1215136 @@ -42,6 +42,7 @@
 #include "contextmenuhelper.h"
 #include "itemviewtooltip.h"
 #include "tooltipfiller.h"
+#include "batchthumbsgenerator.h"
 
 namespace Digikam
 {
@@ -80,7 +81,8 @@
         toolTip(0),
         renameAction(0),
         resetIconAction(0),
-        findDuplAction(0)
+        findDuplAction(0),
+        rebuildThumbsAction(0)
     {
     }
 
@@ -91,6 +93,7 @@
     QAction* renameAction;
     QAction* resetIconAction;
     QAction* findDuplAction;
+    QAction* rebuildThumbsAction;
 
 };
 
@@ -106,6 +109,7 @@
     d->renameAction    = new QAction(SmallIcon("edit-rename"), i18n("Rename..."), \
                this);
     d->resetIconAction = new QAction(SmallIcon("view-refresh"), i18n("Reset Album \
                Icon"), this);
     d->findDuplAction  = new QAction(SmallIcon("tools-wizard"), i18n("Find \
Duplicates..."), this); +    d->rebuildThumbsAction   = new \
QAction(SmallIcon("view-process-all"), i18n("Rebuild Thumbnails..."), this);  
     setSortingEnabled(true);
     setSelectAlbumOnClick(true);
@@ -150,6 +154,7 @@
     cmh.addSeparator();
     // --------------------------------------------------------
     cmh.addAction(d->findDuplAction);
+    cmh.addAction(d->rebuildThumbsAction);
     cmh.addImportMenu();
     cmh.addExportMenu();
     cmh.addBatchMenu();
@@ -188,6 +193,11 @@
         kDebug() << "emitting signal for finding duplicates";
         emit signalFindDuplicatesInAlbum(album);
     }
+    else if (action == d->rebuildThumbsAction)
+    {
+        BatchThumbsGenerator* thumbsGenerator = new BatchThumbsGenerator(this, \
album->id()); +        thumbsGenerator->show();    
+    }
 
 }
 
--- trunk/extragear/graphics/digikam/digikam/digikamapp.cpp #1215135:1215136
@@ -737,6 +737,13 @@
 
     // -----------------------------------------------------------------
 
+    d->rebuildAlbumThumbsAction = new KAction(KIcon("view-process-all"), \
i18n("Rebuild Thumbnails In Current Album"), this); +    \
d->rebuildAlbumThumbsAction->setWhatsThis(i18n("Rebuilds all thumbnails for the \
current selected album")); +    connect(d->rebuildAlbumThumbsAction, \
SIGNAL(triggered()), this, SLOT(slotRebuildAlbumThumbnails())); +    \
actionCollection()->addAction("album_rebuild_thumbs", d->rebuildAlbumThumbsAction); + \
 +    // -----------------------------------------------------------------
+
     d->writeAlbumMetadataAction = new KAction(KIcon("document-edit"), i18n("Write \
                Metadata to Images"), this);
     d->writeAlbumMetadataAction->setWhatsThis(i18n("Updates metadata of images in \
the current "  "album with the contents of digiKam database "
@@ -1222,7 +1229,7 @@
 
     // -----------------------------------------------------------
 
-    KAction* rebuildThumbnailsAction = new KAction(KIcon("view-process-all"), \
i18n("Rebuild Thumbnails..."), this); +    KAction* rebuildThumbnailsAction = new \
                KAction(KIcon("view-process-all"), i18n("Rebuild All Thumbnails..."), \
                this);
     connect(rebuildThumbnailsAction, SIGNAL(triggered()), this, \
                SLOT(slotRebuildThumbnails()));
     actionCollection()->addAction("thumbnails_rebuild", rebuildThumbnailsAction);
 
@@ -2771,6 +2778,12 @@
     thumbsGenerator->show();
 }
 
+void DigikamApp::slotRebuildAlbumThumbnails()
+{
+    BatchThumbsGenerator* thumbsGenerator = new BatchThumbsGenerator(this, \
AlbumManager::instance()->currentAlbum()->id()); +    thumbsGenerator->show();       
+}
+
 void DigikamApp::slotGenerateFingerPrintsFirstTime()
 {
     runFingerPrintsGenerator(true);
--- trunk/extragear/graphics/digikam/digikam/digikamapp.h #1215135:1215136
@@ -194,6 +194,7 @@
 
     void slotDatabaseMigration();
     void slotDatabaseRescan();
+    void slotRebuildAlbumThumbnails();
     void slotRebuildThumbnails();
     void slotWriteMetadataToAllImages();
     void slotGenerateFingerPrintsFirstTime();
--- trunk/extragear/graphics/digikam/digikam/digikamapp_p.h #1215135:1215136
@@ -104,6 +104,7 @@
         openInFileManagerAction(0),
         openInTerminalAction(0),
         refreshAlbumAction(0),
+        rebuildAlbumThumbsAction(0),
         writeAlbumMetadataAction(0),
         readAlbumMetadataAction(0),
         newTagAction(0),
@@ -225,6 +226,7 @@
     KAction*                            openInFileManagerAction;
     KAction*                            openInTerminalAction;
     KAction*                            refreshAlbumAction;
+    KAction*                            rebuildAlbumThumbsAction;
     KAction*                            writeAlbumMetadataAction;
     KAction*                            readAlbumMetadataAction;
 
--- trunk/extragear/graphics/digikam/utilities/batch/batchthumbsgenerator.cpp \
#1215135:1215136 @@ -73,6 +73,8 @@
     bool                 cancel;
     bool                 rebuildAll;
 
+    int                  albumId;
+
     QTime                duration;
 
     QStringList          allPicturesPath;
@@ -85,6 +87,7 @@
 {
     d->thumbLoadThread = ThumbnailLoadThread::defaultThread();
     d->rebuildAll      = rebuildAll;
+    d->albumId         = -1;
 
     connect(d->thumbLoadThread, SIGNAL(signalThumbnailLoaded(const \
                LoadingDescription&, const QPixmap&)),
             this, SLOT(slotGotThumbnail(const LoadingDescription&, const \
QPixmap&))); @@ -98,6 +101,25 @@
     QTimer::singleShot(500, this, SLOT(slotRebuildThumbs()));
 }
 
+BatchThumbsGenerator::BatchThumbsGenerator(QWidget* /*parent*/, int albumId)
+: DProgressDlg(0), d(new BatchThumbsGeneratorPriv)
+{
+    d->thumbLoadThread = ThumbnailLoadThread::defaultThread();
+    d->rebuildAll      = true;
+    d->albumId         = albumId;
+    
+    connect(d->thumbLoadThread, SIGNAL(signalThumbnailLoaded(const \
LoadingDescription&, const QPixmap&)), +            this, SLOT(slotGotThumbnail(const \
LoadingDescription&, const QPixmap&))); +    
+    setModal(false);
+    setValue(0);
+    setCaption(i18n("Rebuild Current Album Thumbnails"));
+    setLabel(i18n("<b>Updating thumbnails database. Please wait...</b>"));
+    setButtonText(i18n("&Abort"));
+    
+    QTimer::singleShot(500, this, SLOT(slotRebuildThumbs()));
+}
+
 BatchThumbsGenerator::~BatchThumbsGenerator()
 {
     delete d;
@@ -108,8 +130,16 @@
     setTitle(i18n("Processing..."));
 
     // Get all digiKam albums collection pictures path.
+    AlbumList palbumList;
 
-    AlbumList palbumList  = AlbumManager::instance()->allPAlbums();
+    if(d->albumId == -1)
+    {
+        palbumList  = AlbumManager::instance()->allPAlbums();
+    }
+    else 
+    {
+        palbumList.append(AlbumManager::instance()->findPAlbum(d->albumId));
+    }
 
     for (AlbumList::Iterator it = palbumList.begin();
          !d->cancel && (it != palbumList.end()); ++it )
--- trunk/extragear/graphics/digikam/utilities/batch/batchthumbsgenerator.h \
#1215135:1215136 @@ -51,6 +51,7 @@
 public:
 
     explicit BatchThumbsGenerator(QWidget* parent, bool rebuildAll=true);
+    BatchThumbsGenerator(QWidget* parent, int albumId);
     ~BatchThumbsGenerator();
 
 Q_SIGNALS:


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic