author | alwin <alwin> | 2004-10-28 02:12:12 (UTC) |
---|---|---|
committer | alwin <alwin> | 2004-10-28 02:12:12 (UTC) |
commit | 6205e982ec6d9ab1893919cd9c943c95b4baae33 (patch) (unidiff) | |
tree | 7f5eeab32ad333e441956ce3bccf313609a54b83 /noncore/net | |
parent | beaee4a305e89b27f0482047daf06919fdd9d732 (diff) | |
download | opie-6205e982ec6d9ab1893919cd9c943c95b4baae33.zip opie-6205e982ec6d9ab1893919cd9c943c95b4baae33.tar.gz opie-6205e982ec6d9ab1893919cd9c943c95b4baae33.tar.bz2 |
fixed some problems when displaying mails
but it should reworked cause sometimes there are problems with html
mails.
-rw-r--r-- | noncore/net/mail/viewmail.cpp | 28 | ||||
-rw-r--r-- | noncore/net/mail/viewmail.h | 1 | ||||
-rw-r--r-- | noncore/net/mail/viewmailbase.cpp | 3 | ||||
-rw-r--r-- | noncore/net/mail/viewmailbase.h | 2 |
4 files changed, 16 insertions, 18 deletions
diff --git a/noncore/net/mail/viewmail.cpp b/noncore/net/mail/viewmail.cpp index d5f9b7f..d2f1584 100644 --- a/noncore/net/mail/viewmail.cpp +++ b/noncore/net/mail/viewmail.cpp | |||
@@ -11,24 +11,25 @@ | |||
11 | #include <opie2/oimagescrollview.h> | 11 | #include <opie2/oimagescrollview.h> |
12 | #include <qpe/config.h> | 12 | #include <qpe/config.h> |
13 | #include <qpe/qpeapplication.h> | 13 | #include <qpe/qpeapplication.h> |
14 | 14 | ||
15 | /* QT */ | 15 | /* QT */ |
16 | #include <qtextbrowser.h> | 16 | #include <qtextbrowser.h> |
17 | #include <qmessagebox.h> | 17 | #include <qmessagebox.h> |
18 | #include <qtextstream.h> | 18 | #include <qtextstream.h> |
19 | #include <qaction.h> | 19 | #include <qaction.h> |
20 | #include <qpopupmenu.h> | 20 | #include <qpopupmenu.h> |
21 | #include <qfile.h> | 21 | #include <qfile.h> |
22 | #include <qlayout.h> | 22 | #include <qlayout.h> |
23 | #include <qstylesheet.h> | ||
23 | 24 | ||
24 | using namespace Opie::Ui; | 25 | using namespace Opie::Ui; |
25 | using namespace Opie::Core; | 26 | using namespace Opie::Core; |
26 | 27 | ||
27 | AttachItem::AttachItem(QListView * parent,QListViewItem *after, const QString&mime,const QString&desc,const QString&file, | 28 | AttachItem::AttachItem(QListView * parent,QListViewItem *after, const QString&mime,const QString&desc,const QString&file, |
28 | const QString&fsize,int num,const QValueList<int>&path) | 29 | const QString&fsize,int num,const QValueList<int>&path) |
29 | : QListViewItem(parent,after),_partNum(num) | 30 | : QListViewItem(parent,after),_partNum(num) |
30 | { | 31 | { |
31 | _path=path; | 32 | _path=path; |
32 | setText(0, mime); | 33 | setText(0, mime); |
33 | setText(1, desc); | 34 | setText(1, desc); |
34 | setText(2, file); | 35 | setText(2, file); |
@@ -287,24 +288,25 @@ void ViewMail::setMail(const RecMailP&mail ) | |||
287 | 288 | ||
288 | m_recMail = mail; | 289 | m_recMail = mail; |
289 | 290 | ||
290 | m_mail[0] = mail->getFrom(); | 291 | m_mail[0] = mail->getFrom(); |
291 | m_mail[1] = mail->getSubject(); | 292 | m_mail[1] = mail->getSubject(); |
292 | m_mail[3] = mail->getStringDate(); | 293 | m_mail[3] = mail->getStringDate(); |
293 | m_mail[4] = mail->Msgid(); | 294 | m_mail[4] = mail->Msgid(); |
294 | 295 | ||
295 | m_mail2[0] = mail->To(); | 296 | m_mail2[0] = mail->To(); |
296 | m_mail2[1] = mail->CC(); | 297 | m_mail2[1] = mail->CC(); |
297 | m_mail2[2] = mail->Bcc(); | 298 | m_mail2[2] = mail->Bcc(); |
298 | 299 | ||
300 | setCaption(tr("E-Mail by %1").arg( m_mail[0] ) ); | ||
299 | setText(); | 301 | setText(); |
300 | } | 302 | } |
301 | 303 | ||
302 | 304 | ||
303 | 305 | ||
304 | ViewMail::ViewMail( QWidget *parent, const char *name, WFlags fl) | 306 | ViewMail::ViewMail( QWidget *parent, const char *name, WFlags fl) |
305 | : ViewMailBase(parent, name, fl), _inLoop(false) | 307 | : ViewMailBase(parent, name, fl), _inLoop(false) |
306 | { | 308 | { |
307 | m_gotBody = false; | 309 | m_gotBody = false; |
308 | deleted = false; | 310 | deleted = false; |
309 | 311 | ||
310 | connect( reply, SIGNAL(activated()), SLOT(slotReply())); | 312 | connect( reply, SIGNAL(activated()), SLOT(slotReply())); |
@@ -320,61 +322,55 @@ ViewMail::ViewMail( QWidget *parent, const char *name, WFlags fl) | |||
320 | } | 322 | } |
321 | 323 | ||
322 | void ViewMail::readConfig() | 324 | void ViewMail::readConfig() |
323 | { | 325 | { |
324 | Config cfg( "mail" ); | 326 | Config cfg( "mail" ); |
325 | cfg.setGroup( "Settings" ); | 327 | cfg.setGroup( "Settings" ); |
326 | m_showHtml = cfg.readBoolEntry( "showHtml", false ); | 328 | m_showHtml = cfg.readBoolEntry( "showHtml", false ); |
327 | showHtml->setOn( m_showHtml ); | 329 | showHtml->setOn( m_showHtml ); |
328 | } | 330 | } |
329 | 331 | ||
330 | void ViewMail::setText() | 332 | void ViewMail::setText() |
331 | { | 333 | { |
332 | |||
333 | QString toString; | 334 | QString toString; |
334 | QString ccString; | 335 | QString ccString; |
335 | QString bccString; | 336 | QString bccString; |
337 | QString mailHtml; | ||
336 | 338 | ||
337 | for ( QStringList::Iterator it = ( m_mail2[0] ).begin(); it != ( m_mail2[0] ).end(); ++it ) | 339 | for ( QStringList::Iterator it = ( m_mail2[0] ).begin(); it != ( m_mail2[0] ).end(); ++it ) |
338 | { | 340 | { |
339 | toString += (*it); | 341 | toString += (*it); |
340 | } | 342 | } |
341 | for ( QStringList::Iterator it = ( m_mail2[1] ).begin(); it != ( m_mail2[1] ).end(); ++it ) | 343 | for ( QStringList::Iterator it = ( m_mail2[1] ).begin(); it != ( m_mail2[1] ).end(); ++it ) |
342 | { | 344 | { |
343 | ccString += (*it); | 345 | ccString += (*it); |
344 | } | 346 | } |
345 | for ( QStringList::Iterator it = ( m_mail2[2] ).begin(); it != ( m_mail2[2] ).end(); ++it ) | 347 | for ( QStringList::Iterator it = ( m_mail2[2] ).begin(); it != ( m_mail2[2] ).end(); ++it ) |
346 | { | 348 | { |
347 | bccString += (*it); | 349 | bccString += (*it); |
348 | } | 350 | } |
349 | 351 | browser->setTextFormat(Qt::RichText); | |
350 | setCaption( caption().arg( m_mail[0] ) ); | 352 | mailHtml = "<html><body>" |
351 | |||
352 | m_mailHtml = "<html><body>" | ||
353 | "<table width=\"100%\" border=\"0\"><tr bgcolor=\"#FFDD76\"><td>" | 353 | "<table width=\"100%\" border=\"0\"><tr bgcolor=\"#FFDD76\"><td>" |
354 | "<div align=left><b>" + deHtml( m_mail[1] ) + "</b></div>" | 354 | "<div align=left><b>" + deHtml( m_mail[1] ) + "</b></div>" |
355 | "</td></tr><tr bgcolor=\"#EEEEE6\"><td>" | 355 | "</td></tr><tr bgcolor=\"#EEEEE6\"><td>" |
356 | "<b>" + tr( "From" ) + ": </b><font color=#6C86C0>" + deHtml( m_mail[0] ) + "</font><br>" | 356 | "<b>" + tr( "From" ) + ": </b><font color=#6C86C0>" + deHtml( m_mail[0] ) + "</font><br>" |
357 | "<b>" + tr( "To" ) + ": </b><font color=#6C86C0>" + deHtml( toString ) + "</font><br><b>" + | 357 | "<b>" + tr( "To" ) + ": </b><font color=#6C86C0>" + deHtml( toString ) + "</font><br><b>" + |
358 | tr( "Cc" ) + ": </b>" + deHtml( ccString ) + "<br>" | 358 | tr( "Cc" ) + ": </b>" + deHtml( ccString ) + "<br>" |
359 | "<b>" + tr( "Date" ) + ": </b> " + m_mail[3] + | 359 | "<b>" + tr( "Date" ) + ": </b> " + m_mail[3] + |
360 | "</td></tr></table><font face=fixed>"; | 360 | "</td></tr></table>"; |
361 | 361 | if ( !m_showHtml ) { | |
362 | if ( !m_showHtml ) | 362 | browser->setText( mailHtml+"<font face=fixed>" + QStyleSheet::convertFromPlainText(m_mail[2]) + "</font></body></html>" ); |
363 | { | 363 | } else { |
364 | browser->setText( QString( m_mailHtml) + deHtml( m_mail[2] ) + "</font></html>" ); | 364 | browser->setText(mailHtml+m_mail[2].simplifyWhiteSpace()+"</html>"); |
365 | } | ||
366 | else | ||
367 | { | ||
368 | browser->setText( QString( m_mailHtml) + m_mail[2] + "</font></html>" ); | ||
369 | } | 365 | } |
370 | // remove later in favor of a real handling | 366 | // remove later in favor of a real handling |
371 | m_gotBody = true; | 367 | m_gotBody = true; |
372 | } | 368 | } |
373 | 369 | ||
374 | 370 | ||
375 | ViewMail::~ViewMail() | 371 | ViewMail::~ViewMail() |
376 | { | 372 | { |
377 | m_recMail->Wrapper()->cleanMimeCache(); | 373 | m_recMail->Wrapper()->cleanMimeCache(); |
378 | hide(); | 374 | hide(); |
379 | } | 375 | } |
380 | 376 | ||
@@ -394,27 +390,27 @@ void ViewMail::hide() | |||
394 | void ViewMail::exec() | 390 | void ViewMail::exec() |
395 | { | 391 | { |
396 | show(); | 392 | show(); |
397 | 393 | ||
398 | if (!_inLoop) | 394 | if (!_inLoop) |
399 | { | 395 | { |
400 | _inLoop = true; | 396 | _inLoop = true; |
401 | qApp->enter_loop(); | 397 | qApp->enter_loop(); |
402 | } | 398 | } |
403 | 399 | ||
404 | } | 400 | } |
405 | 401 | ||
406 | QString ViewMail::deHtml(const QString &string) | 402 | QString ViewMail::deHtml(const QString &aString) |
407 | { | 403 | { |
408 | QString string_ = string; | 404 | QString string_ = aString; |
409 | string_.replace(QRegExp("&"), "&"); | 405 | string_.replace(QRegExp("&"), "&"); |
410 | string_.replace(QRegExp("<"), "<"); | 406 | string_.replace(QRegExp("<"), "<"); |
411 | string_.replace(QRegExp(">"), ">"); | 407 | string_.replace(QRegExp(">"), ">"); |
412 | string_.replace(QRegExp("\\n"), "<br>"); | 408 | string_.replace(QRegExp("\\n"), "<br>"); |
413 | return string_; | 409 | return string_; |
414 | } | 410 | } |
415 | 411 | ||
416 | void ViewMail::slotReply() | 412 | void ViewMail::slotReply() |
417 | { | 413 | { |
418 | if (!m_gotBody) | 414 | if (!m_gotBody) |
419 | { | 415 | { |
420 | QMessageBox::information(this, tr("Error"), tr("<p>The mail body is not yet downloaded, so you cannot reply yet."), tr("Ok")); | 416 | QMessageBox::information(this, tr("Error"), tr("<p>The mail body is not yet downloaded, so you cannot reply yet."), tr("Ok")); |
diff --git a/noncore/net/mail/viewmail.h b/noncore/net/mail/viewmail.h index 297836b..560453a 100644 --- a/noncore/net/mail/viewmail.h +++ b/noncore/net/mail/viewmail.h | |||
@@ -43,24 +43,25 @@ public: | |||
43 | void setBody(const RecBodyP&body); | 43 | void setBody(const RecBodyP&body); |
44 | bool deleted; | 44 | bool deleted; |
45 | 45 | ||
46 | protected: | 46 | protected: |
47 | QString deHtml(const QString &string); | 47 | QString deHtml(const QString &string); |
48 | AttachItem* searchParent(const QValueList<int>&path); | 48 | AttachItem* searchParent(const QValueList<int>&path); |
49 | AttachItem* lastChild(AttachItem*parent); | 49 | AttachItem* lastChild(AttachItem*parent); |
50 | 50 | ||
51 | protected slots: | 51 | protected slots: |
52 | void slotReply(); | 52 | void slotReply(); |
53 | void slotForward(); | 53 | void slotForward(); |
54 | void setText(); | 54 | void setText(); |
55 | void setHeader(); | ||
55 | void slotItemClicked( QListViewItem * item , const QPoint & point, int c ); | 56 | void slotItemClicked( QListViewItem * item , const QPoint & point, int c ); |
56 | void slotDeleteMail( ); | 57 | void slotDeleteMail( ); |
57 | void slotShowHtml( bool ); | 58 | void slotShowHtml( bool ); |
58 | 59 | ||
59 | private: | 60 | private: |
60 | void readConfig(); | 61 | void readConfig(); |
61 | 62 | ||
62 | bool _inLoop; | 63 | bool _inLoop; |
63 | QString m_mailHtml; | 64 | QString m_mailHtml; |
64 | bool m_gotBody; | 65 | bool m_gotBody; |
65 | RecBodyP m_body; | 66 | RecBodyP m_body; |
66 | RecMailP m_recMail; | 67 | RecMailP m_recMail; |
diff --git a/noncore/net/mail/viewmailbase.cpp b/noncore/net/mail/viewmailbase.cpp index cbb98cc..49a0e6a 100644 --- a/noncore/net/mail/viewmailbase.cpp +++ b/noncore/net/mail/viewmailbase.cpp | |||
@@ -5,25 +5,25 @@ | |||
5 | #include <qvbox.h> | 5 | #include <qvbox.h> |
6 | 6 | ||
7 | #include <qtoolbar.h> | 7 | #include <qtoolbar.h> |
8 | #include <qmenubar.h> | 8 | #include <qmenubar.h> |
9 | #include <qpe/resource.h> | 9 | #include <qpe/resource.h> |
10 | 10 | ||
11 | #include "viewmailbase.h" | 11 | #include "viewmailbase.h" |
12 | //#include "opendiag.h" | 12 | //#include "opendiag.h" |
13 | 13 | ||
14 | ViewMailBase::ViewMailBase(QWidget *parent, const char *name, WFlags fl) | 14 | ViewMailBase::ViewMailBase(QWidget *parent, const char *name, WFlags fl) |
15 | : QMainWindow(parent, name, fl) | 15 | : QMainWindow(parent, name, fl) |
16 | { | 16 | { |
17 | setCaption(tr("E-Mail by %1")); | 17 | setCaption(tr("E-Mail view")); |
18 | setToolBarsMovable(false); | 18 | setToolBarsMovable(false); |
19 | 19 | ||
20 | toolbar = new QToolBar(this); | 20 | toolbar = new QToolBar(this); |
21 | menubar = new QMenuBar( toolbar ); | 21 | menubar = new QMenuBar( toolbar ); |
22 | mailmenu = new QPopupMenu( menubar ); | 22 | mailmenu = new QPopupMenu( menubar ); |
23 | menubar->insertItem( tr( "Mail" ), mailmenu ); | 23 | menubar->insertItem( tr( "Mail" ), mailmenu ); |
24 | 24 | ||
25 | toolbar->setHorizontalStretchable(true); | 25 | toolbar->setHorizontalStretchable(true); |
26 | addToolBar(toolbar); | 26 | addToolBar(toolbar); |
27 | 27 | ||
28 | QLabel *spacer = new QLabel(toolbar); | 28 | QLabel *spacer = new QLabel(toolbar); |
29 | spacer->setBackgroundMode(QWidget::PaletteButton); | 29 | spacer->setBackgroundMode(QWidget::PaletteButton); |
@@ -56,24 +56,25 @@ ViewMailBase::ViewMailBase(QWidget *parent, const char *name, WFlags fl) | |||
56 | 56 | ||
57 | attachments = new QListView(view); | 57 | attachments = new QListView(view); |
58 | attachments->setMinimumHeight(90); | 58 | attachments->setMinimumHeight(90); |
59 | attachments->setMaximumHeight(90); | 59 | attachments->setMaximumHeight(90); |
60 | attachments->setAllColumnsShowFocus(true); | 60 | attachments->setAllColumnsShowFocus(true); |
61 | attachments->addColumn("Mime Type", 60); | 61 | attachments->addColumn("Mime Type", 60); |
62 | attachments->addColumn(tr("Description"), 100); | 62 | attachments->addColumn(tr("Description"), 100); |
63 | attachments->addColumn(tr("Filename"), 80); | 63 | attachments->addColumn(tr("Filename"), 80); |
64 | attachments->addColumn(tr("Size"), 80); | 64 | attachments->addColumn(tr("Size"), 80); |
65 | attachments->setSorting(-1); | 65 | attachments->setSorting(-1); |
66 | attachments->hide(); | 66 | attachments->hide(); |
67 | 67 | ||
68 | //header = new QTextBrowser(view); | ||
68 | browser = new QTextBrowser(view); | 69 | browser = new QTextBrowser(view); |
69 | 70 | ||
70 | //openDiag = new OpenDiag(view); | 71 | //openDiag = new OpenDiag(view); |
71 | //openDiag->hide(); | 72 | //openDiag->hide(); |
72 | 73 | ||
73 | } | 74 | } |
74 | 75 | ||
75 | void ViewMailBase::slotChangeAttachview(bool state) | 76 | void ViewMailBase::slotChangeAttachview(bool state) |
76 | { | 77 | { |
77 | if (state) attachments->show(); | 78 | if (state) attachments->show(); |
78 | else attachments->hide(); | 79 | else attachments->hide(); |
79 | } | 80 | } |
diff --git a/noncore/net/mail/viewmailbase.h b/noncore/net/mail/viewmailbase.h index fdaad2a..583b1f6 100644 --- a/noncore/net/mail/viewmailbase.h +++ b/noncore/net/mail/viewmailbase.h | |||
@@ -13,25 +13,25 @@ class QPopupMenu; | |||
13 | 13 | ||
14 | class ViewMailBase : public QMainWindow | 14 | class ViewMailBase : public QMainWindow |
15 | { | 15 | { |
16 | Q_OBJECT | 16 | Q_OBJECT |
17 | 17 | ||
18 | public: | 18 | public: |
19 | ViewMailBase(QWidget *parent = 0, const char *name = 0, WFlags fl = 0); | 19 | ViewMailBase(QWidget *parent = 0, const char *name = 0, WFlags fl = 0); |
20 | 20 | ||
21 | protected: | 21 | protected: |
22 | QAction *reply, *forward, *attachbutton, *deleteMail, *showHtml; | 22 | QAction *reply, *forward, *attachbutton, *deleteMail, *showHtml; |
23 | QListView *attachments; | 23 | QListView *attachments; |
24 | QToolBar *toolbar; | 24 | QToolBar *toolbar; |
25 | QTextBrowser *browser; | 25 | QTextBrowser *browser;//,*header; |
26 | OpenDiag *openDiag; | 26 | OpenDiag *openDiag; |
27 | QMenuBar *menubar; | 27 | QMenuBar *menubar; |
28 | QPopupMenu *mailmenu; | 28 | QPopupMenu *mailmenu; |
29 | 29 | ||
30 | protected slots: | 30 | protected slots: |
31 | void slotChangeAttachview(bool state); | 31 | void slotChangeAttachview(bool state); |
32 | virtual void keyPressEvent ( QKeyEvent * e ); | 32 | virtual void keyPressEvent ( QKeyEvent * e ); |
33 | 33 | ||
34 | 34 | ||
35 | }; | 35 | }; |
36 | 36 | ||
37 | #endif | 37 | #endif |