summaryrefslogtreecommitdiff
path: root/noncore/net/mail/viewmail.cpp
Side-by-side diff
Diffstat (limited to 'noncore/net/mail/viewmail.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/net/mail/viewmail.cpp37
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 )
{