Bug 181184

Summary: In fullscreen, thumbnails rating stars follow bottom scrollbar
Product: [Applications] digikam Reporter: Salvatore Brigaglia <opensourcecat>
Component: Usability-FullScreenAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: normal CC: caulier.gilles, kde_bugs, marcel.wiesweg
Priority: NOR    
Version: 0.10.0   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In: 7.5.0
Sentry Crash Report:

Description Salvatore Brigaglia 2009-01-18 15:59:00 UTC
Version:            (using Devel)
OS:                Linux
Installed from:    Compiled sources

When in fullscreen mode the thumbnails bar now permits to add/edit rating of photos. This introduced a bug that make stars moving when scrolling horizontally in full screen mode. Please see the screencast in the link below:
http://www.vimeo.com/2869650
Comment 1 caulier.gilles 2009-01-18 19:21:10 UTC
Salvatore,

I cannot reproduce this problem with current implementation from svn. Please update source code, recompile, install, and test again.

Andi,

to be sure, are you able to reproduce this problem ?

Gilles Caulier
Comment 2 Salvatore Brigaglia 2009-01-18 20:29:56 UTC
(In reply to comment #1)
> Salvatore,
> 
> I cannot reproduce this problem with current implementation from svn. Please
> update source code, recompile, install, and test again.

my source revision is 913004

It seems to me that is a Qt problem. I feel that digikam keeps the mouse pointer still over the photo thumbnail when it leaves the photo area for the scrollbar area. But as i am really far from being a dev i bet i'm saying no-sense things.

btw is my source up to date enough?

Comment 3 caulier.gilles 2009-01-18 20:35:15 UTC
Salvatore,

Which Qt4 version you use ?

Gilles
Comment 4 Andi Clemens 2009-01-18 20:39:18 UTC
Yes I can confirm this...
Qt 4.4.3

Andi
Comment 5 Salvatore Brigaglia 2009-01-18 20:51:16 UTC
4.4.3 this side too
Comment 6 Andi Clemens 2009-01-18 22:55:30 UTC
Wow, just installed QtMod from today's build (20090118, Archlinux), and somehow compilation is like 2 times faster now.
They seem to have changed some things, because I also needed to clean my digiKam build dir, since moc files are not compatible anymore.

I will report if the bug is present in this fresh qt installation.

Andi
Comment 7 Andi Clemens 2009-01-18 23:03:40 UTC
Bug is still present, also note that this will happen in normal view mode, too. You don't have to be in fullscreen mode to see this issue.

Andi
Comment 8 Salvatore Brigaglia 2009-01-18 23:43:31 UTC
(In reply to comment #7)
> Bug is still present, also note that this will happen in normal view mode, too.
> You don't have to be in fullscreen mode to see this issue.
> 
> Andi
> 

this is true, but is really easy to avoid it and more difficult to reproduce. In fullscreen mode it seems you can't avoid it!
Comment 9 caulier.gilles 2009-01-19 11:13:18 UTC
SVN commit 913397 by cgilles:

digiKam from trunk : image preview bar : re-implement QWidget:mouseMoveEvent() to hande cursor movements over scroolbar to hide rating box. 
CCBUG: 181184


 M  +24 -1     imagepreviewbar.cpp  
 M  +1 -0      imagepreviewbar.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=913397
Comment 10 caulier.gilles 2009-01-19 11:14:21 UTC
Salvatore,

Please try again use code from svn with my commit #913397. i cannot reproduce the problem now...

Gilles Caulier
Comment 11 Andi Clemens 2009-01-19 11:39:08 UTC
Hmm still the same here...

Andi
Comment 12 caulier.gilles 2009-01-19 15:09:14 UTC
SVN commit 913547 by cgilles:

digiKam from trunk : catch moise leave event from rating box to disable rating widget when user move cursor over scrollbar
CCBUG: 181184 


 M  +37 -21    imagepreviewbar.cpp  
 M  +1 -1      imagepreviewbar.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=913547
Comment 13 caulier.gilles 2009-01-19 15:10:14 UTC
Andi,

And with commit #913547, it's better ?

Gilles
Comment 14 Andi Clemens 2009-01-19 15:14:37 UTC
No, worse :-)
If you leave the rating widget, digiKam crashes.

#0  0xb72d6eb3 in Digikam::ThumbBarItem::repaint (this=0x0) at /home/andi/Programmieren/KDE/digiKam/digikam_KDE4/digikam/libs/widgets/common/thumbbar.cpp:1161
#1  0x082bf011 in Digikam::ImagePreviewBar::eventFilter (this=0x9e0e8d0, obj=0x9dc5550, ev=0xbfad1d18) at /home/andi/Programmieren/KDE/digiKam/digikam_KDE4/digikam/digikam/imagepreviewbar.cpp:695
#2  0xb5a3b7ba in QCoreApplicationPrivate::sendThroughObjectEventFilters () from /usr/lib/libQtCore.so.4
#3  0xb5ea725a in QApplicationPrivate::notify_helper () from /usr/lib/libQtGui.so.4
#4  0xb5eaedfa in QApplication::notify () from /usr/lib/libQtGui.so.4
#5  0xb68b98bd in KApplication::notify () from /usr/lib/libkdeui.so.5
#6  0xb5a3c57b in QCoreApplication::notifyInternal () from /usr/lib/libQtCore.so.4
#7  0xb5eb02cb in QApplicationPrivate::dispatchEnterLeave () from /usr/lib/libQtGui.so.4
#8  0xb5eb0c5a in QApplicationPrivate::sendMouseEvent () from /usr/lib/libQtGui.so.4
#9  0xb5f10fa5 in ?? () from /usr/lib/libQtGui.so.4
#10 0x09e09dd8 in ?? ()
#11 0xbfad1f2c in ?? ()
#12 0x09e09dd8 in ?? ()
#13 0x09dc4138 in ?? ()
#14 0xb65952e0 in ?? () from /usr/lib/libQtGui.so.4
#15 0xb65952e4 in ?? () from /usr/lib/libQtGui.so.4
#16 0xbfad1fac in ?? ()
#17 0xb6f13b27 in Marble::GpsTracking::update (this=0x9dc4138, canvasSize=@0xbfad247c, viewParams=0xbfad2024, reg=@0xc6e6db4)
    at /home/andi/Programmieren/workspace/additional_libs_KDE4/marble/src/lib/gps/GpsTracking.cpp:168
#18 0xb5f1008d in QApplication::x11ProcessEvent () from /usr/lib/libQtGui.so.4
#19 0xb5f369b2 in ?? () from /usr/lib/libQtGui.so.4
#20 0xbfad2828 in ?? ()
#21 0xbfad247c in ?? ()
#22 0x00000000 in ?? ()
Comment 15 caulier.gilles 2009-01-19 15:31:03 UTC
Andi,

Testing indeep, i cannot reproduce the crash here.

There is no reason for that :

bool ImagePreviewBar::eventFilter(QObject *obj, QEvent *ev)
{
    if ( obj == qobject_cast<QObject*>(d->ratingBox) )
    {
        if ( ev->type() == QEvent::Leave)
        {
            if (d->ratingItem)
            {
                unsetCursor();
                d->ratingBox->hide();
                ThumbBarItem *item = d->ratingItem;
                d->ratingItem      = 0;
                item->repaint();
            }
        }
    }
...

item->repaint() is called only if d->ratingItem exist.

Gilles
Comment 16 Salvatore Brigaglia 2009-01-19 15:46:35 UTC
(In reply to comment #13)
> Andi,
> 
> And with commit #913547, it's better ?
> 
> Gilles
> 

Here

r913420

No crashes but the problem persists.
Comment 17 caulier.gilles 2009-01-19 16:02:04 UTC
Salvatore,

You don't use last version...

Gilles
Comment 18 Marcel Wiesweg 2009-01-19 17:18:36 UTC
No crashes for me, and problem no more reproducable.

(btw: you dont need any cast at all at the place of the qobject_cast I think)
Comment 19 Salvatore Brigaglia 2009-01-19 17:26:15 UTC
(In reply to comment #17)
> Salvatore,
> 
> You don't use last version...
> 
> Gilles
> 

Resolved this side. I'm closing it as FIXED.
Comment 20 Andi Clemens 2009-01-19 17:50:50 UTC
Still crashing for me, using the latest kdelibs and qt from yesterday's built.
But if nobody else can confirm this... maybe you will get to the point when updating someday.

Andi
Comment 21 Ian Hubbertz 2009-02-16 22:49:34 UTC
Still crashes. See 184473