summaryrefslogtreecommitdiff
path: root/noncore/net/mailit/emailclient.cpp
authorgroucho <groucho>2003-04-29 08:04:34 (UTC)
committer groucho <groucho>2003-04-29 08:04:34 (UTC)
commitf09f685be0540e98cc33bc4f664a812aed756926 (patch) (side-by-side diff)
tree10a2193eafd1dc0ae25cd458f3bfa9f0f23522e1 /noncore/net/mailit/emailclient.cpp
parente096c9d1f2be1ec74ede583fc4221871a56ef508 (diff)
downloadopie-f09f685be0540e98cc33bc4f664a812aed756926.zip
opie-f09f685be0540e98cc33bc4f664a812aed756926.tar.gz
opie-f09f685be0540e98cc33bc4f664a812aed756926.tar.bz2
- added ReplyAll for CC: addressing
- added a download button in mail view - smaller layout fixes - now it's getting to be real useful
Diffstat (limited to 'noncore/net/mailit/emailclient.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/net/mailit/emailclient.cpp130
1 files changed, 97 insertions, 33 deletions
diff --git a/noncore/net/mailit/emailclient.cpp b/noncore/net/mailit/emailclient.cpp
index dff1888..2cedc51 100644
--- a/noncore/net/mailit/emailclient.cpp
+++ b/noncore/net/mailit/emailclient.cpp
@@ -16,19 +16,21 @@
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#include <qapplication.h>
#include <qmessagebox.h>
+#include <qvbox.h>
#include <qfile.h>
#include <qcheckbox.h>
#include <qmenubar.h>
#include <qaction.h>
#include <qwhatsthis.h>
#include <qpe/resource.h>
#include "emailclient.h"
+#include "writemail.h"
QCollection::Item AccountList::newItem(QCollection::Item d)
{
return dupl( (MailAccount *) d);
}
@@ -50,12 +52,14 @@ EmailClient::EmailClient( QWidget* parent, const char* name, WFlags fl )
mailIdCount = 1;
accountIdCount = 1;
allAccounts = FALSE;
init();
+
+
connect(emailHandler, SIGNAL(mailSent()), this, SLOT(mailSent()) );
connect(emailHandler, SIGNAL(smtpError(int)), this,
SLOT(smtpError(int)) );
connect(emailHandler, SIGNAL(popError(int)), this,
SLOT(popError(int)) );
@@ -63,13 +67,12 @@ EmailClient::EmailClient( QWidget* parent, const char* name, WFlags fl )
connect(inboxView, SIGNAL(doubleClicked(QListViewItem *)), this, SLOT(inboxItemSelected()) );
connect(outboxView, SIGNAL(doubleClicked(QListViewItem *)), this, SLOT(outboxItemSelected()) );
connect(inboxView, SIGNAL(pressed(QListViewItem *)), this, SLOT(inboxItemPressed()) );
connect(inboxView, SIGNAL(clicked(QListViewItem *)), this, SLOT(inboxItemReleased()) );
-
connect(emailHandler, SIGNAL(mailArrived(const Email &, bool)), this,
SLOT(mailArrived(const Email &, bool)) );
connect(emailHandler, SIGNAL(mailTransfered(int)), this,
SLOT(allMailArrived(int)) );
mailconf = new Config("mailit");
@@ -81,12 +84,17 @@ EmailClient::EmailClient( QWidget* parent, const char* name, WFlags fl )
lineShift = "\n";
readMail();
lineShift = "\r\n";
mailboxView->setCurrentTab(0); //ensure that inbox has focus
+
+ /*channel = new QCopChannel( "QPE/Application/mailit", this );
+ connect( channel, SIGNAL(received(const QCString&, const QByteArray&)),
+ this, SLOT(receive(const QCString&, const QByteArray&)) );*/
+
}
EmailClient::~EmailClient()
{
//needs to be moved from destructor to closewindow event
@@ -101,34 +109,13 @@ EmailClient::~EmailClient()
delete mailconf;
}
void EmailClient::init()
{
- statusBar = new QStatusBar(this);
- statusBar->setSizeGripEnabled(FALSE);
-
- status1Label = new QLabel( tr("Idle"), statusBar);
- status2Label = new QLabel("", statusBar);
- connect(emailHandler, SIGNAL(updatePopStatus(const QString &)),
- status2Label, SLOT(setText(const QString &)) );
- connect(emailHandler, SIGNAL(updateSmtpStatus(const QString &)),
- status2Label, SLOT(setText(const QString &)) );
-
- progressBar = new QProgressBar(statusBar);
-
- connect(emailHandler, SIGNAL(mailboxSize(int)),
- this, SLOT(setTotalSize(int)) );
- connect(emailHandler, SIGNAL(currentMailSize(int)),
- this, SLOT(setMailSize(int)) );
- connect(emailHandler, SIGNAL(downloadedSize(int)),
- this, SLOT(setDownloadedSize(int)) );
-
- statusBar->addWidget(status1Label);
- statusBar->addWidget(progressBar);
- statusBar->addWidget(status2Label);
+ initStatusBar(this);
setToolBarsMovable(FALSE);
bar = new QToolBar(this);
QWhatsThis::add(bar,tr("Main operation toolbar"));
bar->setHorizontalStretchable( TRUE );
@@ -191,14 +178,17 @@ void EmailClient::init()
inboxView = new QListView( widget, "inboxView" );
inboxView->addColumn( tr( "From" ) );
inboxView->addColumn( tr( "Subject" ) );
inboxView->addColumn( tr( "Date" ) );
inboxView->setMinimumSize( QSize( 0, 0 ) );
inboxView->setAllColumnsShowFocus(TRUE);
- QWhatsThis::add(inboxView,QWidget::tr("This is the inbox view.\n It keeps the fetched mail which can be viewed by double clicking the entry.\n"
- " A blue attachment icon shows whether this mail has attachments."));
+ QWhatsThis::add(inboxView,QWidget::tr("This is the inbox view.\n"
+ "It keeps the fetched mail which can be \n"
+ "viewed by double clicking the entry.\n"
+ "blue attachment icon shows whether this \n"
+ "mailhas attachments.\n"));
grid_2->addWidget( inboxView, 2, 0 );
mailboxView->addTab( widget, "mailit/inbox", tr( "Inbox" ) );
QWidget* widget_2 = new QWidget( mailboxView, "widget_2" );
grid_3 = new QGridLayout( widget_2 );
@@ -207,20 +197,49 @@ void EmailClient::init()
outboxView = new QListView( widget_2, "outboxView" );
outboxView->addColumn( tr( "To" ) );
outboxView->addColumn( tr( "Subject" ) );
outboxView->setAllColumnsShowFocus(TRUE);
- QWhatsThis::add(outboxView,QWidget::tr("This is the oubox view.\n It keeps the queued mails to send which can be reviewed by double clicking the entry."));
+ QWhatsThis::add(outboxView,QWidget::tr("This is the outbox view.\n"
+ "It keeps the queued mails to send which can be \n"
+ "reviewed by double clicking the entry."));
grid_3->addWidget( outboxView, 0, 0 );
mailboxView->addTab( widget_2,"mailit/outbox", tr( "Outbox" ) );
setCentralWidget(mailboxView);
}
+void EmailClient::initStatusBar(QWidget* parent)
+{
+ statusBar = new QStatusBar(parent);
+ statusBar->setSizeGripEnabled(FALSE);
+
+ status1Label = new QLabel( tr("Idle"), statusBar);
+ status2Label = new QLabel("", statusBar);
+ connect(emailHandler, SIGNAL(updatePopStatus(const QString &)),
+ status2Label, SLOT(setText(const QString &)) );
+ connect(emailHandler, SIGNAL(updateSmtpStatus(const QString &)),
+ status2Label, SLOT(setText(const QString &)) );
+
+ progressBar = new QProgressBar(statusBar);
+
+ connect(emailHandler, SIGNAL(mailboxSize(int)),
+ this, SLOT(setTotalSize(int)) );
+ connect(emailHandler, SIGNAL(currentMailSize(int)),
+ this, SLOT(setMailSize(int)) );
+ connect(emailHandler, SIGNAL(downloadedSize(int)),
+ this, SLOT(setDownloadedSize(int)) );
+
+ statusBar->addWidget(status1Label);
+ statusBar->addWidget(progressBar);
+ statusBar->addWidget(status2Label);
+
+}
+
void EmailClient::compose()
{
emit composeRequested();
}
void EmailClient::cancel()
@@ -316,22 +335,22 @@ void EmailClient::getNewMail() {
selectAccountMenu->setEnabled(FALSE);
status1Label->setText(currentAccount->accountName + " headers");
progressBar->reset();
//get any previous mails not downloaded and add to queue
- mailDownloadList.clear();
+ /*mailDownloadList.clear();
Email *mailPtr;
item = (EmailListItem *) inboxView->firstChild();
while (item != NULL) {
mailPtr = item->getMail();
if ( (!mailPtr->downloaded) && (mailPtr->fromAccountId == currentAccount->id) ) {
mailDownloadList.sizeInsert(mailPtr->serverId, mailPtr->size);
}
item = (EmailListItem *) item->nextSibling();
- }
+ }*/
emailHandler->getMailHeaders();
}
void EmailClient::getAllNewMail()
@@ -348,19 +367,21 @@ void EmailClient::mailArrived(const Email &mail, bool fromDisk)
int thisMailId;
emailHandler->parse(mail.rawMail, lineShift, &newMail);
mailconf->setGroup(newMail.id);
if (fromDisk)
{
+
newMail.downloaded = mailconf->readBoolEntry("downloaded");
newMail.size = mailconf->readNumEntry("size");
newMail.serverId = mailconf->readNumEntry("serverid");
newMail.fromAccountId = mailconf->readNumEntry("fromaccountid");
}
else
{ //mail arrived from server
+
newMail.serverId = mail.serverId;
newMail.size = mail.size;
newMail.downloaded = mail.downloaded;
newMail.fromAccountId = emailHandler->getAccount()->id;
mailconf->writeEntry("fromaccountid", newMail.fromAccountId);
@@ -915,13 +936,13 @@ void EmailClient::inboxItemPressed()
void EmailClient::inboxItemReleased()
{
// killTimer(timerID);
}
-void EmailClient::timerEvent(QTimerEvent *e)
+/*void EmailClient::timerEvent(QTimerEvent *e)
{
/*killTimer(timerID);
QPopupMenu *action = new QPopupMenu(this);
@@ -932,14 +953,14 @@ void EmailClient::timerEvent(QTimerEvent *e)
action->insertItem( tr( "Forward" ), this,SLOT(forward()));
action->insertItem( tr( "Remove Mail" ), this,SLOT(remove()));
action->exec(QCursor::pos());
if (action) delete action;
- */
-}
+
+}*/
Email* EmailClient::getCurrentMail()
{
EmailListItem *eli=(EmailListItem* ) (inboxView->selectedItem());
if (eli!=NULL)
return eli->getMail();
@@ -950,19 +971,62 @@ Email* EmailClient::getCurrentMail()
void EmailClient::download(Email* mail)
{
MailAccount* acc=0;
tempMailDownloadList.clear();
tempMailDownloadList.sizeInsert(mail->serverId, mail->size);
- if (accountList.count()>0)
- qDebug("Accounts present");
acc=accountList.at(mail->fromAccountId-1);
if (acc)
{
emailHandler->setAccount(*acc);
emailHandler->getMailByList(&tempMailDownloadList);
}
else
QMessageBox::warning(qApp->activeWindow(),
tr("No account associated"), tr("There is no active account \nassociated to this mail\n it can not be downloaded"), "Abort\n");
}
+
+void EmailClient::receive(const QCString& msg, const QByteArray& data)
+{
+ /*if (msg=="getMail()")
+ {
+ /*QDialog qd(qApp->activeWindow(),"Getting mail",true);
+ QVBoxLayout *vbProg = new QVBoxLayout( &qd );
+
+ initStatusBar(&qd);
+
+ if (statusBar==0)
+ {
+ qDebug("No Bar ...");
+ //statusBar=new ProgressBar(&qd);
+ }
+ statusBar->show();
+ vbProg->addWidget(statusBar);
+ qd.showMaximized();
+ qd.show();
+ emit getAllNewMail();
+ //qd.exec();
+ }
+ else if (msg=="compose()")
+ {
+ QDialog qd(qApp->activeWindow(),"Getting mail",true);
+
+ WriteMail wm(&qd,"write new mail");
+ QVBoxLayout vbProg( &qd );
+
+ wm.showMaximized();
+ vbProg.addWidget(&wm);
+
+ qd.showMaximized();
+
+ emit composeRequested();
+ qd.exec();
+
+ QMessageBox::warning(qApp->activeWindow(),tr("Info"), tr("Info"), "OK\n");
+ }
+
+ else if (msg=="dialog()")
+ {
+ QMessageBox::warning(qApp->activeWindow(),tr("Info"), tr("Info"), "OK\n");
+ }*/
+}