summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/net/mail/libmailwrapper/sendmailprogress.cpp4
-rw-r--r--noncore/net/mail/libmailwrapper/sendmailprogressui.ui4
-rw-r--r--noncore/net/mail/libmailwrapper/smtpwrapper.cpp15
-rw-r--r--noncore/net/mail/sendmailprogress.cpp4
-rw-r--r--noncore/net/mail/sendmailprogressui.ui4
-rw-r--r--noncore/net/mail/smtpwrapper.cpp15
6 files changed, 32 insertions, 14 deletions
diff --git a/noncore/net/mail/libmailwrapper/sendmailprogress.cpp b/noncore/net/mail/libmailwrapper/sendmailprogress.cpp
index 13ddd37..ef22750 100644
--- a/noncore/net/mail/libmailwrapper/sendmailprogress.cpp
+++ b/noncore/net/mail/libmailwrapper/sendmailprogress.cpp
@@ -1,23 +1,23 @@
#include "sendmailprogress.h"
#include <qprogressbar.h>
#include <qlabel.h>
#include <qstring.h>
progressMailSend::progressMailSend(QWidget*parent, const char * name)
- :progressMailSendUI(parent,name,false),m_current_mail(0),m_current_single(0),m_max_mail(0),m_max_single(0)
+ :progressMailSendUI(parent,name,true),m_current_mail(0),m_current_single(0),m_max_mail(0),m_max_single(0)
{
}
progressMailSend::~progressMailSend()
{
}
void progressMailSend::setMaxMails(unsigned int aMaxMails)
{
m_max_mail = aMaxMails;
allMailProgressBar->setTotalSteps(aMaxMails);
setMails();
}
void progressMailSend::setCurrentMails(unsigned int aCurrent)
{
@@ -30,19 +30,19 @@ void progressMailSend::setSingleMail(unsigned int aCurrent,unsigned int aMax)
{
m_current_single = aCurrent;
m_max_single = aMax;
setSingle();
}
void progressMailSend::setSingle()
{
QString text = QString(tr("%1 of %2 bytes send")).arg(m_current_single).arg(m_max_single);
singleMailLabel->setText(text);
singleMailProgressBar->setTotalSteps(m_max_single);
singleMailProgressBar->setProgress(m_current_single);
}
void progressMailSend::setMails()
{
- QString text = QString(tr("Sending mail %1 of %2")).arg(m_current_single+1).arg(m_max_single);
+ QString text = QString(tr("Sending mail %1 of %2")).arg(m_current_mail+1).arg(m_max_mail);
allMailLabel->setText(text);
}
diff --git a/noncore/net/mail/libmailwrapper/sendmailprogressui.ui b/noncore/net/mail/libmailwrapper/sendmailprogressui.ui
index b90b088..287ab5e 100644
--- a/noncore/net/mail/libmailwrapper/sendmailprogressui.ui
+++ b/noncore/net/mail/libmailwrapper/sendmailprogressui.ui
@@ -1,31 +1,31 @@
<!DOCTYPE UI><UI>
<class>progressMailSendUI</class>
<widget>
<class>QDialog</class>
<property stdset="1">
<name>name</name>
<cstring>progressMailSendUI</cstring>
</property>
<property stdset="1">
<name>geometry</name>
<rect>
<x>0</x>
<y>0</y>
- <width>316</width>
- <height>266</height>
+ <width>221</width>
+ <height>127</height>
</rect>
</property>
<property stdset="1">
<name>caption</name>
<string>Sending mail</string>
</property>
<property>
<name>layoutMargin</name>
</property>
<property>
<name>layoutSpacing</name>
</property>
<vbox>
<property stdset="1">
<name>margin</name>
<number>4</number>
diff --git a/noncore/net/mail/libmailwrapper/smtpwrapper.cpp b/noncore/net/mail/libmailwrapper/smtpwrapper.cpp
index 53c0af5..770e2b8 100644
--- a/noncore/net/mail/libmailwrapper/smtpwrapper.cpp
+++ b/noncore/net/mail/libmailwrapper/smtpwrapper.cpp
@@ -512,33 +512,33 @@ void SMTPwrapper::readFromFile(const QString&file, char **data, size_t *size )
memset(message,0,4096);
while (msg_cache.readBlock(message,4095)>0) {
msg+=message;
memset(message,0,4096);
}
delete message;
*data = (char*)malloc(msg.length()+1*sizeof(char));
memset(*data,0,msg.length()+1);
memcpy(*data,msg.ascii(),msg.length());
*size=msg.length();
}
void SMTPwrapper::progress( size_t current, size_t maximum )
{
if (SMTPwrapper::sendProgress) {
SMTPwrapper::sendProgress->setSingleMail(current, maximum );
- qDebug("%u of %u",current,maximum);
+ qApp->processEvents();
}
}
void SMTPwrapper::storeMail(char*mail, size_t length, const QString&box)
{
if (!mail) return;
QString localfolders = (QString) getenv( "HOME" ) + QString("/Applications/opiemail/localmail/");
MBOXwrapper*wrap = new MBOXwrapper(localfolders);
wrap->storeMessage(mail,length,box);
delete wrap;
}
void SMTPwrapper::smtpSend( mailmime *mail,bool later, SMTPaccount *smtp )
{
clist *rcpts = 0;
char *from, *data;
@@ -639,35 +639,35 @@ free_mem:
free( pass );
}
return result;
}
void SMTPwrapper::sendMail(const Mail&mail,bool later )
{
mailmime * mimeMail;
SMTPaccount *smtp = getAccount(mail.getName());
mimeMail = createMimeMail(mail );
if ( mimeMail == NULL ) {
qDebug( "sendMail: error creating mime mail" );
} else {
sendProgress = new progressMailSend();
- sendProgress->showMaximized();
+// sendProgress->showMaximized();
sendProgress->show();
- qApp->processEvents(10);
+ sendProgress->setMaxMails(1);
smtpSend( mimeMail,later,smtp);
mailmime_free( mimeMail );
qDebug("Clean up done");
sendProgress->hide();
delete sendProgress;
sendProgress = 0;
}
}
int SMTPwrapper::sendQueuedMail(MBOXwrapper*wrap,SMTPaccount*smtp,RecMail*which)
{
char*data = 0;
size_t length = 0;
size_t curTok = 0;
mailimf_fields *fields = 0;
mailimf_field*ffrom = 0;
@@ -700,29 +700,38 @@ void SMTPwrapper::flushOutbox(SMTPaccount*smtp)
if (!smtp) return;
QString localfolders = (QString) getenv( "HOME" ) + QString("/Applications/opiemail/localmail/");
MBOXwrapper*wrap = new MBOXwrapper(localfolders);
if (!wrap) {
qDebug("memory error");
return;
}
QList<RecMail> mailsToSend;
QList<RecMail> mailsToRemove;
QString mbox("Outgoing");
wrap->listMessages(mbox,mailsToSend);
if (mailsToSend.count()==0) {
delete wrap;
return;
}
mailsToSend.setAutoDelete(false);
+ sendProgress = new progressMailSend();
+// sendProgress->showMaximized();
+ sendProgress->show();
+ sendProgress->setMaxMails(mailsToSend.count());
+
while (mailsToSend.count()>0) {
if (sendQueuedMail(wrap,smtp,mailsToSend.at(0))==0) {
QMessageBox::critical(0,tr("Error sending mail"),
tr("Error sending queued mail - breaking"));
break;
}
mailsToRemove.append(mailsToSend.at(0));
mailsToSend.removeFirst();
+ sendProgress->setCurrentMails(mailsToRemove.count());
}
+ sendProgress->hide();
+ delete sendProgress;
+ sendProgress = 0;
wrap->deleteMails(mbox,mailsToRemove);
mailsToSend.setAutoDelete(true);
delete wrap;
}
diff --git a/noncore/net/mail/sendmailprogress.cpp b/noncore/net/mail/sendmailprogress.cpp
index 13ddd37..ef22750 100644
--- a/noncore/net/mail/sendmailprogress.cpp
+++ b/noncore/net/mail/sendmailprogress.cpp
@@ -1,23 +1,23 @@
#include "sendmailprogress.h"
#include <qprogressbar.h>
#include <qlabel.h>
#include <qstring.h>
progressMailSend::progressMailSend(QWidget*parent, const char * name)
- :progressMailSendUI(parent,name,false),m_current_mail(0),m_current_single(0),m_max_mail(0),m_max_single(0)
+ :progressMailSendUI(parent,name,true),m_current_mail(0),m_current_single(0),m_max_mail(0),m_max_single(0)
{
}
progressMailSend::~progressMailSend()
{
}
void progressMailSend::setMaxMails(unsigned int aMaxMails)
{
m_max_mail = aMaxMails;
allMailProgressBar->setTotalSteps(aMaxMails);
setMails();
}
void progressMailSend::setCurrentMails(unsigned int aCurrent)
{
@@ -30,19 +30,19 @@ void progressMailSend::setSingleMail(unsigned int aCurrent,unsigned int aMax)
{
m_current_single = aCurrent;
m_max_single = aMax;
setSingle();
}
void progressMailSend::setSingle()
{
QString text = QString(tr("%1 of %2 bytes send")).arg(m_current_single).arg(m_max_single);
singleMailLabel->setText(text);
singleMailProgressBar->setTotalSteps(m_max_single);
singleMailProgressBar->setProgress(m_current_single);
}
void progressMailSend::setMails()
{
- QString text = QString(tr("Sending mail %1 of %2")).arg(m_current_single+1).arg(m_max_single);
+ QString text = QString(tr("Sending mail %1 of %2")).arg(m_current_mail+1).arg(m_max_mail);
allMailLabel->setText(text);
}
diff --git a/noncore/net/mail/sendmailprogressui.ui b/noncore/net/mail/sendmailprogressui.ui
index b90b088..287ab5e 100644
--- a/noncore/net/mail/sendmailprogressui.ui
+++ b/noncore/net/mail/sendmailprogressui.ui
@@ -1,31 +1,31 @@
<!DOCTYPE UI><UI>
<class>progressMailSendUI</class>
<widget>
<class>QDialog</class>
<property stdset="1">
<name>name</name>
<cstring>progressMailSendUI</cstring>
</property>
<property stdset="1">
<name>geometry</name>
<rect>
<x>0</x>
<y>0</y>
- <width>316</width>
- <height>266</height>
+ <width>221</width>
+ <height>127</height>
</rect>
</property>
<property stdset="1">
<name>caption</name>
<string>Sending mail</string>
</property>
<property>
<name>layoutMargin</name>
</property>
<property>
<name>layoutSpacing</name>
</property>
<vbox>
<property stdset="1">
<name>margin</name>
<number>4</number>
diff --git a/noncore/net/mail/smtpwrapper.cpp b/noncore/net/mail/smtpwrapper.cpp
index 53c0af5..770e2b8 100644
--- a/noncore/net/mail/smtpwrapper.cpp
+++ b/noncore/net/mail/smtpwrapper.cpp
@@ -512,33 +512,33 @@ void SMTPwrapper::readFromFile(const QString&file, char **data, size_t *size )
memset(message,0,4096);
while (msg_cache.readBlock(message,4095)>0) {
msg+=message;
memset(message,0,4096);
}
delete message;
*data = (char*)malloc(msg.length()+1*sizeof(char));
memset(*data,0,msg.length()+1);
memcpy(*data,msg.ascii(),msg.length());
*size=msg.length();
}
void SMTPwrapper::progress( size_t current, size_t maximum )
{
if (SMTPwrapper::sendProgress) {
SMTPwrapper::sendProgress->setSingleMail(current, maximum );
- qDebug("%u of %u",current,maximum);
+ qApp->processEvents();
}
}
void SMTPwrapper::storeMail(char*mail, size_t length, const QString&box)
{
if (!mail) return;
QString localfolders = (QString) getenv( "HOME" ) + QString("/Applications/opiemail/localmail/");
MBOXwrapper*wrap = new MBOXwrapper(localfolders);
wrap->storeMessage(mail,length,box);
delete wrap;
}
void SMTPwrapper::smtpSend( mailmime *mail,bool later, SMTPaccount *smtp )
{
clist *rcpts = 0;
char *from, *data;
@@ -639,35 +639,35 @@ free_mem:
free( pass );
}
return result;
}
void SMTPwrapper::sendMail(const Mail&mail,bool later )
{
mailmime * mimeMail;
SMTPaccount *smtp = getAccount(mail.getName());
mimeMail = createMimeMail(mail );
if ( mimeMail == NULL ) {
qDebug( "sendMail: error creating mime mail" );
} else {
sendProgress = new progressMailSend();
- sendProgress->showMaximized();
+// sendProgress->showMaximized();
sendProgress->show();
- qApp->processEvents(10);
+ sendProgress->setMaxMails(1);
smtpSend( mimeMail,later,smtp);
mailmime_free( mimeMail );
qDebug("Clean up done");
sendProgress->hide();
delete sendProgress;
sendProgress = 0;
}
}
int SMTPwrapper::sendQueuedMail(MBOXwrapper*wrap,SMTPaccount*smtp,RecMail*which)
{
char*data = 0;
size_t length = 0;
size_t curTok = 0;
mailimf_fields *fields = 0;
mailimf_field*ffrom = 0;
@@ -700,29 +700,38 @@ void SMTPwrapper::flushOutbox(SMTPaccount*smtp)
if (!smtp) return;
QString localfolders = (QString) getenv( "HOME" ) + QString("/Applications/opiemail/localmail/");
MBOXwrapper*wrap = new MBOXwrapper(localfolders);
if (!wrap) {
qDebug("memory error");
return;
}
QList<RecMail> mailsToSend;
QList<RecMail> mailsToRemove;
QString mbox("Outgoing");
wrap->listMessages(mbox,mailsToSend);
if (mailsToSend.count()==0) {
delete wrap;
return;
}
mailsToSend.setAutoDelete(false);
+ sendProgress = new progressMailSend();
+// sendProgress->showMaximized();
+ sendProgress->show();
+ sendProgress->setMaxMails(mailsToSend.count());
+
while (mailsToSend.count()>0) {
if (sendQueuedMail(wrap,smtp,mailsToSend.at(0))==0) {
QMessageBox::critical(0,tr("Error sending mail"),
tr("Error sending queued mail - breaking"));
break;
}
mailsToRemove.append(mailsToSend.at(0));
mailsToSend.removeFirst();
+ sendProgress->setCurrentMails(mailsToRemove.count());
}
+ sendProgress->hide();
+ delete sendProgress;
+ sendProgress = 0;
wrap->deleteMails(mbox,mailsToRemove);
mailsToSend.setAutoDelete(true);
delete wrap;
}