Diffstat (limited to 'noncore/unsupported/mail2/viewmail.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/unsupported/mail2/viewmail.cpp | 44 |
1 files changed, 35 insertions, 9 deletions
diff --git a/noncore/unsupported/mail2/viewmail.cpp b/noncore/unsupported/mail2/viewmail.cpp index ae1f5f3..3c88d99 100644 --- a/noncore/unsupported/mail2/viewmail.cpp +++ b/noncore/unsupported/mail2/viewmail.cpp @@ -1,9 +1,10 @@ #include <qtextbrowser.h> #include <qmessagebox.h> #include <qaction.h> +#include <qapplication.h> #include "mailfactory.h" #include "composer.h" #include "viewmail.h" AttachItem::AttachItem(QListView *parent, AttachItemStore &attachItemStore) @@ -20,13 +21,13 @@ AttachItem::AttachItem(QListViewItem *parent, AttachItemStore &attachItemStore) setText(0, _attachItemStore.mimeType()); setText(1, _attachItemStore.fileName()); setText(2, _attachItemStore.description()); } ViewMail::ViewMail(IMAPResponseFETCH &mail, IMAPHandler *handler, QWidget *parent, const char *name, WFlags fl) - : ViewMailBase(parent, name, fl), _mail(mail), _handler(handler) + : ViewMailBase(parent, name, fl), _inLoop(false), _mail(mail), _handler(handler) { setCaption(caption().arg(mail.envelope().from()[0].name())); _gotBody = false; _mailHtml = tr( "<html><body>" @@ -58,12 +59,37 @@ ViewMail::ViewMail(IMAPResponseFETCH &mail, IMAPHandler *handler, QWidget *paren browser->setText(QString(_mailHtml).arg(tr("Getting mail body from server. Please wait..."))); _handler->iUid("FETCH", QString("%1 (BODY[1])").arg(mail.uid())); connect(_handler, SIGNAL(gotResponse(IMAPResponse &)), SLOT(slotIMAPUid(IMAPResponse &))); } +ViewMail::~ViewMail() +{ + hide(); +} + +void ViewMail::hide() +{ + QWidget::hide(); + + if (_inLoop) { + _inLoop = false; + qApp->exit_loop(); + } +} + +void ViewMail::exec() +{ + show(); + + if (!_inLoop) { + _inLoop = true; + qApp->enter_loop(); + } +} + QString ViewMail::deHtml(const QString &string) { QString string_ = string; string_.replace(QRegExp("&"), "&"); string_.replace(QRegExp("<"), "<"); string_.replace(QRegExp(">"), ">"); @@ -98,16 +124,16 @@ void ViewMail::slotReply() SendMail sendMail; sendMail.setTo(_mail.envelope().from()[0].toString()); sendMail.setSubject(prefix + _mail.envelope().subject()); sendMail.setInReplyTo(_mail.envelope().messageId()); sendMail.setMessage(rtext); - Composer *composer = new Composer(0, 0, Qt::WType_Modal); - composer->setSendMail(sendMail); - composer->showMaximized(); - composer->show(); + Composer composer(this, 0, true); + composer.setSendMail(sendMail); + composer.showMaximized(); + composer.exec(); } void ViewMail::slotForward() { if (!_gotBody) { QMessageBox::information(this, tr("Error"), tr("<p>The mail body is not yet downloaded, so you cannot forward yet."), tr("Ok")); @@ -142,16 +168,16 @@ void ViewMail::slotForward() ftext += QString("----- End forwarded message -----\n"); SendMail sendMail; sendMail.setSubject("Fwd: " + _mail.envelope().subject()); sendMail.setMessage(ftext); - Composer *composer = new Composer(0, 0, Qt::WType_Modal); - composer->setSendMail(sendMail); - composer->showMaximized(); - composer->show(); + Composer composer(this, 0, true); + composer.setSendMail(sendMail); + composer.showMaximized(); + composer.exec(); } void ViewMail::slotIMAPUid(IMAPResponse &response) { disconnect(_handler, SIGNAL(gotResponse(IMAPResponse &)), this, SLOT(slotIMAPUid(IMAPResponse &))); |