summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/unsupported/mail2/composer.cpp150
-rw-r--r--noncore/unsupported/mail2/composer.h7
-rw-r--r--noncore/unsupported/mail2/composerbase.cpp3
-rw-r--r--noncore/unsupported/mail2/composerbase.h2
-rw-r--r--noncore/unsupported/mail2/mainwindow.cpp10
-rw-r--r--noncore/unsupported/mail2/mainwindow.h1
-rw-r--r--noncore/unsupported/mail2/mainwindowbase.cpp3
-rw-r--r--noncore/unsupported/mail2/mainwindowbase.h2
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
@@ -1,60 +1,64 @@
1#include <qmultilineedit.h> 1#include <qmultilineedit.h>
2#include <qmessagebox.h> 2#include <qmessagebox.h>
3#include <qpopupmenu.h> 3#include <qpopupmenu.h>
4#include <qcombobox.h> 4#include <qcombobox.h>
5#include <qlineedit.h> 5#include <qlineedit.h>
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#include <qapplication.h>
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"
14#include "listviewplus.h" 15#include "listviewplus.h"
15#include "smtphandler.h" 16#include "smtphandler.h"
16#include "attachdiag.h" 17#include "attachdiag.h"
17#include "composer.h" 18#include "composer.h"
18#include "rename.h" 19#include "rename.h"
19 20
20AttachViewItem::AttachViewItem(QListView *parent, Attachment &attachment) 21AttachViewItem::AttachViewItem(QListView *parent, Attachment &attachment)
21 : QListViewItem(parent), _attachment(attachment) 22 : QListViewItem(parent), _attachment(attachment)
22{ 23{
23 setPixmap(0, _attachment.docLnk().pixmap().isNull() ? Resource::loadPixmap("UnknownDocument-14") : _attachment.docLnk().pixmap()); 24 setPixmap(0, _attachment.docLnk().pixmap().isNull() ? Resource::loadPixmap("UnknownDocument-14") : _attachment.docLnk().pixmap());
24 setText(0, _attachment.newName().isEmpty() ? _attachment.fileName() : _attachment.newName()); 25 setText(0, _attachment.newName().isEmpty() ? _attachment.fileName() : _attachment.newName());
25 setText(1, _attachment.description()); 26 setText(1, _attachment.description());
26} 27}
27 28
28Composer::Composer(QWidget *parent, const char *name, WFlags fl) 29Composer::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()));
37 connect(delattach, SIGNAL(activated()), SLOT(slotDelAttach())); 40 connect(delattach, SIGNAL(activated()), SLOT(slotDelAttach()));
38 41
39 connect(from, SIGNAL(activated(int)), SLOT(slotFromChanged(int))); 42 connect(from, SIGNAL(activated(int)), SLOT(slotFromChanged(int)));
40 43
41 connect(attachPopup, SIGNAL(activated(int)), SLOT(slotPopupHandler(int))); 44 connect(attachPopup, SIGNAL(activated(int)), SLOT(slotPopupHandler(int)));
42 45
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
47Composer::~Composer() 51Composer::~Composer()
48{ 52{
49 hide(); 53 hide();
50} 54}
51 55
52void Composer::hide() 56void Composer::hide()
53{ 57{
54 QWidget::hide(); 58 QWidget::hide();
55 59
56 if (_inLoop) { 60 if (_inLoop) {
57 _inLoop = false; 61 _inLoop = false;
58 qApp->exit_loop(); 62 qApp->exit_loop();
59 } 63 }
60} 64}
@@ -77,32 +81,37 @@ void Composer::setSendMail(SendMail &sendMail)
77 subject->setText(sendMail.subject()); 81 subject->setText(sendMail.subject());
78 message->setText(sendMail.message()); 82 message->setText(sendMail.message());
79 _inReplyTo = sendMail.inReplyTo(); 83 _inReplyTo = sendMail.inReplyTo();
80 84
81 QValueList<Attachment> attachments = sendMail.attachments(); 85 QValueList<Attachment> attachments = sendMail.attachments();
82 QValueList<Attachment>::Iterator it; 86 QValueList<Attachment>::Iterator it;
83 for (it = attachments.begin(); it != attachments.end(); it++) { 87 for (it = attachments.begin(); it != attachments.end(); it++) {
84 (void) new AttachViewItem(attachView, *it); 88 (void) new AttachViewItem(attachView, *it);
85 if (attachView->isHidden()) attachView->show(); 89 if (attachView->isHidden()) attachView->show();
86 } 90 }
87} 91}
88 92
89void Composer::slotResizing() 93void Composer::slotResizing()
90{ 94{
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
95void Composer::slotPopupHandler(int itemid) 104void Composer::slotPopupHandler(int itemid)
96{ 105{
97 if (attachView->currentItem() == NULL) { 106 if (attachView->currentItem() == NULL) {
98 QMessageBox::information(this, tr("Error"), tr("Please select an entry first."), tr("Ok")); 107 QMessageBox::information(this, tr("Error"), tr("Please select an entry first."), tr("Ok"));
99 return; 108 return;
100 } 109 }
101 110
102 if (itemid == POPUP_ATTACH_RENAME) { 111 if (itemid == POPUP_ATTACH_RENAME) {
103 QString tmp = Rename::rename(attachView->currentItem()->text(0), this); 112 QString tmp = Rename::rename(attachView->currentItem()->text(0), this);
104 if (tmp != QString(0)) attachView->currentItem()->setText(0, tmp); 113 if (tmp != QString(0)) attachView->currentItem()->setText(0, tmp);
105 } else if (itemid == POPUP_ATTACH_DESC) { 114 } else if (itemid == POPUP_ATTACH_DESC) {
106 QString tmp = Rename::getText(tr("Set Description"), tr("<div align=center>Description"), this); 115 QString tmp = Rename::getText(tr("Set Description"), tr("<div align=center>Description"), this);
107 if (tmp != QString(0)) attachView->currentItem()->setText(1, tmp); 116 if (tmp != QString(0)) attachView->currentItem()->setText(1, tmp);
108 } else if (itemid == POPUP_ATTACH_REMOVE) { 117 } else if (itemid == POPUP_ATTACH_REMOVE) {
@@ -143,32 +152,170 @@ void Composer::slotSendMail()
143 } 152 }
144 153
145 smail.setAttachments(attachments); 154 smail.setAttachments(attachments);
146 155
147 QString header, message; 156 QString header, message;
148 MailFactory::genMail(header, message, smail, this); 157 MailFactory::genMail(header, message, smail, this);
149 if (header.isNull() || message.isNull()) return;// Aborted. 158 if (header.isNull() || message.isNull()) return;// Aborted.
150 159
151 abort->setEnabled(true); 160 abort->setEnabled(true);
152 161
153 SmtpHandler *handler = new SmtpHandler(header, message, accountsLoaded[from->currentItem()], to->text()); 162 SmtpHandler *handler = new SmtpHandler(header, message, accountsLoaded[from->currentItem()], to->text());
154 connect(handler, SIGNAL(finished()), SLOT(slotSendFinished())); 163 connect(handler, SIGNAL(finished()), SLOT(slotSendFinished()));
155 connect(handler, SIGNAL(error(const QString &)), SLOT(slotSendError(const QString &))); 164 connect(handler, SIGNAL(error(const QString &)), SLOT(slotSendError(const QString &)));
156 connect(handler, SIGNAL(status(const QString &)), status, SLOT(setText(const QString &))); 165 connect(handler, SIGNAL(status(const QString &)), status, SLOT(setText(const QString &)));
157} 166}
158 167
168void 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
262void 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
159void Composer::slotSendError(const QString &error) 306void Composer::slotSendError(const QString &error)
160{ 307{
161 status->setText(tr("<font color=#ff0000>Error occoured during sending.</font>")); 308 status->setText(tr("<font color=#ff0000>Error occoured during sending.</font>"));
162 QMessageBox::warning(this, tr("Error"), tr("<p>%1</p").arg(error), tr("Ok")); 309 QMessageBox::warning(this, tr("Error"), tr("<p>%1</p").arg(error), tr("Ok"));
163} 310}
164 311
165void Composer::slotSendFinished() 312void Composer::slotSendFinished()
166{ 313{
167 QMessageBox::information(this, tr("Success"), tr("<p>The mail was sent successfully.</p>"), tr("Ok")); 314 QMessageBox::information(this, tr("Success"), tr("<p>The mail was sent successfully.</p>"), tr("Ok"));
168 315
169 status->setText(QString(0)); 316 status->setText(QString(0));
170 abort->setEnabled(false); 317 abort->setEnabled(false);
171} 318}
172 319
173void Composer::slotFillStuff() 320void Composer::slotFillStuff()
174{ 321{
@@ -228,17 +375,16 @@ void Composer::slotAddAttach()
228 DocLnk lnk = AttachDiag::getFile(this); 375 DocLnk lnk = AttachDiag::getFile(this);
229 if (lnk.name().isEmpty()) return; 376 if (lnk.name().isEmpty()) return;
230 377
231 Attachment attachment; 378 Attachment attachment;
232 attachment.setFileName(lnk.file()); 379 attachment.setFileName(lnk.file());
233 attachment.setNewName(lnk.name()); 380 attachment.setNewName(lnk.name());
234 attachment.setDocLnk(lnk); 381 attachment.setDocLnk(lnk);
235 382
236 (void) new AttachViewItem(attachView, attachment); 383 (void) new AttachViewItem(attachView, attachment);
237} 384}
238 385
239void Composer::slotDelAttach() 386void Composer::slotDelAttach()
240{ 387{
241 if (attachView->currentItem() == NULL) return; 388 if (attachView->currentItem() == NULL) return;
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
@@ -12,46 +12,51 @@ class AttachViewItem : public QListViewItem
12{ 12{
13public: 13public:
14 AttachViewItem(QListView *parent, Attachment &attachment); 14 AttachViewItem(QListView *parent, Attachment &attachment);
15 15
16 Attachment attachment() { return _attachment; } 16 Attachment attachment() { return _attachment; }
17 17
18private: 18private:
19 Attachment _attachment; 19 Attachment _attachment;
20 20
21}; 21};
22 22
23class Composer : public ComposerBase 23class Composer : public ComposerBase
24{ 24{
25 Q_OBJECT 25 Q_OBJECT
26 26
27public: 27public:
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
31 void hide(); 31 void hide();
32 void exec(); 32 void exec();
33 33
34 void setSendMail(SendMail &sendMail); 34 void setSendMail(SendMail &sendMail);
35 35
36public slots:
37 void slotSendQueued();
38
36protected slots: 39protected 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();
41 void slotResizing(); 45 void slotResizing();
42 void slotFillStuff(); 46 void slotFillStuff();
43 void slotFromChanged(int id); 47 void slotFromChanged(int id);
44 void slotOpenAddressPicker(); 48 void slotOpenAddressPicker();
45 void slotAddAttach(); 49 void slotAddAttach();
46 void slotDelAttach(); 50 void slotDelAttach();
47 51
48protected: 52protected:
49 QValueList<Account> accountsLoaded; 53 QValueList<Account> accountsLoaded;
50 54
51private: 55private:
56 bool _sendQueued;
52 bool _inLoop; 57 bool _inLoop;
53 QString _inReplyTo; 58 QString _inReplyTo;
54 59
55}; 60};
56 61
57#endif 62#endif
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
@@ -13,32 +13,35 @@
13#include "listviewplus.h" 13#include "listviewplus.h"
14#include "composerbase.h" 14#include "composerbase.h"
15 15
16ComposerBase::ComposerBase(QWidget *parent, const char *name, WFlags fl) 16ComposerBase::ComposerBase(QWidget *parent, const char *name, WFlags fl)
17 : QMainWindow(parent, name, fl) 17 : QMainWindow(parent, name, fl)
18{ 18{
19 setCaption(tr("Compose Message")); 19 setCaption(tr("Compose Message"));
20 setToolBarsMovable(false); 20 setToolBarsMovable(false);
21 21
22 toolbar = new QPEToolBar(this); 22 toolbar = new QPEToolBar(this);
23 addToolBar(toolbar); 23 addToolBar(toolbar);
24 toolbar->setHorizontalStretchable(true); 24 toolbar->setHorizontalStretchable(true);
25 25
26 sendmail = new QAction(tr("Send the mail"), QIconSet(Resource::loadPixmap("mail/sendmail")), 0, 0, this); 26 sendmail = new QAction(tr("Send the mail"), QIconSet(Resource::loadPixmap("mail/sendmail")), 0, 0, this);
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);
31 connect(attachfile, SIGNAL(toggled(bool)), SLOT(slotAttachfileChanged(bool))); 34 connect(attachfile, SIGNAL(toggled(bool)), SLOT(slotAttachfileChanged(bool)));
32 35
33 addressbook = new QAction(tr("Addressbook"), QIconSet(Resource::loadPixmap("mail/addbook")), 0, 0, this); 36 addressbook = new QAction(tr("Addressbook"), QIconSet(Resource::loadPixmap("mail/addbook")), 0, 0, this);
34 addressbook->addTo(toolbar); 37 addressbook->addTo(toolbar);
35 38
36 QLabel *spacer = new QLabel(toolbar); 39 QLabel *spacer = new QLabel(toolbar);
37 spacer->setBackgroundMode(QWidget::PaletteButton); 40 spacer->setBackgroundMode(QWidget::PaletteButton);
38 toolbar->setStretchableWidget(spacer); 41 toolbar->setStretchableWidget(spacer);
39 42
40 abort = new QAction(tr("Abort sending"), QIconSet(Resource::loadPixmap("mail/abort")), 0, 0, this); 43 abort = new QAction(tr("Abort sending"), QIconSet(Resource::loadPixmap("mail/abort")), 0, 0, this);
41 abort->addTo(toolbar); 44 abort->addTo(toolbar);
42 45
43 QWidget *main = new QWidget(this); 46 QWidget *main = new QWidget(this);
44 setCentralWidget(main); 47 setCentralWidget(main);
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
@@ -28,28 +28,28 @@ protected:
28 static const int POPUP_SUBJ_SUBJECT = 0; 28 static const int POPUP_SUBJ_SUBJECT = 0;
29 static const int POPUP_SUBJ_PRIORITY = 1; 29 static const int POPUP_SUBJ_PRIORITY = 1;
30 static const int POPUP_PRIO_LOW = 0; 30 static const int POPUP_PRIO_LOW = 0;
31 static const int POPUP_PRIO_NORMAL = 1; 31 static const int POPUP_PRIO_NORMAL = 1;
32 static const int POPUP_PRIO_HIGH = 2; 32 static const int POPUP_PRIO_HIGH = 2;
33 static const int POPUP_ATTACH_RENAME = 0; 33 static const int POPUP_ATTACH_RENAME = 0;
34 static const int POPUP_ATTACH_DESC = 1; 34 static const int POPUP_ATTACH_DESC = 1;
35 static const int POPUP_ATTACH_REMOVE = 2; 35 static const int POPUP_ATTACH_REMOVE = 2;
36 36
37 QMultiLineEdit *message; 37 QMultiLineEdit *message;
38 ListViewPlus *attachView; 38 ListViewPlus *attachView;
39 QMainWindow *attachWindow; 39 QMainWindow *attachWindow;
40 QPopupMenu *attachPopup; 40 QPopupMenu *attachPopup;
41 QPEToolBar *toolbar, *attachToolbar; 41 QPEToolBar *toolbar, *attachToolbar;
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
47protected slots: 47protected slots:
48 void slotAttachfileChanged(bool toggled); 48 void slotAttachfileChanged(bool toggled);
49 void slotFromMenuChanged(int id); 49 void slotFromMenuChanged(int id);
50 void slotReceiverMenuChanged(int id); 50 void slotReceiverMenuChanged(int id);
51 void slotSubjectMenuChanged(int id); 51 void slotSubjectMenuChanged(int id);
52 52
53}; 53};
54 54
55#endif 55#endif
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
@@ -17,43 +17,53 @@ MainWindow::MainWindow(QWidget *parent, const char *name, WFlags fl)
17{ 17{
18 stop->setEnabled(false); 18 stop->setEnabled(false);
19 19
20 connect(folderView, SIGNAL(status(const QString &)), statusLabel, SLOT(setText(const QString &))); 20 connect(folderView, SIGNAL(status(const QString &)), statusLabel, SLOT(setText(const QString &)));
21 connect(folderView, SIGNAL(folderSelected(Folder)), mailView, SLOT(setFolder(Folder))); 21 connect(folderView, SIGNAL(folderSelected(Folder)), mailView, SLOT(setFolder(Folder)));
22 22
23 connect(mailView, SIGNAL(mailClicked(IMAPResponseFETCH, IMAPHandler *)), SLOT(mailClicked(IMAPResponseFETCH, IMAPHandler *))); 23 connect(mailView, SIGNAL(mailClicked(IMAPResponseFETCH, IMAPHandler *)), SLOT(mailClicked(IMAPResponseFETCH, IMAPHandler *)));
24 connect(mailView, SIGNAL(status(const QString &)), statusLabel, SLOT(setText(const QString &))); 24 connect(mailView, SIGNAL(status(const QString &)), statusLabel, SLOT(setText(const QString &)));
25 connect(mailView, SIGNAL(totalSteps(int)), statusProgress, SLOT(setTotalSteps(int))); 25 connect(mailView, SIGNAL(totalSteps(int)), statusProgress, SLOT(setTotalSteps(int)));
26 connect(mailView, SIGNAL(progress(int)), statusProgress, SLOT(setProgress(int))); 26 connect(mailView, SIGNAL(progress(int)), statusProgress, SLOT(setProgress(int)));
27 connect(mailView, SIGNAL(resetProgress()), statusProgress, SLOT(reset())); 27 connect(mailView, SIGNAL(resetProgress()), statusProgress, SLOT(reset()));
28 connect(mailView, SIGNAL(stopEnabled(bool)), stop, SLOT(setEnabled(bool))); 28 connect(mailView, SIGNAL(stopEnabled(bool)), stop, SLOT(setEnabled(bool)));
29 29
30 connect(stop, SIGNAL(activated()), mailView, SLOT(stop())); 30 connect(stop, SIGNAL(activated()), mailView, SLOT(stop()));
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()));
35} 36}
36 37
37void MainWindow::slotCompose() 38void MainWindow::slotCompose()
38{ 39{
39 Composer composer(this, 0, true); 40 Composer composer(this, 0, true);
40 composer.showMaximized(); 41 composer.showMaximized();
41 composer.exec(); 42 composer.exec();
42} 43}
43 44
45void MainWindow::slotSendQueued()
46{
47 Composer composer(this, 0, true, true);
48 // composer.sendQueue();
49 composer.showMaximized();
50 composer.exec();
51 //composer.close();
52}
53
44void MainWindow::slotSearch() 54void MainWindow::slotSearch()
45{ 55{
46 SearchDiag searchDiag(this, 0, true); 56 SearchDiag searchDiag(this, 0, true);
47 searchDiag.showMaximized(); 57 searchDiag.showMaximized();
48 searchDiag.exec(); 58 searchDiag.exec();
49} 59}
50 60
51void MainWindow::slotConfigure() 61void MainWindow::slotConfigure()
52{ 62{
53 ConfigDiag configDiag(this, 0, true); 63 ConfigDiag configDiag(this, 0, true);
54 configDiag.showMaximized(); 64 configDiag.showMaximized();
55 configDiag.exec(); 65 configDiag.exec();
56 66
57 connect(&configDiag, SIGNAL(changed()), folderView, SLOT(update())); 67 connect(&configDiag, SIGNAL(changed()), folderView, SLOT(update()));
58} 68}
59 69
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
@@ -2,23 +2,24 @@
2#define MAINWINDOW_H 2#define MAINWINDOW_H
3 3
4#include "mainwindowbase.h" 4#include "mainwindowbase.h"
5 5
6class IMAPHandler; 6class IMAPHandler;
7class IMAPResponseFETCH; 7class IMAPResponseFETCH;
8 8
9class MainWindow : public MainWindowBase 9class MainWindow : public MainWindowBase
10{ 10{
11 Q_OBJECT 11 Q_OBJECT
12 12
13public: 13public:
14 MainWindow(QWidget *parent = 0, const char *name = 0, WFlags fl = 0); 14 MainWindow(QWidget *parent = 0, const char *name = 0, WFlags fl = 0);
15 15
16protected slots: 16protected slots:
17 void slotCompose(); 17 void slotCompose();
18 void slotSendQueued();
18 void slotSearch(); 19 void slotSearch();
19 void slotConfigure(); 20 void slotConfigure();
20 void mailClicked(IMAPResponseFETCH mail, IMAPHandler *handler); 21 void mailClicked(IMAPResponseFETCH mail, IMAPHandler *handler);
21 22
22}; 23};
23 24
24#endif 25#endif
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
@@ -13,32 +13,35 @@
13#include "folderwidget.h" 13#include "folderwidget.h"
14#include "mailtable.h" 14#include "mailtable.h"
15 15
16MainWindowBase::MainWindowBase(QWidget *parent, const char *name, WFlags fl) 16MainWindowBase::MainWindowBase(QWidget *parent, const char *name, WFlags fl)
17 : QMainWindow(parent, name, fl) 17 : QMainWindow(parent, name, fl)
18{ 18{
19 setCaption(tr("E-Mail")); 19 setCaption(tr("E-Mail"));
20 setToolBarsMovable(false); 20 setToolBarsMovable(false);
21 21
22 toolbar = new QPEToolBar(this); 22 toolbar = new QPEToolBar(this);
23 addToolBar(toolbar); 23 addToolBar(toolbar);
24 toolbar->setHorizontalStretchable(true); 24 toolbar->setHorizontalStretchable(true);
25 25
26 compose = new QAction(tr("Compose new mail"), QIconSet(Resource::loadPixmap("mail/newmail")), 0, 0, this); 26 compose = new QAction(tr("Compose new mail"), QIconSet(Resource::loadPixmap("mail/newmail")), 0, 0, this);
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);
31 connect(folders, SIGNAL(toggled(bool)), SLOT(slotFoldersToggled(bool))); 34 connect(folders, SIGNAL(toggled(bool)), SLOT(slotFoldersToggled(bool)));
32 35
33 findmails = new QAction(tr("Search mails"), QIconSet(Resource::loadPixmap("mail/find")), 0, 0, this); 36 findmails = new QAction(tr("Search mails"), QIconSet(Resource::loadPixmap("mail/find")), 0, 0, this);
34 findmails->addTo(toolbar); 37 findmails->addTo(toolbar);
35 38
36 configure = new QAction(tr("Configuration"), QIconSet(Resource::loadPixmap("mail/configure")), 0, 0, this); 39 configure = new QAction(tr("Configuration"), QIconSet(Resource::loadPixmap("mail/configure")), 0, 0, this);
37 configure->addTo(toolbar); 40 configure->addTo(toolbar);
38 41
39 QLabel *spacer = new QLabel(toolbar); 42 QLabel *spacer = new QLabel(toolbar);
40 spacer->setBackgroundMode(QWidget::PaletteButton); 43 spacer->setBackgroundMode(QWidget::PaletteButton);
41 toolbar->setStretchableWidget(spacer); 44 toolbar->setStretchableWidget(spacer);
42 45
43 stop = new QAction(tr("Abort"), QIconSet(Resource::loadPixmap("mail/abort")), 0, 0, this); 46 stop = new QAction(tr("Abort"), QIconSet(Resource::loadPixmap("mail/abort")), 0, 0, this);
44 stop->addTo(toolbar); 47 stop->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
@@ -14,22 +14,22 @@ class QLabel;
14class MainWindowBase : public QMainWindow 14class MainWindowBase : public QMainWindow
15{ 15{
16 Q_OBJECT 16 Q_OBJECT
17 17
18public: 18public:
19 MainWindowBase(QWidget *parent = 0, const char *name = 0, WFlags fl = 0); 19 MainWindowBase(QWidget *parent = 0, const char *name = 0, WFlags fl = 0);
20 20
21protected slots: 21protected slots:
22 void slotFoldersToggled(bool toggled); 22 void slotFoldersToggled(bool toggled);
23 23
24protected: 24protected:
25 ServerConnection *serverConnection; 25 ServerConnection *serverConnection;
26 QProgressBar *statusProgress; 26 QProgressBar *statusProgress;
27 FolderWidget *folderView; 27 FolderWidget *folderView;
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
33}; 33};
34 34
35#endif 35#endif