Bug 167571 - Unnatural order when removing images from light table
Summary: Unnatural order when removing images from light table
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: LightTable-Thumbbar (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-07-28 10:45 UTC by Andi Clemens
Modified: 2022-02-01 09:13 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 0.10.0
Sentry Crash Report:


Attachments
patch #1 (13.91 KB, patch)
2008-07-28 10:46 UTC, Andi Clemens
Details
wrap patch (1.54 KB, patch)
2008-08-02 22:59 UTC, Andi Clemens
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Andi Clemens 2008-07-28 10:45:18 UTC
Version:           0.9.5-svn / 0.10-svn (using KDE 3.5.9)
Installed from:    Compiled From Sources
Compiler:          gcc-4.3.1 Linux (i686) release 2.6.25-ARCH
OS:                Linux

When you remove images from the light table, the order of removing them is a little bit unnatural, at least for me.

Right now removal behaves like this (codes: L = left pane, R = right pane, 1-5 image in thumbbar, * = current):

1. removal of last image:
    L1 2 3 4 R*5 => L1 R*2 3 4

2. removal of left pane image (the right pane is always assigned to the left pane)
    1 L*2 3 R4 5 => 1 L*4 R3 5

3. removal of left pane if last in thumbbar
    1 2 R3 4 L*5 => 1 2 L*3 R4

For me it feels much more natural if removing images from the thumbbar works like this:

1. removal of last image (right pane):
    L1 2 3 4 R*5 => L1 R2 3 R*4

2. removal of left pane image:
    First try to select next image to current left
    1 L*2 3 R4 5 => 1 L*3 R4 5
    
    If next is current_right, select prev.
    1 L*2 R3 4 5 => L*1 R3 4 5
    1 2 R3 4 L*5 => 1 2 R3 L*4
    
    If no next or if prev is current_right, select first image in thumbbar
    1 2 3 R4 L*5 => L*1 2 3 R4

    if no prev and next is current_right, "move" pair
    L*1 R2 3 4 5 => L*2 R3 4 5

This way the current_left and current_right pane image stay as long as possible where they are and will not be switched all the time like it is now. I'll provide a patch for this behavior. Please test it. What do you think? For me it just "feels" right in terms of usability.

Andi
Comment 1 Andi Clemens 2008-07-28 10:46:47 UTC
Created attachment 26455 [details]
patch #1

This patch will also be applied to the KDE3 branch (if users like the new
behavior).
Comment 2 caulier.gilles 2008-07-28 12:47:22 UTC
Arnd,

As you have implemented old behaviour, i let's you comments the new one (:=)))...

Gilles Caulier
Comment 3 Mikolaj Machowski 2008-07-28 13:04:26 UTC
Dnia 28-07-2008 o godz. 10:45 Andi Clemens napisa
Comment 4 Andi Clemens 2008-07-28 13:28:40 UTC
OK I see your point, I really looked at it from just the thumbar POV.
The current implementation works nearly the way you mention here, but not 
exactly.
I will post the current behavior under your suggestions. Maybe we can then 
change it to your way of removing images.

> > 2. removal of left pane image:
> >     First try to select next image to current left
> >     1 L*2 3 R4 5 => 1 L*3 R4 5
>
> Sorry, don't have digiKam atm to test how it behaves but it should be:
>
> 1 3 L4 R*5


1 3 L*4 R5 (nearly the same)

>
> (for comment see below)
>
> >     If next is current_right, select prev.
> >     1 L*2 R3 4 5 => L*1 R3 4 5
>
> 1 L3 R*4 5


1 L*3 R4 5 (nearly the same)

> (generally moving back is last resort because with natural workflow it
> was already discarded even if not completely removed)
>
> >     1 2 R3 4 L*5 => 1 2 R3 L*4
>
> 1 2 L3 R*4


1 2 L*3 R4 (nearly the same)

>
> >     If no next or if prev is current_right, select first image in
> > thumbbar 1 2 3 R4 L*5 => L*1 2 3 R4
>
> R*1 2 3 L4


1 2 3 LR*4 (but the right pane is empty)

>
> >     if no prev and next is current_right, "move" pair
> >     L*1 R2 3 4 5 => L*2 R3 4 5
>
> L2 R*3 4 5


L*2 R3 4 5 (nearly the same)

So there is only one big difference, in the other cases only the current item 
has to be defined in a different way.

Andi
Comment 5 Andi Clemens 2008-07-28 14:33:27 UTC
SVN commit 838662 by aclemens:

Fixed the activation of the current active panel. If the left panel item is removed, the right panel should be activated.

CCBUGS:167571

 M  +42 -40    lighttablewindow.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=838662
Comment 6 Andi Clemens 2008-07-28 14:48:19 UTC
SVN commit 838669 by aclemens:

backport commit #838662 from KDE4 branch

 M  +37 -35    lighttablewindow.cpp


WebSVN link: http://websvn.kde.org/?view=rev&revision=838669
Comment 7 Andi Clemens 2008-07-28 14:51:06 UTC
The activation of the panel is fixed now, the only problem left is

> > 
> > >     If no next or if prev is current_right, select first image in 
> > > thumbbar 1 2 3 R4 L*5 => L*1 2 3 R4 
> > 
> > R*1 2 3 L4 


> 1 2 3 LR*4 (but the right pane is empty) 

Unfortunately Arnd is on holiday for the next 3 weeks, but I guess this behavior can be changed anyway, because it feels right (now that I understand the light table a bit better :-))
Comment 8 Andi Clemens 2008-07-28 15:26:10 UTC
SVN commit 838675 by aclemens:

