author | zautrix <zautrix> | 2004-10-31 12:28:03 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2004-10-31 12:28:03 (UTC) |
commit | bed831cc1a38d38a4c5b9329bf37b1c663142c23 (patch) (side-by-side diff) | |
tree | db12b81ea6cee0cac347c801798d759dfe24acfb /kmicromail/opiemail.cpp | |
parent | 553bd9acf9879a77c5fa925155f73afbe8a9af41 (diff) | |
download | kdepimpi-bed831cc1a38d38a4c5b9329bf37b1c663142c23.zip kdepimpi-bed831cc1a38d38a4c5b9329bf37b1c663142c23.tar.gz kdepimpi-bed831cc1a38d38a4c5b9329bf37b1c663142c23.tar.bz2 |
ompi utf8 fixes
-rw-r--r-- | kmicromail/opiemail.cpp | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/kmicromail/opiemail.cpp b/kmicromail/opiemail.cpp index ca3faaf..fe9df87 100644 --- a/kmicromail/opiemail.cpp +++ b/kmicromail/opiemail.cpp @@ -37,12 +37,13 @@ OpieMail::OpieMail( QWidget *parent, const char *name ) : MainWindow( parent, name) //, WStyle_ContextHelp ) { settings = new Settings(); + setIcon(SmallIcon( "kmicromail" ) ); folderView->populate( settings->getAccounts() ); } OpieMail::~OpieMail() { @@ -237,13 +238,56 @@ void OpieMail::slotEditAccounts() eaDialog.exec(); if ( settings ) delete settings; settings = new Settings(); folderView->populate( settings->getAccounts() ); } +void OpieMail::replyMail() +{ + + QListViewItem*item = mailView->currentItem(); + if (!item) return; + RecMailP mail = ((MailListViewItem*)item)->data(); + RecBodyP body = folderView->fetchBody(mail); + + QString rtext; + rtext += QString("* %1 wrote on %2:\n") // no i18n on purpose + .arg( QString::fromUtf8( mail->getFrom().latin1())) + .arg( QString::fromUtf8( mail->getDate().latin1() )); + + QString text = QString::fromUtf8( body->Bodytext().latin1() ); + QStringList lines = QStringList::split(QRegExp("\\n"), text); + QStringList::Iterator it; + for (it = lines.begin(); it != lines.end(); it++) + { + rtext += "> " + *it + "\n"; + } + rtext += "\n"; + QString prefix; + if ( mail->getSubject().find(QRegExp("^Re: .*$")) != -1) prefix = ""; + else prefix = "Re: "; // no i18n on purpose + + Settings *settings = new Settings(); + ComposeMail composer( settings ,this, 0, true); + if (mail->Replyto().isEmpty()) { + composer.setTo( QString::fromUtf8( mail->getFrom().latin1())); + } else { + composer.setTo( QString::fromUtf8(mail->Replyto().latin1())); + } + composer.setSubject( prefix + QString::fromUtf8( mail->getSubject().latin1() ) ); + composer.setMessage( rtext ); + composer.setInReplyTo( QString::fromUtf8(mail->Msgid().latin1())); + + if ( QDialog::Accepted == KApplication::execDialog( &composer ) ) + { + mail->Wrapper()->answeredMail(mail); + } + delete settings; + +} void OpieMail::displayMail() { QListViewItem*item = mailView->currentItem(); if (!item) return; RecMailP mail = ((MailListViewItem*)item)->data(); RecBodyP body = folderView->fetchBody(mail); @@ -337,12 +381,14 @@ void OpieMail::mailHold(int button, QListViewItem *item,const QPoint&,int ) m->insertItem(i18n("Copy all selected postings"),this,SLOT(slotMoveCopyAllMail())); m->insertItem(i18n("Clear selection"),this,SLOT(clearSelection())); } else { if (folderView->currentisDraft()) { m->insertItem(i18n("Edit this mail"),this,SLOT(reEditMail())); } + m->insertItem(i18n("Reply to this mail"),this,SLOT(replyMail())); + m->insertSeparator(); m->insertItem(i18n("Read this mail"),this,SLOT(displayMail())); m->insertItem(i18n("Move/Copy this mail"),this,SLOT(slotMoveCopyMail())); m->insertItem(i18n("Delete this mail"),this,SLOT(slotDeleteMail())); m->insertSeparator(); m->insertItem(i18n("Move/Copy all selected mail"),this,SLOT(slotMoveCopyAllMail())); m->insertItem(i18n("Delete all selected mails"),this,SLOT(slotDeleteAllMail())); |