summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/unsupported/mail2/composer.cpp18
-rw-r--r--noncore/unsupported/mail2/composerbase.cpp14
-rw-r--r--noncore/unsupported/mail2/composerbase.h4
-rw-r--r--noncore/unsupported/mail2/mail.pro2
-rw-r--r--noncore/unsupported/mail2/mailstatusbar.cpp58
-rw-r--r--noncore/unsupported/mail2/mailstatusbar.h38
-rw-r--r--noncore/unsupported/mail2/mainwindow.cpp20
-rw-r--r--noncore/unsupported/mail2/mainwindowbase.cpp20
-rw-r--r--noncore/unsupported/mail2/mainwindowbase.h8
9 files changed, 127 insertions, 55 deletions
diff --git a/noncore/unsupported/mail2/composer.cpp b/noncore/unsupported/mail2/composer.cpp
index 52ebbdd..cb80299 100644
--- a/noncore/unsupported/mail2/composer.cpp
+++ b/noncore/unsupported/mail2/composer.cpp
@@ -1,420 +1,420 @@
#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 <qpe/config.h>
#include <opie/ofiledialog.h>
-//#include "attachdiag.h"
+#include "mailstatusbar.h"
#include "addresspicker.h"
#include "listviewplus.h"
#include "smtphandler.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());
setText(0, _attachment.newName().isEmpty() ? _attachment.fileName() : _attachment.newName());
setText(1, _attachment.description());
}
Composer::Composer(QWidget *parent, const char *name, WFlags fl, bool sendQueue)
: ComposerBase(parent, name, fl), _inLoop(false)
{
_sendQueued = sendQueue;
- abort->setEnabled(false);
+ status->setStopEnabled(false);
to->setFocus();
connect(sendmail, SIGNAL(activated()), SLOT(slotSendMail()));
connect(queuemail, SIGNAL(activated()), SLOT(slotQueueMail()));
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();
}
}
void Composer::setSendMail(SendMail &sendMail)
{
to->setText(sendMail.to());
cc->setText(sendMail.cc());
bcc->setText(sendMail.bcc());
subject->setText(sendMail.subject());
message->setText(sendMail.message());
_inReplyTo = sendMail.inReplyTo();
QValueList<Attachment> attachments = sendMail.attachments();
QValueList<Attachment>::Iterator it;
for (it = attachments.begin(); it != attachments.end(); it++) {
(void) new AttachViewItem(attachView, *it);
if (attachView->isHidden()) attachView->show();
}
}
void Composer::slotResizing()
{
from->setMaximumWidth(width() - fromBox->width());
from->resize(width() - fromBox->width(), y());
if (_sendQueued) slotSendQueued();
}
void Composer::slotPopupHandler(int itemid)
{
if (attachView->currentItem() == NULL) {
QMessageBox::information(this, tr("Error"), tr("Please select an entry first."), tr("Ok"));
return;
}
if (itemid == POPUP_ATTACH_RENAME) {
QString tmp = Rename::rename(attachView->currentItem()->text(0), this);
if (tmp != QString(0)) attachView->currentItem()->setText(0, tmp);
} else if (itemid == POPUP_ATTACH_DESC) {
QString tmp = Rename::getText(tr("Set Description"), tr("<div align=center>Description"), this);
if (tmp != QString(0)) attachView->currentItem()->setText(1, tmp);
} else if (itemid == POPUP_ATTACH_REMOVE) {
attachView->takeItem(attachView->currentItem());
}
}
void Composer::slotSendMail()
{
if (to->text().find(QRegExp(".*\\@.*\\..*")) == -1) {
QMessageBox::information(this, tr("Error"), tr("<p>You have to specify a recipient.<br>(eg: foo@bar.org)</p>"), tr("Ok"));
return;
}
SendMail smail;
smail.setFrom(from->currentText());
smail.setReplyTo(replyto->text());
smail.setTo(to->text());
smail.setCc(cc->text());
smail.setBcc(bcc->text());
smail.setSubject(subject->text());
smail.setMessage(message->text());
smail.setNeedsMime(attachView->childCount() == 0 ? false : true);
smail.setAccount(accountsLoaded[from->currentItem()]);
if (priority->currentItem() == POPUP_PRIO_LOW) {
smail.setPriority("Low"); // No i18n on purpose
} else if (priority->currentItem() == POPUP_PRIO_NORMAL) {
smail.setPriority("Normal"); // No i18n on purpose
} else if (priority->currentItem() == POPUP_PRIO_HIGH) {
smail.setPriority("High"); // No i18n on purpose
}
QValueList<Attachment> attachments;
QListViewItem *item;
for (item = attachView->firstChild(); item != 0; item = item->itemBelow()) {
attachments.append(((AttachViewItem *)item)->attachment());
}
smail.setAttachments(attachments);
QString header, message;
MailFactory::genMail(header, message, smail, this);
if (header.isNull() || message.isNull()) return; // Aborted.
- abort->setEnabled(true);
+ status->setStopEnabled(true);
SmtpHandler *handler = new SmtpHandler(header, message, accountsLoaded[from->currentItem()], to->text());
connect(handler, SIGNAL(finished()), SLOT(slotSendFinished()));
connect(handler, SIGNAL(error(const QString &)), SLOT(slotSendError(const QString &)));
- connect(handler, SIGNAL(status(const QString &)), status, SLOT(setText(const QString &)));
+ connect(handler, SIGNAL(status(const QString &)), status, SLOT(setStatusText(const QString &)));
}
void Composer::slotSendQueued()
{
int effSendCount = 0;
qDebug("Sending queued messages");
Config cfg( "mailqueue", Config::User );
cfg.setGroup( "Settings" );
_sendCount = 0;
_sendError = 0;
_toSend = cfg.readNumEntry( "count", 0 );
if (_toSend == 0) close();
qDebug("%i messages to send", _toSend);
QString str;
for (int i=1;i<=_toSend;i++)
{
qDebug("sending message %i",i);
cfg.setGroup( "Mail_" + QString::number(i) );
SendMail smail;
str = cfg.readEntry("from");
qDebug("setFrom %s",str.latin1());
smail.setFrom( str );
str = cfg.readEntry("reply");
qDebug("setReplyTo %s",str.latin1());
smail.setReplyTo( str );
QString toAdr = cfg.readEntry("to");
qDebug("to %s",toAdr.latin1());
smail.setTo( toAdr ); //to->text());
str = cfg.readEntry("cc");
qDebug("setCc %s",str.latin1());
smail.setCc( str ); //cc->text());
smail.setBcc( cfg.readEntry("bcc") ); //bcc->text());
str = cfg.readEntry("subject");
qDebug("setSubject %s",str.latin1());
smail.setSubject( str ); //subject->text());
str = cfg.readEntryCrypt("message");
qDebug("setMessage %s",str.latin1());
smail.setMessage( str ); //message->text());
smail.setNeedsMime( cfg.readBoolEntry("mime") ); //attachView->childCount() == 0 ? false : true);
qDebug("setting account [%i]",cfg.readNumEntry("account"));
Account accnt = accountsLoaded[ cfg.readNumEntry("account") ];
smail.setAccount( accnt ); //accountsLoaded[from->currentItem()]);
int prio = cfg.readNumEntry( "priority" );
qDebug("setting priority %i",prio);
if (prio == POPUP_PRIO_LOW) {
smail.setPriority("Low"); // No i18n on purpose
} else if (prio == POPUP_PRIO_NORMAL) {
smail.setPriority("Normal"); // No i18n on purpose
} else if (prio == POPUP_PRIO_HIGH) {
smail.setPriority("High"); // No i18n on purpose
}
QValueList<Attachment> attachments;
Attachment a;
QString an;
int ac = cfg.readNumEntry( "attachments", 0 );
qDebug("%i Attachments",ac);
for (int j = 0; i < ac; ac++) {
an = "Attachment_" + QString::number( j );
qDebug(an.latin1());
a.setFileName(cfg.readEntry( an + "fileName" ));
a.setNewName(cfg.readEntry( an + "newName" ));
a.setDescription(cfg.readEntry( an + "description" ));
a.setDocLnk( DocLnk( cfg.readEntry( an + "docLnk" )) );
attachments.append( a );
}
smail.setAttachments(attachments);
qDebug("putting mail together");
QString header, message;
MailFactory::genMail(header, message, smail, this);
if (header.isNull() || message.isNull()) continue;//return; // Aborted.
// abort->setEnabled(true);
qDebug("Sending to %s",toAdr.latin1());
SmtpHandler *handler = new SmtpHandler(header, message, accnt ,toAdr);
effSendCount++;
connect(handler, SIGNAL(finished()), SLOT(slotSendQueuedFinished()));
connect(handler, SIGNAL(error(const QString &)), SLOT(slotSendQueuedError(const QString &)));
- connect(handler, SIGNAL(status(const QString &)), status, SLOT(setText(const QString &)));
+ connect(handler, SIGNAL(status(const QString &)), status, SLOT(setStatusText(const QString &)));
}
if (effSendCount < _toSend)
{
_toSend = effSendCount;
QMessageBox::information(this, tr("Error"), tr("<p>There was a problem sending some of the queued mails.</p>"), tr("Ok"));
}
}
void Composer::slotQueueMail()
{
if (to->text().find(QRegExp(".*\\@.*\\..*")) == -1) {
QMessageBox::information(this, tr("Error"), tr("<p>You have to specify a recipient.<br>(eg: foo@bar.org)</p>"), tr("Ok"));
return;
}
Config cfg( "mailqueue", Config::User );
cfg.setGroup( "Settings" );
int count = cfg.readNumEntry( "count", 0 );
count++;
cfg.writeEntry( "count", count );
qDebug("queueing mail %i",count);
cfg.setGroup( "Mail_" + QString::number( count ));
cfg.writeEntry( "from", from->currentText() );
cfg.writeEntry( "reply", replyto->text());
cfg.writeEntry( "to", to->text());
cfg.writeEntry( "cc", cc->text());
cfg.writeEntry( "bcc", bcc->text());
cfg.writeEntry( "subject", subject->text());
cfg.writeEntryCrypt( "message", message->text());
cfg.writeEntry( "mime", attachView->childCount() == 0 );
cfg.writeEntry( "account", from->currentItem());
cfg.writeEntry( "priority", priority->currentItem() );
cfg.writeEntry( "attachments", attachView->childCount() );
Attachment a;
QListViewItem *item;
QString an;
int i = 0;
for (item = attachView->firstChild(); item != 0; item = item->itemBelow()) {
a = ((AttachViewItem *)item)->attachment();
an = "Attachment_" + QString::number( i++ );
cfg.writeEntry( an + "fileName", a.fileName() );
cfg.writeEntry( an + "newName", a.newName() );
cfg.writeEntry( an + "description", a.description() );
cfg.writeEntry( an + "docLnk", a.docLnk().file() );
}
QMessageBox::information(this, tr("Success"), tr("<p>The mail was queued successfully.</p><p>The queue contains ")+QString::number(count)+tr(" mails.</p>"), tr("Ok"));
}
void Composer::slotSendError(const QString &error)
{
- status->setText(tr("<font color=#ff0000>Error occoured during sending.</font>"));
+ status->setStatusText(tr("<font color=#ff0000>Error occoured during sending.</font>"));
QMessageBox::warning(this, tr("Error"), tr("<p>%1</p").arg(error), tr("Ok"));
}
void Composer::slotSendQueuedError(const QString &error)
{
_sendError++;
qDebug("error send mail %i",_sendCount);
- status->setText(tr("<font color=#ff0000>Error occoured during sending.</font>"));
+ status->setStatusText(tr("<font color=#ff0000>Error occoured during sending.</font>"));
QMessageBox::warning(this, tr("Error"), tr("<p>%1</p").arg(error), tr("Ok"));
}
void Composer::slotSendFinished()
{
QMessageBox::information(this, tr("Success"), tr("<p>The mail was sent successfully.</p>"), tr("Ok"));
- status->setText(QString(0));
- abort->setEnabled(false);
+ status->setStatusText(QString(0));
+ status->setStopEnabled(false);
}
void Composer::slotSendQueuedFinished()
{
_sendCount++;
qDebug("finished send mail %i of %i (error %i)",_sendCount,_toSend,_sendError);
if (_sendCount < _toSend) return;
if (_sendError == _toSend) close();
QMessageBox::information(this, tr("Success"), tr("<p>The queued mails ")+QString::number(_toSend-_sendError)+tr(" of ")+QString::number(_toSend)+(" were sent successfully.</p>"), tr("Ok"));
Config cfg( "mailqueue", Config::User );
cfg.setGroup( "Settings" );
cfg.writeEntry( "count", 0 );
for (int i=1;i<=_sendCount;i++)
{
cfg.setGroup( "Mail_" + QString::number(i) );
qDebug("remove mail %i", i);
cfg.clearGroup();
cfg.removeEntry( "Mail_" + QString::number(i) );
}
close();
}
void Composer::slotFillStuff()
{
QValueList<Account> accounts = ConfigFile::getAccounts();
int i = 0;
QValueList<Account>::Iterator it;
for (it = accounts.begin(); it != accounts.end(); it++) {
if (!(*it).email().isEmpty() && !(*it).smtpServer().isEmpty() && !(*it).smtpPort().isEmpty()) {
if (!(*it).realName().isEmpty())
from->insertItem((*it).realName() + " <" + (*it).email() + ">", i);
else
from->insertItem((*it).email());
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 = OFileDialog::getOpenFileName( 1,"/");
// DocLnk lnk = AttachDiag::getFile(this);
if (lnk.name().isEmpty()) return;
Attachment attachment;
attachment.setFileName(lnk.file());
attachment.setNewName(lnk.name());
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/composerbase.cpp b/noncore/unsupported/mail2/composerbase.cpp
index c456ae5..6f6ab8e 100644
--- a/noncore/unsupported/mail2/composerbase.cpp
+++ b/noncore/unsupported/mail2/composerbase.cpp
@@ -1,211 +1,205 @@
#include <qmultilineedit.h>
#include <qpopupmenu.h>
#include <qcombobox.h>
#include <qlineedit.h>
#include <qlayout.h>
#include <qaction.h>
#include <qlabel.h>
#include <qvbox.h>
#include <qpe/qpetoolbar.h>
#include <qpe/qpemenubar.h>
#include <qpe/resource.h>
+#include "mailstatusbar.h"
#include "listviewplus.h"
#include "composerbase.h"
ComposerBase::ComposerBase(QWidget *parent, const char *name, WFlags fl)
: QMainWindow(parent, name, fl)
{
setCaption(tr("Compose Message"));
setToolBarsMovable(false);
toolbar = new QPEToolBar(this);
menubar = new QPEMenuBar( toolbar );
mailmenu = new QPopupMenu( menubar );
menubar->insertItem( tr( "Mail" ), mailmenu );
addToolBar(toolbar);
toolbar->setHorizontalStretchable(true);
QLabel *spacer = new QLabel(toolbar);
spacer->setBackgroundMode(QWidget::PaletteButton);
toolbar->setStretchableWidget(spacer);
sendmail = new QAction(tr("Send the mail"), QIconSet(Resource::loadPixmap("mail/sendmail")), 0, 0, this);
sendmail->addTo(toolbar);
sendmail->addTo(mailmenu);
queuemail = new QAction(tr("Queue the mail"), QIconSet(Resource::loadPixmap("mail/sendall")), 0, 0, this);
queuemail->addTo(toolbar);
queuemail->addTo(mailmenu);
attachfile = new QAction(tr("Attach a file"), QIconSet(Resource::loadPixmap("mail/attach")), 0, 0, this, 0, true);
attachfile->addTo(toolbar);
attachfile->addTo(mailmenu);
connect(attachfile, SIGNAL(toggled(bool)), SLOT(slotAttachfileChanged(bool)));
addressbook = new QAction(tr("Addressbook"), QIconSet(Resource::loadPixmap("mail/addbook")), 0, 0, this);
addressbook->addTo(toolbar);
addressbook->addTo(mailmenu);
- abort = new QAction(tr("Abort sending"), QIconSet(Resource::loadPixmap("mail/abort")), 0, 0, this);
- abort->addTo(toolbar);
- abort->addTo(mailmenu);
-
QWidget *main = new QWidget(this);
setCentralWidget(main);
QGridLayout *layout = new QGridLayout(main);
fromBox = new QComboBox(main);
fromBox->insertItem(tr("From"), POPUP_FROM_FROM);
fromBox->insertItem(tr("Reply"), POPUP_FROM_REPLYTO);
layout->addWidget(fromBox, 0, 0);
connect(fromBox, SIGNAL(activated(int)), SLOT(slotFromMenuChanged(int)));
QHBoxLayout *fromLayout = new QHBoxLayout();
layout->addLayout(fromLayout, 0, 1);
from = new QComboBox(main);
fromLayout->addWidget(from);
replyto = new QLineEdit(main);
replyto->hide();
fromLayout->addWidget(replyto);
receiversBox = new QComboBox(main);
receiversBox->insertItem(tr("To"), POPUP_RECV_TO);
receiversBox->insertItem(tr("Cc"), POPUP_RECV_CC);
receiversBox->insertItem(tr("Bcc"), POPUP_RECV_BCC);
layout->addWidget(receiversBox, 1, 0);
connect(receiversBox, SIGNAL(activated(int)), SLOT(slotReceiverMenuChanged(int)));
QHBoxLayout *receiverLayout = new QHBoxLayout();
layout->addLayout(receiverLayout, 1, 1);
to = new QLineEdit(main);
receiverLayout->addWidget(to);
cc = new QLineEdit(main);
cc->hide();
receiverLayout->addWidget(cc);
bcc = new QLineEdit(main);
bcc->hide();
receiverLayout->addWidget(bcc);
subjectBox = new QComboBox(main);
subjectBox->insertItem(tr("Subj."), POPUP_SUBJ_SUBJECT);
subjectBox->insertItem(tr("Prio."), POPUP_SUBJ_PRIORITY);
layout->addWidget(subjectBox, 2, 0);
connect(subjectBox, SIGNAL(activated(int)), SLOT(slotSubjectMenuChanged(int)));
QHBoxLayout *subjectLayout = new QHBoxLayout();
layout->addLayout(subjectLayout, 2, 1);
subject = new QLineEdit(main);
subjectLayout->addWidget(subject);
priority = new QComboBox(main);
priority->insertItem(tr("Low"), POPUP_PRIO_LOW);
priority->insertItem(tr("Normal"), POPUP_PRIO_NORMAL);
priority->insertItem(tr("High"), POPUP_PRIO_HIGH);
priority->setCurrentItem(POPUP_PRIO_NORMAL);
priority->hide();
subjectLayout->addWidget(priority);
QVBox *view = new QVBox(main);
layout->addMultiCellWidget(view, 3, 3, 0, 1);
message = new QMultiLineEdit(view);
message->setMinimumHeight(30);
attachWindow = new QMainWindow(view, 0, 0);
- attachWindow->setMinimumHeight(100);
- attachWindow->setMaximumHeight(100);
+ attachWindow->setMinimumHeight(80);
+ attachWindow->setMaximumHeight(80);
attachWindow->setToolBarsMovable(false);
attachWindow->hide();
attachToolbar = new QPEToolBar(attachWindow);
attachToolbar->setVerticalStretchable(true);
addattach = new QAction(tr("Add an Attachement"), QIconSet(Resource::loadPixmap("mail/newmail")), 0, 0, this);
addattach->addTo(attachToolbar);
delattach = new QAction(tr("Remove Attachement"), QIconSet(Resource::loadPixmap("mail/delete")), 0, 0, this);
delattach->addTo(attachToolbar);
QLabel *attachSpacer = new QLabel(attachToolbar);
attachSpacer->setBackgroundMode(QWidget::PaletteButton);
attachToolbar->setStretchableWidget(attachSpacer);
attachWindow->addToolBar(attachToolbar, QMainWindow::Left);
attachView = new ListViewPlus(attachWindow);
attachView->addColumn(tr("Name"), 80);
attachView->addColumn(tr("Description"), 110);
attachView->setAllColumnsShowFocus(true);
attachWindow->setCentralWidget(attachView);
attachPopup = new QPopupMenu(attachView);
attachPopup->insertItem(tr("Rename"), POPUP_ATTACH_RENAME);
attachPopup->insertItem(tr("Change Description"), POPUP_ATTACH_DESC);
attachPopup->insertSeparator();
attachPopup->insertItem(tr("Remove"), POPUP_ATTACH_REMOVE);
attachView->setPopup(attachPopup);
- status = new QLabel(view);
- QFont tmpFont = status->font();
- tmpFont.setPixelSize(8);
- status->setFont(tmpFont);
+ status = new MailStatusBar(view);
}
void ComposerBase::slotAttachfileChanged(bool toggled)
{
if (toggled) {
if (attachWindow->isHidden()) attachWindow->show();
} else {
if (!attachWindow->isHidden()) attachWindow->hide();
}
}
void ComposerBase::slotFromMenuChanged(int id)
{
if (POPUP_FROM_FROM == id) {
if (from->isHidden()) from->show();
if (!replyto->isHidden()) replyto->hide();
} else if (POPUP_FROM_REPLYTO == id) {
if (!from->isHidden()) from->hide();
if (replyto->isHidden()) replyto->show();
}
}
void ComposerBase::slotReceiverMenuChanged(int id)
{
if (POPUP_RECV_TO == id) {
if (to->isHidden()) to->show();
if (!cc->isHidden()) cc->hide();
if (!bcc->isHidden()) bcc->hide();
} else if (POPUP_RECV_CC == id) {
if (!to->isHidden()) to->hide();
if (cc->isHidden()) cc->show();
if (!bcc->isHidden()) bcc->hide();
} else if (POPUP_RECV_BCC == id) {
if (!to->isHidden()) to->hide();
if (!cc->isHidden()) cc->hide();
if (bcc->isHidden()) bcc->show();
}
}
void ComposerBase::slotSubjectMenuChanged(int id)
{
if (POPUP_SUBJ_SUBJECT == id) {
if (subject->isHidden()) subject->show();
if (!priority->isHidden()) priority->hide();
} else if (POPUP_SUBJ_PRIORITY == id) {
if (!subject->isHidden()) subject->hide();
if (priority->isHidden()) priority->show();
}
}
diff --git a/noncore/unsupported/mail2/composerbase.h b/noncore/unsupported/mail2/composerbase.h
index d832623..58f1157 100644
--- a/noncore/unsupported/mail2/composerbase.h
+++ b/noncore/unsupported/mail2/composerbase.h
@@ -1,59 +1,61 @@
#ifndef COMPOSERBASE_H
#define COMPOSERBASE_H
#include <qmainwindow.h>
class QMultiLineEdit;
+class MailStatusBar;
class ListViewPlus;
class QPopupMenu;
class QPEToolBar;
class QPEMenuBar;
class QPopupMenu;
class QComboBox;
class QLineEdit;
class QAction;
class QLabel;
class ComposerBase : public QMainWindow
{
Q_OBJECT
public:
ComposerBase(QWidget *parent = 0, const char *name = 0, WFlags fl = 0);
protected:
static const int POPUP_FROM_FROM = 0;
static const int POPUP_FROM_REPLYTO = 1;
static const int POPUP_RECV_TO = 0;
static const int POPUP_RECV_CC = 1;
static const int POPUP_RECV_BCC = 2;
static const int POPUP_SUBJ_SUBJECT = 0;
static const int POPUP_SUBJ_PRIORITY = 1;
static const int POPUP_PRIO_LOW = 0;
static const int POPUP_PRIO_NORMAL = 1;
static const int POPUP_PRIO_HIGH = 2;
static const int POPUP_ATTACH_RENAME = 0;
static const int POPUP_ATTACH_DESC = 1;
static const int POPUP_ATTACH_REMOVE = 2;
QMultiLineEdit *message;
+ MailStatusBar *status;
ListViewPlus *attachView;
QMainWindow *attachWindow;
QPopupMenu *attachPopup;
QPEToolBar *toolbar, *attachToolbar;
QPEMenuBar *menubar;
QPopupMenu *mailmenu;
QComboBox *fromBox, *from, *receiversBox, *subjectBox, *priority;
QLineEdit *replyto, *to, *cc, *bcc, *subject;
QAction *sendmail, *queuemail, *attachfile, *addressbook, *abort, *addattach, *delattach;
- QLabel *fromLabel, *status;
+ QLabel *fromLabel;
protected slots:
void slotAttachfileChanged(bool toggled);
void slotFromMenuChanged(int id);
void slotReceiverMenuChanged(int id);
void slotSubjectMenuChanged(int id);
};
#endif
diff --git a/noncore/unsupported/mail2/mail.pro b/noncore/unsupported/mail2/mail.pro
index 985a6fb..177509d 100644
--- a/noncore/unsupported/mail2/mail.pro
+++ b/noncore/unsupported/mail2/mail.pro
@@ -1,59 +1,61 @@
TEMPLATE = app
CONFIG = qt warn_on debug
#CONFIG = qt warn_on release
HEADERS = accounteditor.h \
addresspicker.h \
composer.h \
composerbase.h \
configdiag.h \
folderwidget.h \
listviewplus.h \
+ mailstatusbar.h \
mailtable.h \
mainwindow.h \
mainwindowbase.h \
opendiag.h \
rename.h \
searchdiag.h \
viewmail.h \
viewmailbase.h
SOURCES = accounteditor.cpp \
addresspicker.cpp \
composer.cpp \
composerbase.cpp \
configdiag.cpp \
folderwidget.cpp \
listviewplus.cpp \
+ mailstatusbar.cpp \
mailtable.cpp \
main.cpp \
mainwindow.cpp \
mainwindowbase.cpp \
opendiag.cpp \
rename.cpp \
searchdiag.cpp \
viewmail.cpp \
viewmailbase.cpp
INTERFACES = accounteditorbase.ui \
addresspickerbase.ui \
configdiagbase.ui \
opendiagbase.ui \
renamebase.ui \
searchdiagbase.ui
INCLUDEPATH += $(OPIEDIR)/include libmail
LIBS += -lmail -lqpe -lopie
TARGET = mail
DESTDIR = $(OPIEDIR)/bin
TRANSLATIONS = ../../i18n/de/mail.ts \
../../i18n/en/mail.ts \
../../i18n/es/mail.ts \
../../i18n/fr/mail.ts \
../../i18n/hu/mail.ts \
../../i18n/ja/mail.ts \
../../i18n/ko/mail.ts \
../../i18n/no/mail.ts \
../../i18n/pl/mail.ts \
../../i18n/pt/mail.ts \
../../i18n/pt_BR/mail.ts \
../../i18n/sl/mail.ts \
../../i18n/zh_CN/mail.ts \
../../i18n/zh_TW/mail.ts
diff --git a/noncore/unsupported/mail2/mailstatusbar.cpp b/noncore/unsupported/mail2/mailstatusbar.cpp
new file mode 100644
index 0000000..470ea4f
--- a/dev/null
+++ b/noncore/unsupported/mail2/mailstatusbar.cpp
@@ -0,0 +1,58 @@
+#include <qprogressbar.h>
+#include <qtoolbutton.h>
+#include <qlabel.h>
+
+#include "mailstatusbar.h"
+
+MailStatusBar::MailStatusBar(QWidget *parent, const char *name, WFlags fl)
+ : QHBox(parent, name, fl)
+{
+ label = new QLabel(this);
+ QFont tmpFont = label->font();
+ tmpFont.setPixelSize(8);
+ label->setFont(tmpFont);
+
+ stopButton = new QToolButton(this);
+ stopButton->setText(" X ");
+ stopButton->setMaximumHeight(15);
+ stopButton->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
+ connect(stopButton, SIGNAL(clicked()), SLOT(stopClicked()));
+
+ progress = new QProgressBar(this);
+ progress->setCenterIndicator(true);
+ progress->setMinimumHeight(15);
+ progress->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
+ progress->setFrameShape(QFrame::Box);
+ progress->setFrameShadow(QFrame::Raised);
+}
+
+void MailStatusBar::setStatusText(const QString &text)
+{
+ label->setText(text);
+}
+
+void MailStatusBar::setStopEnabled(bool enabled)
+{
+ stopButton->setEnabled(enabled);
+}
+
+void MailStatusBar::setProgressTotalSteps(int steps)
+{
+ progress->setTotalSteps(steps);
+}
+
+void MailStatusBar::setProgress(int pg)
+{
+ progress->setProgress(pg);
+}
+
+void MailStatusBar::resetProgress()
+{
+ progress->reset();
+}
+
+void MailStatusBar::stopClicked()
+{
+ emit stop();
+}
+
diff --git a/noncore/unsupported/mail2/mailstatusbar.h b/noncore/unsupported/mail2/mailstatusbar.h
new file mode 100644
index 0000000..11cd538
--- a/dev/null
+++ b/noncore/unsupported/mail2/mailstatusbar.h
@@ -0,0 +1,38 @@
+#ifndef MAILSTATUSBAR_H
+#define MAILSTATUSBAR_H
+
+#include <qhbox.h>
+
+class QLabel;
+class QToolButton;
+class QProgressBar;
+
+class MailStatusBar : public QHBox
+{
+ Q_OBJECT
+
+public:
+ MailStatusBar(QWidget *parent = 0, const char *name = 0, WFlags fl = 0);
+
+public slots:
+ void setStatusText(const QString &text);
+ void setStopEnabled(bool enabled);
+ void setProgressTotalSteps(int steps);
+ void setProgress(int progress);
+ void resetProgress();
+
+signals:
+ void stop();
+
+protected slots:
+ void stopClicked();
+
+private:
+ QLabel *label;
+ QToolButton *stopButton;
+ QProgressBar *progress;
+
+};
+
+#endif
+
diff --git a/noncore/unsupported/mail2/mainwindow.cpp b/noncore/unsupported/mail2/mainwindow.cpp
index 0044693..047c54b 100644
--- a/noncore/unsupported/mail2/mainwindow.cpp
+++ b/noncore/unsupported/mail2/mainwindow.cpp
@@ -1,76 +1,74 @@
-#include <qprogressbar.h>
#include <qmessagebox.h>
-#include <qtoolbutton.h>
#include <qaction.h>
-#include <qlabel.h>
+#include "mailstatusbar.h"
#include "folderwidget.h"
#include "mainwindow.h"
#include "configdiag.h"
#include "configfile.h"
#include "searchdiag.h"
#include "mailtable.h"
#include "composer.h"
#include "viewmail.h"
MainWindow::MainWindow(QWidget *parent, const char *name, WFlags fl)
: MainWindowBase(parent, name, fl)
{
- stopButton->setEnabled(false);
+ status->setStopEnabled(false);
- connect(folderView, SIGNAL(status(const QString &)), statusLabel, SLOT(setText(const QString &)));
+ connect(folderView, SIGNAL(status(const QString &)), status, SLOT(setStatusText(const QString &)));
connect(folderView, SIGNAL(folderSelected(Folder)), mailView, SLOT(setFolder(Folder)));
connect(mailView, SIGNAL(mailClicked(IMAPResponseFETCH, IMAPHandler *)), SLOT(mailClicked(IMAPResponseFETCH, IMAPHandler *)));
- connect(mailView, SIGNAL(status(const QString &)), statusLabel, SLOT(setText(const QString &)));
- connect(mailView, SIGNAL(totalSteps(int)), statusProgress, SLOT(setTotalSteps(int)));
- connect(mailView, SIGNAL(progress(int)), statusProgress, SLOT(setProgress(int)));
- connect(mailView, SIGNAL(resetProgress()), statusProgress, SLOT(reset()));
- connect(mailView, SIGNAL(stopEnabled(bool)), stopButton, SLOT(setEnabled(bool)));
+ connect(mailView, SIGNAL(status(const QString &)), status, SLOT(setStatusText(const QString &)));
+ connect(mailView, SIGNAL(totalSteps(int)), status, SLOT(setProgressTotalSteps(int)));
+ connect(mailView, SIGNAL(progress(int)), status, SLOT(setProgress(int)));
+ connect(mailView, SIGNAL(resetProgress()), status, SLOT(resetProgress()));
+ connect(mailView, SIGNAL(stopEnabled(bool)), status, SLOT(setStopEnabled(bool)));
- connect(stopButton, SIGNAL(clicked()), mailView, SLOT(stop()));
+ connect(status, SIGNAL(stop()), mailView, SLOT(stop()));
connect(compose, SIGNAL(activated()), SLOT(slotCompose()));
connect(sendQueue, SIGNAL(activated()), SLOT(slotSendQueued()));
connect(findmails, SIGNAL(activated()), SLOT(slotSearch()));
connect(configure, SIGNAL(activated()), SLOT(slotConfigure()));
}
void MainWindow::slotCompose()
{
Composer composer(this, 0, true);
composer.showMaximized();
composer.exec();
}
void MainWindow::slotSendQueued()
{
Composer composer(this, 0, true, true);
// composer.sendQueue();
composer.showMaximized();
composer.exec();
// composer.close();
}
void MainWindow::slotSearch()
{
SearchDiag searchDiag(this, 0, true);
searchDiag.showMaximized();
searchDiag.exec();
}
void MainWindow::slotConfigure()
{
ConfigDiag configDiag(this, 0, true);
configDiag.showMaximized();
configDiag.exec();
connect(&configDiag, SIGNAL(changed()), folderView, SLOT(update()));
}
void MainWindow::mailClicked(IMAPResponseFETCH mail, IMAPHandler *handler)
{
ViewMail viewMail(mail, handler, this, 0, true);
viewMail.showMaximized();
viewMail.exec();
}
diff --git a/noncore/unsupported/mail2/mainwindowbase.cpp b/noncore/unsupported/mail2/mainwindowbase.cpp
index bffe8b3..e35d489 100644
--- a/noncore/unsupported/mail2/mainwindowbase.cpp
+++ b/noncore/unsupported/mail2/mainwindowbase.cpp
@@ -1,91 +1,75 @@
-#include <qprogressbar.h>
-#include <qtoolbutton.h>
#include <qpopupmenu.h>
#include <qaction.h>
#include <qheader.h>
#include <qlabel.h>
#include <qvbox.h>
#include <qpe/qpetoolbar.h>
#include <qpe/qpemenubar.h>
#include <qpe/resource.h>
#include "mainwindowbase.h"
+#include "mailstatusbar.h"
#include "folderwidget.h"
#include "mailtable.h"
MainWindowBase::MainWindowBase(QWidget *parent, const char *name, WFlags fl)
: QMainWindow(parent, name, fl)
{
setCaption(tr("E-Mail"));
setToolBarsMovable(false);
toolbar = new QPEToolBar(this);
menubar = new QPEMenuBar( toolbar );
mailmenu = new QPopupMenu( menubar );
servermenu = new QPopupMenu( menubar );
menubar->insertItem( tr( "Mail" ), mailmenu );
menubar->insertItem( tr( "Servers" ), servermenu );
addToolBar(toolbar);
toolbar->setHorizontalStretchable(true);
QLabel *spacer = new QLabel(toolbar);
spacer->setBackgroundMode(QWidget::PaletteButton);
toolbar->setStretchableWidget(spacer);
compose = new QAction(tr("Compose new mail"), QIconSet(Resource::loadPixmap("mail/newmail")), 0, 0, this);
compose->addTo(toolbar);
compose->addTo(mailmenu);
sendQueue = new QAction(tr("Send queued mails"), QIconSet(Resource::loadPixmap("mail/sendqueue")), 0, 0, this);
sendQueue->addTo(toolbar);
sendQueue->addTo(mailmenu);
folders = new QAction(tr("Show/hide folders"), QIconSet(Resource::loadPixmap("mail/folder")), 0, 0, this, 0, true);
folders->addTo(toolbar);
folders->addTo(servermenu);
connect(folders, SIGNAL(toggled(bool)), SLOT(slotFoldersToggled(bool)));
findmails = new QAction(tr("Search mails"), QIconSet(Resource::loadPixmap("mail/find")), 0, 0, this);
findmails->addTo(toolbar);
findmails->addTo(mailmenu);
configure = new QAction(tr("Configuration"), QIconSet(Resource::loadPixmap("mail/configure")), 0, 0, this);
configure->addTo(servermenu);
QVBox *view = new QVBox(this);
setCentralWidget(view);
folderView = new FolderWidget(view);
folderView->setMinimumHeight(90);
folderView->setMaximumHeight(90);
folderView->hide();
mailView = new MailTable(view);
mailView->setMinimumHeight(50);
- QHBox *status = new QHBox(view);
-
- statusLabel = new QLabel(status);
- QFont tmpFont = statusLabel->font();
- tmpFont.setPixelSize(8);
- statusLabel->setFont(tmpFont);
-
- stopButton = new QToolButton(status);
- stopButton->setText(" X ");
- stopButton->setMaximumHeight(15);
- stopButton->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
-
- statusProgress = new QProgressBar(status);
- statusProgress->setCenterIndicator(true);
- statusProgress->setMaximumHeight(15);
- statusProgress->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
+ status = new MailStatusBar(view);
}
void MainWindowBase::slotFoldersToggled(bool toggled)
{
if (folderView->isHidden() && toggled) folderView->show();
if (!folderView->isHidden() && !toggled) folderView->hide();
}
diff --git a/noncore/unsupported/mail2/mainwindowbase.h b/noncore/unsupported/mail2/mainwindowbase.h
index 702933a..11c5ea0 100644
--- a/noncore/unsupported/mail2/mainwindowbase.h
+++ b/noncore/unsupported/mail2/mainwindowbase.h
@@ -1,41 +1,37 @@
#ifndef MAINWINDOWBASE_H
#define MAINWINDOWBASE_H
#include <qmainwindow.h>
class ServerConnection;
-class QProgressBar;
+class MailStatusBar;
class FolderWidget;
-class QToolButton;
class QPEToolBar;
class QPEMenuBar;
class QPopupMenu;
class MailTable;
class QAction;
-class QLabel;
class MainWindowBase : public QMainWindow
{
Q_OBJECT
public:
MainWindowBase(QWidget *parent = 0, const char *name = 0, WFlags fl = 0);
protected slots:
void slotFoldersToggled(bool toggled);
protected:
ServerConnection *serverConnection;
- QProgressBar *statusProgress;
+ MailStatusBar *status;
FolderWidget *folderView;
- QToolButton *stopButton;
QPEToolBar *toolbar;
QPEMenuBar *menubar;
QPopupMenu *mailmenu, *servermenu;
MailTable *mailView;
QAction *compose, *sendQueue, *folders, *findmails, *configure;
- QLabel *statusLabel;
};
#endif