Diffstat (limited to 'noncore/unsupported/mail2/composer.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/unsupported/mail2/composer.cpp | 150 |
1 files changed, 148 insertions, 2 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 | |||
@@ -11,2 +11,3 @@ | |||
11 | #include <qpe/resource.h> | 11 | #include <qpe/resource.h> |
12 | #include <qpe/config.h> | ||
12 | 13 | ||
@@ -27,5 +28,6 @@ AttachViewItem::AttachViewItem(QListView *parent, Attachment &attachment) | |||
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); |
@@ -34,2 +36,3 @@ Composer::Composer(QWidget *parent, const char *name, WFlags fl) | |||
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())); |
@@ -44,2 +47,3 @@ Composer::Composer(QWidget *parent, const char *name, WFlags fl) | |||
44 | QTimer::singleShot(0, this, SLOT(slotResizing())); | 47 | QTimer::singleShot(0, this, SLOT(slotResizing())); |
48 | |||
45 | } | 49 | } |
@@ -92,2 +96,7 @@ void Composer::slotResizing() | |||
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 | } |
@@ -158,2 +167,140 @@ void Composer::slotSendMail() | |||
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) |
@@ -243,2 +390 @@ void Composer::slotDelAttach() | |||
243 | } | } | |
244 | |||