summaryrefslogtreecommitdiff
path: root/noncore/unsupported/mailit/emailclient.cpp
Unidiff
Diffstat (limited to 'noncore/unsupported/mailit/emailclient.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/unsupported/mailit/emailclient.cpp154
1 files changed, 143 insertions, 11 deletions
diff --git a/noncore/unsupported/mailit/emailclient.cpp b/noncore/unsupported/mailit/emailclient.cpp
index 0d82a9a..ad1e0b4 100644
--- a/noncore/unsupported/mailit/emailclient.cpp
+++ b/noncore/unsupported/mailit/emailclient.cpp
@@ -56,14 +56,18 @@ EmailClient::EmailClient( QWidget* parent, const char* name, WFlags fl )
56 56
57 connect(emailHandler, SIGNAL(smtpError(int)), this, 57 connect(emailHandler, SIGNAL(smtpError(int)), this,
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,
68 SLOT(allMailArrived(int)) ); 72 SLOT(allMailArrived(int)) );
69 73
@@ -140,16 +144,32 @@ void EmailClient::init()
140 mail->insertItem(tr("Get Mail in"), selectAccountMenu); 144 mail->insertItem(tr("Get Mail in"), selectAccountMenu);
141 configure->insertItem(tr("Edit account"), editAccountMenu); 145 configure->insertItem(tr("Edit account"), editAccountMenu);
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);
154 sendMailButton->addTo(mail); 174 sendMailButton->addTo(mail);
155 175
@@ -161,12 +181,16 @@ void EmailClient::init()
161 cancelButton = new QAction(tr("Cancel transfer"), Resource::loadPixmap("close"), QString::null, 0, this, 0); 181 cancelButton = new QAction(tr("Cancel transfer"), Resource::loadPixmap("close"), QString::null, 0, this, 0);
162 connect(cancelButton, SIGNAL(activated()), this, SLOT(cancel()) ); 182 connect(cancelButton, SIGNAL(activated()), this, SLOT(cancel()) );
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 );
171// grid_2->setSpacing(6); 195// grid_2->setSpacing(6);
172// grid_2->setMargin( 11 ); 196// grid_2->setMargin( 11 );
@@ -192,12 +216,14 @@ void EmailClient::init()
192 outboxView->setAllColumnsShowFocus(TRUE); 216 outboxView->setAllColumnsShowFocus(TRUE);
193 217
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{
202 emit composeRequested(); 228 emit composeRequested();
203} 229}
@@ -229,12 +255,14 @@ void EmailClient::enqueMail(const Email &mail)
229 Email addMail = mail; 255 Email addMail = mail;
230 addMail.from = currentAccount->name; 256 addMail.from = currentAccount->name;
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{
239 int count = 0; 267 int count = 0;
240 268
@@ -293,22 +321,22 @@ void EmailClient::getNewMail() {
293 selectAccountMenu->setEnabled(FALSE); 321 selectAccountMenu->setEnabled(FALSE);
294 322
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
313void EmailClient::getAllNewMail() 341void EmailClient::getAllNewMail()
314{ 342{
@@ -412,12 +440,14 @@ void EmailClient::mailArrived(const Email &mail, bool fromDisk)
412 } else { 440 } else {
413 item = new EmailListItem(inboxView, newMail, TRUE); 441 item = new EmailListItem(inboxView, newMail, TRUE);
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{
422 // not previewing means all mailtransfer has been done 452 // not previewing means all mailtransfer has been done
423 if (!previewingMail) { 453 if (!previewingMail) {
@@ -441,12 +471,14 @@ void EmailClient::allMailArrived(int count)
441 // all headers downloaded from server, start downloading remaining mails 471 // all headers downloaded from server, start downloading remaining mails
442 previewingMail = FALSE; 472 previewingMail = FALSE;
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{
451 if ( (receiving) && (mailPtr->fromAccountId == currentAccount->id) ) { 483 if ( (receiving) && (mailPtr->fromAccountId == currentAccount->id) ) {
452 mailDownloadList.moveFront(mailPtr->serverId, mailPtr->size); 484 mailDownloadList.moveFront(mailPtr->serverId, mailPtr->size);
@@ -506,20 +538,24 @@ void EmailClient::popError(int code)
506 cancelButton->setEnabled(FALSE); 538 cancelButton->setEnabled(FALSE);
507 selectAccountMenu->setEnabled(TRUE); 539 selectAccountMenu->setEnabled(TRUE);
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 }
524 560
525} 561}
@@ -689,22 +725,23 @@ void EmailClient::readSettings()
689 accountIdCount = y; 725 accountIdCount = y;
690 } 726 }
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
699 if (! f.open(IO_WriteOnly) ) { 736 if (! f.open(IO_WriteOnly) ) {
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
709 t << "accountStart;\n"; 746 t << "accountStart;\n";
710 t << "AccountName: " + accountPtr->accountName + "\n"; 747 t << "AccountName: " + accountPtr->accountName + "\n";
@@ -808,26 +845,27 @@ void EmailClient::updateAccounts()
808 idCount = 0; 845 idCount = 0;
809 for (accountPtr = accountList.first(); accountPtr != 0; 846 for (accountPtr = accountList.first(); accountPtr != 0;
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++;
819 } 856 }
820} 857}
821 858
822void EmailClient::deleteMail(EmailListItem *mailItem, bool &inbox) 859void 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
832 if ( (receiving) && (mPtr->fromAccountId == currentAccount->id) ) { 870 if ( (receiving) && (mPtr->fromAccountId == currentAccount->id) ) {
833 if ( !mPtr->downloaded ) 871 if ( !mPtr->downloaded )
@@ -841,13 +879,15 @@ void EmailClient::deleteMail(EmailListItem *mailItem, bool &inbox)
841 for ( ePtr=mPtr->files.first(); ePtr != 0; ePtr=mPtr->files.next() ) { 879 for ( ePtr=mPtr->files.first(); ePtr != 0; ePtr=mPtr->files.next() ) {
842 if (ePtr->saved) { 880 if (ePtr->saved) {
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
852void EmailClient::setMailSize(int size) 892void EmailClient::setMailSize(int size)
853{ 893{
@@ -867,6 +907,98 @@ void EmailClient::setDownloadedSize(int size)
867 if (size < total) { 907 if (size < total) {
868 progressBar->setProgress(size); 908 progressBar->setProgress(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