summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/unsupported/mail2/composer.cpp28
-rw-r--r--noncore/unsupported/mail2/composer.h5
-rw-r--r--noncore/unsupported/mail2/mainwindow.cpp26
-rw-r--r--noncore/unsupported/mail2/searchdiag.cpp6
-rw-r--r--noncore/unsupported/mail2/viewmail.cpp44
-rw-r--r--noncore/unsupported/mail2/viewmail.h5
6 files changed, 88 insertions, 26 deletions
diff --git a/noncore/unsupported/mail2/composer.cpp b/noncore/unsupported/mail2/composer.cpp
index 82ed117..7f65dba 100644
--- a/noncore/unsupported/mail2/composer.cpp
+++ b/noncore/unsupported/mail2/composer.cpp
@@ -5,8 +5,9 @@
#include <qlineedit.h>
#include <qaction.h>
#include <qtimer.h>
#include <qlabel.h>
+#include <qapplication.h>
#include <qpe/resource.h>
#include "addresspicker.h"
@@ -24,9 +25,9 @@ AttachViewItem::AttachViewItem(QListView *parent, Attachment &attachment)
setText(1, _attachment.description());
}
Composer::Composer(QWidget *parent, const char *name, WFlags fl)
- : ComposerBase(parent, name, fl)
+ : ComposerBase(parent, name, fl), _inLoop(false)
{
abort->setEnabled(false);
to->setFocus();
@@ -42,8 +43,33 @@ Composer::Composer(QWidget *parent, const char *name, WFlags fl)
QTimer::singleShot(0, this, SLOT(slotFillStuff()));
QTimer::singleShot(0, this, SLOT(slotResizing()));
}
+Composer::~Composer()
+{
+ hide();
+}
+
+void Composer::hide()
+{
+ QWidget::hide();
+
+ if (_inLoop) {
+ _inLoop = false;
+ qApp->exit_loop();
+ }
+}
+
+void Composer::exec()
+{
+ show();
+
+ if (!_inLoop) {
+ _inLoop = true;
+ qApp->enter_loop();
+ }
+}
+
void Composer::setSendMail(SendMail &sendMail)
{
to->setText(sendMail.to());
cc->setText(sendMail.cc());
diff --git a/noncore/unsupported/mail2/composer.h b/noncore/unsupported/mail2/composer.h
index a1af121..2640d7e 100644
--- a/noncore/unsupported/mail2/composer.h
+++ b/noncore/unsupported/mail2/composer.h
@@ -25,8 +25,12 @@ class Composer : public ComposerBase
Q_OBJECT
public:
Composer(QWidget *parent = 0, const char *name = 0, WFlags fl = Qt::WType_Modal);
+ ~Composer();
+
+ void hide();
+ void exec();
void setSendMail(SendMail &sendMail);
protected slots:
@@ -44,8 +48,9 @@ protected slots:
protected:
QValueList<Account> accountsLoaded;
private:
+ bool _inLoop;
QString _inReplyTo;
};
diff --git a/noncore/unsupported/mail2/mainwindow.cpp b/noncore/unsupported/mail2/mainwindow.cpp
index 4d15e23..2230dc0 100644
--- a/noncore/unsupported/mail2/mainwindow.cpp
+++ b/noncore/unsupported/mail2/mainwindow.cpp
@@ -35,31 +35,31 @@ MainWindow::MainWindow(QWidget *parent, const char *name, WFlags fl)
}
void MainWindow::slotCompose()
{
- Composer *composer = new Composer();
- composer->showMaximized();
- composer->show();
+ Composer composer(this, 0, true);
+ composer.showMaximized();
+ composer.exec();
}
void MainWindow::slotSearch()
{
- SearchDiag *searchDiag = new SearchDiag(this, 0, true);
- searchDiag->showMaximized();
- searchDiag->show();
+ SearchDiag searchDiag(this, 0, true);
+ searchDiag.showMaximized();
+ searchDiag.exec();
}
void MainWindow::slotConfigure()
{
- ConfigDiag *configDiag = new ConfigDiag(this, 0, true);
- configDiag->showMaximized();
- configDiag->show();
+ ConfigDiag configDiag(this, 0, true);
+ configDiag.showMaximized();
+ configDiag.exec();
- connect(configDiag, SIGNAL(changed()), folderView, SLOT(update()));
+ connect(&configDiag, SIGNAL(changed()), folderView, SLOT(update()));
}
void MainWindow::mailClicked(IMAPResponseFETCH mail, IMAPHandler *handler)
{
- ViewMail *viewMail = new ViewMail(mail, handler);
- viewMail->showMaximized();
- viewMail->show();
+ ViewMail viewMail(mail, handler, this, 0, true);
+ viewMail.showMaximized();
+ viewMail.exec();
}
diff --git a/noncore/unsupported/mail2/searchdiag.cpp b/noncore/unsupported/mail2/searchdiag.cpp
index 33b8afb..907f6ff 100644
--- a/noncore/unsupported/mail2/searchdiag.cpp
+++ b/noncore/unsupported/mail2/searchdiag.cpp
@@ -111,11 +111,11 @@ void SearchDiag::slotIMAPFetch(IMAPResponse &response)
}
void SearchDiag::slotMailClicked(IMAPResponseFETCH fetch, IMAPHandler *)
{
- ViewMail *viewMail = new ViewMail(fetch, _folder.topFolder().handler());
- viewMail->showMaximized();
- viewMail->show();
+ ViewMail viewMail(fetch, _folder.topFolder().handler(), this, 0, true);
+ viewMail.showMaximized();
+ viewMail.exec();
}
void SearchDiag::slotInItemActivated(int index)
{
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,7 +1,8 @@
#include <qtextbrowser.h>
#include <qmessagebox.h>
#include <qaction.h>
+#include <qapplication.h>
#include "mailfactory.h"
#include "composer.h"
#include "viewmail.h"
@@ -22,9 +23,9 @@ AttachItem::AttachItem(QListViewItem *parent, AttachItemStore &attachItemStore)
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;
@@ -60,8 +61,33 @@ ViewMail::ViewMail(IMAPResponseFETCH &mail, IMAPHandler *handler, QWidget *paren
_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("&"), "&amp;");
@@ -100,12 +126,12 @@ void ViewMail::slotReply()
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()
{
@@ -144,12 +170,12 @@ void ViewMail::slotForward()
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)
{
diff --git a/noncore/unsupported/mail2/viewmail.h b/noncore/unsupported/mail2/viewmail.h
index a013e43..efc2300 100644
--- a/noncore/unsupported/mail2/viewmail.h
+++ b/noncore/unsupported/mail2/viewmail.h
@@ -42,8 +42,12 @@ class ViewMail : public ViewMailBase
Q_OBJECT
public:
ViewMail(IMAPResponseFETCH &mail, IMAPHandler *handler, QWidget *parent = 0, const char *name = 0, WFlags fl = Qt::WType_Modal);
+ ~ViewMail();
+
+ void hide();
+ void exec();
protected:
// void fillList(IMAPResponseBODYSTRUCTURE &structure);
QString deHtml(const QString &string);
@@ -54,8 +58,9 @@ protected slots:
void slotIMAPUid(IMAPResponse &response);
private:
+ bool _inLoop;
IMAPResponseFETCH _mail;
IMAPHandler *_handler;
QString _mailHtml;
bool _gotBody;