summaryrefslogtreecommitdiff
path: root/noncore/unsupported/mail2
Unidiff
Diffstat (limited to 'noncore/unsupported/mail2') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/unsupported/mail2/attachdiag.cpp23
-rw-r--r--noncore/unsupported/mail2/attachdiag.h9
-rw-r--r--noncore/unsupported/mail2/composer.cpp4
-rw-r--r--noncore/unsupported/mail2/libmail/mailfactory.cpp2
-rw-r--r--noncore/unsupported/mail2/libmail/mailfactory.h6
5 files changed, 20 insertions, 24 deletions
diff --git a/noncore/unsupported/mail2/attachdiag.cpp b/noncore/unsupported/mail2/attachdiag.cpp
index 36e1948..446cfe5 100644
--- a/noncore/unsupported/mail2/attachdiag.cpp
+++ b/noncore/unsupported/mail2/attachdiag.cpp
@@ -1,71 +1,68 @@
1#include <qmessagebox.h> 1#include <qmessagebox.h>
2#include <qpushbutton.h> 2#include <qpushbutton.h>
3#include <qlistbox.h> 3#include <qlistbox.h>
4#include <qlayout.h> 4#include <qlayout.h>
5 5
6#include <qpe/applnk.h>
6#include <qpe/fileselector.h> 7#include <qpe/fileselector.h>
7#include <qpe/resource.h> 8#include <qpe/resource.h>
8 9
9#include <stdlib.h> 10#include <stdlib.h>
10 11
11#include "attachdiag.h" 12#include "attachdiag.h"
12 13
13AttachDiag::AttachDiag(QWidget* parent = 0, const char* name = 0, bool modal, WFlags fl = 0) 14AttachDiag::AttachDiag(QWidget* parent = 0, const char* name = 0, bool modal, WFlags fl = 0)
14 : QDialog(parent, name, modal, fl) 15 : QDialog(parent, name, modal, fl)
15{ 16{
16 setCaption(tr("Attach File")); 17 setCaption(tr("Attach File"));
17 18
18 QGridLayout *layout = new QGridLayout(this); 19 QGridLayout *layout = new QGridLayout(this);
19 layout->setSpacing(3); 20 layout->setSpacing(3);
20 layout->setMargin(4); 21 layout->setMargin(4);
21 22
22 FileSelector *fileSelector = new FileSelector("*", this, "FileSelector"); 23 _fileSelector = new FileSelector("*", this, "FileSelector");
23 fileSelector->setCloseVisible(false); 24 _fileSelector->setCloseVisible(false);
24 fileSelector->setNewVisible(false); 25 _fileSelector->setNewVisible(false);
25 26
26 layout->addMultiCellWidget(fileSelector, 0, 0, 0, 1); 27 layout->addMultiCellWidget(_fileSelector, 0, 0, 0, 1);
27 28
28 QPushButton *attachButton = new QPushButton(this); 29 QPushButton *attachButton = new QPushButton(this);
29 attachButton->setText(tr("Ok")); 30 attachButton->setText(tr("Ok"));
30 attachButton->setIconSet(Resource::loadPixmap("enter")); 31 attachButton->setIconSet(Resource::loadPixmap("enter"));
31 32
32 layout->addWidget(attachButton, 1, 0); 33 layout->addWidget(attachButton, 1, 0);
33 34
34 QPushButton *cancelButton = new QPushButton(this); 35 QPushButton *cancelButton = new QPushButton(this);
35 cancelButton->setText(tr("Cancel")); 36 cancelButton->setText(tr("Cancel"));
36 cancelButton->setIconSet(Resource::loadPixmap("editdelete")); 37 cancelButton->setIconSet(Resource::loadPixmap("editdelete"));
37 38
38 layout->addWidget(cancelButton, 1, 1); 39 layout->addWidget(cancelButton, 1, 1);
39 40
40 connect(fileSelector, SIGNAL(fileSelected(const DocLnk &)), SLOT(fileSelected(const DocLnk &)));
41 connect(attachButton, SIGNAL(clicked()), SLOT(accept())); 41 connect(attachButton, SIGNAL(clicked()), SLOT(accept()));
42 connect(cancelButton, SIGNAL(clicked()), SLOT(close())); 42 connect(cancelButton, SIGNAL(clicked()), SLOT(close()));
43 43
44 if (fileSelector->selected() != NULL) 44 if (_fileSelector->fileCount() == 0) {
45 currentFile = *fileSelector->selected();
46
47 if (fileSelector->fileCount() == 0) {
48 attachButton->setEnabled(false); 45 attachButton->setEnabled(false);
49 fileSelector->setEnabled(false); 46 _fileSelector->setEnabled(false);
50 } 47 }
51} 48}
52 49
53void AttachDiag::fileSelected(const DocLnk &file) 50DocLnk AttachDiag::selectedFile()
54{ 51{
55 currentFile = file; 52 return *_fileSelector->selected();
56} 53}
57 54
58DocLnk AttachDiag::getFile(QWidget *parent) 55DocLnk AttachDiag::getFile(QWidget *parent)
59{ 56{
60 AttachDiag attach(parent, 0, true); 57 AttachDiag attach(parent, 0, true);
61 attach.showMaximized(); 58 attach.showMaximized();
62 attach.show(); 59 attach.show();
63 60
64 if (QDialog::Accepted == attach.exec()) { 61 if (QDialog::Accepted == attach.exec()) {
65 return attach.currentFile; 62 return attach.selectedFile();
66 } 63 }
67 64
68 return DocLnk(); 65 return DocLnk();
69 } 66 }
70 67
71 68
diff --git a/noncore/unsupported/mail2/attachdiag.h b/noncore/unsupported/mail2/attachdiag.h
index bce5b4b..88686bc 100644
--- a/noncore/unsupported/mail2/attachdiag.h
+++ b/noncore/unsupported/mail2/attachdiag.h
@@ -1,27 +1,26 @@
1#ifndef ATTACHDIAG_H 1#ifndef ATTACHDIAG_H
2#define ATTACHDIAG_H 2#define ATTACHDIAG_H
3 3
4#include <qdialog.h> 4#include <qdialog.h>
5 5
6#include <qpe/applnk.h> 6class DocLnk;
7class FileSelector;
7 8
8class AttachDiag : public QDialog 9class AttachDiag : public QDialog
9{ 10{
10 Q_OBJECT 11 Q_OBJECT
11 12
12public: 13public:
14 DocLnk selectedFile();
13 static DocLnk getFile(QWidget *parent); 15 static DocLnk getFile(QWidget *parent);
14 16
15protected: 17protected:
16 AttachDiag(QWidget *parent = 0, const char* name = 0, bool modal = false, WFlags fl = 0); 18 AttachDiag(QWidget *parent = 0, const char* name = 0, bool modal = false, WFlags fl = 0);
17 19
18private slots:
19 void fileSelected(const DocLnk &);
20
21private: 20private:
22 DocLnk currentFile; 21 FileSelector *_fileSelector;
23 22
24}; 23};
25 24
26#endif 25#endif
27 26
diff --git a/noncore/unsupported/mail2/composer.cpp b/noncore/unsupported/mail2/composer.cpp
index 7f65dba..c36d973 100644
--- a/noncore/unsupported/mail2/composer.cpp
+++ b/noncore/unsupported/mail2/composer.cpp
@@ -1,47 +1,47 @@
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 12
13#include "addresspicker.h" 13#include "addresspicker.h"
14#include "listviewplus.h" 14#include "listviewplus.h"
15#include "smtphandler.h" 15#include "smtphandler.h"
16#include "attachdiag.h" 16#include "attachdiag.h"
17#include "composer.h" 17#include "composer.h"
18#include "rename.h" 18#include "rename.h"
19 19
20AttachViewItem::AttachViewItem(QListView *parent, Attachment &attachment) 20AttachViewItem::AttachViewItem(QListView *parent, Attachment &attachment)
21 : QListViewItem(parent), _attachment(attachment) 21 : QListViewItem(parent), _attachment(attachment)
22{ 22{
23 setPixmap(0, _attachment.docLnk()->pixmap().isNull() ? Resource::loadPixmap("UnknownDocument-14") : _attachment.docLnk()->pixmap()); 23 setPixmap(0, _attachment.docLnk().pixmap().isNull() ? Resource::loadPixmap("UnknownDocument-14") : _attachment.docLnk().pixmap());
24 setText(0, _attachment.newName().isEmpty() ? _attachment.fileName() : _attachment.newName()); 24 setText(0, _attachment.newName().isEmpty() ? _attachment.fileName() : _attachment.newName());
25 setText(1, _attachment.description()); 25 setText(1, _attachment.description());
26} 26}
27 27
28Composer::Composer(QWidget *parent, const char *name, WFlags fl) 28Composer::Composer(QWidget *parent, const char *name, WFlags fl)
29 : ComposerBase(parent, name, fl), _inLoop(false) 29 : ComposerBase(parent, name, fl), _inLoop(false)
30{ 30{
31 abort->setEnabled(false); 31 abort->setEnabled(false);
32 to->setFocus(); 32 to->setFocus();
33 33
34 connect(sendmail, SIGNAL(activated()), SLOT(slotSendMail())); 34 connect(sendmail, SIGNAL(activated()), SLOT(slotSendMail()));
35 connect(addressbook, SIGNAL(activated()), SLOT(slotOpenAddressPicker())); 35 connect(addressbook, SIGNAL(activated()), SLOT(slotOpenAddressPicker()));
36 connect(addattach, SIGNAL(activated()), SLOT(slotAddAttach())); 36 connect(addattach, SIGNAL(activated()), SLOT(slotAddAttach()));
37 connect(delattach, SIGNAL(activated()), SLOT(slotDelAttach())); 37 connect(delattach, SIGNAL(activated()), SLOT(slotDelAttach()));
38 38
39 connect(from, SIGNAL(activated(int)), SLOT(slotFromChanged(int))); 39 connect(from, SIGNAL(activated(int)), SLOT(slotFromChanged(int)));
40 40
41 connect(attachPopup, SIGNAL(activated(int)), SLOT(slotPopupHandler(int))); 41 connect(attachPopup, SIGNAL(activated(int)), SLOT(slotPopupHandler(int)));
42 42
43 QTimer::singleShot(0, this, SLOT(slotFillStuff())); 43 QTimer::singleShot(0, this, SLOT(slotFillStuff()));
44 QTimer::singleShot(0, this, SLOT(slotResizing())); 44 QTimer::singleShot(0, this, SLOT(slotResizing()));
45} 45}
46 46
47Composer::~Composer() 47Composer::~Composer()
@@ -210,35 +210,35 @@ void Composer::slotOpenAddressPicker()
210 } 210 }
211 } else if (to->isHidden() && !cc->isHidden() && bcc->isHidden()) { 211 } else if (to->isHidden() && !cc->isHidden() && bcc->isHidden()) {
212 if (cc->text().isEmpty()) { 212 if (cc->text().isEmpty()) {
213 cc->setText(AddressPicker::getNames()); 213 cc->setText(AddressPicker::getNames());
214 } else { 214 } else {
215 cc->setText(cc->text() + ", " + AddressPicker::getNames()); 215 cc->setText(cc->text() + ", " + AddressPicker::getNames());
216 } 216 }
217 } else if (to->isHidden() && cc->isHidden() && !bcc->isHidden()) { 217 } else if (to->isHidden() && cc->isHidden() && !bcc->isHidden()) {
218 if (bcc->text().isEmpty()) { 218 if (bcc->text().isEmpty()) {
219 bcc->setText(AddressPicker::getNames()); 219 bcc->setText(AddressPicker::getNames());
220 } else { 220 } else {
221 bcc->setText(bcc->text() + ", " + AddressPicker::getNames()); 221 bcc->setText(bcc->text() + ", " + AddressPicker::getNames());
222 } 222 }
223 } 223 }
224} 224}
225 225
226void Composer::slotAddAttach() 226void Composer::slotAddAttach()
227{ 227{
228 DocLnk lnk = AttachDiag::getFile(this); 228 DocLnk lnk = AttachDiag::getFile(this);
229 if (lnk.name().isEmpty()) return; 229 if (lnk.name().isEmpty()) return;
230 230
231 Attachment attachment; 231 Attachment attachment;
232 attachment.setFileName(lnk.file()); 232 attachment.setFileName(lnk.file());
233 attachment.setNewName(lnk.name()); 233 attachment.setNewName(lnk.name());
234 attachment.setDocLnk(&lnk); 234 attachment.setDocLnk(lnk);
235 235
236 (void) new AttachViewItem(attachView, attachment); 236 (void) new AttachViewItem(attachView, attachment);
237} 237}
238 238
239void Composer::slotDelAttach() 239void Composer::slotDelAttach()
240{ 240{
241 if (attachView->currentItem() == NULL) return; 241 if (attachView->currentItem() == NULL) return;
242 attachView->takeItem(attachView->currentItem()); 242 attachView->takeItem(attachView->currentItem());
243} 243}
244 244
diff --git a/noncore/unsupported/mail2/libmail/mailfactory.cpp b/noncore/unsupported/mail2/libmail/mailfactory.cpp
index 6602919..e02f80f 100644
--- a/noncore/unsupported/mail2/libmail/mailfactory.cpp
+++ b/noncore/unsupported/mail2/libmail/mailfactory.cpp
@@ -65,49 +65,49 @@ MailFactory::MailFactory(SendMail &smail, QWidget *parent)
65 // QString header, body; 65 // QString header, body;
66 // openPgpSign(_smail.message(), header, body); 66 // openPgpSign(_smail.message(), header, body);
67 // _body += header + "\n" + body + "\n"; 67 // _body += header + "\n" + body + "\n";
68 // } else if (_smail.encrypt() && _smail.sign()) { 68 // } else if (_smail.encrypt() && _smail.sign()) {
69 // QString header, body; 69 // QString header, body;
70 // openPgpSignEncrypt(_smail.message(), header, body); 70 // openPgpSignEncrypt(_smail.message(), header, body);
71 // _body += header + "\n" + body + "\n"; 71 // _body += header + "\n" + body + "\n";
72 // } else { 72 // } else {
73 73
74 // TODO: Do proper charset handling! 74 // TODO: Do proper charset handling!
75 _body += "Content-Type: text/plain; charset=\"iso-8859-1\"\n"; 75 _body += "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
76 _body += "Content-Transfer-Encoding: 8bit\n\n"; 76 _body += "Content-Transfer-Encoding: 8bit\n\n";
77 _body += _smail.message() + "\n"; 77 _body += _smail.message() + "\n";
78 // } 78 // }
79 79
80 QValueList<Attachment> attachments = _smail.attachments(); 80 QValueList<Attachment> attachments = _smail.attachments();
81 QValueList<Attachment>::Iterator it; 81 QValueList<Attachment>::Iterator it;
82 for (it = attachments.begin(); it != attachments.end(); it++) { 82 for (it = attachments.begin(); it != attachments.end(); it++) {
83 QFile f((*it).fileName()); 83 QFile f((*it).fileName());
84 if (f.open(IO_ReadOnly)) { 84 if (f.open(IO_ReadOnly)) {
85 QTextStream t(&f); 85 QTextStream t(&f);
86 QString file; 86 QString file;
87 while (!t.atEnd()) file += t.readLine() + "\n"; 87 while (!t.atEnd()) file += t.readLine() + "\n";
88 f.close(); 88 f.close();
89 QString mimetype = (new MimeType(*(*it).docLnk()))->id(); 89 QString mimetype = (new MimeType((*it).docLnk()))->id();
90 90
91 _body += "\n--" + boundary + "\n"; 91 _body += "\n--" + boundary + "\n";
92 _body += "Content-Type: " + mimetype + "; name=\"" + (*it).newName() + "\"\n"; 92 _body += "Content-Type: " + mimetype + "; name=\"" + (*it).newName() + "\"\n";
93 93
94 // TODO: Decide which content transfer encoding is best. B64 for binary, QP for text. 94 // TODO: Decide which content transfer encoding is best. B64 for binary, QP for text.
95 _body += "Content-Transfer-Encoding: base64\n"; 95 _body += "Content-Transfer-Encoding: base64\n";
96 96
97 _body += "Content-Disposition: attachment; filename=\"" + (*it).newName() + "\"\n"; 97 _body += "Content-Disposition: attachment; filename=\"" + (*it).newName() + "\"\n";
98 if (!(*it).description().isEmpty()) 98 if (!(*it).description().isEmpty())
99 _body += "Content-Description: " + (*it).description() + "\n"; 99 _body += "Content-Description: " + (*it).description() + "\n";
100 100
101 _body += "\n" + MiscFunctions::encodeBase64(file) + "\n"; 101 _body += "\n" + MiscFunctions::encodeBase64(file) + "\n";
102 } else { 102 } else {
103 int ret = QMessageBox::critical(_parent, tr("Error"), tr("<p>Couldn't attach file '%1'. Continue anyway or abort?</p>").arg((*it).fileName()), tr("Continue"), tr("Abort")); 103 int ret = QMessageBox::critical(_parent, tr("Error"), tr("<p>Couldn't attach file '%1'. Continue anyway or abort?</p>").arg((*it).fileName()), tr("Continue"), tr("Abort"));
104 if (ret != 0) { 104 if (ret != 0) {
105 _abort = true; 105 _abort = true;
106 break; 106 break;
107 } 107 }
108 } 108 }
109 } 109 }
110 _body += "\n--" + boundary + "--"; 110 _body += "\n--" + boundary + "--";
111 } 111 }
112 112
113 if (_abort) { 113 if (_abort) {
diff --git a/noncore/unsupported/mail2/libmail/mailfactory.h b/noncore/unsupported/mail2/libmail/mailfactory.h
index 8f67447..c938c27 100644
--- a/noncore/unsupported/mail2/libmail/mailfactory.h
+++ b/noncore/unsupported/mail2/libmail/mailfactory.h
@@ -1,49 +1,49 @@
1#ifndef MAILFACTORY_H 1#ifndef MAILFACTORY_H
2#define MAILFACTORY_H 2#define MAILFACTORY_H
3 3
4#include <qobject.h> 4#include <qobject.h>
5 5
6#include <qpe/applnk.h> 6#include <qpe/applnk.h>
7 7
8#include "configfile.h" 8#include "configfile.h"
9 9
10class Attachment 10class Attachment
11{ 11{
12public: 12public:
13 void setFileName(QString fileName) { _fileName = fileName; } 13 void setFileName(QString fileName) { _fileName = fileName; }
14 void setNewName(QString newName) { _newName = newName; } 14 void setNewName(QString newName) { _newName = newName; }
15 void setDescription(QString description) { _description = description; } 15 void setDescription(QString description) { _description = description; }
16 void setDocLnk(DocLnk *docLnk) { _docLnk = docLnk; } 16 void setDocLnk(DocLnk docLnk) { _docLnk = docLnk; }
17 17
18 QString fileName() { return _fileName; } 18 QString fileName() { return _fileName; }
19 QString newName() { return _newName; } 19 QString newName() { return _newName; }
20 QString description() { return _description; } 20 QString description() { return _description; }
21 DocLnk *docLnk() { return _docLnk; } 21 DocLnk docLnk() { return _docLnk; }
22 22
23protected: 23protected:
24 QString _fileName, _newName, _description; 24 QString _fileName, _newName, _description;
25 DocLnk *_docLnk; 25 DocLnk _docLnk;
26 26
27}; 27};
28 28
29class SendMail 29class SendMail
30{ 30{
31public: 31public:
32 SendMail() { _needsMime = false; } 32 SendMail() { _needsMime = false; }
33 33
34 void setAccount(Account account) { _account = account; } 34 void setAccount(Account account) { _account = account; }
35 35
36 void setFrom(QString from) { _from = from; } 36 void setFrom(QString from) { _from = from; }
37 void setReplyTo(QString replyTo) { _replyTo = replyTo; } 37 void setReplyTo(QString replyTo) { _replyTo = replyTo; }
38 void setTo(QString to) { _to = to; } 38 void setTo(QString to) { _to = to; }
39 void setCc(QString cc) { _cc = cc; } 39 void setCc(QString cc) { _cc = cc; }
40 void setBcc(QString bcc) { _bcc = bcc; } 40 void setBcc(QString bcc) { _bcc = bcc; }
41 void setSubject(QString subject) { _subject = subject; } 41 void setSubject(QString subject) { _subject = subject; }
42 void setPriority(QString priority) { _priority = priority; } 42 void setPriority(QString priority) { _priority = priority; }
43 void setMessage(QString message) { _message = message; } 43 void setMessage(QString message) { _message = message; }
44 void setInReplyTo(QString inReplyTo) { _inReplyTo = inReplyTo; } 44 void setInReplyTo(QString inReplyTo) { _inReplyTo = inReplyTo; }
45 45
46 void setNeedsMime(bool needsMime) { _needsMime = needsMime; } 46 void setNeedsMime(bool needsMime) { _needsMime = needsMime; }
47 47
48 //void setEncrypt(bool encrypt) { _encrypt = encrypt; } 48 //void setEncrypt(bool encrypt) { _encrypt = encrypt; }
49 //void setSign(bool sign) { _sign = sign; } 49 //void setSign(bool sign) { _sign = sign; }