summaryrefslogtreecommitdiff
path: root/noncore/net/mailit/emailclient.cpp
authorgroucho <groucho>2003-04-20 07:59:48 (UTC)
committer groucho <groucho>2003-04-20 07:59:48 (UTC)
commit8b85cba50912127ff6a2d048021baf68306481c6 (patch) (unidiff)
treebfd1b377911d05db8e1c816f72fe070d5a5b2ff3 /noncore/net/mailit/emailclient.cpp
parent6b381e438fdeb1757b3278c683349dee9c4ab230 (diff)
downloadopie-8b85cba50912127ff6a2d048021baf68306481c6.zip
opie-8b85cba50912127ff6a2d048021baf68306481c6.tar.gz
opie-8b85cba50912127ff6a2d048021baf68306481c6.tar.bz2
- Added CC: support
- Added mail forwarding - Added icon for selective mail download - Removing mails from mail list via icon - Temporarily disabled mail header download queue
Diffstat (limited to 'noncore/net/mailit/emailclient.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mailit/emailclient.cpp154
1 files changed, 143 insertions, 11 deletions
diff --git a/noncore/net/mailit/emailclient.cpp b/noncore/net/mailit/emailclient.cpp
index 0d82a9a..ad1e0b4 100644
--- a/noncore/net/mailit/emailclient.cpp
+++ b/noncore/net/mailit/emailclient.cpp
@@ -58,10 +58,14 @@ EmailClient::EmailClient( QWidget* parent, const char* name, WFlags fl )
58 SLOT(smtpError(int)) ); 58 SLOT(smtpError(int)) );
59 connect(emailHandler, SIGNAL(popError(int)), this, 59 connect(emailHandler, SIGNAL(popError(int)), this,
60 SLOT(popError(int)) ); 60 SLOT(popError(int)) );
61 61
62 connect(inboxView, SIGNAL(clicked(QListViewItem *)), this, SLOT(inboxItemSelected()) ); 62 connect(inboxView, SIGNAL(doubleClicked(QListViewItem *)), this, SLOT(inboxItemSelected()) );
63 connect(outboxView, SIGNAL(clicked(QListViewItem *)), this, SLOT(outboxItemSelected()) ); 63 connect(outboxView, SIGNAL(doubleClicked(QListViewItem *)), this, SLOT(outboxItemSelected()) );
64
65 connect(inboxView, SIGNAL(pressed(QListViewItem *)), this, SLOT(inboxItemPressed()) );
66 connect(inboxView, SIGNAL(clicked(QListViewItem *)), this, SLOT(inboxItemReleased()) );
67
64 68
65 connect(emailHandler, SIGNAL(mailArrived(const Email &, bool)), this, 69 connect(emailHandler, SIGNAL(mailArrived(const Email &, bool)), this,
66 SLOT(mailArrived(const Email &, bool)) ); 70 SLOT(mailArrived(const Email &, bool)) );
67 connect(emailHandler, SIGNAL(mailTransfered(int)), this, 71 connect(emailHandler, SIGNAL(mailTransfered(int)), this,
@@ -142,12 +146,28 @@ void EmailClient::init()
142 configure->insertItem(tr("Delete account"), deleteAccountMenu); 146 configure->insertItem(tr("Delete account"), deleteAccountMenu);
143 147
144 bar = new QToolBar(this); 148 bar = new QToolBar(this);
145 149
146 getMailButton = new QAction(tr("Get all mail"), Resource::loadPixmap("mailit/getmail"), QString::null, 0, this, 0); 150 getMailButton = new QToolButton(Resource::loadPixmap("mailit/getmail"),tr("getMail"),tr("select account"), this,SLOT(getAllNewMail()),bar);
151 //connect(setAccountlButton, SIGNAL(activated()), this, SLOT(setCurrentAccount()) );
152 // setAccountButton->addTo(bar);
153 //setAccountButton->addTo(mail);
154
155 /*idCount = 0;
156
157 for (MailAccount* accountPtr = accountList.first(); accountPtr != 0;
158 accountPtr = accountList.next()) {
159
160 selectAccountMenu->insertItem(accountPtr->accountName,this, SLOT(selectAccount(int)), 0, idCount);
161 idCount++;
162 }*/
163 getMailButton->setPopup(selectAccountMenu);
164
165
166 /*getMailButton = new QAction(tr("Get all mail"), Resource::loadPixmap("mailit/getmail"), QString::null, 0, this, 0);
147 connect(getMailButton, SIGNAL(activated()), this, SLOT(getAllNewMail()) ); 167 connect(getMailButton, SIGNAL(activated()), this, SLOT(getAllNewMail()) );
148 getMailButton->addTo(bar); 168 getMailButton->addTo(bar);*/
149 getMailButton->addTo(mail); 169 //getMailButton->addTo(mail);
150 170
151 sendMailButton = new QAction(tr("Send mail"), Resource::loadPixmap("mailit/sendqueue"), QString::null, 0, this, 0); 171 sendMailButton = new QAction(tr("Send mail"), Resource::loadPixmap("mailit/sendqueue"), QString::null, 0, this, 0);
152 connect(sendMailButton, SIGNAL(activated()), this, SLOT(sendQuedMail()) ); 172 connect(sendMailButton, SIGNAL(activated()), this, SLOT(sendQuedMail()) );
153 sendMailButton->addTo(bar); 173 sendMailButton->addTo(bar);
@@ -163,8 +183,12 @@ void EmailClient::init()
163 cancelButton->addTo(mail); 183 cancelButton->addTo(mail);
164 cancelButton->addTo(bar); 184 cancelButton->addTo(bar);
165 cancelButton->setEnabled(FALSE); 185 cancelButton->setEnabled(FALSE);
166 186
187 deleteButton = new QAction( tr( "Delete" ), Resource::loadPixmap( "trash" ), QString::null, 0, this, 0 );
188 connect( deleteButton, SIGNAL( activated() ), this, SLOT( deleteItem() ) );
189 deleteButton->addTo(bar);
190
167 mailboxView = new OTabWidget( this, "mailboxView" ); 191 mailboxView = new OTabWidget( this, "mailboxView" );
168 192
169 QWidget* widget = new QWidget( mailboxView, "widget" ); 193 QWidget* widget = new QWidget( mailboxView, "widget" );
170 grid_2 = new QGridLayout( widget ); 194 grid_2 = new QGridLayout( widget );
@@ -194,8 +218,10 @@ void EmailClient::init()
194 grid_3->addWidget( outboxView, 0, 0 ); 218 grid_3->addWidget( outboxView, 0, 0 );
195 mailboxView->addTab( widget_2,"mailit/outbox", tr( "Outbox" ) ); 219 mailboxView->addTab( widget_2,"mailit/outbox", tr( "Outbox" ) );
196 220
197 setCentralWidget(mailboxView); 221 setCentralWidget(mailboxView);
222
223 mailboxView->setCurrentTab(0);
198} 224}
199 225
200void EmailClient::compose() 226void EmailClient::compose()
201{ 227{
@@ -231,8 +257,10 @@ void EmailClient::enqueMail(const Email &mail)
231 addMail.fromMail = currentAccount->emailAddress; 257 addMail.fromMail = currentAccount->emailAddress;
232 addMail.rawMail.prepend("From: " + addMail.from + "<" + addMail.fromMail + ">\n"); 258 addMail.rawMail.prepend("From: " + addMail.from + "<" + addMail.fromMail + ">\n");
233 item = new EmailListItem(outboxView, addMail, false); 259 item = new EmailListItem(outboxView, addMail, false);
234 260
261 mailboxView->setCurrentTab(1);
262
235} 263}
236 264
237void EmailClient::sendQuedMail() 265void EmailClient::sendQuedMail()
238{ 266{
@@ -295,18 +323,18 @@ void EmailClient::getNewMail() {
295 status1Label->setText(currentAccount->accountName + " headers"); 323 status1Label->setText(currentAccount->accountName + " headers");
296 progressBar->reset(); 324 progressBar->reset();
297 325
298 //get any previous mails not downloaded and add to queue 326 //get any previous mails not downloaded and add to queue
299 mailDownloadList.clear(); 327/* mailDownloadList.clear();
300 Email *mailPtr; 328 Email *mailPtr;
301 item = (EmailListItem *) inboxView->firstChild(); 329 item = (EmailListItem *) inboxView->firstChild();
302 while (item != NULL) { 330 while (item != NULL) {
303 mailPtr = item->getMail(); 331 mailPtr = item->getMail();
304 if ( (!mailPtr->downloaded) && (mailPtr->fromAccountId == currentAccount->id) ) { 332 if ( (!mailPtr->downloaded) && (mailPtr->fromAccountId == currentAccount->id) ) {
305 mailDownloadList.sizeInsert(mailPtr->serverId, mailPtr->size); 333 mailDownloadList.sizeInsert(mailPtr->serverId, mailPtr->size);
306 } 334 }
307 item = (EmailListItem *) item->nextSibling(); 335 item = (EmailListItem *) item->nextSibling();
308 } 336 }*/
309 337
310 emailHandler->getMailHeaders(); 338 emailHandler->getMailHeaders();
311} 339}
312 340
@@ -414,8 +442,10 @@ void EmailClient::mailArrived(const Email &mail, bool fromDisk)
414 if (!newMail.downloaded) 442 if (!newMail.downloaded)
415 mailDownloadList.sizeInsert(newMail.serverId, newMail.size); 443 mailDownloadList.sizeInsert(newMail.serverId, newMail.size);
416 } 444 }
417 445
446 mailboxView->setCurrentTab(0);
447
418} 448}
419 449
420void EmailClient::allMailArrived(int count) 450void EmailClient::allMailArrived(int count)
421{ 451{
@@ -443,8 +473,10 @@ void EmailClient::allMailArrived(int count)
443 status1Label->setText(currentAccount->accountName); 473 status1Label->setText(currentAccount->accountName);
444 progressBar->reset(); 474 progressBar->reset();
445 475
446 emailHandler->getMailByList(&mailDownloadList); 476 emailHandler->getMailByList(&mailDownloadList);
477
478 mailboxView->setCurrentTab(0);
447} 479}
448 480
449void EmailClient::moveMailFront(Email *mailPtr) 481void EmailClient::moveMailFront(Email *mailPtr)
450{ 482{
@@ -508,16 +540,20 @@ void EmailClient::popError(int code)
508} 540}
509 541
510void EmailClient::inboxItemSelected() 542void EmailClient::inboxItemSelected()
511{ 543{
544 killTimer(timerID);
545
512 item = (EmailListItem*) inboxView->selectedItem(); 546 item = (EmailListItem*) inboxView->selectedItem();
513 if (item != NULL) { 547 if (item != NULL) {
514 emit viewEmail(inboxView, item->getMail()); 548 emit viewEmail(inboxView, item->getMail());
515 } 549 }
516} 550}
517 551
518void EmailClient::outboxItemSelected() 552void EmailClient::outboxItemSelected()
519{ 553{
554 killTimer(timerID);
555
520 item = (EmailListItem*) outboxView->selectedItem(); 556 item = (EmailListItem*) outboxView->selectedItem();
521 if (item != NULL) { 557 if (item != NULL) {
522 emit viewEmail(outboxView, item->getMail()); 558 emit viewEmail(outboxView, item->getMail());
523 } 559 }
@@ -691,8 +727,9 @@ void EmailClient::readSettings()
691} 727}
692 728
693void EmailClient::saveSettings() 729void EmailClient::saveSettings()
694{ 730{
731
695 QString temp; 732 QString temp;
696 QFile f( getPath(FALSE) + "settings.txt"); 733 QFile f( getPath(FALSE) + "settings.txt");
697 MailAccount *accountPtr; 734 MailAccount *accountPtr;
698 735
@@ -700,9 +737,9 @@ void EmailClient::saveSettings()
700 qWarning("could not save settings file"); 737 qWarning("could not save settings file");
701 return; 738 return;
702 } 739 }
703 QTextStream t(&f); 740 QTextStream t(&f);
704 t << "#Settings for QPE Mailit program\n"; 741 t << "#Settings for OPIE Mailit program\n";
705 742
706 for (accountPtr = accountList.first(); accountPtr != 0; 743 for (accountPtr = accountList.first(); accountPtr != 0;
707 accountPtr = accountList.next()) { 744 accountPtr = accountList.next()) {
708 745
@@ -810,9 +847,9 @@ void EmailClient::updateAccounts()
810 accountPtr = accountList.next()) { 847 accountPtr = accountList.next()) {
811 848
812 editAccountMenu->insertItem(accountPtr->accountName, 849 editAccountMenu->insertItem(accountPtr->accountName,
813 this, SLOT(editAccount(int)), 0, idCount); 850 this, SLOT(editAccount(int)), 0, idCount);
814 selectAccountMenu->insertItem(accountPtr->accountName, 851 selectAccountMenu->insertItem(accountPtr->accountName,
815 this, SLOT(selectAccount(int)), 0, idCount); 852 this, SLOT(selectAccount(int)), 0, idCount);
816 deleteAccountMenu->insertItem(accountPtr->accountName, 853 deleteAccountMenu->insertItem(accountPtr->accountName,
817 this, SLOT(deleteAccount(int)), 0, idCount); 854 this, SLOT(deleteAccount(int)), 0, idCount);
818 idCount++; 855 idCount++;
@@ -823,9 +860,10 @@ void EmailClient::deleteMail(EmailListItem *mailItem, bool &inbox)
823{ 860{
824 Email *mPtr; 861 Email *mPtr;
825 Enclosure *ePtr; 862 Enclosure *ePtr;
826 863
827 if (inbox) { 864 if (inbox)
865 {
828 mPtr = mailItem->getMail(); 866 mPtr = mailItem->getMail();
829 867
830 //if mail is in queue for download, remove it from 868 //if mail is in queue for download, remove it from
831 //queue if possible 869 //queue if possible
@@ -843,9 +881,11 @@ void EmailClient::deleteMail(EmailListItem *mailItem, bool &inbox)
843 QFile::remove( (ePtr->path + ePtr->name) ); 881 QFile::remove( (ePtr->path + ePtr->name) );
844 } 882 }
845 } 883 }
846 inboxView->takeItem(mailItem); 884 inboxView->takeItem(mailItem);
847 } else { 885 }
886 else
887 {
848 outboxView->takeItem(mailItem); 888 outboxView->takeItem(mailItem);
849 } 889 }
850} 890}
851 891
@@ -869,4 +909,96 @@ void EmailClient::setDownloadedSize(int size)
869 } else { 909 } else {
870 progressBar->setProgress(total); 910 progressBar->setProgress(total);
871 } 911 }
872} 912}
913
914void EmailClient::deleteItem()
915{
916 bool inbox=mailboxView->currentTab()==0;
917
918 EmailListItem* eli;
919
920 inbox ? eli=(EmailListItem*)inboxView->selectedItem():eli=(EmailListItem*)outboxView->selectedItem();
921
922 if (eli)
923 deleteMail(eli,(bool&)inbox);
924}
925
926void EmailClient::inboxItemPressed()
927{
928 //timerID=startTimer(500);
929}
930
931void EmailClient::inboxItemReleased()
932{
933 //killTimer(timerID);
934}
935
936void EmailClient::timerEvent(QTimerEvent *e)
937{
938 /*killTimer(timerID);
939
940
941 QPopupMenu *action = new QPopupMenu(this);
942
943 int reply=0;
944
945 action->insertItem(tr( "Reply To" ),this,SLOT(reply()));
946 action->insertItem( tr( "Reply All" ),this,SLOT(replyAll()));
947 action->insertItem( tr( "Forward" ), this,SLOT(forward()));
948 action->insertItem( tr( "Remove Mail" ), this,SLOT(remove()));
949
950 action->exec(QCursor::pos());
951
952 if (action) delete action;
953 */
954}
955
956Email* EmailClient::getCurrentMail()
957{
958 EmailListItem *eli=(EmailListItem* ) (inboxView->selectedItem());
959 if (eli!=NULL)
960 return eli->getMail();
961 else
962 return NULL;
963}
964
965/*
966void EmailClient::reply()
967{
968 Email* mail=getCurrentMail();
969
970 if (mail!=NULL)
971 {
972 emit reply(*mail);
973 }
974}
975
976void EmailClient::replyAll()
977{
978 Email* mail=getCurrentMail();
979
980 if (mail!=NULL)
981 {
982 emit replyAll(*mail);
983 }
984}
985
986void EmailClient::forward()
987{
988 Email* mail=getCurrentMail();
989
990 if (mail!=NULL)
991 {
992 emit reply(*mail);
993 }
994}
995
996void EmailClient::remove()
997{
998 Email* mail=getCurrentMail();
999
1000 if (mail!=NULL)
1001 {
1002 emit remove(*mail);
1003 }
1004}*/ \ No newline at end of file