author | leseb <leseb> | 2002-06-17 20:52:48 (UTC) |
---|---|---|
committer | leseb <leseb> | 2002-06-17 20:52:48 (UTC) |
commit | b177eb4a659c674d1bc3ab82d6d980aade7c0959 (patch) (unidiff) | |
tree | 4ba2aee9db13423e37ae0a8051d80c010f815666 | |
parent | 7ba6590093fb86fe4bf64839d3a517dd396853a3 (diff) | |
download | opie-b177eb4a659c674d1bc3ab82d6d980aade7c0959.zip opie-b177eb4a659c674d1bc3ab82d6d980aade7c0959.tar.gz opie-b177eb4a659c674d1bc3ab82d6d980aade7c0959.tar.bz2 |
Fix some bugs when dealing with attachments
-rw-r--r-- | noncore/unsupported/mail2/attachdiag.cpp | 23 | ||||
-rw-r--r-- | noncore/unsupported/mail2/attachdiag.h | 9 | ||||
-rw-r--r-- | noncore/unsupported/mail2/composer.cpp | 4 | ||||
-rw-r--r-- | noncore/unsupported/mail2/libmail/mailfactory.cpp | 2 | ||||
-rw-r--r-- | noncore/unsupported/mail2/libmail/mailfactory.h | 6 |
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 | ||
13 | AttachDiag::AttachDiag(QWidget* parent = 0, const char* name = 0, bool modal, WFlags fl = 0) | 14 | AttachDiag::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 | ||
53 | void AttachDiag::fileSelected(const DocLnk &file) | 50 | DocLnk AttachDiag::selectedFile() |
54 | { | 51 | { |
55 | currentFile = file; | 52 | return *_fileSelector->selected(); |
56 | } | 53 | } |
57 | 54 | ||
58 | DocLnk AttachDiag::getFile(QWidget *parent) | 55 | DocLnk 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> | 6 | class DocLnk; |
7 | class FileSelector; | ||
7 | 8 | ||
8 | class AttachDiag : public QDialog | 9 | class AttachDiag : public QDialog |
9 | { | 10 | { |
10 | Q_OBJECT | 11 | Q_OBJECT |
11 | 12 | ||
12 | public: | 13 | public: |
14 | DocLnk selectedFile(); | ||
13 | static DocLnk getFile(QWidget *parent); | 15 | static DocLnk getFile(QWidget *parent); |
14 | 16 | ||
15 | protected: | 17 | protected: |
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 | ||
18 | private slots: | ||
19 | void fileSelected(const DocLnk &); | ||
20 | |||
21 | private: | 20 | private: |
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,71 +1,71 @@ | |||
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 | ||
20 | AttachViewItem::AttachViewItem(QListView *parent, Attachment &attachment) | 20 | AttachViewItem::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 | ||
28 | Composer::Composer(QWidget *parent, const char *name, WFlags fl) | 28 | Composer::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 | ||
47 | Composer::~Composer() | 47 | Composer::~Composer() |
48 | { | 48 | { |
49 | hide(); | 49 | hide(); |
50 | } | 50 | } |
51 | 51 | ||
52 | void Composer::hide() | 52 | void Composer::hide() |
53 | { | 53 | { |
54 | QWidget::hide(); | 54 | QWidget::hide(); |
55 | 55 | ||
56 | if (_inLoop) { | 56 | if (_inLoop) { |
57 | _inLoop = false; | 57 | _inLoop = false; |
58 | qApp->exit_loop(); | 58 | qApp->exit_loop(); |
59 | } | 59 | } |
60 | } | 60 | } |
61 | 61 | ||
62 | void Composer::exec() | 62 | void Composer::exec() |
63 | { | 63 | { |
64 | show(); | 64 | show(); |
65 | 65 | ||
66 | if (!_inLoop) { | 66 | if (!_inLoop) { |
67 | _inLoop = true; | 67 | _inLoop = true; |
68 | qApp->enter_loop(); | 68 | qApp->enter_loop(); |
69 | } | 69 | } |
70 | } | 70 | } |
71 | 71 | ||
@@ -186,59 +186,59 @@ void Composer::slotFillStuff() | |||
186 | accountsLoaded.append(*it); | 186 | accountsLoaded.append(*it); |
187 | i++; | 187 | i++; |
188 | } | 188 | } |
189 | } | 189 | } |
190 | } | 190 | } |
191 | 191 | ||
192 | void Composer::slotFromChanged(int id) | 192 | void Composer::slotFromChanged(int id) |
193 | { | 193 | { |
194 | Account account = accountsLoaded[id]; | 194 | Account account = accountsLoaded[id]; |
195 | 195 | ||
196 | if (account.defaultCc()) cc->setText(account.cc()); | 196 | if (account.defaultCc()) cc->setText(account.cc()); |
197 | if (account.defaultBcc()) bcc->setText(account.bcc()); | 197 | if (account.defaultBcc()) bcc->setText(account.bcc()); |
198 | if (account.defaultReplyTo()) replyto->setText(account.replyTo()); | 198 | if (account.defaultReplyTo()) replyto->setText(account.replyTo()); |
199 | if (!account.signature().isEmpty()) | 199 | if (!account.signature().isEmpty()) |
200 | message->setText(message->text() + "\n\n-- \n" + account.signature()); | 200 | message->setText(message->text() + "\n\n-- \n" + account.signature()); |
201 | } | 201 | } |
202 | 202 | ||
203 | void Composer::slotOpenAddressPicker() | 203 | void Composer::slotOpenAddressPicker() |
204 | { | 204 | { |
205 | if (!to->isHidden() && cc->isHidden() && bcc->isHidden()) { | 205 | if (!to->isHidden() && cc->isHidden() && bcc->isHidden()) { |
206 | if (to->text().isEmpty()) { | 206 | if (to->text().isEmpty()) { |
207 | to->setText(AddressPicker::getNames()); | 207 | to->setText(AddressPicker::getNames()); |
208 | } else { | 208 | } else { |
209 | to->setText(to->text() + ", " + AddressPicker::getNames()); | 209 | to->setText(to->text() + ", " + AddressPicker::getNames()); |
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 | ||
226 | void Composer::slotAddAttach() | 226 | void 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 | ||
239 | void Composer::slotDelAttach() | 239 | void 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 | |||
@@ -41,97 +41,97 @@ MailFactory::MailFactory(SendMail &smail, QWidget *parent) | |||
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 != 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) { |
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 | /* |
121 | void MailFactory::openPgpEncrypt(const QString &text, QString &header, QString &body) | 121 | void 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 | ||
136 | void MailFactory::openPgpSign(const QString &text, QString &header, QString &body) | 136 | void MailFactory::openPgpSign(const QString &text, QString &header, QString &body) |
137 | { | 137 | { |
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,73 +1,73 @@ | |||
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 | ||
10 | class Attachment | 10 | class Attachment |
11 | { | 11 | { |
12 | public: | 12 | public: |
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 | ||
23 | protected: | 23 | protected: |
24 | QString _fileName, _newName, _description; | 24 | QString _fileName, _newName, _description; |
25 | DocLnk *_docLnk; | 25 | DocLnk _docLnk; |
26 | 26 | ||
27 | }; | 27 | }; |
28 | 28 | ||
29 | class SendMail | 29 | class SendMail |
30 | { | 30 | { |
31 | public: | 31 | public: |
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; } |
50 | //void setGpgReceivers(QValueList<GpgKey> receivers) { _receivers = receivers; } | 50 | //void setGpgReceivers(QValueList<GpgKey> receivers) { _receivers = receivers; } |
51 | //void setGpgPassphrase(QString passphrase) { _passphrase = passphrase; } | 51 | //void setGpgPassphrase(QString passphrase) { _passphrase = passphrase; } |
52 | 52 | ||
53 | void setAttachments(QValueList<Attachment> attachments) { _attachments = attachments; } | 53 | void setAttachments(QValueList<Attachment> attachments) { _attachments = attachments; } |
54 | void addAttachment(Attachment attachment) { _attachments.append(attachment); } | 54 | void addAttachment(Attachment attachment) { _attachments.append(attachment); } |
55 | 55 | ||
56 | Account account() { return _account; } | 56 | Account account() { return _account; } |
57 | 57 | ||
58 | QString from() { return _from; } | 58 | QString from() { return _from; } |
59 | QString replyTo() { return _replyTo; } | 59 | QString replyTo() { return _replyTo; } |
60 | QString to() { return _to; } | 60 | QString to() { return _to; } |
61 | QString cc() { return _cc; } | 61 | QString cc() { return _cc; } |
62 | QString bcc() { return _bcc; } | 62 | QString bcc() { return _bcc; } |
63 | QString subject() { return _subject; } | 63 | QString subject() { return _subject; } |
64 | QString priority() { return _priority; } | 64 | QString priority() { return _priority; } |
65 | QString message() { return _message; } | 65 | QString message() { return _message; } |
66 | QString inReplyTo() { return _inReplyTo; } | 66 | QString inReplyTo() { return _inReplyTo; } |
67 | 67 | ||
68 | bool needsMime() { return _needsMime; } | 68 | bool needsMime() { return _needsMime; } |
69 | 69 | ||
70 | //bool encrypt() { return _encrypt; } | 70 | //bool encrypt() { return _encrypt; } |
71 | //bool sign() { return _sign; } | 71 | //bool sign() { return _sign; } |
72 | //QValueList<GpgKey> gpgReceivers() { return _receivers; } | 72 | //QValueList<GpgKey> gpgReceivers() { return _receivers; } |
73 | //QString gpgPassphrase() { return _passphrase; } | 73 | //QString gpgPassphrase() { return _passphrase; } |