Bug 88591

Summary: progress popup state should be remembered
Product: [Applications] kmail Reporter: Leo Savernik <l.savernik>
Component: generalAssignee: kdepim bugs <kdepim-bugs>
Status: RESOLVED FIXED    
Severity: wishlist    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:

Description Leo Savernik 2004-09-01 15:41:45 UTC
Version:            (using KDE KDE 3.3.0)
Installed from:    Compiled From Sources

The progress popup that replaced the progress status in KMail 1.7 (see bug 87599) would be useable if KMail remembered its state.

I. e. when the progress popup is opened, and not explicitly closed before it disappears by itself, it should again pop up without user interaction when the next mail retrieval is scheduled.

It should also remember that state across sessions, so that the progress popup would continue popping up without interaction even if KMail has been closed down in between.
Comment 1 Leo Savernik 2005-03-20 21:11:15 UTC
I just want to annotate that if bug 87599 is fixed, this bug ceases to have any importance to me and can be closed.
Comment 2 Till Adam 2005-03-28 21:47:24 UTC
CVS commit by tilladam: 

Remember the state of the progress dialog in between invocations. If it
is expanded it will auto-expand when new items appear until explicitely
collapsed.

BUGS: 88591


  M +11 -5     progressdialog.cpp   1.34
  M +1 -0      progressdialog.h   1.20


--- kdepim/libkdepim/progressdialog.cpp  #1.33:1.34
@@ -230,5 +230,5 @@ void TransactionItem::addSubTransaction(
 
 ProgressDialog::ProgressDialog( QWidget* alignWidget, QWidget* parent, const char* name )
-    : OverlayWidget( alignWidget, parent, name )
+    : OverlayWidget( alignWidget, parent, name ), mWasLastShown( false )
 {
     setFrameStyle( QFrame::Panel | QFrame::Sunken ); // QFrame
@@ -297,7 +297,11 @@ void ProgressDialog::slotTransactionAdde
      }
    } else {
-     TransactionItem *ti = mScrollView->addTransactionItem( item, mTransactionsToListviewItems.empty() );
+     const bool first = mTransactionsToListviewItems.empty();
+     TransactionItem *ti = mScrollView->addTransactionItem( item, first );
      if ( ti )
        mTransactionsToListviewItems.replace( item, ti );
+     if ( first && mWasLastShown )
+       QTimer::singleShot( 1000, this, SLOT( slotShow() ) );
+
    }
 }
@@ -375,4 +379,5 @@ void ProgressDialog::slotHide()
 void ProgressDialog::slotClose()
 {
+  mWasLastShown = false;
   setVisible( false );
 }
@@ -394,4 +399,5 @@ void ProgressDialog::slotToggleVisibilit
    * are no items to be shown anymore. Guard against that.
    */
+  mWasLastShown = !isShown();
   if ( isShown() || !mTransactionsToListviewItems.isEmpty() )
     setVisible( !isShown() );

--- kdepim/libkdepim/progressdialog.h  #1.19:1.20
@@ -147,4 +147,5 @@ protected:
   TransactionItem* mPreviousItem;
   QMap< const ProgressItem*, TransactionItem* > mTransactionsToListviewItems;
+  bool mWasLastShown;
 };