Index: kmheaders.cpp
===================================================================
--- kmail/kmheaders.cpp (revision 680162)
+++ kmail/kmheaders.cpp (working copy)
@@ -2418,6 +2418,15 @@ int KMHeaders::currentItemIndex()
//-----------------------------------------------------------------------------
void KMHeaders::setCurrentItemByIndex(int msgIdx)
{
+ kdDebug(5006) << k_funcinfo << "idx=" << msgIdx << " size=" << mItems.size()
+ << " isopen=" << mFolder->isOpened() << endl;
+ if (!mFolder->isOpened())
+ {
+ setFolder(mFolder);
+ kdDebug(5006) << " needed setFolder(), size=" << mItems.size()
+ << " isopen=" << mFolder->isOpened() << endl;
+ }
+
if ((msgIdx >= 0) && (msgIdx < (int)mItems.size())) {
clearSelection();
bool unchanged = (currentItem() == mItems[msgIdx]);
@@ -2426,6 +2435,7 @@ void KMHeaders::setCurrentItemByIndex(in
setSelectionAnchor( currentItem() );
if (unchanged)
highlightMessage( mItems[msgIdx], false);
+ makeHeaderVisible();
}
}
@@ -2928,6 +2938,13 @@ SortCacheItem* KMHeaders::findParentBySu
bool KMHeaders::readSortOrder( bool set_selection, bool forceJumpToUnread )
{
+ if (!mFolder->isOpened())
+ {
+ mFolder->open("kmheaders");
+ kdDebug(5006) << "needed reopen, isopen=" << mFolder->isOpened()
+ << " count=" << mFolder->count() << endl;
+ }
+
//all cases
Q_INT32 column, ascending, threaded, discovered_count, sorted_count, appended;
Q_INT32 deleted_count = 0;
Index: compactionjob.cpp
===================================================================
--- kmail/compactionjob.cpp (revision 680162)
+++ kmail/compactionjob.cpp (working copy)
@@ -65,7 +65,7 @@ void MboxCompactionJob::kill()
Q_ASSERT( mCancellable );
// We must close the folder if we opened it and got interrupted
if ( mFolderOpen && mSrcFolder && mSrcFolder->storage() )
- mSrcFolder->storage()->close("mboxcompactjob");
+ mSrcFolder->storage()->close("mboxcompact");
if ( mTmpFile )
fclose( mTmpFile );
@@ -124,7 +124,7 @@ int MboxCompactionJob::executeNow( bool
return errno;
}
mOpeningFolder = true; // Ignore open-notifications while opening the folder
- storage->open("mboxcompactjob");
+ storage->open("mboxcompact");
mOpeningFolder = false;
mFolderOpen = true;
mOffset = 0;