Bug 140304 - Start slideshow from the current image
Summary: Start slideshow from the current image
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Plugin-Generic-SlideShow (show other bugs)
Version: 0.9.0
Platform: unspecified Linux
: NOR normal
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-01-19 18:34 UTC by Unknown
Modified: 2017-07-15 15:21 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 0.9.1


Attachments
Settings -> Configure Digikam -> SlideShow (118.47 KB, image/png)
2007-01-21 11:45 UTC, Unknown
Details
Tools -> Slideshow -> DialogBox (520.87 KB, image/png)
2007-01-21 11:46 UTC, Unknown
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Unknown 2007-01-19 18:34:30 UTC
Version:           0.9.0 (using KDE 3.5.5 "release 45" , openSUSE 10.2)
Compiler:          Target: i586-suse-linux
OS:                Linux (i686) release 2.6.19-17JAN

In -> Settings -> Configure -> slideshow
I have setup a "x" in "Start from Current image"

Now when I try a Tools -> slideshow it gives me two options in the small dialogbox
|---------------------------------------|
|  o Show all images in current album   |
|  o show only selected images          |
|                                       |
|.... blah blah...                      |
|---------------------------------------|

I mean what should I select here?

* A better way would be to have a toggle button that simply directly goes to slideshow (based on settings made in configure)

* Or make a submenu from 
                       Tools -> slideshow
                                         \
                                          -> show all
                                          -> start from current
                                          -> show selected..

* I have seperately filed a bug report for changing the Slideshow to View menu.

Many thanks (I can provide you screenshots if you want).
Comment 1 Frank Siegert 2007-01-20 15:15:31 UTC
At first I was also confused about these settings, until I noticed, that Settiings -> Configure -> Slideshow is talking about the "image editor slide show settings", i.e. if you open the editor for an image, and go to "View -> Slide Show".

As a follow up to that confusion: Is it really necessary to have a slideshow in the image editor? Please don't get me wrong, I do not want to remove any feature, if somebody is really using it. But I'd expect people to always run slide shows from the main window.
If we don't need the slide show in the editor, this would also reduce clutter (and confusion) in the digikam settings.
Comment 2 Unknown 2007-01-21 11:45:47 UTC
Created attachment 19367 [details]
Settings -> Configure Digikam -> SlideShow
Comment 3 Unknown 2007-01-21 11:46:18 UTC
Created attachment 19368 [details]
Tools -> Slideshow -> DialogBox
Comment 4 Unknown 2007-01-21 11:47:31 UTC
OK Many thanks for the reply.

Let me then rephrase the problem from the main window itself.

As said above I have setup:
In -> Settings -> Configure -> slideshow
I have setup a "x" in "Start from Current image"


Album  Tag  Image  Select  View  Tools  Camera  Settings  Help

     Tools -> Slideshow it gives me same small window:
|---------------------------------------|
|  o Show all images in current album   |
|  o show only selected images          |
|                                       |
|.... blah blah...                      |
|---------------------------------------| 

I mean if I have ticked/checked the "Start from current image" it does not follow it!

I have put a couple of screenshots to make it clearer. Everything is _main_window_ only

Many thanks
Comment 5 Frank Siegert 2007-01-21 14:26:07 UTC
Karthik,

you misunderstood my comment. To make it clearer: Look at your first screenshot... it says "Image Editor Slide Show Settings", i.e. it is referring to the slideshow that you start from the image editor, not the one you start from the main window (which is actually a plugin, and not part of digikam itself).

But I agree, that this situation is confusing, and am still wondering, whether we need a slideshow in the image editor at all. Gilles, and the others... your comments?
Comment 6 Frank Siegert 2007-01-21 14:28:47 UTC
Another clarification after reading my last comment: 

> it is referring to the slideshow that you start from the image editor, not
> the one you start from the main window (which is actually a plugin, and not
> part of digikam itself).

I meant the ladder one, i.e. the one started from Tools -> Slideshow, is a plugin.
Comment 7 Unknown 2007-01-22 22:42:08 UTC
OK thanks for the clearer explanation. All this means:

1. The user needs a someway to start a slideshow from the selected image, all images, only selected images (i.e) Some dialog box to adjust settings for kipi?

2. At least as far as _ I _ can think of slideshow in image editor is not necessary (no flames please: May be I am wrong) 

3. If case (1) is not possible implementing a slideshow inside Digikam might be a good idea.

In case of (3) I will close this bug and open a wish list.
Comment 8 Luka Renko 2007-01-24 22:08:23 UTC
I have to agree with this: having two slideshow functions is just confusing. I also fully agree that slideshow in editor does not make a lot of sense.

I would propose the following:
- remove slideshow in editor
- replace slideshow in ShowFoto with KIPI Slideshow (for consistency)
- modify KIPI slideshow to be able to start from current image 

