summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/unsupported/mail2/attachdiag.cpp4
-rw-r--r--noncore/unsupported/mail2/attachdiag.h2
-rw-r--r--noncore/unsupported/mail2/composer.cpp2
-rw-r--r--noncore/unsupported/mail2/libmail/mailfactory.cpp4
4 files changed, 6 insertions, 6 deletions
diff --git a/noncore/unsupported/mail2/attachdiag.cpp b/noncore/unsupported/mail2/attachdiag.cpp
index 6e6c3d4..bedf3c4 100644
--- a/noncore/unsupported/mail2/attachdiag.cpp
+++ b/noncore/unsupported/mail2/attachdiag.cpp
@@ -1,71 +1,71 @@
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/fileselector.h> 6#include <qpe/fileselector.h>
7#include <qpe/resource.h> 7#include <qpe/resource.h>
8 8
9#include <stdlib.h> 9#include <stdlib.h>
10 10
11#include "attachdiag.h" 11#include "attachdiag.h"
12 12
13AttachDiag::AttachDiag(QWidget* parent = 0, const char* name = 0, bool modal, WFlags fl = 0) 13AttachDiag::AttachDiag(QWidget* parent = 0, const char* name = 0, bool modal, WFlags fl = 0)
14 : QDialog(parent, name, modal, fl) 14 : QDialog(parent, name, modal, fl)
15{ 15{
16 setCaption(tr("Attach File")); 16 setCaption(tr("Attach File"));
17 17
18 QGridLayout *layout = new QGridLayout(this); 18 QGridLayout *layout = new QGridLayout(this);
19 layout->setSpacing(3); 19 layout->setSpacing(3);
20 layout->setMargin(4); 20 layout->setMargin(4);
21 21
22 FileSelector *fileSelector = new FileSelector("*", this, "FileSelector"); 22 FileSelector *fileSelector = new FileSelector("*", this, "FileSelector");
23 fileSelector->setCloseVisible(false); 23 fileSelector->setCloseVisible(false);
24 fileSelector->setNewVisible(false); 24 fileSelector->setNewVisible(false);
25 25
26 layout->addMultiCellWidget(fileSelector, 0, 0, 0, 1); 26 layout->addMultiCellWidget(fileSelector, 0, 0, 0, 1);
27 27
28 QPushButton *attachButton = new QPushButton(this); 28 QPushButton *attachButton = new QPushButton(this);
29 attachButton->setText(tr("Ok")); 29 attachButton->setText(tr("Ok"));
30 attachButton->setIconSet(Resource::loadPixmap("enter")); 30 attachButton->setIconSet(Resource::loadPixmap("enter"));
31 31
32 layout->addWidget(attachButton, 1, 0); 32 layout->addWidget(attachButton, 1, 0);
33 33
34 QPushButton *cancelButton = new QPushButton(this); 34 QPushButton *cancelButton = new QPushButton(this);
35 cancelButton->setText(tr("Cancel")); 35 cancelButton->setText(tr("Cancel"));
36 cancelButton->setIconSet(Resource::loadPixmap("editdelete")); 36 cancelButton->setIconSet(Resource::loadPixmap("editdelete"));
37 37
38 layout->addWidget(cancelButton, 1, 1); 38 layout->addWidget(cancelButton, 1, 1);
39 39
40 connect(fileSelector, SIGNAL(fileSelected(const DocLnk &)), SLOT(fileSelected(const DocLnk &))); 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->selected() != NULL)
45 currentFile = *fileSelector->selected(); 45 currentFile = *fileSelector->selected();
46 46
47 if (fileSelector->fileCount() == 0) { 47 if (fileSelector->fileCount() == 0) {
48 attachButton->setEnabled(false); 48 attachButton->setEnabled(false);
49 fileSelector->setEnabled(false); 49 fileSelector->setEnabled(false);
50 } 50 }
51} 51}
52 52
53void AttachDiag::fileSelected(const DocLnk &file) 53void AttachDiag::fileSelected(const DocLnk &file)
54{ 54{
55 currentFile = file; 55 currentFile = file;
56} 56}
57 57
58DocLnk AttachDiag::getFile() 58DocLnk AttachDiag::getFile(QWidget *parent)
59{ 59{
60 AttachDiag *attach = new AttachDiag(0, 0, true); 60 AttachDiag *attach = new AttachDiag(parent, 0, true);
61 attach->showMaximized(); 61 attach->showMaximized();
62 attach->show(); 62 attach->show();
63 63
64 if (QDialog::Accepted == attach->exec()) { 64 if (QDialog::Accepted == attach->exec()) {
65 return attach->currentFile; 65 return attach->currentFile;
66 } 66 }
67 67
68 return DocLnk(); 68 return DocLnk();
69 } 69 }
70 70
71 71
diff --git a/noncore/unsupported/mail2/attachdiag.h b/noncore/unsupported/mail2/attachdiag.h
index c673cfc..bce5b4b 100644
--- a/noncore/unsupported/mail2/attachdiag.h
+++ b/noncore/unsupported/mail2/attachdiag.h
@@ -1,27 +1,27 @@
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> 6#include <qpe/applnk.h>
7 7
8class AttachDiag : public QDialog 8class AttachDiag : public QDialog
9{ 9{
10 Q_OBJECT 10 Q_OBJECT
11 11
12public: 12public:
13 static DocLnk getFile(); 13 static DocLnk getFile(QWidget *parent);
14 14
15protected: 15protected:
16 AttachDiag(QWidget *parent = 0, const char* name = 0, bool modal = false, WFlags fl = 0); 16 AttachDiag(QWidget *parent = 0, const char* name = 0, bool modal = false, WFlags fl = 0);
17 17
18private slots: 18private slots:
19 void fileSelected(const DocLnk &); 19 void fileSelected(const DocLnk &);
20 20
21private: 21private:
22 DocLnk currentFile; 22 DocLnk currentFile;
23 23
24}; 24};
25 25
26#endif 26#endif
27 27
diff --git a/noncore/unsupported/mail2/composer.cpp b/noncore/unsupported/mail2/composer.cpp
index 57f0779..82ed117 100644
--- a/noncore/unsupported/mail2/composer.cpp
+++ b/noncore/unsupported/mail2/composer.cpp
@@ -138,81 +138,81 @@ void Composer::slotSendError(const QString &error)
138 138
139void Composer::slotSendFinished() 139void Composer::slotSendFinished()
140{ 140{
141 QMessageBox::information(this, tr("Success"), tr("<p>The mail was sent successfully.</p>"), tr("Ok")); 141 QMessageBox::information(this, tr("Success"), tr("<p>The mail was sent successfully.</p>"), tr("Ok"));
142 142
143 status->setText(QString(0)); 143 status->setText(QString(0));
144 abort->setEnabled(false); 144 abort->setEnabled(false);
145} 145}
146 146
147void Composer::slotFillStuff() 147void Composer::slotFillStuff()
148{ 148{
149 QValueList<Account> accounts = ConfigFile::getAccounts(); 149 QValueList<Account> accounts = ConfigFile::getAccounts();
150 int i = 0; 150 int i = 0;
151 151
152 QValueList<Account>::Iterator it; 152 QValueList<Account>::Iterator it;
153 for (it = accounts.begin(); it != accounts.end(); it++) { 153 for (it = accounts.begin(); it != accounts.end(); it++) {
154 if (!(*it).email().isEmpty() && !(*it).smtpServer().isEmpty() && !(*it).smtpPort().isEmpty()) { 154 if (!(*it).email().isEmpty() && !(*it).smtpServer().isEmpty() && !(*it).smtpPort().isEmpty()) {
155 if (!(*it).realName().isEmpty()) 155 if (!(*it).realName().isEmpty())
156 from->insertItem((*it).realName() + " <" + (*it).email() + ">", i); 156 from->insertItem((*it).realName() + " <" + (*it).email() + ">", i);
157 else 157 else
158 from->insertItem((*it).email()); 158 from->insertItem((*it).email());
159 159
160 accountsLoaded.append(*it); 160 accountsLoaded.append(*it);
161 i++; 161 i++;
162 } 162 }
163 } 163 }
164} 164}
165 165
166void Composer::slotFromChanged(int id) 166void Composer::slotFromChanged(int id)
167{ 167{
168 Account account = accountsLoaded[id]; 168 Account account = accountsLoaded[id];
169 169
170 if (account.defaultCc()) cc->setText(account.cc()); 170 if (account.defaultCc()) cc->setText(account.cc());
171 if (account.defaultBcc()) bcc->setText(account.bcc()); 171 if (account.defaultBcc()) bcc->setText(account.bcc());
172 if (account.defaultReplyTo()) replyto->setText(account.replyTo()); 172 if (account.defaultReplyTo()) replyto->setText(account.replyTo());
173 if (!account.signature().isEmpty()) 173 if (!account.signature().isEmpty())
174 message->setText(message->text() + "\n\n-- \n" + account.signature()); 174 message->setText(message->text() + "\n\n-- \n" + account.signature());
175} 175}
176 176
177void Composer::slotOpenAddressPicker() 177void Composer::slotOpenAddressPicker()
178{ 178{
179 if (!to->isHidden() && cc->isHidden() && bcc->isHidden()) { 179 if (!to->isHidden() && cc->isHidden() && bcc->isHidden()) {
180 if (to->text().isEmpty()) { 180 if (to->text().isEmpty()) {
181 to->setText(AddressPicker::getNames()); 181 to->setText(AddressPicker::getNames());
182 } else { 182 } else {
183 to->setText(to->text() + ", " + AddressPicker::getNames()); 183 to->setText(to->text() + ", " + AddressPicker::getNames());
184 } 184 }
185 } else if (to->isHidden() && !cc->isHidden() && bcc->isHidden()) { 185 } else if (to->isHidden() && !cc->isHidden() && bcc->isHidden()) {
186 if (cc->text().isEmpty()) { 186 if (cc->text().isEmpty()) {
187 cc->setText(AddressPicker::getNames()); 187 cc->setText(AddressPicker::getNames());
188 } else { 188 } else {
189 cc->setText(cc->text() + ", " + AddressPicker::getNames()); 189 cc->setText(cc->text() + ", " + AddressPicker::getNames());
190 } 190 }
191 } else if (to->isHidden() && cc->isHidden() && !bcc->isHidden()) { 191 } else if (to->isHidden() && cc->isHidden() && !bcc->isHidden()) {
192 if (bcc->text().isEmpty()) { 192 if (bcc->text().isEmpty()) {
193 bcc->setText(AddressPicker::getNames()); 193 bcc->setText(AddressPicker::getNames());
194 } else { 194 } else {
195 bcc->setText(bcc->text() + ", " + AddressPicker::getNames()); 195 bcc->setText(bcc->text() + ", " + AddressPicker::getNames());
196 } 196 }
197 } 197 }
198} 198}
199 199
200void Composer::slotAddAttach() 200void Composer::slotAddAttach()
201{ 201{
202 DocLnk lnk = AttachDiag::getFile(); 202 DocLnk lnk = AttachDiag::getFile(this);
203 if (lnk.name().isEmpty()) return; 203 if (lnk.name().isEmpty()) return;
204 204
205 Attachment attachment; 205 Attachment attachment;
206 attachment.setFileName(lnk.file()); 206 attachment.setFileName(lnk.file());
207 attachment.setNewName(lnk.name()); 207 attachment.setNewName(lnk.name());
208 attachment.setDocLnk(&lnk); 208 attachment.setDocLnk(&lnk);
209 209
210 (void) new AttachViewItem(attachView, attachment); 210 (void) new AttachViewItem(attachView, attachment);
211} 211}
212 212
213void Composer::slotDelAttach() 213void Composer::slotDelAttach()
214{ 214{
215 if (attachView->currentItem() == NULL) return; 215 if (attachView->currentItem() == NULL) return;
216 attachView->takeItem(attachView->currentItem()); 216 attachView->takeItem(attachView->currentItem());
217} 217}
218 218
diff --git a/noncore/unsupported/mail2/libmail/mailfactory.cpp b/noncore/unsupported/mail2/libmail/mailfactory.cpp
index 427e72c..6602919 100644
--- a/noncore/unsupported/mail2/libmail/mailfactory.cpp
+++ b/noncore/unsupported/mail2/libmail/mailfactory.cpp
@@ -40,131 +40,131 @@ MailFactory::MailFactory(SendMail &smail, QWidget *parent)
40 _header += (QString) "User-Agent: " + USERAGENT + "\n"; 40 _header += (QString) "User-Agent: " + USERAGENT + "\n";
41 41
42 if (!_smail.needsMime()) { 42 if (!_smail.needsMime()) {
43 // if (_smail.encrypt() && !_smail.sign()) { 43 // if (_smail.encrypt() && !_smail.sign()) {
44 // openPgpEncrypt(_smail.message(), _header, _body); 44 // openPgpEncrypt(_smail.message(), _header, _body);
45 // } else if (!_smail.encrypt() && _smail.sign()) { 45 // } else if (!_smail.encrypt() && _smail.sign()) {
46 // openPgpSign(_smail.message(), _header, _body); 46 // openPgpSign(_smail.message(), _header, _body);
47 // } else if (_smail.encrypt() && _smail.sign()) { 47 // } else if (_smail.encrypt() && _smail.sign()) {
48 // openPgpSignEncrypt(_smail.message(), _header, _body); 48 // openPgpSignEncrypt(_smail.message(), _header, _body);
49 // } else { 49 // } else {
50 _body += _smail.message(); 50 _body += _smail.message();
51 // } 51 // }
52 } else { 52 } else {
53 QString boundary = MiscFunctions::uniqueString(); 53 QString boundary = MiscFunctions::uniqueString();
54 54
55 _header += "Content-Type: multipart/mixed; boundary=\"" + boundary + "\"\n"; 55 _header += "Content-Type: multipart/mixed; boundary=\"" + boundary + "\"\n";
56 56
57 _body += "This is a multi-part message in MIME format.\n\n"; 57 _body += "This is a multi-part message in MIME format.\n\n";
58 _body += "--" + boundary + "\n"; 58 _body += "--" + boundary + "\n";
59 59
60 // if (_smail.encrypt() && !_smail.sign()) { 60 // if (_smail.encrypt() && !_smail.sign()) {
61 // QString header, body; 61 // QString header, body;
62 // openPgpEncrypt(_smail.message(), header, body); 62 // openPgpEncrypt(_smail.message(), header, body);
63 // _body += header + "\n" + body + "\n"; 63 // _body += header + "\n" + body + "\n";
64 // } else if (!_smail.encrypt() && _smail.sign()) { 64 // } else if (!_smail.encrypt() && _smail.sign()) {
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 == 1) { 104 if (ret != 0) {
105 it = attachments.end();
106 _abort = true; 105 _abort = true;
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) {
114 _body = QString(0); 114 _body = QString(0);
115 _header = QString(0); 115 _header = QString(0);
116 } 116 }
117} 117}
118 118
119// Unfinished GPG code. 119// Unfinished GPG code.
120/* 120/*
121void MailFactory::openPgpEncrypt(const QString &text, QString &header, QString &body) 121void MailFactory::openPgpEncrypt(const QString &text, QString &header, QString &body)
122{ 122{
123 QString boundary = MiscFunctions::uniqueString(); 123 QString boundary = MiscFunctions::uniqueString();
124 124
125 header += "Content-Type: multipart/encrypted; boundary=\"" + boundary + "\"; protocol=\"application/pgp-encrypted\"\n"; 125 header += "Content-Type: multipart/encrypted; boundary=\"" + boundary + "\"; protocol=\"application/pgp-encrypted\"\n";
126 126
127 body += "--" + boundary + "\n"; 127 body += "--" + boundary + "\n";
128 body += "Content-Type: application/pgp-encrypted\n\n"; 128 body += "Content-Type: application/pgp-encrypted\n\n";
129 body += "Version: 1\n\n"; 129 body += "Version: 1\n\n";
130 body += "--" + boundary + "\n"; 130 body += "--" + boundary + "\n";
131 body += "Content-Type: application/octet-stream\n\n"; 131 body += "Content-Type: application/octet-stream\n\n";
132 body += GpgHandling::encrypt(_smail.gpgReceivers(), text); 132 body += GpgHandling::encrypt(_smail.gpgReceivers(), text);
133 body += "\n--" + boundary + "--\n"; 133 body += "\n--" + boundary + "--\n";
134} 134}
135 135
136void MailFactory::openPgpSign(const QString &text, QString &header, QString &body) 136void MailFactory::openPgpSign(const QString &text, QString &header, QString &body)
137{ 137{
138 QString boundary = MiscFunctions::uniqueString(); 138 QString boundary = MiscFunctions::uniqueString();
139 139
140 header += "Content-Type: multipart/signed; boundary=\"" + boundary + "\"; protocol=\"application/pgp-signature\"\n"; 140 header += "Content-Type: multipart/signed; boundary=\"" + boundary + "\"; protocol=\"application/pgp-signature\"\n";
141 141
142 body += "--" + boundary + "\n"; 142 body += "--" + boundary + "\n";
143 143
144 QString temp; 144 QString temp;
145 temp += "Content-Type: text/plain; charset=\"iso-8859-1\"\n"; 145 temp += "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
146 temp += "Content-Transfer-Encoding: quoted-printable\n\n"; 146 temp += "Content-Transfer-Encoding: quoted-printable\n\n";
147 temp += MiscFunctions::encodeQPrintable(text) + "\n"; 147 temp += MiscFunctions::encodeQPrintable(text) + "\n";
148 body += temp; 148 body += temp;
149 149
150 temp.replace(QRegExp("\n"), "\r\n"); 150 temp.replace(QRegExp("\n"), "\r\n");
151 QString signature = GpgHandling::sign(temp, _parent); 151 QString signature = GpgHandling::sign(temp, _parent);
152 152
153 body += "\n--" + boundary + "\n"; 153 body += "\n--" + boundary + "\n";
154 body += "Content-Type: application/pgp-signature\n\n"; 154 body += "Content-Type: application/pgp-signature\n\n";
155 body += signature + "\n"; 155 body += signature + "\n";
156 body += "\n--" + boundary + "--\n"; 156 body += "\n--" + boundary + "--\n";
157} 157}
158 158
159void MailFactory::openPgpSignEncrypt(const QString &text, QString &header, QString &message) 159void MailFactory::openPgpSignEncrypt(const QString &text, QString &header, QString &message)
160{ 160{
161 QString header_, message_; 161 QString header_, message_;
162 openPgpSign(text, header_, message_); 162 openPgpSign(text, header_, message_);
163 openPgpEncrypt(header_ + "\n" + message_, header, message); 163 openPgpEncrypt(header_ + "\n" + message_, header, message);
164} 164}
165*/ 165*/
166void MailFactory::genMail(QString &header, QString &message, SendMail &smail, QWidget *parent) 166void MailFactory::genMail(QString &header, QString &message, SendMail &smail, QWidget *parent)
167{ 167{
168 MailFactory factory(smail, parent); 168 MailFactory factory(smail, parent);
169 169
170 header = factory._header; 170 header = factory._header;