If the left panel item is the last item in the thumbbar and the right panel item the second last (left to the current_left item), set the left panel item to the current_right and the right panel item to the first item of the thumbbar.

CCBUGS:167571

 M  +3 -3      lighttablewindow.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=838675
Comment 9 Andi Clemens 2008-07-28 15:30:00 UTC
SVN commit 838676 by aclemens:

backport commit #838675 from KDE4 branch

CCBUGS:167571

 M  +3 -3      lighttablewindow.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=838676
Comment 10 Andi Clemens 2008-07-28 15:32:34 UTC
Mik,

all issues you mentioned should be fixed now. If you have the time, please test the changes (either in 0.9.5-svn or 0.10-svn).

Andi
Comment 11 Mikolaj Machowski 2008-07-28 18:23:58 UTC
> I will post the current behavior under your suggestions. Maybe we can
> then change it to your way of removing images.


Well, this is not exactly "my way". As Gilles wrote Arnd implemented it
but I suggested workflow basing on extensive screencast of Adobe
Lightroom lighttable. Sorry don't remember URL, that was some time ago.

Tested 0.9 version. Everything works OK. Thanks.

Two small things could improve it further: when opening LT place first
two images in panels - 1st on the left, 2nd on the right; going through
images with PgUp/PgDown should wrap around first/last image.
Comment 12 Andi Clemens 2008-07-28 18:29:15 UTC
> Two small things could improve it further: when opening LT place first
> two images in panels - 1st on the left, 2nd on the right; going through
> images with PgUp/PgDown should wrap around first/last image.


If you add images to the light table (F6), the first and second image already 
are assigned to the panels.

With wrap around you mean if you arrive at the end of thumbbar, it should 
start at the beginning again?

Andi
Comment 13 Mikolaj Machowski 2008-07-28 18:54:45 UTC
> If you add images to the light table (F6), the first and second image
> already are assigned to the panels.

It doesn't happen with context menu. With keyboard shortcut it works.

> With wrap around you mean if you arrive at the end of thumbbar, it
> should start at the beginning again?

Yes.
Comment 14 Andi Clemens 2008-07-28 19:27:09 UTC
> It doesn't happen with context menu. With keyboard shortcut it works.


That's because it is a different action. The context menu only appends the 
images to the light table, the other action clears the light table and does 
exactly what you want (both actions can be found in the main menu).

There has been a discussion why not both actions are added to the context 
menu, if I was to decide they would be added but it seems that other devs 
think it would bloat the context menu.

Andi
Comment 15 Mikolaj Machowski 2008-07-31 20:52:44 UTC
OK. I think this bug is closed.
Comment 16 Andi Clemens 2008-07-31 20:57:47 UTC
We could implement the wrapping... if nobody is against it :-)
Comment 17 Mikolaj Machowski 2008-08-02 16:47:55 UTC
> ------- We could implement the wrapping... if nobody is against it :-)

I am for it :)
Comment 18 Andi Clemens 2008-08-02 22:59:22 UTC
Created attachment 26584 [details]
wrap patch

This patch will enable the "wrapping" mentioned by Mik.
Comment 19 caulier.gilles 2008-08-02 23:01:08 UTC
Andi,

Wrapper is fine for me.

Gilles
Comment 20 Andi Clemens 2008-08-02 23:10:14 UTC
Mik,

last question before final implementation: should wrapping also be enabled when moving through light table "by pair"?
Comment 21 Mikolaj Machowski 2008-08-03 23:47:18 UTC
Your page works great :) Thanks.

> last question before final implementation: should wrapping also be
> enabled when moving through light table "by pair"?


Why not? Easy way to compare first and last image + fast return to
first/second image pair.
Comment 22 Andi Clemens 2008-08-04 10:03:01 UTC
Right now without the patch (when navigating "by pair") clicking on the "last" 
button will set the last image in the thumbbar as the left and the first as 
the right pane.
But wouldn't it be more logical to have the last image in the right pane and 
the previous image in the left? Only when navigating further to the right 
(again "by pair") the wrap should be done. So clicking on the "last" button 
right now behaves unnatural?
Again this happens with and without the patch.

Mik, Gilles, what do you think?

Andi
Comment 23 Andi Clemens 2008-08-05 22:15:07 UTC
SVN commit 842714 by aclemens:

enable "wrapping" when cycling through images:

- If the last item in the thumbbar is selected, continue with the first item on "forward" action
- If the first item in the thumbbar is selected, continue with the last item on "back" action

CCBUGS:167571

 M  +16 -6     lighttablewindow.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=842714
Comment 24 Andi Clemens 2008-08-05 22:22:41 UTC
SVN commit 842717 by aclemens:

backport commit #842714 from KDE4

CCBUGS:167571

 M  +18 -6     lighttablewindow.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=842717