author | leseb <leseb> | 2002-06-16 16:15:47 (UTC) |
---|---|---|
committer | leseb <leseb> | 2002-06-16 16:15:47 (UTC) |
commit | ea69cfbbde29fef2f792d1eab702699aada088bf (patch) (unidiff) | |
tree | 1b908b905a16deaba7331d2f0b0c844f94235da0 | |
parent | d4414131cdf32677e8d54a18827f2e772718c3f7 (diff) | |
download | opie-ea69cfbbde29fef2f792d1eab702699aada088bf.zip opie-ea69cfbbde29fef2f792d1eab702699aada088bf.tar.gz opie-ea69cfbbde29fef2f792d1eab702699aada088bf.tar.bz2 |
Fix memory leaks
-rw-r--r-- | noncore/unsupported/mail2/composer.cpp | 28 | ||||
-rw-r--r-- | noncore/unsupported/mail2/composer.h | 5 | ||||
-rw-r--r-- | noncore/unsupported/mail2/mainwindow.cpp | 26 | ||||
-rw-r--r-- | noncore/unsupported/mail2/searchdiag.cpp | 6 | ||||
-rw-r--r-- | noncore/unsupported/mail2/viewmail.cpp | 44 | ||||
-rw-r--r-- | noncore/unsupported/mail2/viewmail.h | 5 |
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 | |||
@@ -6,6 +6,7 @@ | |||
6 | #include <qaction.h> | 6 | #include <qaction.h> |
7 | #include <qtimer.h> | 7 | #include <qtimer.h> |
8 | #include <qlabel.h> | 8 | #include <qlabel.h> |
9 | #include <qapplication.h> | ||
9 | 10 | ||
10 | #include <qpe/resource.h> | 11 | #include <qpe/resource.h> |
11 | 12 | ||
@@ -25,7 +26,7 @@ AttachViewItem::AttachViewItem(QListView *parent, Attachment &attachment) | |||
25 | } | 26 | } |
26 | 27 | ||
27 | Composer::Composer(QWidget *parent, const char *name, WFlags fl) | 28 | Composer::Composer(QWidget *parent, const char *name, WFlags fl) |
28 | : ComposerBase(parent, name, fl) | 29 | : ComposerBase(parent, name, fl), _inLoop(false) |
29 | { | 30 | { |
30 | abort->setEnabled(false); | 31 | abort->setEnabled(false); |
31 | to->setFocus(); | 32 | to->setFocus(); |
@@ -43,6 +44,31 @@ Composer::Composer(QWidget *parent, const char *name, WFlags fl) | |||
43 | QTimer::singleShot(0, this, SLOT(slotResizing())); | 44 | QTimer::singleShot(0, this, SLOT(slotResizing())); |
44 | } | 45 | } |
45 | 46 | ||
47 | Composer::~Composer() | ||
48 | { | ||
49 | hide(); | ||
50 | } | ||
51 | |||
52 | void Composer::hide() | ||
53 | { | ||
54 | QWidget::hide(); | ||
55 | |||
56 | if (_inLoop) { | ||
57 | _inLoop = false; | ||
58 | qApp->exit_loop(); | ||
59 | } | ||
60 | } | ||
61 | |||
62 | void Composer::exec() | ||
63 | { | ||
64 | show(); | ||
65 | |||
66 | if (!_inLoop) { | ||
67 | _inLoop = true; | ||
68 | qApp->enter_loop(); | ||
69 | } | ||
70 | } | ||
71 | |||
46 | void Composer::setSendMail(SendMail &sendMail) | 72 | void Composer::setSendMail(SendMail &sendMail) |
47 | { | 73 | { |
48 | to->setText(sendMail.to()); | 74 | to->setText(sendMail.to()); |
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 | |||
@@ -26,6 +26,10 @@ class Composer : public ComposerBase | |||
26 | 26 | ||
27 | public: | 27 | public: |
28 | Composer(QWidget *parent = 0, const char *name = 0, WFlags fl = Qt::WType_Modal); | 28 | Composer(QWidget *parent = 0, const char *name = 0, WFlags fl = Qt::WType_Modal); |
29 | ~Composer(); | ||
30 | |||
31 | void hide(); | ||
32 | void exec(); | ||
29 | 33 | ||
30 | void setSendMail(SendMail &sendMail); | 34 | void setSendMail(SendMail &sendMail); |
31 | 35 | ||
@@ -45,6 +49,7 @@ protected: | |||
45 | QValueList<Account> accountsLoaded; | 49 | QValueList<Account> accountsLoaded; |
46 | 50 | ||
47 | private: | 51 | private: |
52 | bool _inLoop; | ||
48 | QString _inReplyTo; | 53 | QString _inReplyTo; |
49 | 54 | ||
50 | }; | 55 | }; |
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 | |||
@@ -36,30 +36,30 @@ MainWindow::MainWindow(QWidget *parent, const char *name, WFlags fl) | |||
36 | 36 | ||
37 | void MainWindow::slotCompose() | 37 | void MainWindow::slotCompose() |
38 | { | 38 | { |
39 | Composer *composer = new Composer(); | 39 | Composer composer(this, 0, true); |
40 | composer->showMaximized(); | 40 | composer.showMaximized(); |
41 | composer->show(); | 41 | composer.exec(); |
42 | } | 42 | } |
43 | 43 | ||
44 | void MainWindow::slotSearch() | 44 | void MainWindow::slotSearch() |
45 | { | 45 | { |
46 | SearchDiag *searchDiag = new SearchDiag(this, 0, true); | 46 | SearchDiag searchDiag(this, 0, true); |
47 | searchDiag->showMaximized(); | 47 | searchDiag.showMaximized(); |
48 | searchDiag->show(); | 48 | searchDiag.exec(); |
49 | } | 49 | } |
50 | 50 | ||
51 | void MainWindow::slotConfigure() | 51 | void MainWindow::slotConfigure() |
52 | { | 52 | { |
53 | ConfigDiag *configDiag = new ConfigDiag(this, 0, true); | 53 | ConfigDiag configDiag(this, 0, true); |
54 | configDiag->showMaximized(); | 54 | configDiag.showMaximized(); |
55 | configDiag->show(); | 55 | configDiag.exec(); |
56 | 56 | ||
57 | connect(configDiag, SIGNAL(changed()), folderView, SLOT(update())); | 57 | connect(&configDiag, SIGNAL(changed()), folderView, SLOT(update())); |
58 | } | 58 | } |
59 | 59 | ||
60 | void MainWindow::mailClicked(IMAPResponseFETCH mail, IMAPHandler *handler) | 60 | void MainWindow::mailClicked(IMAPResponseFETCH mail, IMAPHandler *handler) |
61 | { | 61 | { |
62 | ViewMail *viewMail = new ViewMail(mail, handler); | 62 | ViewMail viewMail(mail, handler, this, 0, true); |
63 | viewMail->showMaximized(); | 63 | viewMail.showMaximized(); |
64 | viewMail->show(); | 64 | viewMail.exec(); |
65 | } | 65 | } |
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 | |||
@@ -112,9 +112,9 @@ void SearchDiag::slotIMAPFetch(IMAPResponse &response) | |||
112 | 112 | ||
113 | void SearchDiag::slotMailClicked(IMAPResponseFETCH fetch, IMAPHandler *) | 113 | void SearchDiag::slotMailClicked(IMAPResponseFETCH fetch, IMAPHandler *) |
114 | { | 114 | { |
115 | ViewMail *viewMail = new ViewMail(fetch, _folder.topFolder().handler()); | 115 | ViewMail viewMail(fetch, _folder.topFolder().handler(), this, 0, true); |
116 | viewMail->showMaximized(); | 116 | viewMail.showMaximized(); |
117 | viewMail->show(); | 117 | viewMail.exec(); |
118 | } | 118 | } |
119 | 119 | ||
120 | void SearchDiag::slotInItemActivated(int index) | 120 | 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,6 +1,7 @@ | |||
1 | #include <qtextbrowser.h> | 1 | #include <qtextbrowser.h> |
2 | #include <qmessagebox.h> | 2 | #include <qmessagebox.h> |
3 | #include <qaction.h> | 3 | #include <qaction.h> |
4 | #include <qapplication.h> | ||
4 | 5 | ||
5 | #include "mailfactory.h" | 6 | #include "mailfactory.h" |
6 | #include "composer.h" | 7 | #include "composer.h" |
@@ -23,7 +24,7 @@ AttachItem::AttachItem(QListViewItem *parent, AttachItemStore &attachItemStore) | |||
23 | } | 24 | } |
24 | 25 | ||
25 | ViewMail::ViewMail(IMAPResponseFETCH &mail, IMAPHandler *handler, QWidget *parent, const char *name, WFlags fl) | 26 | ViewMail::ViewMail(IMAPResponseFETCH &mail, IMAPHandler *handler, QWidget *parent, const char *name, WFlags fl) |
26 | : ViewMailBase(parent, name, fl), _mail(mail), _handler(handler) | 27 | : ViewMailBase(parent, name, fl), _inLoop(false), _mail(mail), _handler(handler) |
27 | { | 28 | { |
28 | setCaption(caption().arg(mail.envelope().from()[0].name())); | 29 | setCaption(caption().arg(mail.envelope().from()[0].name())); |
29 | 30 | ||
@@ -61,6 +62,31 @@ ViewMail::ViewMail(IMAPResponseFETCH &mail, IMAPHandler *handler, QWidget *paren | |||
61 | connect(_handler, SIGNAL(gotResponse(IMAPResponse &)), SLOT(slotIMAPUid(IMAPResponse &))); | 62 | connect(_handler, SIGNAL(gotResponse(IMAPResponse &)), SLOT(slotIMAPUid(IMAPResponse &))); |
62 | } | 63 | } |
63 | 64 | ||
65 | ViewMail::~ViewMail() | ||
66 | { | ||
67 | hide(); | ||
68 | } | ||
69 | |||
70 | void ViewMail::hide() | ||
71 | { | ||
72 | QWidget::hide(); | ||
73 | |||
74 | if (_inLoop) { | ||
75 | _inLoop = false; | ||
76 | qApp->exit_loop(); | ||
77 | } | ||
78 | } | ||
79 | |||
80 | void ViewMail::exec() | ||
81 | { | ||
82 | show(); | ||
83 | |||
84 | if (!_inLoop) { | ||
85 | _inLoop = true; | ||
86 | qApp->enter_loop(); | ||
87 | } | ||
88 | } | ||
89 | |||
64 | QString ViewMail::deHtml(const QString &string) | 90 | QString ViewMail::deHtml(const QString &string) |
65 | { | 91 | { |
66 | QString string_ = string; | 92 | QString string_ = string; |
@@ -101,10 +127,10 @@ void ViewMail::slotReply() | |||
101 | sendMail.setInReplyTo(_mail.envelope().messageId()); | 127 | sendMail.setInReplyTo(_mail.envelope().messageId()); |
102 | sendMail.setMessage(rtext); | 128 | sendMail.setMessage(rtext); |
103 | 129 | ||
104 | Composer *composer = new Composer(0, 0, Qt::WType_Modal); | 130 | Composer composer(this, 0, true); |
105 | composer->setSendMail(sendMail); | 131 | composer.setSendMail(sendMail); |
106 | composer->showMaximized(); | 132 | composer.showMaximized(); |
107 | composer->show(); | 133 | composer.exec(); |
108 | } | 134 | } |
109 | 135 | ||
110 | void ViewMail::slotForward() | 136 | void ViewMail::slotForward() |
@@ -145,10 +171,10 @@ void ViewMail::slotForward() | |||
145 | sendMail.setSubject("Fwd: " + _mail.envelope().subject()); | 171 | sendMail.setSubject("Fwd: " + _mail.envelope().subject()); |
146 | sendMail.setMessage(ftext); | 172 | sendMail.setMessage(ftext); |
147 | 173 | ||
148 | Composer *composer = new Composer(0, 0, Qt::WType_Modal); | 174 | Composer composer(this, 0, true); |
149 | composer->setSendMail(sendMail); | 175 | composer.setSendMail(sendMail); |
150 | composer->showMaximized(); | 176 | composer.showMaximized(); |
151 | composer->show(); | 177 | composer.exec(); |
152 | } | 178 | } |
153 | 179 | ||
154 | void ViewMail::slotIMAPUid(IMAPResponse &response) | 180 | 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 | |||
@@ -43,6 +43,10 @@ class ViewMail : public ViewMailBase | |||
43 | 43 | ||
44 | public: | 44 | public: |
45 | ViewMail(IMAPResponseFETCH &mail, IMAPHandler *handler, QWidget *parent = 0, const char *name = 0, WFlags fl = Qt::WType_Modal); | 45 | ViewMail(IMAPResponseFETCH &mail, IMAPHandler *handler, QWidget *parent = 0, const char *name = 0, WFlags fl = Qt::WType_Modal); |
46 | ~ViewMail(); | ||
47 | |||
48 | void hide(); | ||
49 | void exec(); | ||
46 | 50 | ||
47 | protected: | 51 | protected: |
48 | //void fillList(IMAPResponseBODYSTRUCTURE &structure); | 52 | //void fillList(IMAPResponseBODYSTRUCTURE &structure); |
@@ -55,6 +59,7 @@ protected slots: | |||
55 | void slotIMAPUid(IMAPResponse &response); | 59 | void slotIMAPUid(IMAPResponse &response); |
56 | 60 | ||
57 | private: | 61 | private: |
62 | bool _inLoop; | ||
58 | IMAPResponseFETCH _mail; | 63 | IMAPResponseFETCH _mail; |
59 | IMAPHandler *_handler; | 64 | IMAPHandler *_handler; |
60 | QString _mailHtml; | 65 | QString _mailHtml; |