[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kmail-devel
Subject:    Re: Fwd: KMail alteration
From:       Don Sanders <dsanders () cch ! com ! au>
Date:       2000-02-26 22:29:12
[Download RAW message or body]

On Sun, 27 Feb 2000, George Staikos wrote:
> ----------  Forwarded Message  ----------
> Subject: KMail alteration
> Date: Fri, 25 Feb 2000 19:53:49 -0500
> From: Rivyn (Casey Shobe) <rivyn@mailandnews.com>
> 
> 
> Sometimes, like when I have 600 messages waiting for me in KMail in my KDE
> CVS
 folder, I like to use the right-arrow button to go through them all to
> mark them all read.  This is great.  However, it takes too long.  I'm on an
> Athlon 600, I want to be able to scroll through messages a lot quicker. 
> What is really annoying (and what I believe is holding it back) is that
> KMail insists on loading each email as it goes through them.  I think that
> KMail should wait one millisecond longer than the repeat rate on my
> keyboard before displaying the email, while still marking it as read even
> if it didn't have time to show it.  This would still appear instantaneous
> with a fast refresh rate, and would allow me to go through unimportant
> email very quickly.  Sometimes, I'll be going through some email, and it
> will hit something rather large or complex...and stick there for a couple
> seconds.  On my 486, this could take an unbearably long time.

KMail used to work this way a month ago. It was done in kmreaderwin.cpp. A 
change in QT broke this and I had to comment it out. (This was around the 
time of the automatic folder change problem Daniel pointed out and Waldo 
fixed, and then I fixed the fix to eliminate flicker when changing folders).

The relevant section of code is
<quote>
void KMReaderWin::setMsg(KMMessage* aMsg, bool force)
{
  // If not forced and there is aMsg and aMsg is same as mMsg then return
  if (!force && aMsg && mMsg == aMsg)
    return;

  mMsg = aMsg;

  // Avoid flicker, somewhat of a cludge
  if (force) {
    mMsgBuf = 0;
    updateReaderWin();
  }
  else if (updateReaderWinTimer.isActive())
    updateReaderWinTimer.changeInterval( 100 );
  else {
    //    updateReaderWin();
    updateReaderWinTimer.start( 0, TRUE );  
  }
}
</quote>

Try to change the 0 in
    updateReaderWinTimer.start( 0, TRUE );  
it needs to be large enough to give the qlistview of message headers enough 
time to updated when scrolling to the next item in the qlistview but no so 
long as to create a perceivable delay when updating the reader window.

So ideally faster machines should have a shorter delay and slower machines 
should have a longer delay or just give up and don't have one at all for 
really slow machines.

I guess I just decided it was too fine a balancing act to perform at the time.

> 
> Please ignore this if this has already been fixed in new KMail releases. 
> I'm
 using 1.0.28
> 
> Would it be possible to make KMail act as described with a simple couple
> lines
 of code?
> 
> --
> - Rivyn [ Casey Allen Shobe ] - KDE Artists Team
> - rivyn@mailandnews
.com [ UIN: 1494523 ]
> - http://lightning.prohosting.com/~rivyn [ KDE Toolbar Icons ]
> -------------------------------------------------------
> 
> --
> 
> George Staikos

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic