Display "Loading..." as tab title while aynchronously opening an IMAP folder.

Before anyone complains about the string: it was already present in the sources
(we reserved it before the freeze) :)


svn path=/trunk/KDE/kdepim/; revision=893579
wilder-work
Szymon Stefanek 18 years ago
parent 00d477139b
commit 15a22ea4ab
  1. 12
      kmmainwidget.cpp
  2. 17
      messagelistview/pane.cpp
  3. 8
      messagelistview/pane.h

@ -3034,12 +3034,14 @@ void KMMainWidget::folderSelected( KMFolder* aFolder, bool forceJumpToUnread, bo
imap->getAndCheckFolder();
// FIXME: Handle this issue in MainFolderView instead ?
// Set the folder, but mark it as "load in progress" in some way
// This will avoid showing "Empty" for a while...
mFolder = 0; // will make us ignore the "folderChanged" signal from KMail::MessageListView (prevent circular loops)
mMessageListView->setCurrentFolder( 0, preferNewTabForOpening );
mMessageListView->setCurrentFolder(
0,
preferNewTabForOpening,
KMail::MessageListView::Core::PreSelectNone,
i18nc( "tab title when loading an IMAP folder", "Loading..." )
);
mFolder = aFolder; // re-enable the signals from KMail::MessageListView
updateFolderMenu();

@ -157,11 +157,8 @@ bool Pane::isFolderOpen( KMFolder * fld ) const
return messageListViewWidgetWithFolder( fld ) != 0;
}
void Pane::setCurrentFolder( KMFolder *fld, bool preferEmptyTab, Core::PreSelectionMode preSelectionMode )
void Pane::setCurrentFolder( KMFolder *fld, bool preferEmptyTab, Core::PreSelectionMode preSelectionMode, const QString &overrideLabel )
{
if ( mCurrentFolder == fld )
return;
Widget * w = messageListViewWidgetWithFolder( fld );
if ( w )
@ -169,7 +166,9 @@ void Pane::setCurrentFolder( KMFolder *fld, bool preferEmptyTab, Core::PreSelect
// Already open, just activate it
if ( w != mCurrentWidget )
setCurrentWidget( w ); // will call internalSetCurrentWidget -> internalSetCurrentFolder
w->view()->applyMessagePreSelection( preSelectionMode );
if ( !overrideLabel.isEmpty() )
setTabText( indexOf( w ), overrideLabel );
//w->view()->applyMessagePreSelection( preSelectionMode );
return;
}
@ -199,12 +198,16 @@ void Pane::setCurrentFolder( KMFolder *fld, bool preferEmptyTab, Core::PreSelect
{
w = addNewWidget();
w->setFolder( fld, icon, preSelectionMode );
if ( fld )
if ( !overrideLabel.isEmpty() )
setTabText( indexOf( w ), overrideLabel );
else if ( fld )
setTabText( indexOf( w ), fld->label() );
setCurrentWidget( w ); // will call internalSetCurrentWidget -> internalSetCurrentFolder
} else {
w->setFolder( fld, icon, preSelectionMode );
if ( fld )
if ( !overrideLabel.isEmpty() )
setTabText( indexOf( w ), overrideLabel );
else if ( fld )
setTabText( indexOf( w ), fld->label() );
else
setTabText( indexOf( w ), i18nc( "@title:tab Empty messagelist", "Empty" ) );

@ -246,17 +246,23 @@ public:
* then that tab is made current (and no reloading happens).
* If the specified folder is not open yet then behaviour
* depends on the preferEmptyTab value as follows.
*
* If preferEmptyTab is set to false then the (new) folder is loaded
* in the current tab. If preferEmptyTab is set to true then the (new) folder is
* loaded in the first empty tab (or a new one if there are no empty ones).
*
* Pre-selection is the action of automatically selecting a message just after the folder
* has finished loading. See Model::setStorageModel() for more information.
*
* If overrideLabel is not empty then it's used as the tab text for the
* specified folder. This is useful to signal a particular folder state
* like "loading..."
*/
void setCurrentFolder(
KMFolder *fld,
bool preferEmptyTab = false,
Core::PreSelectionMode preSelectionMode = Core::PreSelectLastSelected
Core::PreSelectionMode preSelectionMode = Core::PreSelectLastSelected,
const QString &overrideLabel = QString()
);
/**

Loading…
Cancel
Save