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,244 +1,244 @@ | |||
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 | ||
72 | void Composer::setSendMail(SendMail &sendMail) | 72 | void Composer::setSendMail(SendMail &sendMail) |
73 | { | 73 | { |
74 | to->setText(sendMail.to()); | 74 | to->setText(sendMail.to()); |
75 | cc->setText(sendMail.cc()); | 75 | cc->setText(sendMail.cc()); |
76 | bcc->setText(sendMail.bcc()); | 76 | bcc->setText(sendMail.bcc()); |
77 | subject->setText(sendMail.subject()); | 77 | subject->setText(sendMail.subject()); |
78 | message->setText(sendMail.message()); | 78 | message->setText(sendMail.message()); |
79 | _inReplyTo = sendMail.inReplyTo(); | 79 | _inReplyTo = sendMail.inReplyTo(); |
80 | 80 | ||
81 | QValueList<Attachment> attachments = sendMail.attachments(); | 81 | QValueList<Attachment> attachments = sendMail.attachments(); |
82 | QValueList<Attachment>::Iterator it; | 82 | QValueList<Attachment>::Iterator it; |
83 | for (it = attachments.begin(); it != attachments.end(); it++) { | 83 | for (it = attachments.begin(); it != attachments.end(); it++) { |
84 | (void) new AttachViewItem(attachView, *it); | 84 | (void) new AttachViewItem(attachView, *it); |
85 | if (attachView->isHidden()) attachView->show(); | 85 | if (attachView->isHidden()) attachView->show(); |
86 | } | 86 | } |
87 | } | 87 | } |
88 | 88 | ||
89 | void Composer::slotResizing() | 89 | void Composer::slotResizing() |
90 | { | 90 | { |
91 | from->setMaximumWidth(width() - fromBox->width()); | 91 | from->setMaximumWidth(width() - fromBox->width()); |
92 | from->resize(width() - fromBox->width(), y()); | 92 | from->resize(width() - fromBox->width(), y()); |
93 | } | 93 | } |
94 | 94 | ||
95 | void Composer::slotPopupHandler(int itemid) | 95 | void Composer::slotPopupHandler(int itemid) |
96 | { | 96 | { |
97 | if (attachView->currentItem() == NULL) { | 97 | if (attachView->currentItem() == NULL) { |
98 | QMessageBox::information(this, tr("Error"), tr("Please select an entry first."), tr("Ok")); | 98 | QMessageBox::information(this, tr("Error"), tr("Please select an entry first."), tr("Ok")); |
99 | return; | 99 | return; |
100 | } | 100 | } |
101 | 101 | ||
102 | if (itemid == POPUP_ATTACH_RENAME) { | 102 | if (itemid == POPUP_ATTACH_RENAME) { |
103 | QString tmp = Rename::rename(attachView->currentItem()->text(0), this); | 103 | QString tmp = Rename::rename(attachView->currentItem()->text(0), this); |
104 | if (tmp != QString(0)) attachView->currentItem()->setText(0, tmp); | 104 | if (tmp != QString(0)) attachView->currentItem()->setText(0, tmp); |
105 | } else if (itemid == POPUP_ATTACH_DESC) { | 105 | } else if (itemid == POPUP_ATTACH_DESC) { |
106 | QString tmp = Rename::getText(tr("Set Description"), tr("<div align=center>Description"), this); | 106 | QString tmp = Rename::getText(tr("Set Description"), tr("<div align=center>Description"), this); |
107 | if (tmp != QString(0)) attachView->currentItem()->setText(1, tmp); | 107 | if (tmp != QString(0)) attachView->currentItem()->setText(1, tmp); |
108 | } else if (itemid == POPUP_ATTACH_REMOVE) { | 108 | } else if (itemid == POPUP_ATTACH_REMOVE) { |
109 | attachView->takeItem(attachView->currentItem()); | 109 | attachView->takeItem(attachView->currentItem()); |
110 | } | 110 | } |
111 | } | 111 | } |
112 | 112 | ||
113 | void Composer::slotSendMail() | 113 | void Composer::slotSendMail() |
114 | { | 114 | { |
115 | if (to->text().find(QRegExp(".*\\@.*\\..*")) == -1) { | 115 | if (to->text().find(QRegExp(".*\\@.*\\..*")) == -1) { |
116 | QMessageBox::information(this, tr("Error"), tr("<p>You have to specify a recipient.<br>(eg: foo@bar.org)</p>"), tr("Ok")); | 116 | QMessageBox::information(this, tr("Error"), tr("<p>You have to specify a recipient.<br>(eg: foo@bar.org)</p>"), tr("Ok")); |
117 | return; | 117 | return; |
118 | } | 118 | } |
119 | 119 | ||
120 | SendMail smail; | 120 | SendMail smail; |
121 | smail.setFrom(from->currentText()); | 121 | smail.setFrom(from->currentText()); |
122 | smail.setReplyTo(replyto->text()); | 122 | smail.setReplyTo(replyto->text()); |
123 | smail.setTo(to->text()); | 123 | smail.setTo(to->text()); |
124 | smail.setCc(cc->text()); | 124 | smail.setCc(cc->text()); |
125 | smail.setBcc(bcc->text()); | 125 | smail.setBcc(bcc->text()); |
126 | smail.setSubject(subject->text()); | 126 | smail.setSubject(subject->text()); |
127 | smail.setMessage(message->text()); | 127 | smail.setMessage(message->text()); |
128 | smail.setNeedsMime(attachView->childCount() == 0 ? false : true); | 128 | smail.setNeedsMime(attachView->childCount() == 0 ? false : true); |
129 | smail.setAccount(accountsLoaded[from->currentItem()]); | 129 | smail.setAccount(accountsLoaded[from->currentItem()]); |
130 | 130 | ||
131 | if (priority->currentItem() == POPUP_PRIO_LOW) { | 131 | if (priority->currentItem() == POPUP_PRIO_LOW) { |
132 | smail.setPriority("Low");// No i18n on purpose | 132 | smail.setPriority("Low");// No i18n on purpose |
133 | } else if (priority->currentItem() == POPUP_PRIO_NORMAL) { | 133 | } else if (priority->currentItem() == POPUP_PRIO_NORMAL) { |
134 | smail.setPriority("Normal");// No i18n on purpose | 134 | smail.setPriority("Normal");// No i18n on purpose |
135 | } else if (priority->currentItem() == POPUP_PRIO_HIGH) { | 135 | } else if (priority->currentItem() == POPUP_PRIO_HIGH) { |
136 | smail.setPriority("High");// No i18n on purpose | 136 | smail.setPriority("High");// No i18n on purpose |
137 | } | 137 | } |
138 | 138 | ||
139 | QValueList<Attachment> attachments; | 139 | QValueList<Attachment> attachments; |
140 | QListViewItem *item; | 140 | QListViewItem *item; |
141 | for (item = attachView->firstChild(); item != 0; item = item->itemBelow()) { | 141 | for (item = attachView->firstChild(); item != 0; item = item->itemBelow()) { |
142 | attachments.append(((AttachViewItem *)item)->attachment()); | 142 | attachments.append(((AttachViewItem *)item)->attachment()); |
143 | } | 143 | } |
144 | 144 | ||
145 | smail.setAttachments(attachments); | 145 | smail.setAttachments(attachments); |
146 | 146 | ||
147 | QString header, message; | 147 | QString header, message; |
148 | MailFactory::genMail(header, message, smail, this); | 148 | MailFactory::genMail(header, message, smail, this); |
149 | if (header.isNull() || message.isNull()) return;// Aborted. | 149 | if (header.isNull() || message.isNull()) return;// Aborted. |
150 | 150 | ||
151 | abort->setEnabled(true); | 151 | abort->setEnabled(true); |
152 | 152 | ||
153 | SmtpHandler *handler = new SmtpHandler(header, message, accountsLoaded[from->currentItem()], to->text()); | 153 | SmtpHandler *handler = new SmtpHandler(header, message, accountsLoaded[from->currentItem()], to->text()); |
154 | connect(handler, SIGNAL(finished()), SLOT(slotSendFinished())); | 154 | connect(handler, SIGNAL(finished()), SLOT(slotSendFinished())); |
155 | connect(handler, SIGNAL(error(const QString &)), SLOT(slotSendError(const QString &))); | 155 | connect(handler, SIGNAL(error(const QString &)), SLOT(slotSendError(const QString &))); |
156 | connect(handler, SIGNAL(status(const QString &)), status, SLOT(setText(const QString &))); | 156 | connect(handler, SIGNAL(status(const QString &)), status, SLOT(setText(const QString &))); |
157 | } | 157 | } |
158 | 158 | ||
159 | void Composer::slotSendError(const QString &error) | 159 | void Composer::slotSendError(const QString &error) |
160 | { | 160 | { |
161 | status->setText(tr("<font color=#ff0000>Error occoured during sending.</font>")); | 161 | 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")); | 162 | QMessageBox::warning(this, tr("Error"), tr("<p>%1</p").arg(error), tr("Ok")); |
163 | } | 163 | } |
164 | 164 | ||
165 | void Composer::slotSendFinished() | 165 | void Composer::slotSendFinished() |
166 | { | 166 | { |
167 | QMessageBox::information(this, tr("Success"), tr("<p>The mail was sent successfully.</p>"), tr("Ok")); | 167 | QMessageBox::information(this, tr("Success"), tr("<p>The mail was sent successfully.</p>"), tr("Ok")); |
168 | 168 | ||
169 | status->setText(QString(0)); | 169 | status->setText(QString(0)); |
170 | abort->setEnabled(false); | 170 | abort->setEnabled(false); |
171 | } | 171 | } |
172 | 172 | ||
173 | void Composer::slotFillStuff() | 173 | void Composer::slotFillStuff() |
174 | { | 174 | { |
175 | QValueList<Account> accounts = ConfigFile::getAccounts(); | 175 | QValueList<Account> accounts = ConfigFile::getAccounts(); |
176 | int i = 0; | 176 | int i = 0; |
177 | 177 | ||
178 | QValueList<Account>::Iterator it; | 178 | QValueList<Account>::Iterator it; |
179 | for (it = accounts.begin(); it != accounts.end(); it++) { | 179 | for (it = accounts.begin(); it != accounts.end(); it++) { |
180 | if (!(*it).email().isEmpty() && !(*it).smtpServer().isEmpty() && !(*it).smtpPort().isEmpty()) { | 180 | if (!(*it).email().isEmpty() && !(*it).smtpServer().isEmpty() && !(*it).smtpPort().isEmpty()) { |
181 | if (!(*it).realName().isEmpty()) | 181 | if (!(*it).realName().isEmpty()) |
182 | from->insertItem((*it).realName() + " <" + (*it).email() + ">", i); | 182 | from->insertItem((*it).realName() + " <" + (*it).email() + ">", i); |
183 | else | 183 | else |
184 | from->insertItem((*it).email()); | 184 | from->insertItem((*it).email()); |
185 | 185 | ||
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 | |||
@@ -1,173 +1,173 @@ | |||
1 | #include <qmessagebox.h> | 1 | #include <qmessagebox.h> |
2 | #include <qtextstream.h> | 2 | #include <qtextstream.h> |
3 | #include <qfile.h> | 3 | #include <qfile.h> |
4 | 4 | ||
5 | #include <qpe/mimetype.h> | 5 | #include <qpe/mimetype.h> |
6 | 6 | ||
7 | #include "miscfunctions.h" | 7 | #include "miscfunctions.h" |
8 | #include "mailfactory.h" | 8 | #include "mailfactory.h" |
9 | #include "defines.h" | 9 | #include "defines.h" |
10 | 10 | ||
11 | MailFactory::MailFactory(SendMail &smail, QWidget *parent) | 11 | MailFactory::MailFactory(SendMail &smail, QWidget *parent) |
12 | : QObject(), _smail(smail), _parent(parent) | 12 | : QObject(), _smail(smail), _parent(parent) |
13 | { | 13 | { |
14 | _abort = false; | 14 | _abort = false; |
15 | Account account = _smail.account(); | 15 | Account account = _smail.account(); |
16 | 16 | ||
17 | if (!_smail.from().isEmpty()) | 17 | if (!_smail.from().isEmpty()) |
18 | _header += "From: " + _smail.from() + "\n"; | 18 | _header += "From: " + _smail.from() + "\n"; |
19 | if (!_smail.replyTo().isEmpty()) | 19 | if (!_smail.replyTo().isEmpty()) |
20 | _header += "Reply-To: " + _smail.replyTo() + "\n"; | 20 | _header += "Reply-To: " + _smail.replyTo() + "\n"; |
21 | if (!_smail.to().isEmpty()) | 21 | if (!_smail.to().isEmpty()) |
22 | _header += "To: " + _smail.to() + "\n"; | 22 | _header += "To: " + _smail.to() + "\n"; |
23 | if (!_smail.cc().isEmpty()) | 23 | if (!_smail.cc().isEmpty()) |
24 | _header += "Cc: " + _smail.cc() + "\n"; | 24 | _header += "Cc: " + _smail.cc() + "\n"; |
25 | if (!_smail.bcc().isEmpty()) | 25 | if (!_smail.bcc().isEmpty()) |
26 | _header += "Bcc: " + _smail.bcc() + "\n"; | 26 | _header += "Bcc: " + _smail.bcc() + "\n"; |
27 | if (!_smail.subject().isEmpty()) | 27 | if (!_smail.subject().isEmpty()) |
28 | _header += "Subject: " + _smail.subject() + "\n"; | 28 | _header += "Subject: " + _smail.subject() + "\n"; |
29 | if (!_smail.priority().isEmpty() || (_smail.priority() != "Normal")) | 29 | if (!_smail.priority().isEmpty() || (_smail.priority() != "Normal")) |
30 | _header += "Priority: " + _smail.priority() + "\n"; | 30 | _header += "Priority: " + _smail.priority() + "\n"; |
31 | _header += "Date: " + MiscFunctions::rfcDate() + "\n"; | 31 | _header += "Date: " + MiscFunctions::rfcDate() + "\n"; |
32 | if (!_smail.account().org().isEmpty()) | 32 | if (!_smail.account().org().isEmpty()) |
33 | _header += "Organization: " + _smail.account().org() + "\n"; | 33 | _header += "Organization: " + _smail.account().org() + "\n"; |
34 | if (_smail.needsMime()) | 34 | if (_smail.needsMime()) |
35 | _header += "Mime-Version: 1.0\n"; | 35 | _header += "Mime-Version: 1.0\n"; |
36 | _header += "Message-Id: <" + MiscFunctions::uniqueString() + "." + account.email() + ">\n"; | 36 | _header += "Message-Id: <" + MiscFunctions::uniqueString() + "." + account.email() + ">\n"; |
37 | if (!_smail.inReplyTo().isEmpty()) | 37 | if (!_smail.inReplyTo().isEmpty()) |
38 | _header += "In-Reply-To: " + _smail.inReplyTo() + "\n"; | 38 | _header += "In-Reply-To: " + _smail.inReplyTo() + "\n"; |
39 | if (!QString((QString) USERAGENT).isEmpty()) | 39 | if (!QString((QString) USERAGENT).isEmpty()) |
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 != 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 | { |
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 | ||
159 | void MailFactory::openPgpSignEncrypt(const QString &text, QString &header, QString &message) | 159 | void 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 | */ |
166 | void MailFactory::genMail(QString &header, QString &message, SendMail &smail, QWidget *parent) | 166 | void 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; |
171 | message = factory._body; | 171 | message = factory._body; |
172 | } | 172 | } |
173 | 173 | ||
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,109 +1,109 @@ | |||
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; } |
74 | 74 | ||
75 | QValueList<Attachment> attachments() { return _attachments; } | 75 | QValueList<Attachment> attachments() { return _attachments; } |
76 | 76 | ||
77 | protected: | 77 | protected: |
78 | Account _account; | 78 | Account _account; |
79 | QString _from, _replyTo, _to, _cc, _bcc, _subject, _priority, _message, _inReplyTo; | 79 | QString _from, _replyTo, _to, _cc, _bcc, _subject, _priority, _message, _inReplyTo; |
80 | bool _needsMime; | 80 | bool _needsMime; |
81 | //bool _encrypt, _sign; | 81 | //bool _encrypt, _sign; |
82 | //QValueList<GpgKey> _receivers; | 82 | //QValueList<GpgKey> _receivers; |
83 | //QString _passphrase; | 83 | //QString _passphrase; |
84 | QValueList<Attachment> _attachments; | 84 | QValueList<Attachment> _attachments; |
85 | 85 | ||
86 | }; | 86 | }; |
87 | 87 | ||
88 | class MailFactory : public QObject | 88 | class MailFactory : public QObject |
89 | { | 89 | { |
90 | Q_OBJECT | 90 | Q_OBJECT |
91 | 91 | ||
92 | public: | 92 | public: |
93 | static void genMail(QString &header, QString &message, SendMail &smail, QWidget *parent); | 93 | static void genMail(QString &header, QString &message, SendMail &smail, QWidget *parent); |
94 | 94 | ||
95 | protected: | 95 | protected: |
96 | MailFactory(SendMail &smail, QWidget *parent); | 96 | MailFactory(SendMail &smail, QWidget *parent); |
97 | 97 | ||
98 | //void openPgpEncrypt(const QString &text, QString &header, QString &message); | 98 | //void openPgpEncrypt(const QString &text, QString &header, QString &message); |
99 | //void openPgpSign(const QString &text, QString &header, QString &message); | 99 | //void openPgpSign(const QString &text, QString &header, QString &message); |
100 | //void openPgpSignEncrypt(const QString &text, QString &header, QString &message); | 100 | //void openPgpSignEncrypt(const QString &text, QString &header, QString &message); |
101 | 101 | ||
102 | bool _abort; | 102 | bool _abort; |
103 | SendMail _smail; | 103 | SendMail _smail; |
104 | QWidget *_parent; | 104 | QWidget *_parent; |
105 | QString _header, _body; | 105 | QString _header, _body; |
106 | 106 | ||
107 | }; | 107 | }; |
108 | 108 | ||
109 | #endif | 109 | #endif |