summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/unsupported/mail2/attachdiag.cpp23
-rw-r--r--noncore/unsupported/mail2/attachdiag.h9
-rw-r--r--noncore/unsupported/mail2/composer.cpp4
-rw-r--r--noncore/unsupported/mail2/libmail/mailfactory.cpp2
-rw-r--r--noncore/unsupported/mail2/libmail/mailfactory.h6
5 files changed, 20 insertions, 24 deletions
diff --git a/noncore/unsupported/mail2/attachdiag.cpp b/noncore/unsupported/mail2/attachdiag.cpp
index 36e1948..446cfe5 100644
--- a/noncore/unsupported/mail2/attachdiag.cpp
+++ b/noncore/unsupported/mail2/attachdiag.cpp
@@ -1,71 +1,68 @@
#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; }