Bug 147854

Summary: Put images into an emptied light-table
Product: [Applications] digikam Reporter: Arnd Baecker <arnd.baecker>
Component: LightTable-WorkflowAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: wishlist    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Debian stable   
OS: Linux   
Latest Commit: Version Fixed In: 0.9.3
Sentry Crash Report:
Attachments: patch for SHIFT+F6
corrected patch
always put images into an empty light-table

Description Arnd Baecker 2007-07-13 23:00:41 UTC
Version:            (using KDE KDE 3.5.5)
Installed from:    Debian stable Packages

When consecutively going through image comparisons of different sequences, it would
be nice, if one could freshly populate the light-table.
I.e. all the previous entries in the light-table should be removed.
This is currently possible by Ctrl+Shift+k in the light table to clear all items.
However, I usually forget to use this.
Therefore I suggest to use Shift-F6 to populate an emptied light-table.
Comment 1 Arnd Baecker 2007-07-13 23:02:31 UTC
Created attachment 21139 [details]
patch for SHIFT+F6

This patch implements Shift+F6 to fill the images into an emptied light-table.
Comment 2 Arnd Baecker 2007-07-13 23:54:37 UTC
Created attachment 21140 [details]
corrected patch
Comment 3 Arnd Baecker 2007-09-07 07:41:36 UTC
After several rounds of image comparisons with the light-table,
I realized that I always clear my light-table before comparing
the next bunch of images and never have the need to add any images
to an existing populated light-table.

Therefore I would even propose to change F6 to put images into an
empty light-table and use CTRL-F6 to add images
to the light-table (i.e. without clearing).

Of course, this might be just my "workflow", so comments are welcome!
Comment 4 caulier.gilles 2007-09-07 07:58:12 UTC
Fine for me

Gilles
Comment 5 Mikolaj Machowski 2007-09-07 10:32:18 UTC
+1 Arnd. I also prefer to select all images carefully with Ctrl or Shift 
and put them all into LT.

----------------------------------------------------
Pierwsza od pi
Comment 6 Arnd Baecker 2007-09-07 11:18:34 UTC
Created attachment 21560 [details]
always put images into an empty light-table

The attached patch is a fully revised version (the old one did not work
anymore ;-). Now the default on F6 is to put all images into
an empty light table. With CTRL+F6 selected images are added to the 
existing images in the light table.
Comment 7 caulier.gilles 2007-09-07 11:26:41 UTC
Arnd,

Patch sound fine for me. Let's go to commit on KDE3 branch. unforget to annotate your commit with KDE4PORT and do not close this file using BUG, but just atg it using CCBUGS. I will close this file when i will backport your patch into KDE4 branch.

Gilles
Comment 8 Arnd Baecker 2007-09-07 11:47:42 UTC
SVN commit 709349 by abaecker:

Always put images into an empty light-table on F6. With CTRL+F6 images
are added to the existing images in the light table. 
CCBUGS: 147854
TODO:KDE4PORT



 M  +10 -6     digikam/albumiconview.cpp  
 M  +2 -2      digikam/albumiconview.h  
 M  +11 -2     digikam/digikamapp.cpp  
 M  +1 -0      digikam/digikamui.rc  
 M  +22 -3     digikam/digikamview.cpp  
 M  +1 -0      digikam/digikamview.h  
 M  +14 -4     utilities/lighttable/lighttablewindow.cpp  
 M  +1 -1      utilities/lighttable/lighttablewindow.h  


--- branches/extragear/kde3/graphics/digikam/digikam/albumiconview.cpp #709348:709349
@@ -682,7 +682,8 @@
   
       case 19: 
       {
-          insertSelectionToLightTable();
+          //  add images to existing images in the light table
+          insertSelectionToLightTable(true);
           break;
       }
 
@@ -1027,10 +1028,11 @@
     imview->setFocus();
 }
 
-void AlbumIconView::insertSelectionToLightTable()
+void AlbumIconView::insertSelectionToLightTable(bool addTo)
 {
     // Run Light Table with all selected image files in the current Album.
-
+    // If addTo is false, the light table will be emptied before adding
+    // the images.
     ImageInfoList imageInfoList;
     
     for (IconItem *it = firstItem() ; it ; it = it->nextItem())
@@ -1044,10 +1046,10 @@
         }
     }
     
-    insertToLightTable(imageInfoList, imageInfoList.first());
+    insertToLightTable(imageInfoList, imageInfoList.first(), addTo);
 }
 
-void AlbumIconView::insertToLightTable(const ImageInfoList& list, ImageInfo* current)
+void AlbumIconView::insertToLightTable(const ImageInfoList& list, ImageInfo* current, bool addTo)
 {
     LightTableWindow *ltview = LightTableWindow::lightTableWindow();
 
@@ -1064,7 +1066,9 @@
 
     ltview->raise();
     ltview->setFocus();
-    ltview->loadImageInfos(list, current);
+    // If addTo is false, the light table will be emptied before adding
+    // the images.
+    ltview->loadImageInfos(list, current, addTo);
     if (list.count()>1)
         ltview->setLeftRightItems(list);
 }
--- branches/extragear/kde3/graphics/digikam/digikam/albumiconview.h #709348:709349
@@ -117,8 +117,8 @@
     AlbumIconItem* nextItemToThumbnail() const;
     PixmapManager* pixmapManager() const;
 
-    void insertSelectionToLightTable();
-    void insertToLightTable(const ImageInfoList& list, ImageInfo* current);
+    void insertSelectionToLightTable(bool addTo = false);
+    void insertToLightTable(const ImageInfoList& list, ImageInfo* current, bool addTo = false);
 
 signals:
 
--- branches/extragear/kde3/graphics/digikam/digikam/digikamapp.cpp #709348:709349
@@ -634,8 +634,17 @@
                                     SLOT(slotImageLightTable()),
                                     actionCollection(),
                                     "image_lighttable");
-    d->imageLightTableAction->setWhatsThis(i18n("Insert the selected items into the light table thumbbar."));
+    d->imageLightTableAction->setWhatsThis(i18n("Put the selected items into the light table thumbbar."));
 
+    d->imageLightTableAction = new KAction(i18n("Add to Light Table"),
+                                    "idea",
+                                    CTRL+Key_F6,
+                                    d->view,
+                                    SLOT(slotImageAddToLightTable()),
+                                    actionCollection(),
+                                    "image_add_to_lighttable");
+    d->imageLightTableAction->setWhatsThis(i18n("Add selected items to the light table thumbbar."));
+
     d->imageRenameAction = new KAction(i18n("Rename..."),
                                     "pencil",
                                     Key_F2,
@@ -922,7 +931,7 @@
     advFindAction->setText(i18n("Advanced Search..."));
     advFindAction->setShortcut("Ctrl+Alt+F");
 
-    new KAction(i18n("Light Table"), "idea", CTRL+Key_F6,
+    new KAction(i18n("Light Table"), "idea", SHIFT+Key_F6,
                 d->view, SLOT(slotLightTable()), actionCollection(), 
                 "light_table");
 
--- branches/extragear/kde3/graphics/digikam/digikam/digikamui.rc #709348:709349
@@ -43,6 +43,7 @@
      <Action name="image_view" />
      <Action name="image_edit" />
      <Action name="image_lighttable" />
+     <Action name="image_add_to_lighttable" />
      <Action name="image_set_exif_orientation"/>
    <Separator />
      <ActionList name="image_actions"/>
--- branches/extragear/kde3/graphics/digikam/digikam/digikamview.cpp #709348:709349
@@ -994,24 +994,43 @@
 void DigikamView::slotLightTable()
 {
     ImageInfoList empty;
-    d->iconView->insertToLightTable(empty, 0);
+    d->iconView->insertToLightTable(empty, 0, true);
 }
 
 void DigikamView::slotImageLightTable()
 {
     if (d->albumWidgetStack->previewMode() == AlbumWidgetStack::PreviewAlbumMode)
     {
-        d->iconView->insertSelectionToLightTable();
+        // put images into an emptied light table 
+        d->iconView->insertSelectionToLightTable(false);
     }
     else
     {
         ImageInfoList list;
         ImageInfo *info = d->albumWidgetStack->imagePreviewView()->getImageInfo();
         list.append(info);
-        d->iconView->insertToLightTable(list, info);
+        // put images into an emptied light table 
+        d->iconView->insertToLightTable(list, info, false);
     }
 }
 
+void DigikamView::slotImageAddToLightTable()
+{
+    if (d->albumWidgetStack->previewMode() == AlbumWidgetStack::PreviewAlbumMode)
+    {
+        // add images to the existing images in the light table 
+        d->iconView->insertSelectionToLightTable(true);
+    }
+    else
+    {
+        ImageInfoList list;
+        ImageInfo *info = d->albumWidgetStack->imagePreviewView()->getImageInfo();
+        list.append(info);
+        // add images to the existing images in the light table 
+        d->iconView->insertToLightTable(list, info, true);
+    }
+}
+
 void DigikamView::slotImageRename(AlbumIconItem *iconItem)
 {
     AlbumIconItem *item;
--- branches/extragear/kde3/graphics/digikam/digikam/digikamview.h #709348:709349
@@ -113,6 +113,7 @@
 
     // Image action slots
     void slotImageLightTable();
+    void slotImageAddToLightTable();
     void slotImagePreview();
     void slotImageEdit();
     void slotImageExifOrientation(int orientation);
--- branches/extragear/kde3/graphics/digikam/utilities/lighttable/lighttablewindow.cpp #709348:709349
@@ -500,7 +500,9 @@
 // Deal with items dropped onto the thumbbar (e.g. from the Album view)
 void LightTableWindow::slotThumbbarDroppedItems(const ImageInfoList& list)
 {
-    loadImageInfos(list, 0);
+    // Setting the third parameter of loadImageInfos to true 
+    // means that the images are added to the presently available images.
+    loadImageInfos(list, 0, true);
     if (list.count()>1)
         setLeftRightItems(list);
 }
@@ -513,8 +515,14 @@
 //     c) albumiconview.cpp: AlbumIconView::insertToLightTable
 //          calls ltview->loadImageInfos(list, current);
 // - via drag&drop, i.e. calls issued by the ...Dropped... routines
-void LightTableWindow::loadImageInfos(const ImageInfoList &list, ImageInfo *imageInfoCurrent)
+void LightTableWindow::loadImageInfos(const ImageInfoList &list, ImageInfo *imageInfoCurrent, bool addTo)
 {
+    // Clear all items before adding new images to the light table.
+    if (!addTo)
+    {
+        slotClearItemsList();
+    }
+
     ImageInfoList l = list;
 
     if (!imageInfoCurrent) 
@@ -733,7 +741,8 @@
 void LightTableWindow::slotLeftDroppedItems(const ImageInfoList& list)
 {
     ImageInfo *info = *(list.begin());
-    loadImageInfos(list, info);
+    // add the image to the existing images
+    loadImageInfos(list, info, true);
 
     // We will check if first item from list is already stored in thumbbar
     // Note that the thumbbar stores all ImageInfo reference 
@@ -757,7 +766,8 @@
 void LightTableWindow::slotRightDroppedItems(const ImageInfoList& list)
 {
     ImageInfo *info = *(list.begin());
-    loadImageInfos(list, info);
+    // add the image to the existing images
+    loadImageInfos(list, info, true);
     if (list.count()>1)
         setLeftRightItems(list);
 
--- branches/extragear/kde3/graphics/digikam/utilities/lighttable/lighttablewindow.h #709348:709349
@@ -57,7 +57,7 @@
     static LightTableWindow *lightTableWindow();
     static bool              lightTableWindowCreated();
 
-    void loadImageInfos(const ImageInfoList &list, ImageInfo *imageInfoCurrent);
+    void loadImageInfos(const ImageInfoList &list, ImageInfo *imageInfoCurrent, bool addTo);
     void setLeftRightItems(const ImageInfoList &list);
 
 signals: 
Comment 9 caulier.gilles 2007-09-07 12:09:37 UTC
Arnd,

You have changed digikamui.rc XML file and you have forget to increment the version number on the header. It's important to do it to prevent broken menu contruction.

Gilles
Comment 10 caulier.gilles 2007-09-07 12:22:57 UTC
SVN commit 709357 by cgilles:

do not mix 2 action on the same container.
CCBUGS: 147854


 M  +2 -2      digikamapp.cpp  
 M  +2 -0      digikamappprivate.h  


--- branches/extragear/kde3/graphics/digikam/digikam/digikamapp.cpp #709356:709357
@@ -636,14 +636,14 @@
                                     "image_lighttable");
     d->imageLightTableAction->setWhatsThis(i18n("Put the selected items into the light table thumbbar."));
 
-    d->imageLightTableAction = new KAction(i18n("Add to Light Table"),
+    d->imageAddLightTableAction = new KAction(i18n("Add to Light Table"),
                                     "idea",
                                     CTRL+Key_F6,
                                     d->view,
                                     SLOT(slotImageAddToLightTable()),
                                     actionCollection(),
                                     "image_add_to_lighttable");
-    d->imageLightTableAction->setWhatsThis(i18n("Add selected items to the light table thumbbar."));
+    d->imageAddLightTableAction->setWhatsThis(i18n("Add selected items to the light table thumbbar."));
 
     d->imageRenameAction = new KAction(i18n("Rename..."),
                                     "pencil",
--- branches/extragear/kde3/graphics/digikam/digikam/digikamappprivate.h #709356:709357
@@ -95,6 +95,7 @@
         imagePreviewAction                   = 0;
         imageViewAction                      = 0;
         imageLightTableAction                = 0;
+        imageAddLightTableAction             = 0;
         imageSetExifOrientation1Action       = 0;
         imageSetExifOrientation2Action       = 0;
         imageSetExifOrientation3Action       = 0;
@@ -190,6 +191,7 @@
     // Image Actions
     KToggleAction         *imagePreviewAction;
     KAction               *imageLightTableAction;
+    KAction               *imageAddLightTableAction;
     KAction               *imageViewAction;
     KAction               *imageSetExifOrientation1Action;
     KAction               *imageSetExifOrientation2Action;
Comment 11 caulier.gilles 2007-09-07 12:24:06 UTC
SVN commit 709358 by cgilles:

unforget to increment rc file when a new action have been added to gui
CCBUGS: 147854


 M  +1 -1      digikamui.rc  


--- branches/extragear/kde3/graphics/digikam/digikam/digikamui.rc #709357:709358
@@ -1,5 +1,5 @@
 <!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
-<kpartgui version="31" name="digikam" >
+<kpartgui version="32" name="digikam" >
 
  <MenuBar>
 
Comment 12 caulier.gilles 2007-09-07 12:37:03 UTC
SVN commit 709362 by cgilles:

backport commits #709349 from KDE3 branch 
CCBUGS: 147854


 M  +14 -5     lighttablewindow.cpp  
 M  +1 -1      lighttablewindow.h  


--- trunk/extragear/graphics/digikam/utilities/lighttable/lighttablewindow.cpp #709361:709362
@@ -500,7 +500,9 @@
 // Deal with items dropped onto the thumbbar (e.g. from the Album view)
 void LightTableWindow::slotThumbbarDroppedItems(const ImageInfoList& list)
 {
-    loadImageInfos(list, ImageInfo());
+    // Setting the third parameter of loadImageInfos to true
+    // means that the images are added to the presently available images.
+    loadImageInfos(list, ImageInfo(), true);
     if (list.count()>1)
         setLeftRightItems(list);
 }
@@ -513,8 +515,14 @@
 //     c) albumiconview.cpp: AlbumIconView::insertToLightTable
 //          calls ltview->loadImageInfos(list, current);
 // - via drag&drop, i.e. calls issued by the ...Dropped... routines
-void LightTableWindow::loadImageInfos(const ImageInfoList &list, const ImageInfo &givenImageInfoCurrent)
+void LightTableWindow::loadImageInfos(const ImageInfoList &list, 
+                                      const ImageInfo &givenImageInfoCurrent,
+                                      bool addTo)
 {
+    // Clear all items before adding new images to the light table.
+    if (!addTo)
+        slotClearItemsList();
+
     ImageInfoList l = list;
     ImageInfo imageInfoCurrent = givenImageInfoCurrent;
 
@@ -522,7 +530,6 @@
         imageInfoCurrent = l.first();
 
     AlbumSettings *settings = AlbumSettings::instance();
-
     if (!settings) return;
 
     QString imagefilter = settings->getImageFileFilter().toLower() +
@@ -734,7 +741,8 @@
 void LightTableWindow::slotLeftDroppedItems(const ImageInfoList& list)
 {
     ImageInfo info = list.first();
-    loadImageInfos(list, info);
+    // add the image to the existing images
+    loadImageInfos(list, info, true);
 
     // We will check if first item from list is already stored in thumbbar
     // Note that the thumbbar stores all ImageInfo reference 
@@ -758,7 +766,8 @@
 void LightTableWindow::slotRightDroppedItems(const ImageInfoList& list)
 {
     ImageInfo info = list.first();
-    loadImageInfos(list, info);
+    // add the image to the existing images
+    loadImageInfos(list, info, true);
     if (list.count()>1)
         setLeftRightItems(list);
 
--- trunk/extragear/graphics/digikam/utilities/lighttable/lighttablewindow.h #709361:709362
@@ -57,7 +57,7 @@
     static LightTableWindow *lightTableWindow();
     static bool              lightTableWindowCreated();
 
-    void loadImageInfos(const ImageInfoList &list, const ImageInfo &imageInfoCurrent);
+    void loadImageInfos(const ImageInfoList &list, const ImageInfo &imageInfoCurrent, bool addTo);
     void setLeftRightItems(const ImageInfoList &list);
 
 signals: 
Comment 13 caulier.gilles 2007-09-07 12:37:41 UTC
SVN commit 709363 by cgilles:

backport commits #709349 from KDE3 branch
BUG: 147854


 M  +10 -6     albumiconview.cpp  
 M  +2 -2      albumiconview.h  
 M  +10 -2     digikamapp.cpp  
 M  +2 -0      digikamappprivate.h  
 M  +2 -1      digikamui.rc  
 M  +22 -3     digikamview.cpp  
 M  +1 -0      digikamview.h  


--- trunk/extragear/graphics/digikam/digikam/albumiconview.cpp #709362:709363
@@ -682,7 +682,8 @@
         }
         else if (choice == lighttableAction)
         {
-            insertSelectionToLightTable();
+            //  add images to existing images in the light table
+            insertSelectionToLightTable(true);
         }
         else
         {
@@ -1021,10 +1022,11 @@
     imview->setFocus();
 }
 
-void AlbumIconView::insertSelectionToLightTable()
+void AlbumIconView::insertSelectionToLightTable(bool addTo)
 {
     // Run Light Table with all selected image files in the current Album.
-
+    // If addTo is false, the light table will be emptied before adding
+    // the images.
     ImageInfoList imageInfoList;
 
     for (IconItem *it = firstItem() ; it ; it = it->nextItem())
@@ -1036,10 +1038,10 @@
         }
     }
 
-    insertToLightTable(imageInfoList, imageInfoList.first());
+    insertToLightTable(imageInfoList, imageInfoList.first(), addTo);
 }
 
-void AlbumIconView::insertToLightTable(const ImageInfoList& list, const ImageInfo &current)
+void AlbumIconView::insertToLightTable(const ImageInfoList& list, const ImageInfo &current, bool addTo)
 {
     LightTableWindow *ltview = LightTableWindow::lightTableWindow();
 
@@ -1056,7 +1058,9 @@
 
     ltview->raise();
     ltview->setFocus();
-    ltview->loadImageInfos(list, current);
+    // If addTo is false, the light table will be emptied before adding
+    // the images.
+    ltview->loadImageInfos(list, current, addTo);
     if (list.count()>1)
         ltview->setLeftRightItems(list);
 }
--- trunk/extragear/graphics/digikam/digikam/albumiconview.h #709362:709363
@@ -118,8 +118,8 @@
     AlbumIconItem* findItem(const QString& url) const;
     AlbumIconItem* nextItemToThumbnail() const;
 
-    void insertSelectionToLightTable();
-    void insertToLightTable(const ImageInfoList& list, const ImageInfo &current);
+    void insertSelectionToLightTable(bool addTo=false);
+    void insertToLightTable(const ImageInfoList& list, const ImageInfo &current, bool addTo=false);
 
 signals:
 
--- trunk/extragear/graphics/digikam/digikam/digikamapp.cpp #709362:709363
@@ -623,12 +623,20 @@
 
     d->imageLightTableAction = new KAction(KIcon("lighttable"), i18n("Place onto Light Table"), this);
     d->imageLightTableAction->setShortcut(Qt::Key_F6);
-    d->imageLightTableAction->setWhatsThis(i18n("Insert the selected items into the light table thumbbar."));
+    d->imageLightTableAction->setWhatsThis(i18n("Put the selected items into the light table thumbbar."));
     connect(d->imageLightTableAction, SIGNAL(triggered()), d->view, SLOT(slotImageLightTable()));
     actionCollection()->addAction("image_lighttable", d->imageLightTableAction);
 
     // -----------------------------------------------------------
 
+    d->imageAddLightTableAction = new KAction(KIcon("lighttable"), i18n("Add to Light Table"), this);
+    d->imageAddLightTableAction->setShortcut(Qt::CTRL+Qt::Key_F6);
+    d->imageAddLightTableAction->setWhatsThis(i18n("Add selected items to the light table thumbbar."));
+    connect(d->imageAddLightTableAction, SIGNAL(triggered()), d->view, SLOT(slotImageAddToLightTable()));
+    actionCollection()->addAction("image_add_to_lighttable", d->imageAddLightTableAction);
+
+    // -----------------------------------------------------------
+
     d->imageRenameAction = new KAction(KIcon("pencil"), i18n("Rename..."), this);
     d->imageRenameAction->setShortcut(Qt::Key_F2);
     d->imageRenameAction->setWhatsThis(i18n("Rename the filename of the currently selected item."));
@@ -894,7 +902,7 @@
     // -----------------------------------------------------------
 
     KAction *ltAction = new KAction(KIcon("lighttable"), i18n("Light Table"), this);
-    ltAction->setShortcut(Qt::CTRL+Qt::Key_F6);
+    ltAction->setShortcut(Qt::SHIFT+Qt::Key_F6);
     connect(ltAction, SIGNAL(triggered()), d->view, SLOT(slotLightTable()));
     actionCollection()->addAction("light_table", ltAction);
 
--- trunk/extragear/graphics/digikam/digikam/digikamappprivate.h #709362:709363
@@ -100,6 +100,7 @@
         imagePreviewAction                   = 0;
         imageViewAction                      = 0;
         imageLightTableAction                = 0;
+        imageAddLightTableAction             = 0;
         imageSetExifOrientation1Action       = 0;
         imageSetExifOrientation2Action       = 0;
         imageSetExifOrientation3Action       = 0;
@@ -199,6 +200,7 @@
     // Image Actions
     KToggleAction         *imagePreviewAction;
     KAction               *imageLightTableAction;
+    KAction               *imageAddLightTableAction;
     KAction               *imageViewAction;
     KAction               *imageSetExifOrientation1Action;
     KAction               *imageSetExifOrientation2Action;
--- trunk/extragear/graphics/digikam/digikam/digikamui.rc #709362:709363
@@ -1,5 +1,5 @@
 <!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
-<gui version="32" name="digikam" >
+<gui version="33" name="digikam" >
 
  <MenuBar>
 
@@ -43,6 +43,7 @@
      <Action name="image_view" />
      <Action name="image_edit" />
      <Action name="image_lighttable" />
+     <Action name="image_add_to_lighttable" /> 
      <Action name="image_set_exif_orientation"/>
    <Separator />
      <ActionList name="image_actions"/>
--- trunk/extragear/graphics/digikam/digikam/digikamview.cpp #709362:709363
@@ -1003,24 +1003,43 @@
 void DigikamView::slotLightTable()
 {
     ImageInfoList empty;
-    d->iconView->insertToLightTable(empty, ImageInfo());
+    d->iconView->insertToLightTable(empty, ImageInfo(), true);
 }
 
 void DigikamView::slotImageLightTable()
 {
     if (d->albumWidgetStack->previewMode() == AlbumWidgetStack::PreviewAlbumMode)
     {
-        d->iconView->insertSelectionToLightTable();
+        // put images into an emptied light table 
+        d->iconView->insertSelectionToLightTable(false);
     }
     else
     {
         ImageInfoList list;
         ImageInfo info = d->albumWidgetStack->imagePreviewView()->getImageInfo();
         list.append(info);
-        d->iconView->insertToLightTable(list, info);
+        // put images into an emptied light table 
+        d->iconView->insertToLightTable(list, info, false);
     }
 }
 
+void DigikamView::slotImageAddToLightTable()
+{
+    if (d->albumWidgetStack->previewMode() == AlbumWidgetStack::PreviewAlbumMode)
+    {
+        // add images to the existing images in the light table 
+        d->iconView->insertSelectionToLightTable(true);
+    }
+    else
+    {
+        ImageInfoList list;
+        ImageInfo info = d->albumWidgetStack->imagePreviewView()->getImageInfo();
+        list.append(info);
+        // add images to the existing images in the light table 
+        d->iconView->insertToLightTable(list, info, true);
+    }
+}
+
 void DigikamView::slotImageRename(AlbumIconItem *iconItem)
 {
     AlbumIconItem *item;
--- trunk/extragear/graphics/digikam/digikam/digikamview.h #709362:709363
@@ -115,6 +115,7 @@
 
     // Image action slots
     void slotImageLightTable();
+    void slotImageAddToLightTable();
     void slotImagePreview();
     void slotImageEdit();
     void slotImageExifOrientation(int orientation);
Comment 14 Arnd Baecker 2007-09-07 12:41:18 UTC
Thanks a lot Gilles!
(And I put notes to not forget next time)
Comment 15 caulier.gilles 2007-09-07 12:52:34 UTC
SVN commit 709371 by cgilles:

use new icon to differentiate Add to LT action
CCBUGS: 147854


 M  +3 -3      albumiconview.cpp  
 M  +1 -1      digikamapp.cpp  
 M  +3 -3      imagepreviewview.cpp  


--- trunk/extragear/graphics/digikam/digikam/albumiconview.cpp #709370:709371
@@ -534,9 +534,9 @@
     // --------------------------------------------------------
 
     DPopupMenu popmenu(this);
-    QAction *viewAction       = popmenu.addAction(SmallIcon("viewimage"), i18n("View..."));
-    QAction *editAction       = popmenu.addAction(SmallIcon("editimage"), i18n("Edit..."));
-    QAction *lighttableAction = popmenu.addAction(SmallIcon("lighttable"), i18n("Add to Light Table"));
+    QAction *viewAction       = popmenu.addAction(SmallIcon("viewimage"),     i18n("View..."));
+    QAction *editAction       = popmenu.addAction(SmallIcon("editimage"),     i18n("Edit..."));
+    QAction *lighttableAction = popmenu.addAction(SmallIcon("lighttableadd"), i18n("Add to Light Table"));
     popmenu.addMenu(&openWithMenu);
     openWithMenu.menuAction()->setText(i18n("Open With"));
 
--- trunk/extragear/graphics/digikam/digikam/digikamapp.cpp #709370:709371
@@ -629,7 +629,7 @@
 
     // -----------------------------------------------------------
 
-    d->imageAddLightTableAction = new KAction(KIcon("lighttable"), i18n("Add to Light Table"), this);
+    d->imageAddLightTableAction = new KAction(KIcon("lighttableadd"), i18n("Add to Light Table"), this);
     d->imageAddLightTableAction->setShortcut(Qt::CTRL+Qt::Key_F6);
     d->imageAddLightTableAction->setWhatsThis(i18n("Add selected items to the light table thumbbar."));
     connect(d->imageAddLightTableAction, SIGNAL(triggered()), d->view, SLOT(slotImageAddToLightTable()));
--- trunk/extragear/graphics/digikam/digikam/imagepreviewview.cpp #709370:709371
@@ -369,9 +369,9 @@
     //-- Edit actions -----------------------------------------------
 
     popmenu.addSeparator();
-    QAction *slideshowAction  = popmenu.addAction(SmallIcon("datashow"),   i18n("SlideShow"));
-    QAction *editAction       = popmenu.addAction(SmallIcon("editimage"),  i18n("Edit..."));
-    QAction *lighttableAction = popmenu.addAction(SmallIcon("lighttable"), i18n("Add to Light Table"));
+    QAction *slideshowAction  = popmenu.addAction(SmallIcon("datashow"),      i18n("SlideShow"));
+    QAction *editAction       = popmenu.addAction(SmallIcon("editimage"),     i18n("Edit..."));
+    QAction *lighttableAction = popmenu.addAction(SmallIcon("lighttableadd"), i18n("Add to Light Table"));
     popmenu.addMenu(&openWithMenu);
     openWithMenu.menuAction()->setText(i18n("Open With"));
 
Comment 16 caulier.gilles 2007-09-07 13:03:59 UTC
SVN commit 709375 by cgilles:

backport new icons for LT from KDE4
CCBUGS: 147854


 AM            data/icons/hi32-action-lighttable.png  
 AM            data/icons/hi32-action-lighttableadd.png  
 M  +1 -1      digikam/albumiconview.cpp  
 M  +2 -2      digikam/digikamapp.cpp  
 M  +1 -1      digikam/imagepreviewview.cpp  
 M  +1 -1      utilities/setup/setup.cpp  


** branches/extragear/kde3/graphics/digikam/data/icons/hi32-action-lighttable.png #property svn:mime-type
   + image/png
** branches/extragear/kde3/graphics/digikam/data/icons/hi32-action-lighttableadd.png #property svn:mime-type
   + image/png
--- branches/extragear/kde3/graphics/digikam/digikam/albumiconview.cpp #709374:709375
@@ -529,7 +529,7 @@
     DPopupMenu popmenu(this);
     popmenu.insertItem(SmallIcon("viewimage"), i18n("View..."), 18);
     popmenu.insertItem(SmallIcon("editimage"), i18n("Edit..."), 10);
-    popmenu.insertItem(SmallIcon("idea"), i18n("Add to Light Table"), 19);
+    popmenu.insertItem(SmallIcon("lighttableadd"), i18n("Add to Light Table"), 19);
     popmenu.insertItem(i18n("Open With"), &openWithMenu, 11);
 
     // Merge in the KIPI plugins actions ----------------------------
--- branches/extragear/kde3/graphics/digikam/digikam/digikamapp.cpp #709374:709375
@@ -628,7 +628,7 @@
     d->imageViewAction->setWhatsThis(i18n("Open the selected item in the image editor."));
 
     d->imageLightTableAction = new KAction(i18n("Place onto Light Table"),
-                                    "idea",
+                                    "lighttable",
                                     Key_F6,
                                     d->view,
                                     SLOT(slotImageLightTable()),
@@ -637,7 +637,7 @@
     d->imageLightTableAction->setWhatsThis(i18n("Put the selected items into the light table thumbbar."));
 
     d->imageAddLightTableAction = new KAction(i18n("Add to Light Table"),
-                                    "idea",
+                                    "lighttableadd",
                                     CTRL+Key_F6,
                                     d->view,
                                     SLOT(slotImageAddToLightTable()),
--- branches/extragear/kde3/graphics/digikam/digikam/imagepreviewview.cpp #709374:709375
@@ -370,7 +370,7 @@
     popmenu.insertSeparator();
     popmenu.insertItem(SmallIcon("slideshow"), i18n("SlideShow"), 16);
     popmenu.insertItem(SmallIcon("editimage"), i18n("Edit..."), 12);
-    popmenu.insertItem(SmallIcon("idea"), i18n("Add to Light Table"), 17);
+    popmenu.insertItem(SmallIcon("lighttableadd"), i18n("Add to Light Table"), 17);
     popmenu.insertItem(i18n("Open With"), &openWithMenu, 13);
 
     // Merge in the KIPI plugins actions ----------------------------
--- branches/extragear/kde3/graphics/digikam/utilities/setup/setup.cpp #709374:709375
@@ -164,7 +164,7 @@
     d->mimePage = new SetupMime(d->page_mime);
 
     d->page_lighttable = addPage(i18n("Light Table"), i18n("Light Table Settings"),
-                                 BarIcon("idea", KIcon::SizeMedium));
+                                 BarIcon("lighttable", KIcon::SizeMedium));
     d->lighttablePage = new SetupLightTable(d->page_lighttable);
 
     d->page_editor = addPage(i18n("Image Editor"), i18n("Image Editor General Settings"),
Comment 17 caulier.gilles 2007-09-07 20:00:34 UTC
SVN commit 709519 by cgilles:

forget to toogle on/off add to LT action if an item is a selection if active  or not into the current album
CCBUGS: 147854


 M  +2 -0      digikamapp.cpp  


--- trunk/extragear/graphics/digikam/digikam/digikamapp.cpp #709518:709519
@@ -952,6 +952,7 @@
     d->imageViewAction->setEnabled(false);
     d->imagePreviewAction->setEnabled(false);
     d->imageLightTableAction->setEnabled(false);
+    d->imageAddLightTableAction->setEnabled(false);
     d->imageRenameAction->setEnabled(false);
     d->imageDeleteAction->setEnabled(false);
     d->imageExifOrientationActionMenu->setEnabled(false);
@@ -1154,6 +1155,7 @@
     d->imageViewAction->setEnabled(val);
     d->imagePreviewAction->setEnabled(val);
     d->imageLightTableAction->setEnabled(val);
+    d->imageAddLightTableAction->setEnabled(val);
     d->imageRenameAction->setEnabled(val);
     d->imageDeleteAction->setEnabled(val);
     d->imageExifOrientationActionMenu->setEnabled(val);
Comment 18 caulier.gilles 2007-09-07 20:02:20 UTC
SVN commit 709521 by cgilles:

forget to toogle on/off add to LT action if an item is a selection if active  or not into the current album
CCBUGS: 147854


 M  +2 -0      digikamapp.cpp  


--- branches/extragear/kde3/graphics/digikam/digikam/digikamapp.cpp #709520:709521
@@ -974,6 +974,7 @@
     d->imageViewAction->setEnabled(false);
     d->imagePreviewAction->setEnabled(false);
     d->imageLightTableAction->setEnabled(false);
+    d->imageAddLightTableAction->setEnabled(false);
     d->imageRenameAction->setEnabled(false);
     d->imageDeleteAction->setEnabled(false);
     d->imageExifOrientationActionMenu->setEnabled(false);
@@ -1195,6 +1196,7 @@
     d->imageViewAction->setEnabled(val);
     d->imagePreviewAction->setEnabled(val);
     d->imageLightTableAction->setEnabled(val);
+    d->imageAddLightTableAction->setEnabled(val);
     d->imageRenameAction->setEnabled(val);
     d->imageDeleteAction->setEnabled(val);
     d->imageExifOrientationActionMenu->setEnabled(val);