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.
I just want to annotate that if bug 87599 is fixed, this bug ceases to have any importance to me and can be closed.
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; };