summaryrefslogtreecommitdiffabout
path: root/kmicromail
Unidiff
Diffstat (limited to 'kmicromail') (more/less context) (show whitespace changes)
-rw-r--r--kmicromail/composemail.cpp12
-rw-r--r--kmicromail/koprefs.cpp7
-rw-r--r--kmicromail/koprefs.h5
-rw-r--r--kmicromail/koprefsdialog.cpp7
-rw-r--r--kmicromail/koprefsdialog.h1
-rw-r--r--kmicromail/libetpan/mime/mailmime_decode.c21
-rw-r--r--kmicromail/libmailwrapper/abstractmail.cpp9
-rw-r--r--kmicromail/libmailwrapper/genericwrapper.cpp16
-rw-r--r--kmicromail/libmailwrapper/imapwrapper.cpp19
-rw-r--r--kmicromail/libmailwrapper/mboxwrapper.cpp1
-rw-r--r--kmicromail/libmailwrapper/mhwrapper.cpp1
-rw-r--r--kmicromail/mailistviewitem.cpp4
-rw-r--r--kmicromail/mainwindow.cpp45
-rw-r--r--kmicromail/mainwindow.h3
-rw-r--r--kmicromail/opiemail.cpp16
-rw-r--r--kmicromail/viewmail.cpp20
16 files changed, 147 insertions, 40 deletions
diff --git a/kmicromail/composemail.cpp b/kmicromail/composemail.cpp
index 2dcbc75..f44100b 100644
--- a/kmicromail/composemail.cpp
+++ b/kmicromail/composemail.cpp
@@ -485,8 +485,8 @@ void ComposeMail::reEditMail(const RecMailP&current)
485 RecMailP data = current; 485 RecMailP data = current;
486 message->setText(QString::fromUtf8( data->Wrapper()->fetchBody(current)->Bodytext().latin1() )); 486 message->setText(data->Wrapper()->fetchBody(current)->Bodytext());
487 subjectLine->setText( QString::fromUtf8( data->getSubject().latin1() )); 487 subjectLine->setText( data->getSubject());
488 toLine->setText(QString::fromUtf8( data->To().join(",").latin1() )); 488 toLine->setText(data->To().join(","));
489 ccLine->setText(QString::fromUtf8( data->CC().join(",").latin1() )); 489 ccLine->setText(data->CC().join(","));
490 bccLine->setText(QString::fromUtf8( data->Bcc().join(",").latin1() )); 490 bccLine->setText(data->Bcc().join(","));
491 replyLine->setText(QString::fromUtf8( data->Replyto().latin1() )); 491 replyLine->setText(data->Replyto());
492} 492}
diff --git a/kmicromail/koprefs.cpp b/kmicromail/koprefs.cpp
index 8143b6f..342bbf3 100644
--- a/kmicromail/koprefs.cpp
+++ b/kmicromail/koprefs.cpp
@@ -59,2 +59,3 @@ KOPrefs::KOPrefs() :
59 KPrefs::setCurrentGroup("General"); 59 KPrefs::setCurrentGroup("General");
60 addItemString("SendCodec",&mSendCodec,i18n ("userdefined") );
60 addItemString("SenderName",&mName,i18n ("Please set at") ); 61 addItemString("SenderName",&mName,i18n ("Please set at") );
@@ -64,2 +65,3 @@ KOPrefs::KOPrefs() :
64 addItemBool("UseKapi",&mUseKapi,false); 65 addItemBool("UseKapi",&mUseKapi,false);
66 addItemInt("CurrentCodec",&mCurrentCodec,0);
65 67
@@ -70,3 +72,3 @@ KOPrefs::KOPrefs() :
70 fillMailDefaults(); 72 fillMailDefaults();
71 73 isDirty = false;
72} 74}
@@ -76,2 +78,4 @@ KOPrefs::~KOPrefs()
76{ 78{
79 if ( isDirty )
80 writeConfig();
77 if (mInstance == this) 81 if (mInstance == this)
@@ -112,3 +116,2 @@ void KOPrefs::usrWriteConfig()
112{ 116{
113
114 KPimPrefs::usrWriteConfig(); 117 KPimPrefs::usrWriteConfig();
diff --git a/kmicromail/koprefs.h b/kmicromail/koprefs.h
index f0a4463..91f3fa3 100644
--- a/kmicromail/koprefs.h
+++ b/kmicromail/koprefs.h
@@ -70,4 +70,7 @@ class KOPrefs : public KPimPrefs
70 QString mName; 70 QString mName;
71 QString mSendCodec;
71 QString mEmail; 72 QString mEmail;
72 bool mSendLater, mViewAsHtml, mUseKapi; 73 QString mCurrentCodeName;
74 int mCurrentCodec;
75 bool mSendLater, mViewAsHtml, mUseKapi, isDirty;
73 private: 76 private:
diff --git a/kmicromail/koprefsdialog.cpp b/kmicromail/koprefsdialog.cpp
index c878fc9..4abf859 100644
--- a/kmicromail/koprefsdialog.cpp
+++ b/kmicromail/koprefsdialog.cpp
@@ -149,3 +149,6 @@ void KOPrefsDialog::setupMailTab()
149 topLayout->addMultiCellWidget(ttt->checkBox(),1,1,0,1); 149 topLayout->addMultiCellWidget(ttt->checkBox(),1,1,0,1);
150 150 mCodecEdit = new QLineEdit(topFrame);
151 topLayout->addMultiCellWidget( new QLabel(mCodecEdit, i18n("User defined codec for new mails:"), topFrame),2,2,0,1);
152 topLayout->addMultiCellWidget(mCodecEdit,3,3,0,1);
153 topLayout->addMultiCellWidget( new QLabel(0, i18n("Example: iso-8859-15"), topFrame),4,4,0,1);
151 154
@@ -197,2 +200,3 @@ void KOPrefsDialog::usrReadConfig()
197 mEmailEdit->setText(KOPrefs::instance()->mEmail); 200 mEmailEdit->setText(KOPrefs::instance()->mEmail);
201 mCodecEdit->setText(KOPrefs::instance()->mSendCodec);
198 kdelibcfg->readConfig(); 202 kdelibcfg->readConfig();
@@ -203,2 +207,3 @@ void KOPrefsDialog::usrWriteConfig()
203 KOPrefs::instance()->mEmail = mEmailEdit->text(); 207 KOPrefs::instance()->mEmail = mEmailEdit->text();
208 KOPrefs::instance()->mSendCodec = mCodecEdit->text();
204 kdelibcfg->writeConfig(); 209 kdelibcfg->writeConfig();
diff --git a/kmicromail/koprefsdialog.h b/kmicromail/koprefsdialog.h
index 615574b..a0416ae 100644
--- a/kmicromail/koprefsdialog.h
+++ b/kmicromail/koprefsdialog.h
@@ -65,2 +65,3 @@ protected:
65 QLineEdit *mNameEdit; 65 QLineEdit *mNameEdit;
66 QLineEdit *mCodecEdit;
66 QLineEdit *mEmailEdit; 67 QLineEdit *mEmailEdit;
diff --git a/kmicromail/libetpan/mime/mailmime_decode.c b/kmicromail/libetpan/mime/mailmime_decode.c
index dbaeb68..b2ab0f7 100644
--- a/kmicromail/libetpan/mime/mailmime_decode.c
+++ b/kmicromail/libetpan/mime/mailmime_decode.c
@@ -119,4 +119,5 @@ int mailmime_encoded_phrase_parse(const char * default_fromcode,
119 type = TYPE_ERROR; /* XXX - removes a gcc warning */ 119 type = TYPE_ERROR; /* XXX - removes a gcc warning */
120 120 // LUTZ add
121 while (1) { 121 int appendNewLine = FALSE;
122 while (1) { //while
122 123
@@ -201,3 +202,13 @@ int mailmime_encoded_phrase_parse(const char * default_fromcode,
201 } 202 }
202 203 // LUTZ add
204 if ( appendNewLine ) {
205 appendNewLine = FALSE;
206 if (mmap_string_append(gphrase, "\n") == NULL) {
207 free(wordutf8);
208 free(raw_word);
209 res = MAILIMF_ERROR_MEMORY;
210 goto free;
211 }
212 }
213 //fprintf(stderr,"append *%s* \n",wordutf8 );
203 if (mmap_string_append(gphrase, wordutf8) == NULL) { 214 if (mmap_string_append(gphrase, wordutf8) == NULL) {
@@ -214,3 +225,7 @@ int mailmime_encoded_phrase_parse(const char * default_fromcode,
214 else if (r == MAILIMF_ERROR_PARSE) { 225 else if (r == MAILIMF_ERROR_PARSE) {
226 // LUTZ add
227 if ( cur_token >= length )
215 break; 228 break;
229 ++cur_token;
230 appendNewLine = TRUE;
216 } 231 }
diff --git a/kmicromail/libmailwrapper/abstractmail.cpp b/kmicromail/libmailwrapper/abstractmail.cpp
index 8ee112c..ed5c898 100644
--- a/kmicromail/libmailwrapper/abstractmail.cpp
+++ b/kmicromail/libmailwrapper/abstractmail.cpp
@@ -78,3 +78,2 @@ encodedString* AbstractMail::decode_String(const encodedString*text,const QStrin
78 } 78 }
79
80 int err = mailmime_part_parse(text->Content(),text->Length(),&index,mimetype, 79 int err = mailmime_part_parse(text->Content(),text->Length(),&index,mimetype,
@@ -97,7 +96,9 @@ QString AbstractMail::convert_String(const char*text)
97 QString result(text); 96 QString result(text);
98 97 //qDebug("convert_String %s ", text);
98 //err = mailmime_encoded_phrase_parse("iso-8859-1",
99 // text, strlen(text),&index, "iso-8859-1",&res);
99 err = mailmime_encoded_phrase_parse("iso-8859-1", 100 err = mailmime_encoded_phrase_parse("iso-8859-1",
100 text, strlen(text),&index, "iso-8859-1",&res); 101 text, strlen(text),&index, "utf-8",&res);
101 if (err == MAILIMF_NO_ERROR && res && strlen(res)) { 102 if (err == MAILIMF_NO_ERROR && res && strlen(res)) {
102 result = QString(res); 103 result = QString::fromUtf8(res);
103 } 104 }
diff --git a/kmicromail/libmailwrapper/genericwrapper.cpp b/kmicromail/libmailwrapper/genericwrapper.cpp
index d89a5f9..49227dd 100644
--- a/kmicromail/libmailwrapper/genericwrapper.cpp
+++ b/kmicromail/libmailwrapper/genericwrapper.cpp
@@ -222,2 +222,16 @@ void Genericwrapper::traverseBody(RecBodyP&target,mailmessage*message,mailmime*m
222 delete res; 222 delete res;
223 size_t index = 0;
224 char*resu = 0;
225 int err = MAILIMF_NO_ERROR;
226 QString charset = part->searchParamter( "charset");
227 qDebug("CHARSET %s ",charset.latin1() );
228 if ( !charset.isEmpty() ) {
229 err = mailmime_encoded_phrase_parse(charset.latin1(),
230 b.latin1(), b.length(),&index, "utf-8",&resu);
231 if (err == MAILIMF_NO_ERROR && resu && strlen(resu)) {
232 //qDebug("res %d %s ", index, resu);
233 b = QString::fromUtf8(resu);
234 }
235 if (resu) free(resu);
236 }
223 target->setBodytext(b); 237 target->setBodytext(b);
@@ -346,3 +360,3 @@ QString Genericwrapper::parseMailbox( mailimf_mailbox *box )
346 } else { 360 } else {
347 result.append( convert_String(box->mb_display_name).latin1() ); 361 result.append( convert_String(box->mb_display_name) );
348 result.append( " <" ); 362 result.append( " <" );
diff --git a/kmicromail/libmailwrapper/imapwrapper.cpp b/kmicromail/libmailwrapper/imapwrapper.cpp
index d90a8d2..eb2b47d 100644
--- a/kmicromail/libmailwrapper/imapwrapper.cpp
+++ b/kmicromail/libmailwrapper/imapwrapper.cpp
@@ -754,2 +754,21 @@ void IMAPwrapper::traverseBody(const RecMailP&mail,mailimap_body*body,RecBodyP&t
754 QString body_text = fetchTextPart(mail,countlist,true,currentPart->Encoding()); 754 QString body_text = fetchTextPart(mail,countlist,true,currentPart->Encoding());
755
756 size_t index = 0;
757 char*res = 0;
758 int err = MAILIMF_NO_ERROR;
759
760 QString charset = currentPart->searchParamter( "charset");
761 qDebug("CHARSET %s ",charset.latin1() );
762 //if ( false ) {
763 if ( !charset.isEmpty() ) {
764 //err = mailmime_encoded_phrase_parse("iso-8859-1",
765 // text, strlen(text),&index, "iso-8859-1",&res);
766 err = mailmime_encoded_phrase_parse(charset.latin1(),
767 body_text.latin1(), body_text.length(),&index, "utf-8",&res);
768 if (err == MAILIMF_NO_ERROR && res && strlen(res)) {
769 //qDebug("res %d %s ", index, res);
770 body_text = QString::fromUtf8(res);
771 }
772 if (res) free(res);
773 }
755 //qDebug("encoding %d text %s ",currentPart->Encoding().latin1(), body_text.latin1() ); 774 //qDebug("encoding %d text %s ",currentPart->Encoding().latin1(), body_text.latin1() );
diff --git a/kmicromail/libmailwrapper/mboxwrapper.cpp b/kmicromail/libmailwrapper/mboxwrapper.cpp
index 0cdbae4..87f8c8a 100644
--- a/kmicromail/libmailwrapper/mboxwrapper.cpp
+++ b/kmicromail/libmailwrapper/mboxwrapper.cpp
@@ -127,2 +127,3 @@ RecBodyP MBOXwrapper::fetchBody( const RecMailP &mail )
127 } 127 }
128 qDebug("MBOXwrapper::fetchBody ");
128 body = parseMail(msg); 129 body = parseMail(msg);
diff --git a/kmicromail/libmailwrapper/mhwrapper.cpp b/kmicromail/libmailwrapper/mhwrapper.cpp
index 90b5d23..982d7a6 100644
--- a/kmicromail/libmailwrapper/mhwrapper.cpp
+++ b/kmicromail/libmailwrapper/mhwrapper.cpp
@@ -130,2 +130,3 @@ RecBodyP MHwrapper::fetchBody( const RecMailP &mail )
130{ 130{
131 qDebug("MHwrapper::fetchBody ");
131 RecBodyP body = new RecBody(); 132 RecBodyP body = new RecBody();
diff --git a/kmicromail/mailistviewitem.cpp b/kmicromail/mailistviewitem.cpp
index 5ef5b6a..484a635 100644
--- a/kmicromail/mailistviewitem.cpp
+++ b/kmicromail/mailistviewitem.cpp
@@ -57,4 +57,4 @@ void MailListViewItem::showEntry()
57 } 57 }
58 setText(1,QString::fromUtf8( mail_data->getSubject().latin1())); 58 setText(1,mail_data->getSubject());
59 setText(2,QString::fromUtf8( mail_data->getFrom().latin1())); 59 setText(2,mail_data->getFrom());
60#if 0 60#if 0
diff --git a/kmicromail/mainwindow.cpp b/kmicromail/mainwindow.cpp
index 98eb9a5..3013931 100644
--- a/kmicromail/mainwindow.cpp
+++ b/kmicromail/mainwindow.cpp
@@ -14,2 +14,3 @@
14#include <qstatusbar.h> 14#include <qstatusbar.h>
15#include <kabc/stdaddressbook.h>
15extern QStatusBar* globalSstatusBarMainWindow; 16extern QStatusBar* globalSstatusBarMainWindow;
@@ -22,3 +23,3 @@ extern QStatusBar* globalSstatusBarMainWindow;
22 23
23#include <kabc/stdaddressbook.h> 24#include "koprefs.h"
24 25
@@ -101,3 +102,10 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags )
101 editAccounts->addTo( settingsMenu ); 102 editAccounts->addTo( settingsMenu );
102 103 codecMenu = new QPopupMenu( menuBar );
104 codecMenu->insertItem( "Western (iso-8859-1)",0,0);
105 codecMenu->insertItem( "Cyrillic (iso-8859-5)",1,1);
106 codecMenu->insertItem( "Western (iso-8859-15)",2,2);
107 codecMenu->insertItem( "Chinese (big-5)",3,3);
108 codecMenu->insertItem( "Unicode (utf-8)",4,4);
109 codecMenu->insertItem( "Userdefined ("+KOPrefs::instance()->mSendCodec+")",5,5);
110 settingsMenu->insertItem( i18n("Codec for new mails"), codecMenu);
103 //setCentralWidget( view ); 111 //setCentralWidget( view );
@@ -185,2 +193,4 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags )
185 li->addTo(helpMenu); 193 li->addTo(helpMenu);
194 connect( codecMenu, SIGNAL( activated(int) ), this, SLOT( slotSetCodec( int )) );
195 slotSetCodec( KOPrefs::instance()->mCurrentCodec );
186#ifdef DESKTOP_VERSION 196#ifdef DESKTOP_VERSION
@@ -194,2 +204,33 @@ MainWindow::~MainWindow()
194 204
205void MainWindow::slotSetCodec( int codec )
206{
207 codecMenu->setItemChecked(KOPrefs::instance()->mCurrentCodec, false );
208 //qDebug("codec %d ", codec);
209 KOPrefs::instance()->mCurrentCodec = codec;
210 KOPrefs::instance()->isDirty = true;
211 QString name;
212 switch ( codec ) {
213 case 0:
214 name = "iso-8859-1";
215 break;
216 case 1:
217 name = "iso-8859-5";
218 break;
219 case 2:
220 name = "iso-8859-15";
221 break;
222 case 3:
223 name = "big-5";
224 break;
225 case 4:
226 name = "utf-8";
227 break;
228 case 5:
229 name = KOPrefs::instance()->mSendCodec.lower();
230 break;
231 }
232 KOPrefs::instance()->mCurrentCodeName = name ;
233 codecMenu->changeItem ( 5, "Userdefined ("+KOPrefs::instance()->mSendCodec+")");
234 codecMenu->setItemChecked(KOPrefs::instance()->mCurrentCodec, true );
235}
195void MainWindow::showLicence() 236void MainWindow::showLicence()
diff --git a/kmicromail/mainwindow.h b/kmicromail/mainwindow.h
index f5ab69b..d0a5caf 100644
--- a/kmicromail/mainwindow.h
+++ b/kmicromail/mainwindow.h
@@ -47,2 +47,3 @@ protected slots:
47 virtual void slotDeleteMail(); 47 virtual void slotDeleteMail();
48 virtual void slotSetCodec(int);
48 virtual void mailHold(int, QListViewItem *,const QPoint&,int); 49 virtual void mailHold(int, QListViewItem *,const QPoint&,int);
@@ -59,3 +60,3 @@ protected:
59 QPEMenuBar *menuBar; 60 QPEMenuBar *menuBar;
60 QPopupMenu *mailMenu, *settingsMenu; 61 QPopupMenu *mailMenu, *settingsMenu, *codecMenu;
61 QAction *composeMail, *sendQueued, *showFolders, *searchMails, *deleteMails, 62 QAction *composeMail, *sendQueued, *showFolders, *searchMails, *deleteMails,
diff --git a/kmicromail/opiemail.cpp b/kmicromail/opiemail.cpp
index af5376f..18a5600 100644
--- a/kmicromail/opiemail.cpp
+++ b/kmicromail/opiemail.cpp
@@ -35,2 +35,3 @@
35#include <libmailwrapper/abstractmail.h> 35#include <libmailwrapper/abstractmail.h>
36#include "koprefs.h"
36 37
@@ -239,2 +240,3 @@ void OpieMail::slotEditSettings()
239 240
241 slotSetCodec( KOPrefs::instance()->mCurrentCodec );
240 // KApplication::execDialog(settingsDialog); 242 // KApplication::execDialog(settingsDialog);
@@ -265,6 +267,6 @@ void OpieMail::replyMail()
265 rtext += QString("* %1 wrote on %2:\n") // no i18n on purpose 267 rtext += QString("* %1 wrote on %2:\n") // no i18n on purpose
266 .arg( QString::fromUtf8( mail->getFrom().latin1())) 268 .arg( mail->getFrom())
267 .arg( QString::fromUtf8( mail->getDate().latin1() )); 269 .arg( mail->getDate());
268 270
269 QString text = QString::fromUtf8( body->Bodytext().latin1() ); 271 QString text = body->Bodytext();
270 QStringList lines = QStringList::split(QRegExp("\\n"), text); 272 QStringList lines = QStringList::split(QRegExp("\\n"), text);
@@ -284,9 +286,9 @@ void OpieMail::replyMail()
284 if (mail->Replyto().isEmpty()) { 286 if (mail->Replyto().isEmpty()) {
285 composer.setTo( QString::fromUtf8( mail->getFrom().latin1())); 287 composer.setTo( mail->getFrom());
286 } else { 288 } else {
287 composer.setTo( QString::fromUtf8(mail->Replyto().latin1())); 289 composer.setTo( mail->Replyto());
288 } 290 }
289 composer.setSubject( prefix + QString::fromUtf8( mail->getSubject().latin1() ) ); 291 composer.setSubject( prefix + mail->getSubject());
290 composer.setMessage( rtext ); 292 composer.setMessage( rtext );
291 composer.setInReplyTo( QString::fromUtf8(mail->Msgid().latin1())); 293 composer.setInReplyTo( mail->Msgid());
292 294
diff --git a/kmicromail/viewmail.cpp b/kmicromail/viewmail.cpp
index 2093678..4883231 100644
--- a/kmicromail/viewmail.cpp
+++ b/kmicromail/viewmail.cpp
@@ -100,3 +100,3 @@ void ViewMail::setBody(const RecBodyP&body )
100 m_body = body; 100 m_body = body;
101 m_mail[2] = QString::fromUtf8( body->Bodytext().latin1() ); 101 m_mail[2] = body->Bodytext();
102 // qDebug("********text %s ",m_mail[2].latin1() ); 102 // qDebug("********text %s ",m_mail[2].latin1() );
@@ -303,6 +303,6 @@ void ViewMail::setMail(const RecMailP&mail )
303 303
304 m_mail[0] = QString::fromUtf8( mail->getFrom().latin1() ); 304 m_mail[0] = mail->getFrom();
305 m_mail[1] = QString::fromUtf8( mail->getSubject().latin1() ); 305 m_mail[1] = mail->getSubject();
306 m_mail[3] = QString::fromUtf8( mail->getDate().latin1() ); 306 m_mail[3] = mail->getDate();
307 m_mail[4] = QString::fromUtf8( mail->Msgid().latin1() ); 307 m_mail[4] = mail->Msgid();
308 308
@@ -352,5 +352,5 @@ void ViewMail::setText()
352 352
353 toString = QString::fromUtf8(m_mail2[0].join(",").latin1()); 353 toString = m_mail2[0].join(",");
354 ccString = QString::fromUtf8(m_mail2[1].join(",").latin1()); 354 ccString = m_mail2[1].join(",");
355 bccString = QString::fromUtf8(m_mail2[2].join(",").latin1()); 355 bccString = m_mail2[2].join(",");
356 356
@@ -452,5 +452,5 @@ void ViewMail::slotReply()
452 if (m_recMail->Replyto().isEmpty()) { 452 if (m_recMail->Replyto().isEmpty()) {
453 composer.setTo( QString::fromUtf8( m_recMail->getFrom().latin1())); 453 composer.setTo(m_recMail->getFrom());
454 } else { 454 } else {
455 composer.setTo( QString::fromUtf8( m_recMail->Replyto().latin1())); 455 composer.setTo(m_recMail->Replyto());
456 } 456 }