-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 @@ #include <qmessagebox.h> #include <qpushbutton.h> #include <qlistbox.h> #include <qlayout.h> +#include <qpe/applnk.h> #include <qpe/fileselector.h> #include <qpe/resource.h> #include <stdlib.h> #include "attachdiag.h" AttachDiag::AttachDiag(QWidget* parent = 0, const char* name = 0, bool modal, WFlags fl = 0) : QDialog(parent, name, modal, fl) { setCaption(tr("Attach File")); QGridLayout *layout = new QGridLayout(this); layout->setSpacing(3); layout->setMargin(4); - FileSelector *fileSelector = new FileSelector("*", this, "FileSelector"); - fileSelector->setCloseVisible(false); - fileSelector->setNewVisible(false); + _fileSelector = new FileSelector("*", this, "FileSelector"); + _fileSelector->setCloseVisible(false); + _fileSelector->setNewVisible(false); - layout->addMultiCellWidget(fileSelector, 0, 0, 0, 1); + layout->addMultiCellWidget(_fileSelector, 0, 0, 0, 1); QPushButton *attachButton = new QPushButton(this); attachButton->setText(tr("Ok")); attachButton->setIconSet(Resource::loadPixmap("enter")); layout->addWidget(attachButton, 1, 0); QPushButton *cancelButton = new QPushButton(this); cancelButton->setText(tr("Cancel")); cancelButton->setIconSet(Resource::loadPixmap("editdelete")); layout->addWidget(cancelButton, 1, 1); - connect(fileSelector, SIGNAL(fileSelected(const DocLnk &)), SLOT(fileSelected(const DocLnk &))); connect(attachButton, SIGNAL(clicked()), SLOT(accept())); connect(cancelButton, SIGNAL(clicked()), SLOT(close())); - if (fileSelector->selected() != NULL) - currentFile = *fileSelector->selected(); - - if (fileSelector->fileCount() == 0) { + if (_fileSelector->fileCount() == 0) { attachButton->setEnabled(false); - fileSelector->setEnabled(false); + _fileSelector->setEnabled(false); } } -void AttachDiag::fileSelected(const DocLnk &file) +DocLnk AttachDiag::selectedFile() { - currentFile = file; + return *_fileSelector->selected(); } DocLnk AttachDiag::getFile(QWidget *parent) { AttachDiag attach(parent, 0, true); attach.showMaximized(); attach.show(); if (QDialog::Accepted == attach.exec()) { - return attach.currentFile; + return attach.selectedFile(); } return DocLnk(); } 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 @@ #ifndef ATTACHDIAG_H #define ATTACHDIAG_H #include <qdialog.h> -#include <qpe/applnk.h> +class DocLnk; +class FileSelector; class AttachDiag : public QDialog { Q_OBJECT public: + DocLnk selectedFile(); static DocLnk getFile(QWidget *parent); protected: AttachDiag(QWidget *parent = 0, const char* name = 0, bool modal = false, WFlags fl = 0); -private slots: - void fileSelected(const DocLnk &); - private: - DocLnk currentFile; + FileSelector *_fileSelector; }; #endif 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 @@ #include <qmultilineedit.h> #include <qmessagebox.h> #include <qpopupmenu.h> #include <qcombobox.h> #include <qlineedit.h> #include <qaction.h> #include <qtimer.h> #include <qlabel.h> #include <qapplication.h> #include <qpe/resource.h> #include "addresspicker.h" #include "listviewplus.h" #include "smtphandler.h" #include "attachdiag.h" #include "composer.h" #include "rename.h" AttachViewItem::AttachViewItem(QListView *parent, Attachment &attachment) : QListViewItem(parent), _attachment(attachment) { - setPixmap(0, _attachment.docLnk()->pixmap().isNull() ? Resource::loadPixmap("UnknownDocument-14") : _attachment.docLnk()->pixmap()); + setPixmap(0, _attachment.docLnk().pixmap().isNull() ? Resource::loadPixmap("UnknownDocument-14") : _attachment.docLnk().pixmap()); setText(0, _attachment.newName().isEmpty() ? _attachment.fileName() : _attachment.newName()); setText(1, _attachment.description()); } Composer::Composer(QWidget *parent, const char *name, WFlags fl) : ComposerBase(parent, name, fl), _inLoop(false) { abort->setEnabled(false); to->setFocus(); connect(sendmail, SIGNAL(activated()), SLOT(slotSendMail())); connect(addressbook, SIGNAL(activated()), SLOT(slotOpenAddressPicker())); connect(addattach, SIGNAL(activated()), SLOT(slotAddAttach())); connect(delattach, SIGNAL(activated()), SLOT(slotDelAttach())); connect(from, SIGNAL(activated(int)), SLOT(slotFromChanged(int))); connect(attachPopup, SIGNAL(activated(int)), SLOT(slotPopupHandler(int))); QTimer::singleShot(0, this, SLOT(slotFillStuff())); QTimer::singleShot(0, this, SLOT(slotResizing())); } Composer::~Composer() { hide(); } void Composer::hide() { QWidget::hide(); if (_inLoop) { _inLoop = false; qApp->exit_loop(); } } void Composer::exec() { show(); if (!_inLoop) { _inLoop = true; qApp->enter_loop(); } } @@ -186,59 +186,59 @@ void Composer::slotFillStuff() accountsLoaded.append(*it); i++; } } } void Composer::slotFromChanged(int id) { Account account = accountsLoaded[id]; if (account.defaultCc()) cc->setText(account.cc()); if (account.defaultBcc()) bcc->setText(account.bcc()); if (account.defaultReplyTo()) replyto->setText(account.replyTo()); if (!account.signature().isEmpty()) message->setText(message->text() + "\n\n-- \n" + account.signature()); } void Composer::slotOpenAddressPicker() { if (!to->isHidden() && cc->isHidden() && bcc->isHidden()) { if (to->text().isEmpty()) { to->setText(AddressPicker::getNames()); } else { to->setText(to->text() + ", " + AddressPicker::getNames()); } } else if (to->isHidden() && !cc->isHidden() && bcc->isHidden()) { if (cc->text().isEmpty()) { cc->setText(AddressPicker::getNames()); } else { cc->setText(cc->text() + ", " + AddressPicker::getNames()); } } else if (to->isHidden() && cc->isHidden() && !bcc->isHidden()) { if (bcc->text().isEmpty()) { bcc->setText(AddressPicker::getNames()); } else { bcc->setText(bcc->text() + ", " + AddressPicker::getNames()); } } } void Composer::slotAddAttach() { DocLnk lnk = AttachDiag::getFile(this); if (lnk.name().isEmpty()) return; Attachment attachment; attachment.setFileName(lnk.file()); attachment.setNewName(lnk.name()); - attachment.setDocLnk(&lnk); + attachment.setDocLnk(lnk); (void) new AttachViewItem(attachView, attachment); } void Composer::slotDelAttach() { if (attachView->currentItem() == NULL) return; attachView->takeItem(attachView->currentItem()); } 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) if (!_smail.needsMime()) { // if (_smail.encrypt() && !_smail.sign()) { // openPgpEncrypt(_smail.message(), _header, _body); // } else if (!_smail.encrypt() && _smail.sign()) { // openPgpSign(_smail.message(), _header, _body); // } else if (_smail.encrypt() && _smail.sign()) { // openPgpSignEncrypt(_smail.message(), _header, _body); // } else { _body += _smail.message(); // } } else { QString boundary = MiscFunctions::uniqueString(); _header += "Content-Type: multipart/mixed; boundary=\"" + boundary + "\"\n"; _body += "This is a multi-part message in MIME format.\n\n"; _body += "--" + boundary + "\n"; // if (_smail.encrypt() && !_smail.sign()) { // QString header, body; // openPgpEncrypt(_smail.message(), header, body); // _body += header + "\n" + body + "\n"; // } else if (!_smail.encrypt() && _smail.sign()) { // QString header, body; // openPgpSign(_smail.message(), header, body); // _body += header + "\n" + body + "\n"; // } else if (_smail.encrypt() && _smail.sign()) { // QString header, body; // openPgpSignEncrypt(_smail.message(), header, body); // _body += header + "\n" + body + "\n"; // } else { // TODO: Do proper charset handling! _body += "Content-Type: text/plain; charset=\"iso-8859-1\"\n"; _body += "Content-Transfer-Encoding: 8bit\n\n"; _body += _smail.message() + "\n"; // } QValueList<Attachment> attachments = _smail.attachments(); QValueList<Attachment>::Iterator it; for (it = attachments.begin(); it != attachments.end(); it++) { QFile f((*it).fileName()); if (f.open(IO_ReadOnly)) { QTextStream t(&f); QString file; while (!t.atEnd()) file += t.readLine() + "\n"; f.close(); - QString mimetype = (new MimeType(*(*it).docLnk()))->id(); + QString mimetype = (new MimeType((*it).docLnk()))->id(); _body += "\n--" + boundary + "\n"; _body += "Content-Type: " + mimetype + "; name=\"" + (*it).newName() + "\"\n"; // TODO: Decide which content transfer encoding is best. B64 for binary, QP for text. _body += "Content-Transfer-Encoding: base64\n"; _body += "Content-Disposition: attachment; filename=\"" + (*it).newName() + "\"\n"; if (!(*it).description().isEmpty()) _body += "Content-Description: " + (*it).description() + "\n"; _body += "\n" + MiscFunctions::encodeBase64(file) + "\n"; } else { 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")); if (ret != 0) { _abort = true; break; } } } _body += "\n--" + boundary + "--"; } if (_abort) { _body = QString(0); _header = QString(0); } } // Unfinished GPG code. /* void MailFactory::openPgpEncrypt(const QString &text, QString &header, QString &body) { QString boundary = MiscFunctions::uniqueString(); header += "Content-Type: multipart/encrypted; boundary=\"" + boundary + "\"; protocol=\"application/pgp-encrypted\"\n"; body += "--" + boundary + "\n"; body += "Content-Type: application/pgp-encrypted\n\n"; body += "Version: 1\n\n"; body += "--" + boundary + "\n"; body += "Content-Type: application/octet-stream\n\n"; body += GpgHandling::encrypt(_smail.gpgReceivers(), text); body += "\n--" + boundary + "--\n"; } void MailFactory::openPgpSign(const QString &text, QString &header, QString &body) { 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 @@ #ifndef MAILFACTORY_H #define MAILFACTORY_H #include <qobject.h> #include <qpe/applnk.h> #include "configfile.h" class Attachment { public: void setFileName(QString fileName) { _fileName = fileName; } void setNewName(QString newName) { _newName = newName; } void setDescription(QString description) { _description = description; } - void setDocLnk(DocLnk *docLnk) { _docLnk = docLnk; } + void setDocLnk(DocLnk docLnk) { _docLnk = docLnk; } QString fileName() { return _fileName; } QString newName() { return _newName; } QString description() { return _description; } - DocLnk *docLnk() { return _docLnk; } + DocLnk docLnk() { return _docLnk; } protected: QString _fileName, _newName, _description; - DocLnk *_docLnk; + DocLnk _docLnk; }; class SendMail { public: SendMail() { _needsMime = false; } void setAccount(Account account) { _account = account; } void setFrom(QString from) { _from = from; } void setReplyTo(QString replyTo) { _replyTo = replyTo; } void setTo(QString to) { _to = to; } void setCc(QString cc) { _cc = cc; } void setBcc(QString bcc) { _bcc = bcc; } void setSubject(QString subject) { _subject = subject; } void setPriority(QString priority) { _priority = priority; } void setMessage(QString message) { _message = message; } void setInReplyTo(QString inReplyTo) { _inReplyTo = inReplyTo; } void setNeedsMime(bool needsMime) { _needsMime = needsMime; } //void setEncrypt(bool encrypt) { _encrypt = encrypt; } //void setSign(bool sign) { _sign = sign; } //void setGpgReceivers(QValueList<GpgKey> receivers) { _receivers = receivers; } //void setGpgPassphrase(QString passphrase) { _passphrase = passphrase; } void setAttachments(QValueList<Attachment> attachments) { _attachments = attachments; } void addAttachment(Attachment attachment) { _attachments.append(attachment); } Account account() { return _account; } QString from() { return _from; } QString replyTo() { return _replyTo; } QString to() { return _to; } QString cc() { return _cc; } QString bcc() { return _bcc; } QString subject() { return _subject; } QString priority() { return _priority; } QString message() { return _message; } QString inReplyTo() { return _inReplyTo; } bool needsMime() { return _needsMime; } //bool encrypt() { return _encrypt; } //bool sign() { return _sign; } //QValueList<GpgKey> gpgReceivers() { return _receivers; } //QString gpgPassphrase() { return _passphrase; } |