diff --git a/kmmainwin.cpp b/kmmainwin.cpp index 2c17e1fd7..1b729cb35 100644 --- a/kmmainwin.cpp +++ b/kmmainwin.cpp @@ -144,6 +144,9 @@ void KMMainWin::readPreConfig(void) config->setGroup("Geometry"); mLongFolderList = config->readBoolEntry("longFolderList", false); + + config->setGroup("General"); + mEncodingStr = config->readEntry("encoding", ""); } @@ -294,6 +297,7 @@ void KMMainWin::writeConfig(void) config->writeEntry("Panners", s); config->setGroup("General"); + config->writeEntry("encoding", mEncodingStr); } @@ -413,11 +417,11 @@ void KMMainWin::activatePanners(void) //----------------------------------------------------------------------------- void KMMainWin::slotSetEncoding() { - QString enc = mEncoding->currentText(); + mEncodingStr = mEncoding->currentText(); if (mEncoding->currentItem() == 0) // Auto mCodec = 0; else - mCodec = KGlobal::charsets()->codecForName( enc ); + mCodec = KGlobal::charsets()->codecForName( mEncodingStr ); mMsgView->setCodec(mCodec); return; } @@ -1373,6 +1377,8 @@ void KMMainWin::setupMenuBar() encodings.prepend( i18n( "Auto" ) ); mEncoding->setItems( encodings ); mEncoding->setCurrentItem(0); + if (encodings.findIndex( mEncodingStr ) != -1) + mEncoding->setCurrentItem(encodings.findIndex( mEncodingStr )); (void) new KAction( i18n("Edi&t..."), Key_T, this, SLOT(slotEditMsg()), actionCollection(), "edit" ); diff --git a/kmmainwin.h b/kmmainwin.h index 081ccc466..36732aac2 100644 --- a/kmmainwin.h +++ b/kmmainwin.h @@ -191,8 +191,9 @@ protected: KMFolder *mFolder; QTextCodec *mCodec; QPopupMenu *mViewMenu, *mBodyPartsMenu; - KSelectAction *mEncoding; - bool mIntegrated; + KSelectAction *mEncoding; + QString mEncodingStr; + bool mIntegrated; bool mSendOnCheck; bool mBeepOnNew, mBoxOnNew, mExecOnNew; QString mNewMailCmd; diff --git a/kmreaderwin.cpp b/kmreaderwin.cpp index c72700cc5..2db5bbb6a 100644 --- a/kmreaderwin.cpp +++ b/kmreaderwin.cpp @@ -197,6 +197,7 @@ void KMReaderWin::readColorConfig(void) void KMReaderWin::readConfig(void) { KConfig *config = kapp->config(); + QString encoding; config->setGroup("Pixmaps"); mBackingPixmapOn = FALSE; @@ -210,7 +211,9 @@ void KMReaderWin::readConfig(void) mHeaderStyle = (HeaderStyle)config->readNumEntry("hdr-style", HdrFancy); mAttachmentStyle = (AttachmentStyle)config->readNumEntry("attmnt-style", SmartAttmnt); - + encoding = config->readEntry("encoding", "iso8859-1" ); + mCodec = QTextCodec::codecForName(encoding); + mAutoDetectEncoding = config->readBoolEntry("autodetect-encoding", true ); #ifndef KRN int i, diff; @@ -257,11 +260,16 @@ void KMReaderWin::readConfig(void) void KMReaderWin::writeConfig(bool aWithSync) { KConfig *config = kapp->config(); + QString encoding = ""; + if (mCodec) + encoding = mCodec->name(); config->setGroup("Reader"); config->writeEntry("attach-inline", mAtmInline); config->writeEntry("hdr-style", (int)mHeaderStyle); config->writeEntry("attmnt-style",(int)mAttachmentStyle); + config->writeEntry("encoding", encoding); + config->writeEntry("autodetect-encoding", mAutoDetectEncoding); if (aWithSync) config->sync(); } @@ -486,6 +494,7 @@ void KMReaderWin::parseMsg(void) QString type = mMsg->typeStr().lower(); if (mAutoDetectEncoding) { + mCodec = 0; QString encoding; if (type.find("text/") != -1) encoding = mMsg->charset();