Bug 138537

Summary: kdirstat does not show progress when refreshing a stopped job
Product: [openSUSE] SUSE LINUX 10.0 Reporter: Martin Vidner <mvidner>
Component: KDEAssignee: Stefan Hundhammer <shundhammer>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None    
Version: Final   
Target Milestone: ---   
Hardware: i686   
OS: Other   
Whiteboard:
Found By: Other Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Martin Vidner 2005-12-14 12:40:37 UTC
I run kdirstat and click on Stop Reading. Then I select an incomplete directory and choose Refresh Selected. Reading continues *silently*, without showing the yellow hungry monster or any of the usual progress indicators. 
I originally thought it was not refreshing at all and wanted to report that as a bug.
It should behave like when initially started. The same for Continue reading at mount point.
Comment 1 Stefan Hundhammer 2006-01-05 17:55:13 UTC
I can reproduce this, but only with the "Thin Keramik" KDE style. Are you using the same? It works fine for me with all other KDE styles.

BTW it also happens upon a normal refresh, not only if a directory scan was aborted.

Coolo, some time ago you told me use the widget name "kde toolbar widget" for that KPacMan widget (the widget that does the animation - in the KDE toolbar). If I use another widget name, this problem seems to be resolved.

I assume the paint events in that widget have race condidtions: That special widget name seems to trigger widget "polishing" according to the current widget style (KDE theme), i.e. it does some painting. In that animation, of course the widget itself also does painting. I suspect sometimes that style polishing simply paints over the widget's painting - and then of course there is only widget background, i.e., no visible animation.

Am I heading into the right direction here? Or exactly what effect does this special widget name "kde toolbar widget" have?
Comment 2 Martin Vidner 2006-01-06 06:36:47 UTC
I use the Plastik style.
Comment 3 Stephan Kulow 2006-01-09 14:57:05 UTC
The style will install an event filter and reset the background mode - that should be it:

    if ( !qstrcmp(obj->name(), "kde toolbar widget") )
    {
        QWidget* lb = static_cast<QWidget*>(obj);
        if (lb->backgroundMode() == Qt::PaletteButton)
            lb->setBackgroundMode(Qt::PaletteBackground);
        lb->removeEventFilter(this);
    }

Comment 4 Stefan Hundhammer 2006-03-06 12:03:49 UTC
That doesn't seem to work, either.

-> later
Comment 5 Stefan Hundhammer 2007-02-12 17:08:39 UTC
reopening
Comment 6 Stefan Hundhammer 2007-02-12 17:12:21 UTC
I found a fix for at least one progress indicator: The read jobs.
This will be available with kdirstat-2.5.5.

Still working on the missing PacMan.
Comment 7 Stefan Hundhammer 2007-02-12 17:21:15 UTC
Experiments with different KDE widget styles show that it works reliably with all styles except the ThinKeramik style.

Even though that is just the one style I am using, I tend to call that FIXED (or, rather, "fixed well enough"). This may easily be a bug in the style itself, but it's not really worth pursuing this any further.
Comment 8 Stefan Hundhammer 2007-02-12 17:22:02 UTC
Just to clarify: The PacMan animation is what is missing with ThinKeramik. The number of open read jobs etc. are working just fine in all styles.