author | groucho <groucho> | 2003-05-07 06:55:30 (UTC) |
---|---|---|
committer | groucho <groucho> | 2003-05-07 06:55:30 (UTC) |
commit | 00894537decf01c5a5cdc565b2740b5e67a2e90f (patch) (side-by-side diff) | |
tree | 159404aa880f36961247287cdb42c19e4c4ef29f | |
parent | a3c1989c0563c0b16c5a6e722cd8484611622499 (diff) | |
download | opie-00894537decf01c5a5cdc565b2740b5e67a2e90f.zip opie-00894537decf01c5a5cdc565b2740b5e67a2e90f.tar.gz opie-00894537decf01c5a5cdc565b2740b5e67a2e90f.tar.bz2 |
Smaller fix which shows attachment icons also for downloaded mails
-rw-r--r-- | noncore/net/mailit/emailclient.cpp | 6 | ||||
-rw-r--r-- | noncore/unsupported/mailit/emailclient.cpp | 6 |
2 files changed, 10 insertions, 2 deletions
diff --git a/noncore/net/mailit/emailclient.cpp b/noncore/net/mailit/emailclient.cpp index 2cedc51..b039cc4 100644 --- a/noncore/net/mailit/emailclient.cpp +++ b/noncore/net/mailit/emailclient.cpp @@ -278,385 +278,389 @@ void EmailClient::enqueMail(const Email &mail) void EmailClient::sendQuedMail() { int count = 0; if (accountList.count() == 0) { QMessageBox::warning(qApp->activeWindow(), "No account selected", "You must create an account", "OK\n"); return; } //traverse listview, find messages to send if (! sending) { item = (EmailListItem *) outboxView->firstChild(); if (item != NULL) { while (item != NULL) { quedMessages.append(item->getMail()); item = (EmailListItem *) item->nextSibling(); count++; } setMailAccount(); emailHandler->sendMail(&quedMessages); sending = TRUE; sendMailButton->setEnabled(FALSE); cancelButton->setEnabled(TRUE); } else { qWarning("sendQuedMail(): no messages to send"); } } } void EmailClient::setMailAccount() { emailHandler->setAccount(*currentAccount); } void EmailClient::mailSent() { sending = FALSE; sendMailButton->setEnabled(TRUE); quedMessages.clear(); outboxView->clear(); //should be moved to an sentBox } void EmailClient::getNewMail() { if (accountList.count() == 0) { QMessageBox::warning(qApp->activeWindow(),"No account selected", "You must create an account", "OK\n"); return; } setMailAccount(); receiving = TRUE; previewingMail = TRUE; getMailButton->setEnabled(FALSE); cancelButton->setEnabled(TRUE); selectAccountMenu->setEnabled(FALSE); status1Label->setText(currentAccount->accountName + " headers"); progressBar->reset(); //get any previous mails not downloaded and add to queue /*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() { allAccounts = TRUE; currentAccount = accountList.first(); getNewMail(); } void EmailClient::mailArrived(const Email &mail, bool fromDisk) { Enclosure *ePtr; Email newMail; 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); } //add if read or not newMail.read = mailconf->readBoolEntry("mailread"); //check if new mail if ( (thisMailId = mailconf->readNumEntry("internalmailid", -1)) == -1) { thisMailId = mailIdCount; mailIdCount++; //set server count, so that if the user aborts, the new //header is not reloaded if ((currentAccount)&&(currentAccount->synchronize)) currentAccount->lastServerMailCount++; mailconf->writeEntry("internalmailid", thisMailId); mailconf->writeEntry("downloaded", newMail.downloaded); mailconf->writeEntry("size", (int) newMail.size); mailconf->writeEntry("serverid", newMail.serverId); //addressList->addContact(newMail.fromMail, newMail.from); } mailconf->writeEntry("downloaded", newMail.downloaded); QString stringMailId; stringMailId.setNum(thisMailId); //see if any attatchments needs to be stored for ( ePtr=newMail.files.first(); ePtr != 0; ePtr=newMail.files.next() ) { QString stringId; stringId.setNum(ePtr->id); int id = mailconf->readNumEntry("enclosureid_" + stringId); if (id != ePtr->id) { //new entry mailconf->writeEntry("enclosureid_" + stringId, ePtr->id); mailconf->writeEntry("name_" + stringId, ePtr->originalName); mailconf->writeEntry("contenttype_" + stringId, ePtr->contentType); mailconf->writeEntry("contentattribute_" + stringId, ePtr->contentAttribute); mailconf->writeEntry("saved_" + stringId, ePtr->saved); mailconf->writeEntry("installed_" + stringId, FALSE); ePtr->name = stringMailId + "_" + stringId; ePtr->path = getPath(TRUE); if (emailHandler->getEnclosure(ePtr)) { //file saved ePtr->saved = TRUE; mailconf->writeEntry("saved_" + stringId, ePtr->saved); mailconf->writeEntry("filename_" + stringId, ePtr->name); mailconf->writeEntry("path_" + stringId, ePtr->path); } else { ePtr->saved = FALSE; mailconf->writeEntry("saved_" + stringId, ePtr->saved); } } else { ePtr->saved = mailconf->readBoolEntry("saved_" + stringId); ePtr->installed = mailconf->readBoolEntry("installed_" + stringId); if (ePtr->saved) { ePtr->name = mailconf->readEntry("filename_" + stringId); ePtr->path = mailconf->readEntry("path_" + stringId); } } } bool found=false; if (!fromDisk) { Email *mailPtr; item = (EmailListItem *) inboxView->firstChild(); while ((item != NULL)&&(!found)) { mailPtr = item->getMail(); if (mailPtr->id == newMail.id) { item->setMail(newMail); emit mailUpdated(item->getMail()); found = true; } item = (EmailListItem *) item->nextSibling(); } } if ((!found)||(fromDisk)) item = new EmailListItem(inboxView, newMail, TRUE); - + + if (item->getMail()->files.count()>0) + { + item->setPixmap(0, Resource::loadPixmap("mailit/attach")); + } /*if (!newMail.downloaded) mailDownloadList.sizeInsert(newMail.serverId, newMail.size);*/ mailboxView->setCurrentTab(0); } void EmailClient::allMailArrived(int count) { // not previewing means all mailtransfer has been done /*if (!previewingMail) {*/ if ( (allAccounts) && ( (currentAccount = accountList.next()) !=0 ) ) { emit newCaption("Mailit - " + currentAccount->accountName); getNewMail(); return; } else { allAccounts = FALSE; receiving = FALSE; getMailButton->setEnabled(TRUE); cancelButton->setEnabled(FALSE); selectAccountMenu->setEnabled(TRUE); status1Label->setText("Idle"); progressBar->reset(); return; } //} // all headers downloaded from server, start downloading remaining mails previewingMail = FALSE; status1Label->setText(currentAccount->accountName); progressBar->reset(); mailboxView->setCurrentTab(0); } void EmailClient::moveMailFront(Email *mailPtr) { if ( (receiving) && (mailPtr->fromAccountId == currentAccount->id) ) { mailDownloadList.moveFront(mailPtr->serverId, mailPtr->size); } } void EmailClient::smtpError(int code) { QString temp; if (code == ErrUnknownResponse) temp = "Unknown response from server"; if (code == QSocket::ErrHostNotFound) temp = "host not found"; if (code == QSocket::ErrConnectionRefused) temp = "connection refused"; if (code == QSocket::ErrSocketRead) temp = "socket packet error"; if (code != ErrCancel) { QMessageBox::warning(qApp->activeWindow(), "Sending error", temp, "OK\n"); } else { status2Label->setText("Aborted by user"); } sending = FALSE; sendMailButton->setEnabled(TRUE); cancelButton->setEnabled(FALSE); quedMessages.clear(); } void EmailClient::popError(int code) { QString temp; if (code == ErrUnknownResponse) temp = "Unknown response from server"; if (code == ErrLoginFailed) temp = "Login failed\nCheck user name and password"; if (code == QSocket::ErrHostNotFound) temp = "host not found"; if (code == QSocket::ErrConnectionRefused) temp = "connection refused"; if (code == QSocket::ErrSocketRead) temp = "socket packet error"; if (code != ErrCancel) { QMessageBox::warning(qApp->activeWindow(), "Receiving error", temp, "OK\n"); } else { status2Label->setText("Aborted by user"); } receiving = FALSE; getMailButton->setEnabled(TRUE); cancelButton->setEnabled(FALSE); selectAccountMenu->setEnabled(TRUE); } void EmailClient::inboxItemSelected() { //killTimer(timerID); item = (EmailListItem*) inboxView->selectedItem(); if (item != NULL) { emit viewEmail(inboxView, item->getMail()); } } void EmailClient::outboxItemSelected() { //killTimer(timerID); item = (EmailListItem*) outboxView->selectedItem(); if (item != NULL) { emit viewEmail(outboxView, item->getMail()); } } void EmailClient::readMail() { Email mail; int start, stop; QString s, del; QFile f(getPath(FALSE) + "inbox.txt"); if ( f.open(IO_ReadOnly) ) { // file opened successfully QTextStream t( &f ); // use a text stream s = t.read(); f.close(); start = 0; del = "\n.\n"; while ((uint) start < s.length()) { stop = s.find(del, start); if (stop == -1) stop = s.length() - del.length(); mail.rawMail = s.mid(start, stop + del.length() - start ); start = stop + del.length(); mailArrived(mail, TRUE); } } QFile fo(getPath(FALSE) + "outbox.txt"); if ( fo.open(IO_ReadOnly) ) { // file opened successfully QTextStream t( &fo ); // use a text stream s = t.read(); fo.close(); start = 0; del = "\n.\n"; while ((uint) start < s.length()) { stop = s.find(del, start); if (stop == -1) stop = s.length() - del.length(); mail.rawMail = s.mid(start, stop + del.length() - start ); start = stop + del.length(); emailHandler->parse(mail.rawMail, lineShift, &mail); mail.sent = false; mail.received = false; enqueMail(mail); } } } void EmailClient::saveMail(QString fileName, QListView *view) { QFile f(fileName); Email *mail; if (! f.open(IO_WriteOnly) ) { qWarning("could not open file"); return; } item = (EmailListItem *) view->firstChild(); QTextStream t(&f); while (item != NULL) { mail = item->getMail(); t << mail->rawMail; mailconf->setGroup(mail->id); mailconf->writeEntry("mailread", mail->read); item = (EmailListItem *) item->nextSibling(); } f.close(); } diff --git a/noncore/unsupported/mailit/emailclient.cpp b/noncore/unsupported/mailit/emailclient.cpp index 2cedc51..b039cc4 100644 --- a/noncore/unsupported/mailit/emailclient.cpp +++ b/noncore/unsupported/mailit/emailclient.cpp @@ -278,385 +278,389 @@ void EmailClient::enqueMail(const Email &mail) void EmailClient::sendQuedMail() { int count = 0; if (accountList.count() == 0) { QMessageBox::warning(qApp->activeWindow(), "No account selected", "You must create an account", "OK\n"); return; } //traverse listview, find messages to send if (! sending) { item = (EmailListItem *) outboxView->firstChild(); if (item != NULL) { while (item != NULL) { quedMessages.append(item->getMail()); item = (EmailListItem *) item->nextSibling(); count++; } setMailAccount(); emailHandler->sendMail(&quedMessages); sending = TRUE; sendMailButton->setEnabled(FALSE); cancelButton->setEnabled(TRUE); } else { qWarning("sendQuedMail(): no messages to send"); } } } void EmailClient::setMailAccount() { emailHandler->setAccount(*currentAccount); } void EmailClient::mailSent() { sending = FALSE; sendMailButton->setEnabled(TRUE); quedMessages.clear(); outboxView->clear(); //should be moved to an sentBox } void EmailClient::getNewMail() { if (accountList.count() == 0) { QMessageBox::warning(qApp->activeWindow(),"No account selected", "You must create an account", "OK\n"); return; } setMailAccount(); receiving = TRUE; previewingMail = TRUE; getMailButton->setEnabled(FALSE); cancelButton->setEnabled(TRUE); selectAccountMenu->setEnabled(FALSE); status1Label->setText(currentAccount->accountName + " headers"); progressBar->reset(); //get any previous mails not downloaded and add to queue /*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() { allAccounts = TRUE; currentAccount = accountList.first(); getNewMail(); } void EmailClient::mailArrived(const Email &mail, bool fromDisk) { Enclosure *ePtr; Email newMail; 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); } //add if read or not newMail.read = mailconf->readBoolEntry("mailread"); //check if new mail if ( (thisMailId = mailconf->readNumEntry("internalmailid", -1)) == -1) { thisMailId = mailIdCount; mailIdCount++; //set server count, so that if the user aborts, the new //header is not reloaded if ((currentAccount)&&(currentAccount->synchronize)) currentAccount->lastServerMailCount++; mailconf->writeEntry("internalmailid", thisMailId); mailconf->writeEntry("downloaded", newMail.downloaded); mailconf->writeEntry("size", (int) newMail.size); mailconf->writeEntry("serverid", newMail.serverId); //addressList->addContact(newMail.fromMail, newMail.from); } mailconf->writeEntry("downloaded", newMail.downloaded); QString stringMailId; stringMailId.setNum(thisMailId); //see if any attatchments needs to be stored for ( ePtr=newMail.files.first(); ePtr != 0; ePtr=newMail.files.next() ) { QString stringId; stringId.setNum(ePtr->id); int id = mailconf->readNumEntry("enclosureid_" + stringId); if (id != ePtr->id) { //new entry mailconf->writeEntry("enclosureid_" + stringId, ePtr->id); mailconf->writeEntry("name_" + stringId, ePtr->originalName); mailconf->writeEntry("contenttype_" + stringId, ePtr->contentType); mailconf->writeEntry("contentattribute_" + stringId, ePtr->contentAttribute); mailconf->writeEntry("saved_" + stringId, ePtr->saved); mailconf->writeEntry("installed_" + stringId, FALSE); ePtr->name = stringMailId + "_" + stringId; ePtr->path = getPath(TRUE); if (emailHandler->getEnclosure(ePtr)) { //file saved ePtr->saved = TRUE; mailconf->writeEntry("saved_" + stringId, ePtr->saved); mailconf->writeEntry("filename_" + stringId, ePtr->name); mailconf->writeEntry("path_" + stringId, ePtr->path); } else { ePtr->saved = FALSE; mailconf->writeEntry("saved_" + stringId, ePtr->saved); } } else { ePtr->saved = mailconf->readBoolEntry("saved_" + stringId); ePtr->installed = mailconf->readBoolEntry("installed_" + stringId); if (ePtr->saved) { ePtr->name = mailconf->readEntry("filename_" + stringId); ePtr->path = mailconf->readEntry("path_" + stringId); } } } bool found=false; if (!fromDisk) { Email *mailPtr; item = (EmailListItem *) inboxView->firstChild(); while ((item != NULL)&&(!found)) { mailPtr = item->getMail(); if (mailPtr->id == newMail.id) { item->setMail(newMail); emit mailUpdated(item->getMail()); found = true; } item = (EmailListItem *) item->nextSibling(); } } if ((!found)||(fromDisk)) item = new EmailListItem(inboxView, newMail, TRUE); - + + if (item->getMail()->files.count()>0) + { + item->setPixmap(0, Resource::loadPixmap("mailit/attach")); + } /*if (!newMail.downloaded) mailDownloadList.sizeInsert(newMail.serverId, newMail.size);*/ mailboxView->setCurrentTab(0); } void EmailClient::allMailArrived(int count) { // not previewing means all mailtransfer has been done /*if (!previewingMail) {*/ if ( (allAccounts) && ( (currentAccount = accountList.next()) !=0 ) ) { emit newCaption("Mailit - " + currentAccount->accountName); getNewMail(); return; } else { allAccounts = FALSE; receiving = FALSE; getMailButton->setEnabled(TRUE); cancelButton->setEnabled(FALSE); selectAccountMenu->setEnabled(TRUE); status1Label->setText("Idle"); progressBar->reset(); return; } //} // all headers downloaded from server, start downloading remaining mails previewingMail = FALSE; status1Label->setText(currentAccount->accountName); progressBar->reset(); mailboxView->setCurrentTab(0); } void EmailClient::moveMailFront(Email *mailPtr) { if ( (receiving) && (mailPtr->fromAccountId == currentAccount->id) ) { mailDownloadList.moveFront(mailPtr->serverId, mailPtr->size); } } void EmailClient::smtpError(int code) { QString temp; if (code == ErrUnknownResponse) temp = "Unknown response from server"; if (code == QSocket::ErrHostNotFound) temp = "host not found"; if (code == QSocket::ErrConnectionRefused) temp = "connection refused"; if (code == QSocket::ErrSocketRead) temp = "socket packet error"; if (code != ErrCancel) { QMessageBox::warning(qApp->activeWindow(), "Sending error", temp, "OK\n"); } else { status2Label->setText("Aborted by user"); } sending = FALSE; sendMailButton->setEnabled(TRUE); cancelButton->setEnabled(FALSE); quedMessages.clear(); } void EmailClient::popError(int code) { QString temp; if (code == ErrUnknownResponse) temp = "Unknown response from server"; if (code == ErrLoginFailed) temp = "Login failed\nCheck user name and password"; if (code == QSocket::ErrHostNotFound) temp = "host not found"; if (code == QSocket::ErrConnectionRefused) temp = "connection refused"; if (code == QSocket::ErrSocketRead) temp = "socket packet error"; if (code != ErrCancel) { QMessageBox::warning(qApp->activeWindow(), "Receiving error", temp, "OK\n"); } else { status2Label->setText("Aborted by user"); } receiving = FALSE; getMailButton->setEnabled(TRUE); cancelButton->setEnabled(FALSE); selectAccountMenu->setEnabled(TRUE); } void EmailClient::inboxItemSelected() { //killTimer(timerID); item = (EmailListItem*) inboxView->selectedItem(); if (item != NULL) { emit viewEmail(inboxView, item->getMail()); } } void EmailClient::outboxItemSelected() { //killTimer(timerID); item = (EmailListItem*) outboxView->selectedItem(); if (item != NULL) { emit viewEmail(outboxView, item->getMail()); } } void EmailClient::readMail() { Email mail; int start, stop; QString s, del; QFile f(getPath(FALSE) + "inbox.txt"); if ( f.open(IO_ReadOnly) ) { // file opened successfully QTextStream t( &f ); // use a text stream s = t.read(); f.close(); start = 0; del = "\n.\n"; while ((uint) start < s.length()) { stop = s.find(del, start); if (stop == -1) stop = s.length() - del.length(); mail.rawMail = s.mid(start, stop + del.length() - start ); start = stop + del.length(); mailArrived(mail, TRUE); } } QFile fo(getPath(FALSE) + "outbox.txt"); if ( fo.open(IO_ReadOnly) ) { // file opened successfully QTextStream t( &fo ); // use a text stream s = t.read(); fo.close(); start = 0; del = "\n.\n"; while ((uint) start < s.length()) { stop = s.find(del, start); if (stop == -1) stop = s.length() - del.length(); mail.rawMail = s.mid(start, stop + del.length() - start ); start = stop + del.length(); emailHandler->parse(mail.rawMail, lineShift, &mail); mail.sent = false; mail.received = false; enqueMail(mail); } } } void EmailClient::saveMail(QString fileName, QListView *view) { QFile f(fileName); Email *mail; if (! f.open(IO_WriteOnly) ) { qWarning("could not open file"); return; } item = (EmailListItem *) view->firstChild(); QTextStream t(&f); while (item != NULL) { mail = item->getMail(); t << mail->rawMail; mailconf->setGroup(mail->id); mailconf->writeEntry("mailread", mail->read); item = (EmailListItem *) item->nextSibling(); } f.close(); } |