summaryrefslogtreecommitdiff
path: root/noncore/net/mail
Unidiff
Diffstat (limited to 'noncore/net/mail') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/mainwindow.cpp5
-rw-r--r--noncore/net/mail/viewmail.cpp95
-rw-r--r--noncore/net/mail/viewmail.h27
3 files changed, 43 insertions, 84 deletions
diff --git a/noncore/net/mail/mainwindow.cpp b/noncore/net/mail/mainwindow.cpp
index 6d13a8b..1d6e901 100644
--- a/noncore/net/mail/mainwindow.cpp
+++ b/noncore/net/mail/mainwindow.cpp
@@ -148,19 +148,18 @@ void MainWindow::refreshMailView(QList<RecMail>*list)
148 item->showEntry(); 148 item->showEntry();
149 } 149 }
150} 150}
151void MainWindow::displayMail(QListViewItem*item) 151void MainWindow::displayMail(QListViewItem*item)
152{ 152{
153 if (!item) return; 153 if (!item) return;
154 qDebug("View mail");
155 RecMail mail = ((MailListViewItem*)item)->data(); 154 RecMail mail = ((MailListViewItem*)item)->data();
156 RecBody body = folderView->fetchBody(mail); 155 RecBody body = folderView->fetchBody(mail);
157 156
158 ViewMail readMail( this ); 157 ViewMail readMail( this );
159 158 readMail.setBody( body );
160 readMail.setMailInfo( mail.getFrom(), mail.To(), mail.getSubject(), mail.CC(), mail.Bcc(), mail.getDate(), body.Bodytext(), mail.Msgid() ); 159 readMail.setMail( mail );
161 readMail.showMaximized(); 160 readMail.showMaximized();
162 readMail.exec(); 161 readMail.exec();
163} 162}
164 163
165MailListViewItem::MailListViewItem(QListView * parent, MailListViewItem * after ) 164MailListViewItem::MailListViewItem(QListView * parent, MailListViewItem * after )
166 :QListViewItem(parent,after),mail_data() 165 :QListViewItem(parent,after),mail_data()
diff --git a/noncore/net/mail/viewmail.cpp b/noncore/net/mail/viewmail.cpp
index 7969235..7b8494d 100644
--- a/noncore/net/mail/viewmail.cpp
+++ b/noncore/net/mail/viewmail.cpp
@@ -20,39 +20,44 @@ AttachItem::AttachItem(QListViewItem *parent, AttachItemStore &attachItemStore)
20{ 20{
21 setText(0, _attachItemStore.mimeType()); 21 setText(0, _attachItemStore.mimeType());
22 setText(1, _attachItemStore.fileName()); 22 setText(1, _attachItemStore.fileName());
23 setText(2, _attachItemStore.description()); 23 setText(2, _attachItemStore.description());
24} 24}
25 25
26void ViewMail::setMailInfo( const QString & from, const QStringList & to, const QString & subject, const QStringList & cc, const QStringList & bcc, const QString & date, const QString & bodytext, const QString & messageID ) {
27 26
28m_mail[0] = from; 27void ViewMail::setBody( RecBody body ) {
29m_mail2[0] = to; 28
30m_mail[1] = subject; 29m_mail[2] = body.Bodytext();
31m_mail2[1] = cc; 30
32m_mail2[2] = bcc; 31}
33m_mail[2] = bodytext; 32
34m_mail[3] = date; 33void ViewMail::setMail( RecMail mail ) {
35m_mail[4] = messageID; 34
35m_mail[0] = mail.getFrom();
36m_mail[1] = mail.getSubject();
37m_mail[3] = mail.getDate();
38m_mail[4] = mail.Msgid();
39
40m_mail2[0] = mail.To();
41m_mail2[1] = mail.CC();
42m_mail2[2] = mail.Bcc();
36 43
37setText(); 44setText();
38} 45}
39 46
40 47
48
41ViewMail::ViewMail( QWidget *parent, const char *name, WFlags fl) 49ViewMail::ViewMail( QWidget *parent, const char *name, WFlags fl)
42 : ViewMailBase(parent, name, fl), _inLoop(false) 50 : ViewMailBase(parent, name, fl), _inLoop(false)
43{ 51{
44 _gotBody = false; 52 m_gotBody = false;
45 53
46 connect(reply, SIGNAL(activated()), SLOT(slotReply())); 54 connect(reply, SIGNAL(activated()), SLOT(slotReply()));
47 connect(forward, SIGNAL(activated()), SLOT(slotForward())); 55 connect(forward, SIGNAL(activated()), SLOT(slotForward()));
48 56
49 attachments->setEnabled(_gotBody); 57 attachments->setEnabled(m_gotBody);
50
51 //_handler->iUid("FETCH", QString("%1 (BODY[1])").arg(mail.uid()));
52 //connect(_handler, SIGNAL(gotResponse(IMAPResponse &)), SLOT(slotIMAPUid(IMAPResponse &)));
53} 58}
54 59
55void ViewMail::setText() 60void ViewMail::setText()
56{ 61{
57 62
58 QString toString; 63 QString toString;
@@ -68,32 +73,28 @@ void ViewMail::setText()
68 for ( QStringList::Iterator it = ( m_mail2[2] ).begin(); it != ( m_mail2[2] ).end(); ++it ) { 73 for ( QStringList::Iterator it = ( m_mail2[2] ).begin(); it != ( m_mail2[2] ).end(); ++it ) {
69 bccString += (*it); 74 bccString += (*it);
70 } 75 }
71 76
72 setCaption( caption().arg( m_mail[0] ) ); 77 setCaption( caption().arg( m_mail[0] ) );
73 78
74 _mailHtml = tr( 79 m_mailHtml = "<html><body>"
75 "<html><body>" 80 "<table width=\"100%\" border=\"0\"><tr bgcolor=\"#FFDD76\"><td>"
76 "<div align=center><b><font color=#0000FF>%1</b></font></div>" 81 "<div align=left><b>" + deHtml( m_mail[1] ) + "</b></div>"
77 "<b>From:</b><font color=#6C86C0> %2</font><br>" 82 "</td></tr><tr bgcolor=\"#EEEEE6\"><td>"
78 "<b>To:</b><font color=#6C86C0> %3</font><br>" 83 "<b>" + tr( "From" ) + ": </b><font color=#6C86C0>" + deHtml( m_mail[0] ) + "</font><br>"
79 "%4" 84 "<b>" + tr( "To" ) + ": </b><font color=#6C86C0>" + deHtml( toString ) + "</font><br><b>" +
80 "<b>Date:</b> %5<hr>" 85 tr( "Cc" ) + ": </b>" + deHtml( ccString ) + "<br>"
81 "<font face=fixed>") 86 "<b>" + tr( "Date" ) + ": </b> " + m_mail[3] +
82 .arg( deHtml( m_mail[1] ) ) 87 "</td></tr></table><font face=fixed>";
83 .arg( deHtml( m_mail[0] ) ) 88
84 .arg( deHtml( toString ) ) 89 browser->setText( QString( m_mailHtml) + deHtml( m_mail[2] ) + "</font></html>" );
85 .arg( tr("<b>Cc:</b> %1<br>").arg( deHtml( ccString ) ) )
86 .arg( m_mail[3] );
87 browser->setText( QString(_mailHtml) + deHtml( m_mail[2] ) + "</font>" );
88 // remove later in favor of a real handling 90 // remove later in favor of a real handling
89 _gotBody = true; 91 m_gotBody = true;
90} 92}
91 93
92 94
93
94ViewMail::~ViewMail() 95ViewMail::~ViewMail()
95{ 96{
96 hide(); 97 hide();
97} 98}
98 99
99void ViewMail::hide() 100void ViewMail::hide()
@@ -125,13 +126,13 @@ QString ViewMail::deHtml(const QString &string)
125 string_.replace(QRegExp("\\n"), "<br>"); 126 string_.replace(QRegExp("\\n"), "<br>");
126 return string_; 127 return string_;
127} 128}
128 129
129void ViewMail::slotReply() 130void ViewMail::slotReply()
130{ 131{
131 if (!_gotBody) { 132 if (!m_gotBody) {
132 QMessageBox::information(this, tr("Error"), tr("<p>The mail body is not yet downloaded, so you cannot reply yet."), tr("Ok")); 133 QMessageBox::information(this, tr("Error"), tr("<p>The mail body is not yet downloaded, so you cannot reply yet."), tr("Ok"));
133 return; 134 return;
134 } 135 }
135 136
136 QString rtext; 137 QString rtext;
137 rtext += QString("* %1 wrote on %2:\n") // no i18n on purpose 138 rtext += QString("* %1 wrote on %2:\n") // no i18n on purpose
@@ -155,18 +156,17 @@ void ViewMail::slotReply()
155 composer.setTo( m_mail[0] ); 156 composer.setTo( m_mail[0] );
156 composer.setSubject( "Re: " + m_mail[1] ); 157 composer.setSubject( "Re: " + m_mail[1] );
157 composer.setMessage( rtext ); 158 composer.setMessage( rtext );
158 composer.showMaximized(); 159 composer.showMaximized();
159 composer.exec(); 160 composer.exec();
160 161
161 qDebug ( rtext );
162} 162}
163 163
164void ViewMail::slotForward() 164void ViewMail::slotForward()
165{ 165{
166 if (!_gotBody) { 166 if (!m_gotBody) {
167 QMessageBox::information(this, tr("Error"), tr("<p>The mail body is not yet downloaded, so you cannot forward yet."), tr("Ok")); 167 QMessageBox::information(this, tr("Error"), tr("<p>The mail body is not yet downloaded, so you cannot forward yet."), tr("Ok"));
168 return; 168 return;
169 } 169 }
170 170
171 QString ftext; 171 QString ftext;
172 ftext += QString("\n----- Forwarded message from %1 -----\n\n") 172 ftext += QString("\n----- Forwarded message from %1 -----\n\n")
@@ -174,52 +174,23 @@ void ViewMail::slotForward()
174 if (!m_mail[3].isNull()) 174 if (!m_mail[3].isNull())
175 ftext += QString("Date: %1\n") 175 ftext += QString("Date: %1\n")
176 .arg( m_mail[3] ); 176 .arg( m_mail[3] );
177 if (!m_mail[0].isNull()) 177 if (!m_mail[0].isNull())
178 ftext += QString("From: %1\n") 178 ftext += QString("From: %1\n")
179 .arg( m_mail[0] ); 179 .arg( m_mail[0] );
180 //if (!_mail.envelope().to().toString().isNull())
181 //ftext += QString("To: %1\n")
182 // .arg(_mail.envelope().to().toString());
183 //if (!_mail.envelope().cc().toString().isNull())
184 //ftext += QString("Cc: %1\n")
185 // .arg(_mail.envelope().cc().toString());
186 if (!m_mail[1].isNull()) 180 if (!m_mail[1].isNull())
187 ftext += QString("Subject: %1\n") 181 ftext += QString("Subject: %1\n")
188 .arg( m_mail[1] ); 182 .arg( m_mail[1] );
189 183
190 ftext += QString("\n%1\n") 184 ftext += QString("\n%1\n")
191 .arg( m_mail[2]); 185 .arg( m_mail[2]);
192 186
193 ftext += QString("----- End forwarded message -----\n"); 187 ftext += QString("----- End forwarded message -----\n");
194 188
195 qDebug( ftext );
196
197
198 Settings *settings = new Settings(); 189 Settings *settings = new Settings();
199 ComposeMail composer( settings ,this, 0, true); 190 ComposeMail composer( settings ,this, 0, true);
200 composer.setSubject( "Fwd: " + m_mail[1] ); 191 composer.setSubject( "Fwd: " + m_mail[1] );
201 composer.setMessage( ftext ); 192 composer.setMessage( ftext );
202 composer.showMaximized(); 193 composer.showMaximized();
203 composer.exec(); 194 composer.exec();
204} 195}
205 196
206/*
207void ViewMail::slotIMAPUid(IMAPResponse &response)
208{
209 disconnect(_handler, SIGNAL(gotResponse(IMAPResponse &)), this, SLOT(slotIMAPUid(IMAPResponse &)));
210
211 if (response.statusResponse().status() == IMAPResponseEnums::OK) {
212 QValueList<IMAPResponseBodyPart> bodyParts;
213 bodyParts.append(response.FETCH()[0].bodyPart(0));
214 _mail.setBodyParts(bodyParts);
215
216 browser->setText(QString(_mailHtml).arg(deHtml(response.FETCH()[0].bodyPart(0).data())));
217
218 // fillList(response.FETCH()[0].bodyStructure());
219
220 _gotBody = true;
221 } else {
222 QMessageBox::warning(this, tr("Error"), tr("<p>I was unable to retrieve the mail from the server. You can try again later or give up.</p>"), tr("Ok"));
223 }
224}
225*/
diff --git a/noncore/net/mail/viewmail.h b/noncore/net/mail/viewmail.h
index 258c09b..61baa1d 100644
--- a/noncore/net/mail/viewmail.h
+++ b/noncore/net/mail/viewmail.h
@@ -3,14 +3,13 @@
3 3
4#include <qlistview.h> 4#include <qlistview.h>
5#include <qmap.h> 5#include <qmap.h>
6#include <qstringlist.h> 6#include <qstringlist.h>
7 7
8#include "viewmailbase.h" 8#include "viewmailbase.h"
9//#include "imapresponse.h" 9#include "mailtypes.h"
10//#include "mailtable.h"
11 10
12class AttachItemStore 11class AttachItemStore
13{ 12{
14public: 13public:
15 void setMimeType(QString mimeType) { _mimeType = mimeType; } 14 void setMimeType(QString mimeType) { _mimeType = mimeType; }
16 QString mimeType() { return _mimeType; } 15 QString mimeType() { return _mimeType; }
@@ -46,40 +45,30 @@ class ViewMail : public ViewMailBase
46public: 45public:
47 ViewMail( QWidget *parent = 0, const char *name = 0, WFlags fl = Qt::WType_Modal); 46 ViewMail( QWidget *parent = 0, const char *name = 0, WFlags fl = Qt::WType_Modal);
48 ~ViewMail(); 47 ~ViewMail();
49 48
50 void hide(); 49 void hide();
51 void exec(); 50 void exec();
52 static QString appName() { return QString::fromLatin1("mail"); } 51 void setMail( RecMail mail );
53 void setMailInfo( const QString & from, const QStringList & to, const QString & subject, const QStringList & cc, const QStringList & bcc,const QString & date, const QString & bodytext, const QString & messageID ); 52 void setBody( RecBody body );
54 53
55protected: 54protected:
56 //void fillList(IMAPResponseBODYSTRUCTURE &structure);
57 QString deHtml(const QString &string); 55 QString deHtml(const QString &string);
58 56
59protected slots: 57protected slots:
60 void slotReply(); 58 void slotReply();
61 void slotForward(); 59 void slotForward();
62 void setText(); 60 void setText();
63 61
64 //void slotIMAPUid(IMAPResponse &response);
65
66private: 62private:
67 bool _inLoop; 63 bool _inLoop;
68 //IMAPResponseFETCH _mail; 64 QString m_mailHtml;
69 //IMAPHandler *_handler; 65 bool m_gotBody;
70 QString _mailHtml; 66
71 bool _gotBody; 67 // 0 from 1 subject 2 bodytext 3 date
72
73 // 0 from
74 // 1 subject
75 // 2 bodytext
76 // 3 date
77 QMap <int,QString> m_mail; 68 QMap <int,QString> m_mail;
78 // 0 to 69 // 0 to 1 cc 2 bcc
79 // 1 cc
80 // 2 bcc
81 QMap <int,QStringList> m_mail2; 70 QMap <int,QStringList> m_mail2;
82 71
83}; 72};
84 73
85#endif 74#endif