-rw-r--r-- | noncore/unsupported/mail2/composer.cpp | 150 | ||||
-rw-r--r-- | noncore/unsupported/mail2/composer.h | 7 | ||||
-rw-r--r-- | noncore/unsupported/mail2/composerbase.cpp | 3 | ||||
-rw-r--r-- | noncore/unsupported/mail2/composerbase.h | 2 | ||||
-rw-r--r-- | noncore/unsupported/mail2/mainwindow.cpp | 10 | ||||
-rw-r--r-- | noncore/unsupported/mail2/mainwindow.h | 1 | ||||
-rw-r--r-- | noncore/unsupported/mail2/mainwindowbase.cpp | 3 | ||||
-rw-r--r-- | noncore/unsupported/mail2/mainwindowbase.h | 2 |
8 files changed, 173 insertions, 5 deletions
diff --git a/noncore/unsupported/mail2/composer.cpp b/noncore/unsupported/mail2/composer.cpp index c36d973..cabffe5 100644 --- a/noncore/unsupported/mail2/composer.cpp +++ b/noncore/unsupported/mail2/composer.cpp | |||
@@ -10,4 +10,5 @@ | |||
10 | 10 | ||
11 | #include <qpe/resource.h> | 11 | #include <qpe/resource.h> |
12 | #include <qpe/config.h> | ||
12 | 13 | ||
13 | #include "addresspicker.h" | 14 | #include "addresspicker.h" |
@@ -26,11 +27,13 @@ AttachViewItem::AttachViewItem(QListView *parent, Attachment &attachment) | |||
26 | } | 27 | } |
27 | 28 | ||
28 | Composer::Composer(QWidget *parent, const char *name, WFlags fl) | 29 | Composer::Composer(QWidget *parent, const char *name, WFlags fl, bool sendQueue) |
29 | : ComposerBase(parent, name, fl), _inLoop(false) | 30 | : ComposerBase(parent, name, fl), _inLoop(false) |
30 | { | 31 | { |
32 | _sendQueued = sendQueue; | ||
31 | abort->setEnabled(false); | 33 | abort->setEnabled(false); |
32 | to->setFocus(); | 34 | to->setFocus(); |
33 | 35 | ||
34 | connect(sendmail, SIGNAL(activated()), SLOT(slotSendMail())); | 36 | connect(sendmail, SIGNAL(activated()), SLOT(slotSendMail())); |
37 | connect(queuemail, SIGNAL(activated()), SLOT(slotQueueMail())); | ||
35 | connect(addressbook, SIGNAL(activated()), SLOT(slotOpenAddressPicker())); | 38 | connect(addressbook, SIGNAL(activated()), SLOT(slotOpenAddressPicker())); |
36 | connect(addattach, SIGNAL(activated()), SLOT(slotAddAttach())); | 39 | connect(addattach, SIGNAL(activated()), SLOT(slotAddAttach())); |
@@ -43,4 +46,5 @@ Composer::Composer(QWidget *parent, const char *name, WFlags fl) | |||
43 | QTimer::singleShot(0, this, SLOT(slotFillStuff())); | 46 | QTimer::singleShot(0, this, SLOT(slotFillStuff())); |
44 | QTimer::singleShot(0, this, SLOT(slotResizing())); | 47 | QTimer::singleShot(0, this, SLOT(slotResizing())); |
48 | |||
45 | } | 49 | } |
46 | 50 | ||
@@ -91,4 +95,9 @@ void Composer::slotResizing() | |||
91 | from->setMaximumWidth(width() - fromBox->width()); | 95 | from->setMaximumWidth(width() - fromBox->width()); |
92 | from->resize(width() - fromBox->width(), y()); | 96 | from->resize(width() - fromBox->width(), y()); |
97 | if (_sendQueued) | ||
98 | { | ||
99 | slotSendQueued(); | ||
100 | close(); | ||
101 | } | ||
93 | } | 102 | } |
94 | 103 | ||
@@ -157,4 +166,142 @@ void Composer::slotSendMail() | |||
157 | } | 166 | } |
158 | 167 | ||
168 | void Composer::slotSendQueued() | ||
169 | { | ||
170 | |||
171 | qDebug("Sending queued messages"); | ||
172 | Config cfg( "mailqueue", Config::User ); | ||
173 | cfg.setGroup( "Settings" ); | ||
174 | int count = cfg.readNumEntry( "count", 0 ); | ||
175 | // tille: should not be here | ||
176 | // but no error checking for the moment | ||
177 | cfg.writeEntry( "count", 0 ); | ||
178 | |||
179 | |||
180 | qDebug("%i messages to send", count); | ||
181 | QString str; | ||
182 | for (int i=1;i<=count;i++) | ||
183 | { | ||
184 | qDebug("sending message %i",i); | ||
185 | cfg.setGroup( "Mail_" + QString::number(i) ); | ||
186 | SendMail smail; | ||
187 | str = cfg.readEntry("from"); | ||
188 | qDebug("setFrom %s",str.latin1()); | ||
189 | smail.setFrom( str ); | ||
190 | str = cfg.readEntry("reply"); | ||
191 | qDebug("setReplyTo %s",str.latin1()); | ||
192 | smail.setReplyTo( str ); | ||
193 | QString toAdr = cfg.readEntry("to"); | ||
194 | qDebug("to %s",toAdr.latin1()); | ||
195 | smail.setTo( toAdr ); //to->text()); | ||
196 | str = cfg.readEntry("cc"); | ||
197 | qDebug("setCc %s",str.latin1()); | ||
198 | smail.setCc( str ); //cc->text()); | ||
199 | smail.setBcc( cfg.readEntry("bcc") ); //bcc->text()); | ||
200 | str = cfg.readEntry("subject"); | ||
201 | qDebug("setSubject %s",str.latin1()); | ||
202 | smail.setSubject( str ); //subject->text()); | ||
203 | str = cfg.readEntryCrypt("message"); | ||
204 | qDebug("setMessage %s",str.latin1()); | ||
205 | smail.setMessage( str ); //message->text()); | ||
206 | smail.setNeedsMime( cfg.readBoolEntry("mime") ); //attachView->childCount() == 0 ? false : true); | ||
207 | |||
208 | qDebug("setting account [%i]",cfg.readNumEntry("account")); | ||
209 | Account accnt = accountsLoaded[ cfg.readNumEntry("account") ]; | ||
210 | smail.setAccount( accnt ); //accountsLoaded[from->currentItem()]); | ||
211 | |||
212 | |||
213 | int prio = cfg.readNumEntry( "priority" ); | ||
214 | qDebug("setting priority %i",prio); | ||
215 | if (prio == POPUP_PRIO_LOW) { | ||
216 | smail.setPriority("Low");// No i18n on purpose | ||
217 | } else if (prio == POPUP_PRIO_NORMAL) { | ||
218 | smail.setPriority("Normal");// No i18n on purpose | ||
219 | } else if (prio == POPUP_PRIO_HIGH) { | ||
220 | smail.setPriority("High");// No i18n on purpose | ||
221 | } | ||
222 | |||
223 | QValueList<Attachment> attachments; | ||
224 | Attachment a; | ||
225 | QString an; | ||
226 | |||
227 | int ac = cfg.readNumEntry( "attachments", 0 ); | ||
228 | qDebug("%i Attachments",ac); | ||
229 | for (int j = 0; i < ac; ac++) { | ||
230 | an = "Attachment_" + QString::number( j ); | ||
231 | qDebug(an.latin1()); | ||
232 | a.setFileName(cfg.readEntry( an + "fileName" )); | ||
233 | a.setNewName(cfg.readEntry( an + "newName" )); | ||
234 | a.setDescription(cfg.readEntry( an + "description" )); | ||
235 | a.setDocLnk( DocLnk( cfg.readEntry( an + "docLnk" )) ); | ||
236 | attachments.append( a ); | ||
237 | } | ||
238 | |||
239 | smail.setAttachments(attachments); | ||
240 | |||
241 | qDebug("putting mail together"); | ||
242 | |||
243 | QString header, message; | ||
244 | MailFactory::genMail(header, message, smail, this); | ||
245 | if (header.isNull() || message.isNull()) continue;//return;// Aborted. | ||
246 | |||
247 | // abort->setEnabled(true); | ||
248 | |||
249 | qDebug("Sending to %s",toAdr.latin1()); | ||
250 | SmtpHandler *handler = new SmtpHandler(header, message, accnt ,toAdr); | ||
251 | |||
252 | connect(handler, SIGNAL(finished()), SLOT(slotSendFinished())); | ||
253 | connect(handler, SIGNAL(error(const QString &)), SLOT(slotSendError(const QString &))); | ||
254 | connect(handler, SIGNAL(status(const QString &)), status, SLOT(setText(const QString &))); | ||
255 | |||
256 | qDebug("remove mail %i", i); | ||
257 | cfg.clearGroup(); | ||
258 | cfg.removeEntry( "Mail_" + QString::number(i) ); | ||
259 | } | ||
260 | } | ||
261 | |||
262 | void Composer::slotQueueMail() | ||
263 | { | ||
264 | if (to->text().find(QRegExp(".*\\@.*\\..*")) == -1) { | ||
265 | QMessageBox::information(this, tr("Error"), tr("<p>You have to specify a recipient.<br>(eg: foo@bar.org)</p>"), tr("Ok")); | ||
266 | return; | ||
267 | } | ||
268 | |||
269 | Config cfg( "mailqueue", Config::User ); | ||
270 | |||
271 | cfg.setGroup( "Settings" ); | ||
272 | int count = cfg.readNumEntry( "count", 0 ); | ||
273 | count++; | ||
274 | cfg.writeEntry( "count", count ); | ||
275 | qDebug("queueing mail %i",count); | ||
276 | |||
277 | cfg.setGroup( "Mail_" + QString::number( count )); | ||
278 | cfg.writeEntry( "from", from->currentText() ); | ||
279 | cfg.writeEntry( "reply", replyto->text()); | ||
280 | cfg.writeEntry( "to", to->text()); | ||
281 | cfg.writeEntry( "cc", cc->text()); | ||
282 | cfg.writeEntry( "bcc", bcc->text()); | ||
283 | cfg.writeEntry( "subject", subject->text()); | ||
284 | cfg.writeEntryCrypt( "message", message->text()); | ||
285 | cfg.writeEntry( "mime", attachView->childCount() == 0 ); | ||
286 | cfg.writeEntry( "account", from->currentItem()); | ||
287 | cfg.writeEntry( "priority", priority->currentItem() ); | ||
288 | cfg.writeEntry( "attachments", attachView->childCount() ); | ||
289 | |||
290 | Attachment a; | ||
291 | QListViewItem *item; | ||
292 | QString an; | ||
293 | int i = 0; | ||
294 | for (item = attachView->firstChild(); item != 0; item = item->itemBelow()) { | ||
295 | a = ((AttachViewItem *)item)->attachment(); | ||
296 | an = "Attachment_" + QString::number( i++ ); | ||
297 | cfg.writeEntry( an + "fileName", a.fileName() ); | ||
298 | cfg.writeEntry( an + "newName", a.newName() ); | ||
299 | cfg.writeEntry( an + "description", a.description() ); | ||
300 | cfg.writeEntry( an + "docLnk", a.docLnk().file() ); | ||
301 | } | ||
302 | |||
303 | //cfg.close(); | ||
304 | } | ||
305 | |||
159 | void Composer::slotSendError(const QString &error) | 306 | void Composer::slotSendError(const QString &error) |
160 | { | 307 | { |
@@ -242,3 +389,2 @@ void Composer::slotDelAttach() | |||
242 | attachView->takeItem(attachView->currentItem()); | 389 | attachView->takeItem(attachView->currentItem()); |
243 | } | 390 | } |
244 | |||
diff --git a/noncore/unsupported/mail2/composer.h b/noncore/unsupported/mail2/composer.h index 2640d7e..00235bf 100644 --- a/noncore/unsupported/mail2/composer.h +++ b/noncore/unsupported/mail2/composer.h | |||
@@ -26,5 +26,5 @@ 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, bool sendQueue = false); |
29 | ~Composer(); | 29 | ~Composer(); |
30 | 30 | ||
@@ -34,7 +34,11 @@ public: | |||
34 | void setSendMail(SendMail &sendMail); | 34 | void setSendMail(SendMail &sendMail); |
35 | 35 | ||
36 | public slots: | ||
37 | void slotSendQueued(); | ||
38 | |||
36 | protected slots: | 39 | protected slots: |
37 | void slotPopupHandler(int itemid); | 40 | void slotPopupHandler(int itemid); |
38 | void slotSendMail(); | 41 | void slotSendMail(); |
42 | void slotQueueMail(); | ||
39 | void slotSendError(const QString &); | 43 | void slotSendError(const QString &); |
40 | void slotSendFinished(); | 44 | void slotSendFinished(); |
@@ -50,4 +54,5 @@ protected: | |||
50 | 54 | ||
51 | private: | 55 | private: |
56 | bool _sendQueued; | ||
52 | bool _inLoop; | 57 | bool _inLoop; |
53 | QString _inReplyTo; | 58 | QString _inReplyTo; |
diff --git a/noncore/unsupported/mail2/composerbase.cpp b/noncore/unsupported/mail2/composerbase.cpp index 10d567d..6627701 100644 --- a/noncore/unsupported/mail2/composerbase.cpp +++ b/noncore/unsupported/mail2/composerbase.cpp | |||
@@ -27,4 +27,7 @@ ComposerBase::ComposerBase(QWidget *parent, const char *name, WFlags fl) | |||
27 | sendmail->addTo(toolbar); | 27 | sendmail->addTo(toolbar); |
28 | 28 | ||
29 | queuemail = new QAction(tr("Queue the mail"), QIconSet(Resource::loadPixmap("mail/sendall")), 0, 0, this); | ||
30 | queuemail->addTo(toolbar); | ||
31 | |||
29 | attachfile = new QAction(tr("Attach a file"), QIconSet(Resource::loadPixmap("mail/attach")), 0, 0, this, 0, true); | 32 | attachfile = new QAction(tr("Attach a file"), QIconSet(Resource::loadPixmap("mail/attach")), 0, 0, this, 0, true); |
30 | attachfile->addTo(toolbar); | 33 | attachfile->addTo(toolbar); |
diff --git a/noncore/unsupported/mail2/composerbase.h b/noncore/unsupported/mail2/composerbase.h index 75b77f4..9d3e4fc 100644 --- a/noncore/unsupported/mail2/composerbase.h +++ b/noncore/unsupported/mail2/composerbase.h | |||
@@ -42,5 +42,5 @@ protected: | |||
42 | QComboBox *fromBox, *from, *receiversBox, *subjectBox, *priority; | 42 | QComboBox *fromBox, *from, *receiversBox, *subjectBox, *priority; |
43 | QLineEdit *replyto, *to, *cc, *bcc, *subject; | 43 | QLineEdit *replyto, *to, *cc, *bcc, *subject; |
44 | QAction *sendmail, *attachfile, *addressbook, *abort, *addattach, *delattach; | 44 | QAction *sendmail, *queuemail, *attachfile, *addressbook, *abort, *addattach, *delattach; |
45 | QLabel *fromLabel, *status; | 45 | QLabel *fromLabel, *status; |
46 | 46 | ||
diff --git a/noncore/unsupported/mail2/mainwindow.cpp b/noncore/unsupported/mail2/mainwindow.cpp index 2230dc0..652db94 100644 --- a/noncore/unsupported/mail2/mainwindow.cpp +++ b/noncore/unsupported/mail2/mainwindow.cpp | |||
@@ -31,4 +31,5 @@ MainWindow::MainWindow(QWidget *parent, const char *name, WFlags fl) | |||
31 | 31 | ||
32 | connect(compose, SIGNAL(activated()), SLOT(slotCompose())); | 32 | connect(compose, SIGNAL(activated()), SLOT(slotCompose())); |
33 | connect(sendQueue, SIGNAL(activated()), SLOT(slotSendQueued())); | ||
33 | connect(findmails, SIGNAL(activated()), SLOT(slotSearch())); | 34 | connect(findmails, SIGNAL(activated()), SLOT(slotSearch())); |
34 | connect(configure, SIGNAL(activated()), SLOT(slotConfigure())); | 35 | connect(configure, SIGNAL(activated()), SLOT(slotConfigure())); |
@@ -42,4 +43,13 @@ void MainWindow::slotCompose() | |||
42 | } | 43 | } |
43 | 44 | ||
45 | void MainWindow::slotSendQueued() | ||
46 | { | ||
47 | Composer composer(this, 0, true, true); | ||
48 | // composer.sendQueue(); | ||
49 | composer.showMaximized(); | ||
50 | composer.exec(); | ||
51 | //composer.close(); | ||
52 | } | ||
53 | |||
44 | void MainWindow::slotSearch() | 54 | void MainWindow::slotSearch() |
45 | { | 55 | { |
diff --git a/noncore/unsupported/mail2/mainwindow.h b/noncore/unsupported/mail2/mainwindow.h index 1edf10b..27b527d 100644 --- a/noncore/unsupported/mail2/mainwindow.h +++ b/noncore/unsupported/mail2/mainwindow.h | |||
@@ -16,4 +16,5 @@ public: | |||
16 | protected slots: | 16 | protected slots: |
17 | void slotCompose(); | 17 | void slotCompose(); |
18 | void slotSendQueued(); | ||
18 | void slotSearch(); | 19 | void slotSearch(); |
19 | void slotConfigure(); | 20 | void slotConfigure(); |
diff --git a/noncore/unsupported/mail2/mainwindowbase.cpp b/noncore/unsupported/mail2/mainwindowbase.cpp index c55bd90..24f030f 100644 --- a/noncore/unsupported/mail2/mainwindowbase.cpp +++ b/noncore/unsupported/mail2/mainwindowbase.cpp | |||
@@ -27,4 +27,7 @@ MainWindowBase::MainWindowBase(QWidget *parent, const char *name, WFlags fl) | |||
27 | compose->addTo(toolbar); | 27 | compose->addTo(toolbar); |
28 | 28 | ||
29 | sendQueue = new QAction(tr("Send queued mails"), QIconSet(Resource::loadPixmap("mail/sendqueue")), 0, 0, this); | ||
30 | sendQueue->addTo(toolbar); | ||
31 | |||
29 | folders = new QAction(tr("Show/hide folders"), QIconSet(Resource::loadPixmap("mail/folder")), 0, 0, this, 0, true); | 32 | folders = new QAction(tr("Show/hide folders"), QIconSet(Resource::loadPixmap("mail/folder")), 0, 0, this, 0, true); |
30 | folders->addTo(toolbar); | 33 | folders->addTo(toolbar); |
diff --git a/noncore/unsupported/mail2/mainwindowbase.h b/noncore/unsupported/mail2/mainwindowbase.h index 0776f02..232d656 100644 --- a/noncore/unsupported/mail2/mainwindowbase.h +++ b/noncore/unsupported/mail2/mainwindowbase.h | |||
@@ -28,5 +28,5 @@ protected: | |||
28 | QPEToolBar *toolbar; | 28 | QPEToolBar *toolbar; |
29 | MailTable *mailView; | 29 | MailTable *mailView; |
30 | QAction *compose, *folders, *findmails, *configure, *stop; | 30 | QAction *compose, *sendQueue, *folders, *findmails, *configure, *stop; |
31 | QLabel *statusLabel; | 31 | QLabel *statusLabel; |
32 | 32 | ||