summaryrefslogtreecommitdiffabout
path: root/kmicromail/viewmail.cpp
Unidiff
Diffstat (limited to 'kmicromail/viewmail.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kmicromail/viewmail.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/kmicromail/viewmail.cpp b/kmicromail/viewmail.cpp
index 60c764c..6d88cad 100644
--- a/kmicromail/viewmail.cpp
+++ b/kmicromail/viewmail.cpp
@@ -253,281 +253,282 @@ void ViewMail::slotItemClicked( QListViewItem * item , const QPoint & point, int
253 output.close(); 253 output.close();
254 delete content; 254 delete content;
255 } 255 }
256 } 256 }
257 } 257 }
258 break ; 258 break ;
259 259
260 case 2: 260 case 2:
261 { 261 {
262#ifdef DESKTOP_VERSION 262#ifdef DESKTOP_VERSION
263 QString tmpfile = locateLocal( "tmp", "opiemail-image"); 263 QString tmpfile = locateLocal( "tmp", "opiemail-image");
264#else 264#else
265 QString tmpfile = "/tmp/opiemail-image"; 265 QString tmpfile = "/tmp/opiemail-image";
266#endif 266#endif
267 encodedString*content = m_recMail->Wrapper()->fetchDecodedPart( m_recMail, m_body->Parts()[ ( ( AttachItem* )item )->Partnumber() ] ); 267 encodedString*content = m_recMail->Wrapper()->fetchDecodedPart( m_recMail, m_body->Parts()[ ( ( AttachItem* )item )->Partnumber() ] );
268 if (content) { 268 if (content) {
269 QFile output(tmpfile); 269 QFile output(tmpfile);
270 output.open(IO_WriteOnly); 270 output.open(IO_WriteOnly);
271 output.writeBlock(content->Content(),content->Length()); 271 output.writeBlock(content->Content(),content->Length());
272 output.close(); 272 output.close();
273 delete content; 273 delete content;
274 MailImageDlg iview(""); 274 MailImageDlg iview("");
275 iview.setName(tmpfile); 275 iview.setName(tmpfile);
276 KApplication::execDialog(&iview); 276 KApplication::execDialog(&iview);
277 output.remove(); 277 output.remove();
278 } 278 }
279 } 279 }
280 break; 280 break;
281 case 1: 281 case 1:
282 if ( ( ( AttachItem* )item )->Partnumber() == -1 ) 282 if ( ( ( AttachItem* )item )->Partnumber() == -1 )
283 { 283 {
284 setText(); 284 setText();
285 } 285 }
286 else 286 else
287 { 287 {
288 if ( m_recMail->Wrapper() != 0l ) 288 if ( m_recMail->Wrapper() != 0l )
289 { // make sure that there is a wrapper , even after delete or simular actions 289 { // make sure that there is a wrapper , even after delete or simular actions
290 browser->setText( m_recMail->Wrapper()->fetchTextPart( m_recMail, m_body->Parts()[ ( ( AttachItem* )item )->Partnumber() ] ) ); 290 browser->setText( m_recMail->Wrapper()->fetchTextPart( m_recMail, m_body->Parts()[ ( ( AttachItem* )item )->Partnumber() ] ) );
291 } 291 }
292 } 292 }
293 break; 293 break;
294 } 294 }
295 delete menu; 295 delete menu;
296} 296}
297 297
298 298
299void ViewMail::setMail(const RecMailP&mail ) 299void ViewMail::setMail(const RecMailP&mail )
300{ 300{
301 301
302 m_recMail = mail; 302 m_recMail = mail;
303 303
304 m_mail[0] = mail->getFrom(); 304 m_mail[0] = mail->getFrom();
305 m_mail[1] = mail->getSubject(); 305 m_mail[1] = mail->getSubject();
306 m_mail[3] = mail->getDate(); 306 m_mail[3] = mail->getDate();
307 m_mail[4] = mail->Msgid(); 307 m_mail[4] = mail->Msgid();
308 308
309 m_mail2[0] = mail->To(); 309 m_mail2[0] = mail->To();
310 m_mail2[1] = mail->CC(); 310 m_mail2[1] = mail->CC();
311 m_mail2[2] = mail->Bcc(); 311 m_mail2[2] = mail->Bcc();
312 312
313 setText(); 313 setText();
314} 314}
315 315
316 316
317 317
318ViewMail::ViewMail( QWidget *parent, const char *name, WFlags fl) 318ViewMail::ViewMail( QWidget *parent, const char *name, WFlags fl)
319 : ViewMailBase(parent, name, fl), _inLoop(false) 319 : ViewMailBase(parent, name, fl), _inLoop(false)
320{ 320{
321 m_gotBody = false; 321 m_gotBody = false;
322 deleted = false; 322 deleted = false;
323 323
324 connect( reply, SIGNAL(activated()), SLOT(slotReply())); 324 connect( reply, SIGNAL(activated()), SLOT(slotReply()));
325 connect( forward, SIGNAL(activated()), SLOT(slotForward())); 325 connect( forward, SIGNAL(activated()), SLOT(slotForward()));
326 connect( deleteMail, SIGNAL( activated() ), SLOT( slotDeleteMail() ) ); 326 connect( deleteMail, SIGNAL( activated() ), SLOT( slotDeleteMail() ) );
327 connect( showHtml, SIGNAL( toggled(bool) ), SLOT( slotShowHtml(bool) ) ); 327 connect( showHtml, SIGNAL( toggled(bool) ), SLOT( slotShowHtml(bool) ) );
328 connect( closeMail, SIGNAL( activated() ), SLOT( close() ) ); 328 connect( closeMail, SIGNAL( activated() ), SLOT( close() ) );
329 connect( nextMail, SIGNAL( activated() ), SLOT( slotNextMail() ) ); 329 connect( nextMail, SIGNAL( activated() ), SLOT( slotNextMail() ) );
330 330
331 attachments->setEnabled(m_gotBody); 331 attachments->setEnabled(m_gotBody);
332 connect( attachments, SIGNAL( clicked(QListViewItem*,const QPoint&, int) ), SLOT( slotItemClicked(QListViewItem*,const QPoint&, int) ) ); 332 connect( attachments, SIGNAL( clicked(QListViewItem*,const QPoint&, int) ), SLOT( slotItemClicked(QListViewItem*,const QPoint&, int) ) );
333 333
334 readConfig(); 334 readConfig();
335 attachments->setSorting(-1); 335 attachments->setSorting(-1);
336} 336}
337 337
338void ViewMail::readConfig() 338void ViewMail::readConfig()
339{ 339{
340 340
341 setFont ( KOPrefs::instance()->mReadFont ); 341 setFont ( KOPrefs::instance()->mReadFont );
342 m_showHtml = KOPrefs::instance()->mViewAsHtml; 342 m_showHtml = KOPrefs::instance()->mViewAsHtml;
343 showHtml->setOn( m_showHtml ); 343 showHtml->setOn( m_showHtml );
344} 344}
345 345
346void ViewMail::setText() 346void ViewMail::setText()
347{ 347{
348 348
349 QString toString; 349 QString toString;
350 QString ccString; 350 QString ccString;
351 QString bccString; 351 QString bccString;
352 352
353 353
354 toString = m_mail2[0].join(","); 354 toString = m_mail2[0].join(",");
355 ccString = m_mail2[1].join(","); 355 ccString = m_mail2[1].join(",");
356 bccString = m_mail2[2].join(","); 356 bccString = m_mail2[2].join(",");
357 357
358 358
359 setCaption( i18n("E-Mail by %1").arg( m_mail[0] ) ); 359 setCaption( i18n("E-Mail by %1").arg( m_mail[0] ) );
360 360
361 m_mailHtml = "<html><body>" 361 m_mailHtml = "<html><body>"
362 "<table width=\"100%\" border=\"0\"><tr bgcolor=\"#FFDD76\"><td>" 362 "<table width=\"100%\" border=\"0\"><tr bgcolor=\"#FFDD76\"><td>"
363 "<div align=left><b>" + deHtml( m_mail[1] ) + "</b></div>" 363 "<div align=left><b>" + deHtml( m_mail[1] ) + "</b></div>"
364 "</td></tr><tr bgcolor=\"#EEEEE6\"><td>" 364 "</td></tr><tr bgcolor=\"#EEEEE6\"><td>"
365 "<b>" + i18n( "From" ) + ": </b><font color=#6C86C0>" + deHtml( m_mail[0] ) + "</font><br>" 365 "<b>" + i18n( "From" ) + ": </b><font color=#6C86C0>" + deHtml( m_mail[0] ) + "</font><br>"
366 "<b>" + i18n( "To" ) + ": </b><font color=#6C86C0>" + deHtml( toString ) + "</font><br><b>" + 366 "<b>" + i18n( "To" ) + ": </b><font color=#6C86C0>" + deHtml( toString ) + "</font><br><b>" +
367 i18n( "Cc" ) + ": </b>" + deHtml( ccString ) + "<br>" 367 i18n( "Cc" ) + ": </b>" + deHtml( ccString ) + "<br>"
368 "<b>" + i18n( "Date" ) + ": </b> " + m_mail[3] + 368 "<b>" + i18n( "Date" ) + ": </b> " + m_mail[3] +
369 "</td></tr></table><font>"; 369 "</td></tr></table><font>";
370 370
371 if ( !m_showHtml ) 371 if ( !m_showHtml )
372 { 372 {
373 browser->setText( QString( m_mailHtml) + deHtml( m_mail[2] ) + "</font></html>" ); 373 browser->setText( QString( m_mailHtml) + deHtml( m_mail[2] ) + "</font></html>" );
374 } 374 }
375 else 375 else
376 { 376 {
377 browser->setText( QString( m_mailHtml) + m_mail[2] + "</font></html>" ); 377 browser->setText( QString( m_mailHtml) + m_mail[2] + "</font></html>" );
378 } 378 }
379 // remove later in favor of a real handling 379 // remove later in favor of a real handling
380 m_gotBody = true; 380 m_gotBody = true;
381} 381}
382 382
383 383
384ViewMail::~ViewMail() 384ViewMail::~ViewMail()
385{ 385{
386 m_recMail->Wrapper()->cleanMimeCache(); 386 m_recMail->Wrapper()->cleanMimeCache();
387 hide(); 387 hide();
388} 388}
389 389
390void ViewMail::hide() 390void ViewMail::hide()
391{ 391{
392 QWidget::hide(); 392 QWidget::hide();
393 393
394 if (_inLoop) 394 if (_inLoop)
395 { 395 {
396 _inLoop = false; 396 _inLoop = false;
397 qApp->exit_loop(); 397 qApp->exit_loop();
398 398
399 } 399 }
400 400
401} 401}
402 402
403void ViewMail::exec() 403void ViewMail::exec()
404{ 404{
405 show(); 405 show();
406 406
407 if (!_inLoop) 407 if (!_inLoop)
408 { 408 {
409 _inLoop = true; 409 _inLoop = true;
410 qApp->enter_loop(); 410 qApp->enter_loop();
411 } 411 }
412 412
413} 413}
414 414
415QString ViewMail::deHtml(const QString &string) 415QString ViewMail::deHtml(const QString &string)
416{ 416{
417 QString string_ = string; 417 QString string_ = string;
418 string_.replace(QRegExp("&"), "&amp;"); 418 string_.replace(QRegExp("&"), "&amp;");
419 string_.replace(QRegExp("<"), "&lt;"); 419 string_.replace(QRegExp("<"), "&lt;");
420 string_.replace(QRegExp(">"), "&gt;"); 420 string_.replace(QRegExp(">"), "&gt;");
421 string_.replace(QRegExp("\\n"), "<br>"); 421 string_.replace(QRegExp("\\n"), "<br>");
422 return string_; 422 return string_;
423} 423}
424 424
425void ViewMail::slotReply() 425void ViewMail::slotReply()
426{ 426{
427 if (!m_gotBody) 427 if (!m_gotBody)
428 { 428 {
429 QMessageBox::information(this, i18n("Error"), i18n("<p>The mail body is not yet downloaded, so you cannot reply yet."), i18n("Ok")); 429 QMessageBox::information(this, i18n("Error"), i18n("<p>The mail body is not yet downloaded, so you cannot reply yet."), i18n("Ok"));
430 return; 430 return;
431 } 431 }
432 432
433 QString rtext; 433 QString rtext;
434 rtext += QString("* %1 wrote on %2:\n") // no i18n on purpose 434 rtext += QString("* %1 wrote on %2:\n") // no i18n on purpose
435 .arg( m_mail[0] ) 435 .arg( m_mail[0] )
436 .arg( m_mail[3] ); 436 .arg( m_mail[3] );
437 437
438 QString text = m_mail[2]; 438 QString text = m_mail[2];
439 QStringList lines = QStringList::split(QRegExp("\\n"), text); 439 QStringList lines = QStringList::split(QRegExp("\\n"), text);
440 QStringList::Iterator it; 440 QStringList::Iterator it;
441 for (it = lines.begin(); it != lines.end(); it++) 441 for (it = lines.begin(); it != lines.end(); it++)
442 { 442 {
443 rtext += "> " + *it + "\n"; 443 rtext += "> " + *it + "\n";
444 } 444 }
445 rtext += "\n"; 445 rtext += "\n";
446 446
447 QString prefix; 447 QString prefix;
448 if ( m_mail[1].find(QRegExp("^Re: .*$")) != -1) prefix = ""; 448 if ( m_mail[1].find(QRegExp("^Re: .*$")) != -1) prefix = "";
449 else prefix = "Re: "; // no i18n on purpose 449 else prefix = "Re: "; // no i18n on purpose
450 450
451 Settings *settings = new Settings(); 451 Settings *settings = new Settings();
452 ComposeMail composer( settings ,this, 0, true); 452 ComposeMail composer( settings ,this, 0, true);
453 if (m_recMail->Replyto().isEmpty()) { 453 if (m_recMail->Replyto().isEmpty()) {
454 composer.setTo(m_recMail->getFrom()); 454 composer.setTo(m_recMail->getFrom());
455 } else { 455 } else {
456 composer.setTo(m_recMail->Replyto()); 456 composer.setTo(m_recMail->Replyto());
457 } 457 }
458 composer.setSubject( prefix + m_mail[1] ); 458 composer.setSubject( prefix + m_mail[1] );
459 composer.setMessage( rtext ); 459 composer.setMessage( rtext );
460 composer.setInReplyTo(m_recMail->Msgid()); 460 composer.setInReplyTo(m_recMail->Msgid());
461 composer.setCharset( m_body->getCharset() ); 461 composer.setCharset( m_body->getCharset() );
462 462
463 if ( QDialog::Accepted == KApplication::execDialog( &composer ) ) 463 if ( QDialog::Accepted == KApplication::execDialog( &composer ) )
464 { 464 {
465 m_recMail->Wrapper()->answeredMail(m_recMail); 465 m_recMail->Wrapper()->answeredMail(m_recMail);
466 } 466 }
467 delete settings; 467 delete settings;
468} 468}
469 469
470void ViewMail::slotForward() 470void ViewMail::slotForward()
471{ 471{
472 if (!m_gotBody) 472 if (!m_gotBody)
473 { 473 {
474 QMessageBox::information(this, i18n("Error"), i18n("<p>The mail body is not yet downloaded, so you cannot forward yet."), i18n("Ok")); 474 QMessageBox::information(this, i18n("Error"), i18n("<p>The mail body is not yet downloaded, so you cannot forward yet."), i18n("Ok"));
475 return; 475 return;
476 } 476 }
477 477
478 QString ftext; 478 QString ftext;
479 ftext += QString("\n----- Forwarded message from %1 -----\n\n") 479 ftext += QString("\n----- Forwarded message from %1 -----\n\n")
480 .arg( m_mail[0] ); 480 .arg( m_mail[0] );
481 if (!m_mail[3].isNull()) 481 if (!m_mail[3].isNull())
482 ftext += QString("Date: %1\n") 482 ftext += QString("Date: %1\n")
483 .arg( m_mail[3] ); 483 .arg( m_mail[3] );
484 if (!m_mail[0].isNull()) 484 if (!m_mail[0].isNull())
485 ftext += QString("From: %1\n") 485 ftext += QString("From: %1\n")
486 .arg( m_mail[0] ); 486 .arg( m_mail[0] );
487 if (!m_mail[1].isNull()) 487 if (!m_mail[1].isNull())
488 ftext += QString("Subject: %1\n") 488 ftext += QString("Subject: %1\n")
489 .arg( m_mail[1] ); 489 .arg( m_mail[1] );
490 490
491 ftext += QString("\n%1\n") 491 ftext += QString("\n%1\n")
492 .arg( m_mail[2]); 492 .arg( m_mail[2]);
493 493
494 ftext += QString("----- End forwarded message -----\n"); 494 ftext += QString("----- End forwarded message -----\n");
495 495
496 Settings *settings = new Settings(); 496 Settings *settings = new Settings();
497 ComposeMail composer( settings ,this, 0, true); 497 ComposeMail composer( settings ,this, 0, true);
498 composer.setSubject( "Fwd: " + m_mail[1] ); 498 composer.setSubject( "Fwd: " + m_mail[1] );
499 composer.setMessage( ftext ); 499 composer.setMessage( ftext );
500 if ( QDialog::Accepted == KApplication::execDialog( &composer )) 500 if ( QDialog::Accepted == KApplication::execDialog( &composer ))
501 { 501 {
502 } 502 }
503} 503}
504 504
505void ViewMail::slotDeleteMail( ) 505void ViewMail::slotDeleteMail( )
506{ 506{
507 if ( QMessageBox::warning(this, i18n("Delete Mail"), QString( i18n("<p>Do you really want to delete this mail? <br><br>" ) + m_mail[0] + " - " + m_mail[1] ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes ) 507 if ( QMessageBox::warning(this, i18n("Delete Mail"), QString( i18n("<p>Do you really want to delete this mail? <br><br>" ) + m_mail[0] + " - " + m_mail[1] ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes )
508 { 508 {
509 m_recMail->Wrapper()->deleteMail( m_recMail ); 509 emit deleteAndDisplayNextMail( this);
510 hide(); 510 //m_recMail->Wrapper()->deleteMail( m_recMail );
511 //hide();
511 deleted = true; 512 deleted = true;
512 } 513 }
513} 514}
514 515
515MailImageDlg::MailImageDlg(const QString&fname,QWidget *parent, const char *name, bool modal, WFlags f) 516MailImageDlg::MailImageDlg(const QString&fname,QWidget *parent, const char *name, bool modal, WFlags f)
516 : QDialog(parent,name,modal) 517 : QDialog(parent,name,modal)
517{ 518{
518 QVBoxLayout*dlglayout = new QVBoxLayout(this); 519 QVBoxLayout*dlglayout = new QVBoxLayout(this);
519 dlglayout->setSpacing(2); 520 dlglayout->setSpacing(2);
520 dlglayout->setMargin(1); 521 dlglayout->setMargin(1);
521 //m_imageview = new Opie::MM::OImageScrollView(this); 522 //m_imageview = new Opie::MM::OImageScrollView(this);
522 //dlglayout->addWidget(m_imageview); 523 //dlglayout->addWidget(m_imageview);
523} 524}
524 525
525MailImageDlg::~MailImageDlg() 526MailImageDlg::~MailImageDlg()
526{ 527{
527} 528}
528 529
529void MailImageDlg::setName(const QString&fname) 530void MailImageDlg::setName(const QString&fname)
530{ 531{
531 qDebug("viewmail.cpp: MailImageDlg::setName Pending"); 532 qDebug("viewmail.cpp: MailImageDlg::setName Pending");
532 // m_imageview->setImage(fname); 533 // m_imageview->setImage(fname);
533} 534}