Bug 88591 - progress popup state should be remembered
Summary: progress popup state should be remembered
Status: RESOLVED FIXED
Alias: None
Product: kmail
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR wishlist
Target Milestone: ---
Assignee: kdepim bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-09-01 15:41 UTC by Leo Savernik
Modified: 2007-09-14 12:17 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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;
 };