Note sure though if this is possible with KIPI Slideshow...
Comment 9 caulier.gilles 2007-02-09 16:36:31 UTC
SVN commit 631948 by cgilles:

digikam from trunk: new Slideshow Tool using Preview feature !

Hi guys, you can slide your RAW files very fast like this !!!

This slide show tool is a simplified version of kipi-plugins SlideShow tool. No effect, no OpenGL. Just the picture slided on the screen.

But the must important feature is to use Image Preview : RAW files can be slided and pictures saved by digiKam image editor will be loaded very fast because we use preview image embeded in IPTC metadata (that the kipi-plugins cannot do it).

This slide show tool run always in fullscreen mode. this have simplified the common EditorWindow class implementation.

This slide show tool is available in Image Editor and Showfoto instead the old one. Added it to Album Gui is not a problem. It's very easy to add the right action on the main window menu. 

Luka, If you want to do it before 0.9.1-Beta1, let's go to, and close files #135655, #140303, #140304. thanks in advance...

CCBUGS: 135655, 140303, 140304
BUG: 116518

 M  +1 -0      digikam/Makefile.am  
 M  +2 -0      showfoto/Makefile.am  
 M  +20 -13    showfoto/showfoto.cpp  
 M  +2 -1      showfoto/showfoto.h  
 M  +1 -1      utilities/Makefile.am  
 M  +14 -13    utilities/imageeditor/editor/Makefile.am  
 M  +9 -51     utilities/imageeditor/editor/editorwindow.cpp  
 M  +6 -9      utilities/imageeditor/editor/editorwindow.h  
 M  +2 -0      utilities/imageeditor/editor/editorwindowprivate.h  
 M  +19 -5     utilities/imageeditor/editor/imagewindow.cpp  
 M  +2 -1      utilities/imageeditor/editor/imagewindow.h  
 M  +1 -1      utilities/imageeditor/tools/Makefile.am  
 D             utilities/imageeditor/tools/slideshow.cpp  
 D             utilities/imageeditor/tools/slideshow.h  
 M  +14 -14    utilities/setup/setupslideshow.cpp  
 M  +4 -4      utilities/setup/setupslideshow.h  
 A             utilities/slideshow (directory)  
 A             utilities/slideshow/Makefile.am  
 AM            utilities/slideshow/slideshow.cpp   [License: GPL]
 AM            utilities/slideshow/slideshow.h   [License: GPL]
 AM            utilities/slideshow/toolbar.cpp   [License: GPL]
 AM            utilities/slideshow/toolbar.h   [License: GPL]
Comment 10 Luka Renko 2007-02-09 23:03:08 UTC
SVN commit 632071 by lure:

Add Slide Show to View menu and toolbar:
- uses own slideshow implementation (same as Showfoto/Image Editor)
- implemented with preview, so can be also used as full screen preview
- left KIPI-plugin in Tools menu (should be renamed to reduce confusion)

TODO: find good keyboard shortcut to assign to Slide Show function
- all obvious ones are already used: F5 (powerpoint), F12 (kpresenter)

CCBUG: 135655
BUG: 140303, 140304


 M  +1 -0      Makefile.am  
 M  +4 -0      digikamapp.cpp  
 M  +2 -0      digikamappprivate.h  
 M  +4 -1      digikamui.rc  
 M  +30 -0     digikamview.cpp  
 M  +1 -0      digikamview.h  


--- trunk/extragear/graphics/digikam/digikam/Makefile.am #632070:632071
@@ -20,6 +20,7 @@
 	   -I$(top_srcdir)/digikam/utilities/imageeditor/canvas \
 	   -I$(top_srcdir)/digikam/utilities/splashscreen \
 	   -I$(top_srcdir)/digikam/utilities/setup \
+	   -I$(top_srcdir)/digikam/utilities/slideshow \
 	   -I$(top_srcdir)/digikam/utilities/batch \
 	   $(LIBKIPI_CFLAGS) $(GPHOTO_CFLAGS) $(all_includes) 
 
--- trunk/extragear/graphics/digikam/digikam/digikamapp.cpp #632070:632071
@@ -765,6 +765,10 @@
                                          "in full screen mode."));
 #endif
 
