Diffstat (limited to 'noncore/net/mail/viewmail.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/net/mail/viewmail.cpp | 37 |
1 files changed, 31 insertions, 6 deletions
diff --git a/noncore/net/mail/viewmail.cpp b/noncore/net/mail/viewmail.cpp index a64a168..5206220 100644 --- a/noncore/net/mail/viewmail.cpp +++ b/noncore/net/mail/viewmail.cpp @@ -197,5 +197,5 @@ void ViewMail::slotShowHtml( bool state ) { m_showHtml = state; - setText(); + setMainText(); } @@ -207,5 +207,5 @@ void ViewMail::slotItemClicked( QListViewItem * item , const QPoint & point, int if ( ( ( AttachItem* )item )->Partnumber() == -1 ) { - setText(); + setMainText(); return; } @@ -251,4 +251,13 @@ void ViewMail::slotItemClicked( QListViewItem * item , const QPoint & point, int case 2: { + if (m_lastimagepart== (( AttachItem* )item )->Partnumber()) { + if (m_lastdlg) { + setUpdatesEnabled(false); + browser->hide(); + m_lastdlg->show(); + setUpdatesEnabled(true); + return; + } + } QString tmpfile = QString("/tmp/opiemail-image-%1").arg(_icounter++); encodedString*content = m_recMail->Wrapper()->fetchDecodedPart( m_recMail, m_body->Parts()[ ( ( AttachItem* )item )->Partnumber() ] ); @@ -277,4 +286,5 @@ void ViewMail::slotItemClicked( QListViewItem * item , const QPoint & point, int QMessageBox::critical(this, tr("Reading attachment"), tr("Could not read content of attachment")); } + m_lastimagepart=(( AttachItem* )item )->Partnumber(); } break; @@ -282,5 +292,5 @@ void ViewMail::slotItemClicked( QListViewItem * item , const QPoint & point, int if ( ( ( AttachItem* )item )->Partnumber() == -1 ) { - setText(); + setMainText(); } else @@ -288,5 +298,15 @@ void ViewMail::slotItemClicked( QListViewItem * item , const QPoint & point, int if ( m_recMail->Wrapper() != 0l ) { // make sure that there is a wrapper , even after delete or simular actions - browser->setText( m_recMail->Wrapper()->fetchTextPart( m_recMail, m_body->Parts()[ ( ( AttachItem* )item )->Partnumber() ] ) ); + if (m_lastdlg) { + m_lastdlg->hide(); + browser->show(); + } + if (m_lasttextpart == ( ( AttachItem* )item )->Partnumber() ) return; + m_lasttextpart = ( ( AttachItem* )item )->Partnumber(); + QString s = m_recMail->Wrapper()->fetchTextPart( m_recMail, m_body->Parts()[ ( ( AttachItem* )item )->Partnumber() ] );; + if (item->text(0).right(4)!="html") { + s = QString("<html><body>\n<font face=fixed>%1</font></body></html>").arg(QStyleSheet::convertFromPlainText(s)); + } + browser->setText(s); } } @@ -312,5 +332,5 @@ void ViewMail::setMail(const RecMailP&mail ) setCaption(tr("E-Mail by %1").arg( m_mail[0] ) ); - setText(); + setMainText(); } @@ -333,4 +353,6 @@ ViewMail::ViewMail( QWidget *parent, const char *name, WFlags fl) m_lastdlg = 0; _icounter = 0; + m_lastimagepart = -1; + m_lasttextpart = -2; readConfig(); @@ -349,4 +371,5 @@ void ViewMail::slotImageInline(bool how) delete m_lastdlg; m_lastdlg = 0; + m_lastimagepart = -1; } } @@ -362,5 +385,5 @@ void ViewMail::readConfig() } -void ViewMail::setText() +void ViewMail::setMainText() { QString toString; @@ -373,4 +396,6 @@ void ViewMail::setText() } browser->show(); + if (m_lasttextpart == -1) return; + m_lasttextpart = -1; for ( QStringList::Iterator it = ( m_mail2[0] ).begin(); it != ( m_mail2[0] ).end(); ++it ) { |