+    d->slideShowAction = new KAction(i18n("Slide Show"), "slideshow", 0,
+                                     d->view, SLOT(slotSlideShow()),
+                                     actionCollection(), "slideshow");
+
     d->quitAction = KStdAction::quit(this,
                                    SLOT(slotExit()),
                                    actionCollection(),
--- trunk/extragear/graphics/digikam/digikam/digikamappprivate.h #632070:632071
@@ -99,6 +99,7 @@
         thumbSizePlusAction                  = 0;
         thumbSizeMinusAction                 = 0;
         fullScreenAction                     = 0;
+        slideShowAction                      = 0;
         rating0Star                          = 0;
         rating1Star                          = 0;
         rating2Star                          = 0;
@@ -188,6 +189,7 @@
 
     // View Actions
     KAction               *fullScreenAction;
+    KAction               *slideShowAction;
     KAction               *thumbSizePlusAction;
     KAction               *thumbSizeMinusAction;
     KSelectAction         *imageSortAction;
--- trunk/extragear/graphics/digikam/digikam/digikamui.rc #632070:632071
@@ -1,5 +1,5 @@
 <!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
-<kpartgui version="18" name="digikam" >
+<kpartgui version="19" name="digikam" >
 
  <MenuBar>
 
@@ -60,6 +60,7 @@
   <Menu name="View" >
    <text>&amp;View</text>
      <Action name="full_screen" />
+     <Action name="slideshow" />
      <Separator/>
      <Action name="album_thumbSizeIncrease" />
      <Action name="album_thumbSizeDecrease" />
@@ -124,7 +125,9 @@
   <Separator/>
   <Action name="album_thumbSizeIncrease" />
   <Action name="album_thumbSizeDecrease" />
+  <Separator/>
   <Action name="full_screen" />
+  <Action name="slideshow" />
  </ToolBar>
  <ActionProperties/>
 
--- trunk/extragear/graphics/digikam/digikam/digikamview.cpp #632070:632071
@@ -59,6 +59,7 @@
 #include "albumsettings.h"
 #include "albumhistory.h"
 #include "batchsyncmetadata.h"
+#include "slideshow.h"
 #include "sidebar.h"
 #include "imagepropertiessidebardb.h"
 #include "datefolderview.h"
@@ -895,6 +896,35 @@
     d->parent->toggledToPreviewMode(t);
 }
 
+void DigikamView::slotSlideShow()
+{
+    KConfig* config = kapp->config();
+    config->setGroup("ImageViewer Settings");
+    bool startWithCurrent = config->readBoolEntry("SlideShowStartCurrent", false);
+    bool loop             = config->readBoolEntry("SlideShowLoop", false);
+    bool printName        = config->readBoolEntry("SlideShowPrintName", true);
+    int  delay            = config->readNumEntry("SlideShowDelay", 5);
+
+    bool exifRotate = AlbumSettings::instance()->getExifRotate();
+    KURL::List urlList;
+
+    AlbumIconItem* item = 0;
+    if (startWithCurrent)
+        item = dynamic_cast<AlbumIconItem*>(d->iconView->currentItem());
+    else
+        item = dynamic_cast<AlbumIconItem*>(d->iconView->firstItem());
+
+    while (item) 
+    {
+        urlList.append(item->imageInfo()->kurl());
+
+        item = dynamic_cast<AlbumIconItem*>(item->nextItem());
+    }
+
+    SlideShow *slide = new SlideShow(urlList, exifRotate, delay*1000, printName, loop);
+    slide->show();
+}
+
 void DigikamView::slotImageEdit()
 {
     AlbumIconItem *currItem = dynamic_cast<AlbumIconItem*>(d->iconView->currentItem());
--- trunk/extragear/graphics/digikam/digikam/digikamview.h #632070:632071
@@ -101,6 +101,7 @@
     void slotNewAdvancedSearch();
 
     // Image action slots
+    void slotSlideShow();
     void slotImagePreview();
     void slotImageEdit();
     void slotImageExifOrientation(int orientation);
Comment 11 Luka Renko 2007-02-10 22:20:31 UTC
SVN commit 632368 by lure:

Slide Show in Album GUI is now action menu with two options: All and Selection
Shortcuts: F9 for slideshow all and ALT-F9 for slideshow selection

CCBUG: 140304



 M  +18 -3     digikamapp.cpp  
 M  +2 -1      digikamappprivate.h  
 M  +26 -7     digikamview.cpp  
 M  +3 -1      digikamview.h  


--- trunk/extragear/graphics/digikam/digikam/digikamapp.cpp #632367:632368
@@ -768,10 +768,23 @@
                                          "in full screen mode."));
 #endif
 
-    d->slideShowAction = new KAction(i18n("Slide Show"), "slideshow", Key_F9,
-                                     d->view, SLOT(slotSlideShow()),
-                                     actionCollection(), "slideshow");
+    d->slideShowAction = new KActionMenu(i18n("Slide Show"), "slideshow",
+                                    actionCollection(), "slideshow");
 
+    d->slideShowAction->setDelayed(false);
+
+    KAction *ssAction = new KAction(i18n("All"), 0, Key_F9,
+                                    d->view, SLOT(slotSlideShowAll()),
+                                    actionCollection(), "slideshow_all");
+    d->slideShowAction->insert(ssAction);
+    d->slideShowSelectionAction = new KAction(i18n("Selection"), 0, ALT+Key_F9,
+                                              d->view, 
+                                              SLOT(slotSlideShowSelection()),
+                                              actionCollection(), 
+                                              "slideshow_selected");
+    d->slideShowAction->insert(d->slideShowSelectionAction);
+
+
     d->quitAction = KStdAction::quit(this,
                                    SLOT(slotExit()),
                                    actionCollection(),
@@ -872,6 +885,7 @@
     d->imageRenameAction->setEnabled(false);
     d->imageDeleteAction->setEnabled(false);
     d->imageExifOrientationActionMenu->setEnabled(false);
+    d->slideShowSelectionAction->setEnabled(false);
 
     d->albumSortAction->setCurrentItem((int)d->albumSettings->getAlbumSortOrder());
     d->imageSortAction->setCurrentItem((int)d->albumSettings->getImageSortOrder());
@@ -1100,6 +1114,7 @@
     d->imageRenameAction->setEnabled(val);
     d->imageDeleteAction->setEnabled(val);
     d->imageExifOrientationActionMenu->setEnabled(val);
+    d->slideShowSelectionAction->setEnabled(selection.count() != 0);
 
     switch (selection.count())
     {
--- trunk/extragear/graphics/digikam/digikam/digikamappprivate.h #632367:632368
@@ -189,7 +189,8 @@
 
     // View Actions
     KAction               *fullScreenAction;
-    KAction               *slideShowAction;
+    KActionMenu           *slideShowAction;
+    KAction               *slideShowSelectionAction;
     KAction               *thumbSizePlusAction;
     KAction               *thumbSizeMinusAction;
     KSelectAction         *imageSortAction;
--- trunk/extragear/graphics/digikam/digikam/digikamview.cpp #632367:632368
@@ -911,7 +911,7 @@
     d->parent->toggledToPreviewMode(t);
 }
 
-void DigikamView::slotSlideShow()
+void DigikamView::slideShow(const KURL::List &urlList)
 {
     KConfig* config = kapp->config();
     config->setGroup("ImageViewer Settings");
@@ -920,21 +920,40 @@
     bool printName        = config->readBoolEntry("SlideShowPrintName", true);
     int  delay            = config->readNumEntry("SlideShowDelay", 5);
 
+    bool exifRotate     = AlbumSettings::instance()->getExifRotate();
+
+    SlideShow *slide = new SlideShow(urlList, exifRotate, delay*1000, printName, loop);
+    if (startWithCurrent)
+        slide->setCurrent(dynamic_cast<AlbumIconItem*>(d->iconView->currentItem())->imageInfo()->kurl());
+
+    slide->show();
+}
+
+void DigikamView::slotSlideShowAll()
+{
     KURL::List urlList;
-    bool exifRotate     = AlbumSettings::instance()->getExifRotate();
     AlbumIconItem* item = dynamic_cast<AlbumIconItem*>(d->iconView->firstItem());
-
     while (item) 
     {
         urlList.append(item->imageInfo()->kurl());
         item = dynamic_cast<AlbumIconItem*>(item->nextItem());
     }
 
-    SlideShow *slide = new SlideShow(urlList, exifRotate, delay*1000, printName, loop);
-    if (startWithCurrent)
-        slide->setCurrent(dynamic_cast<AlbumIconItem*>(d->iconView->currentItem())->imageInfo()->kurl());
+    slideShow(urlList);
+}
 
-    slide->show();
+void DigikamView::slotSlideShowSelection()
+{
+    KURL::List urlList;
+    AlbumIconItem* item = dynamic_cast<AlbumIconItem*>(d->iconView->firstItem());
+    while (item) 
+    {
+        if (item->isSelected())
+            urlList.append(item->imageInfo()->kurl());
+        item = dynamic_cast<AlbumIconItem*>(item->nextItem());
+    }
+
+    slideShow(urlList);
 }
 
 void DigikamView::slotImageEdit()
--- trunk/extragear/graphics/digikam/digikam/digikamview.h #632367:632368
@@ -103,7 +103,8 @@
     void slotNewAdvancedSearch();
 
     // Image action slots
-    void slotSlideShow();
+    void slotSlideShowAll();
+    void slotSlideShowSelection();
     void slotImagePreview();
     void slotImageEdit();
     void slotImageExifOrientation(int orientation);
@@ -133,6 +134,7 @@
     void saveViewState();
     void changeAlbumFromHistory(Album *album, QWidget *widget);
     void imageEdit(AlbumIconItem* iconItem=0);
+    void slideShow(const KURL::List &urlList);
 
 private slots: