-rw-r--r-- | kmicromail/libmailwrapper/abstractmail.cpp | 53 | ||||
-rw-r--r-- | kmicromail/libmailwrapper/imapwrapper.cpp | 62 | ||||
-rw-r--r-- | kmicromail/libmailwrapper/imapwrapper.h | 4 | ||||
-rw-r--r-- | kmicromail/libmailwrapper/pop3wrapper.cpp | 49 |
4 files changed, 67 insertions, 101 deletions
diff --git a/kmicromail/libmailwrapper/abstractmail.cpp b/kmicromail/libmailwrapper/abstractmail.cpp index cef4e97..f876235 100644 --- a/kmicromail/libmailwrapper/abstractmail.cpp +++ b/kmicromail/libmailwrapper/abstractmail.cpp | |||
@@ -1,15 +1,16 @@ | |||
1 | // CHANGED 2004-09-31 Lutz Rogowski | 1 | // CHANGED 2004-09-31 Lutz Rogowski |
2 | #include "abstractmail.h" | 2 | #include "abstractmail.h" |
3 | #include "imapwrapper.h" | 3 | #include "imapwrapper.h" |
4 | #include "pop3wrapper.h" | 4 | #include "pop3wrapper.h" |
5 | #include "nntpwrapper.h" | 5 | #include "nntpwrapper.h" |
6 | #include "mhwrapper.h" | 6 | #include "mhwrapper.h" |
7 | #include "mailtypes.h" | 7 | #include "mailtypes.h" |
8 | #include <qpe/global.h> | ||
8 | 9 | ||
9 | 10 | ||
10 | #include <qprogressbar.h> | 11 | #include <qprogressbar.h> |
11 | #include <qapplication.h> | 12 | #include <qapplication.h> |
12 | 13 | ||
13 | #include <kdecore/kstandarddirs.h> | 14 | #include <kdecore/kstandarddirs.h> |
14 | #include <qfile.h> | 15 | #include <qfile.h> |
15 | #include <qtextstream.h> | 16 | #include <qtextstream.h> |
@@ -141,34 +142,21 @@ void AbstractMail::deleteMails(const QString &,const QValueList<Opie::Core::OSma | |||
141 | { | 142 | { |
142 | } | 143 | } |
143 | void AbstractMail::deleteMailList(const QValueList<RecMailP>&target) | 144 | void AbstractMail::deleteMailList(const QValueList<RecMailP>&target) |
144 | { | 145 | { |
145 | //qDebug("AbstractMail::deleteMailList:: Please reimplement! "); | 146 | //qDebug("AbstractMail::deleteMailList:: Please reimplement! "); |
146 | // this is currently re-implemented in pop3wrapper and imapwrapper | 147 | // this is currently re-implemented in pop3wrapper and imapwrapper |
147 | int iii = 0; | 148 | int iii = 0; |
148 | int count = target.count(); | 149 | int count = target.count(); |
149 | QProgressBar bar( count,0 ); | 150 | QWidget wid; |
150 | bar.setCaption (("Removing mails - close to abort!") ); | 151 | wid.show(); |
151 | int w = 300; | 152 | while (iii < count ) { |
152 | if ( QApplication::desktop()->width() < 320 ) | 153 | Global::statusMessage(tr("Delete message %1 of %2").arg(iii).arg(count)); |
153 | w = 220; | 154 | wid.raise(); |
154 | int h = bar.sizeHint().height() ; | ||
155 | int dw = QApplication::desktop()->width(); | ||
156 | int dh = QApplication::desktop()->height(); | ||
157 | bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); | ||
158 | bar.show(); | ||
159 | int modulo = (count/10)+1; | ||
160 | int incCounter = 0; | ||
161 | while (iii < count ) { | ||
162 | if ( ! bar.isVisible() ) | ||
163 | return ; | ||
164 | if ( incCounter % modulo == 0 ) | ||
165 | bar.setProgress( incCounter ); | ||
166 | ++incCounter; | ||
167 | qApp->processEvents(); | 155 | qApp->processEvents(); |
168 | RecMailP mail = (*target.at( iii )); | 156 | RecMailP mail = (*target.at( iii )); |
169 | deleteMail(mail); | 157 | deleteMail(mail); |
170 | ++iii; | 158 | ++iii; |
171 | } | 159 | } |
172 | } | 160 | } |
173 | void AbstractMail::mvcpAllMails(const FolderP&fromFolder, | 161 | void AbstractMail::mvcpAllMails(const FolderP&fromFolder, |
174 | const QString&targetFolder,AbstractMail*targetWrapper,bool moveit, int maxSizeInKb) | 162 | const QString&targetFolder,AbstractMail*targetWrapper,bool moveit, int maxSizeInKb) |
@@ -181,47 +169,32 @@ void AbstractMail::mvcpAllMails(const FolderP&fromFolder, | |||
181 | void AbstractMail::mvcpMailList(const QValueList<RecMailP>& t, | 169 | void AbstractMail::mvcpMailList(const QValueList<RecMailP>& t, |
182 | const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) | 170 | const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) |
183 | { | 171 | { |
184 | encodedString*st = 0; | 172 | encodedString*st = 0; |
185 | int iii = 0; | 173 | int iii = 0; |
186 | int count = t.count(); | 174 | int count = t.count(); |
187 | if ( count == 0 ) | 175 | if ( count == 0 ) |
188 | return; | 176 | return; |
189 | 177 | // wel, processevents is qite strange, we need a widget for getting | |
190 | QProgressBar bar( count,0 ); | 178 | // Global::statusMessage(tr("Copy2 message %1").arg(iii)); displayed |
191 | bar.setCaption (("Copying mails - close to abort!") ); | 179 | QWidget wid; |
192 | int w = 300; | 180 | wid.show(); |
193 | if ( QApplication::desktop()->width() < 320 ) | 181 | while (iii < count ) { |
194 | w = 220; | 182 | Global::statusMessage(tr("Copy message %1 of %2").arg(iii).arg(count)); |
195 | int h = bar.sizeHint().height() ; | 183 | wid.raise(); |
196 | int dw = QApplication::desktop()->width(); | ||
197 | int dh = QApplication::desktop()->height(); | ||
198 | bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); | ||
199 | bar.show(); | ||
200 | int modulo = (count/10)+1; | ||
201 | int incCounter = 0; | ||
202 | while (iii < count ) { | ||
203 | if ( ! bar.isVisible() ) | ||
204 | return ; | ||
205 | if ( incCounter % modulo == 0 ) | ||
206 | bar.setProgress( incCounter ); | ||
207 | ++incCounter; | ||
208 | bar.raise(); | ||
209 | qApp->processEvents(); | 184 | qApp->processEvents(); |
210 | //qDebug("copy "); | ||
211 | RecMailP r = (*t.at( iii )); | 185 | RecMailP r = (*t.at( iii )); |
212 | st = fetchRawBody(r); | 186 | st = fetchRawBody(r); |
213 | if (st) { | 187 | if (st) { |
214 | targetWrapper->storeMessage(st->Content(),st->Length(),targetFolder); | 188 | targetWrapper->storeMessage(st->Content(),st->Length(),targetFolder); |
215 | delete st; | 189 | delete st; |
216 | } | 190 | } |
217 | ++iii; | 191 | ++iii; |
218 | } | 192 | } |
219 | bar.hide(); | ||
220 | if (moveit) { | 193 | if (moveit) { |
221 | deleteMailList( t ); | 194 | deleteMailList( t ); |
222 | //deleteAllMail(fromFolder); | 195 | //deleteAllMail(fromFolder); |
223 | } | 196 | } |
224 | } | 197 | } |
225 | 198 | ||
226 | void AbstractMail::mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) | 199 | void AbstractMail::mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) |
227 | { | 200 | { |
diff --git a/kmicromail/libmailwrapper/imapwrapper.cpp b/kmicromail/libmailwrapper/imapwrapper.cpp index 021633b..be825ef 100644 --- a/kmicromail/libmailwrapper/imapwrapper.cpp +++ b/kmicromail/libmailwrapper/imapwrapper.cpp | |||
@@ -4,22 +4,27 @@ | |||
4 | #include <qpe/global.h> | 4 | #include <qpe/global.h> |
5 | #include <qapplication.h> | 5 | #include <qapplication.h> |
6 | #include "imapwrapper.h" | 6 | #include "imapwrapper.h" |
7 | #include "mailtypes.h" | 7 | #include "mailtypes.h" |
8 | #include "logindialog.h" | 8 | #include "logindialog.h" |
9 | #include <qprogressbar.h> | 9 | #include <qprogressbar.h> |
10 | 10 | ||
11 | using namespace Opie::Core; | 11 | using namespace Opie::Core; |
12 | int IMAPwrapper::mMax = 0; | ||
13 | int IMAPwrapper::mCurrent = 0; | ||
14 | |||
12 | IMAPwrapper::IMAPwrapper( IMAPaccount *a ) | 15 | IMAPwrapper::IMAPwrapper( IMAPaccount *a ) |
13 | : AbstractMail() | 16 | : AbstractMail() |
14 | { | 17 | { |
15 | account = a; | 18 | account = a; |
16 | m_imap = 0; | 19 | m_imap = 0; |
17 | m_Lastmbox = ""; | 20 | m_Lastmbox = ""; |
21 | mCurrent = 0; | ||
22 | mMax = 0; | ||
18 | } | 23 | } |
19 | 24 | ||
20 | IMAPwrapper::~IMAPwrapper() | 25 | IMAPwrapper::~IMAPwrapper() |
21 | { | 26 | { |
22 | logout(); | 27 | logout(); |
23 | } | 28 | } |
24 | 29 | ||
25 | /* to avoid to often select statements in loops etc. | 30 | /* to avoid to often select statements in loops etc. |
@@ -35,20 +40,40 @@ int IMAPwrapper::selectMbox(const QString&mbox) | |||
35 | return err; | 40 | return err; |
36 | } | 41 | } |
37 | m_Lastmbox = mbox; | 42 | m_Lastmbox = mbox; |
38 | return err; | 43 | return err; |
39 | } | 44 | } |
40 | 45 | ||
41 | void IMAPwrapper::imap_progress( size_t current, size_t maximum ) | 46 | void IMAPwrapper::imap_progress( size_t current, size_t maximum ) |
42 | { | 47 | { |
48 | //qDebug("imap progress %d of %d ",current,maximum ); | ||
49 | //Global::statusMessage(tr("Downloading message %1 of %2").arg( current).arg(maximum)); | ||
50 | //qApp->processEvents() | ||
51 | static int last = 0; | ||
52 | if ( last != current ) | ||
53 | IMAPwrapper::progress(); | ||
54 | last = current; | ||
55 | } | ||
56 | void IMAPwrapper::progress( QString m ) | ||
57 | { | ||
58 | |||
59 | static QString mProgrMess; | ||
60 | if ( m != QString::null ) { | ||
61 | mProgrMess = m; | ||
62 | mCurrent = 0; | ||
63 | return; | ||
64 | } | ||
65 | QString mess; | ||
66 | //qDebug("progress "); | ||
67 | if ( mMax ) mess = mProgrMess +tr(" message %1 of %2").arg( mCurrent++).arg(mMax); | ||
68 | else mess = mProgrMess +tr(" message %1").arg( mCurrent++); | ||
69 | Global::statusMessage(mess); | ||
43 | qApp->processEvents(); | 70 | qApp->processEvents(); |
44 | qDebug("imap progress %d of %d ",current,maximum ); | ||
45 | } | 71 | } |
46 | |||
47 | bool IMAPwrapper::start_tls(bool force_tls) | 72 | bool IMAPwrapper::start_tls(bool force_tls) |
48 | { | 73 | { |
49 | int err; | 74 | int err; |
50 | bool try_tls; | 75 | bool try_tls; |
51 | mailimap_capability_data * cap_data = 0; | 76 | mailimap_capability_data * cap_data = 0; |
52 | 77 | ||
53 | err = mailimap_capability(m_imap,&cap_data); | 78 | err = mailimap_capability(m_imap,&cap_data); |
54 | if (err != MAILIMAP_NO_ERROR) { | 79 | if (err != MAILIMAP_NO_ERROR) { |
@@ -460,18 +485,17 @@ RecMail*IMAPwrapper::parse_list_result(mailimap_msg_att* m_att) | |||
460 | } | 485 | } |
461 | if (head->env_message_id) { | 486 | if (head->env_message_id) { |
462 | m->setMsgid(QString(head->env_message_id)); | 487 | m->setMsgid(QString(head->env_message_id)); |
463 | } | 488 | } |
464 | } else if (item->att_data.att_static->att_type==MAILIMAP_MSG_ATT_INTERNALDATE) { | 489 | } else if (item->att_data.att_static->att_type==MAILIMAP_MSG_ATT_INTERNALDATE) { |
465 | #if 0 | 490 | #if 0 |
466 | mailimap_date_time*d = item->att_data.att_static->att_data.att_internal_date; | 491 | mailimap_date_time*d = item->att_data.att_static->att_data.att_internal_date; |
467 | QDateTime da(QDate(d->dt_year,d->dt_month,d->dt_day),QTime(d->dt_hour,d->dt_min,d->dt_sec)); | 492 | QDateTime da(QDate(d->dt_year,d->dt_month,d->dt_day),QTime(d->dt_hour,d->dt_min,d->dt_sec)); |
468 | //odebug << "" << d->dt_year << " " << d->dt_month << " " << d->dt_day << " - " << d->dt_hour << " " << d->dt_min << " " << d->dt_sec << "" << oendl; | 493 | qDebug("time %s ",da.toString().latin1() ); |
469 | //odebug << da.toString() << oendl; | ||
470 | #endif | 494 | #endif |
471 | } else if (item->att_data.att_static->att_type==MAILIMAP_MSG_ATT_RFC822_SIZE) { | 495 | } else if (item->att_data.att_static->att_type==MAILIMAP_MSG_ATT_RFC822_SIZE) { |
472 | size = item->att_data.att_static->att_data.att_rfc822_size; | 496 | size = item->att_data.att_static->att_data.att_rfc822_size; |
473 | } | 497 | } |
474 | } | 498 | } |
475 | /* msg is already deleted */ | 499 | /* msg is already deleted */ |
476 | if (mFlags.testBit(FLAG_DELETED) && m) { | 500 | if (mFlags.testBit(FLAG_DELETED) && m) { |
477 | delete m; | 501 | delete m; |
@@ -881,35 +905,24 @@ void IMAPwrapper::deleteMailList(const QValueList<RecMailP>&target) | |||
881 | //#endif | 905 | //#endif |
882 | if (!m_imap) { | 906 | if (!m_imap) { |
883 | return; | 907 | return; |
884 | } | 908 | } |
885 | int iii = 0; | 909 | int iii = 0; |
886 | int count = target.count(); | 910 | int count = target.count(); |
887 | // qDebug("imap remove count %d ", count); | 911 | // qDebug("imap remove count %d ", count); |
888 | 912 | ||
889 | QProgressBar bar( count,0 ); | 913 | |
890 | bar.setCaption (("Removing mails - close to abort!") ); | 914 | mMax = count; |
891 | int w = 300; | 915 | //progress( tr("Delete")); |
892 | if ( QApplication::desktop()->width() < 320 ) | 916 | QWidget wid; |
893 | w = 220; | 917 | wid.show(); |
894 | int h = bar.sizeHint().height() ; | ||
895 | int dw = QApplication::desktop()->width(); | ||
896 | int dh = QApplication::desktop()->height(); | ||
897 | bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); | ||
898 | bar.show(); | ||
899 | int modulo = (count/10)+1; | ||
900 | int incCounter = 0; | ||
901 | |||
902 | while (iii < count ) { | 918 | while (iii < count ) { |
903 | if ( ! bar.isVisible() ) | 919 | Global::statusMessage(tr("Delete message %1 of %2").arg(iii).arg(count)); |
904 | return ; | 920 | wid.raise(); |
905 | if ( incCounter % modulo == 0 ) | ||
906 | bar.setProgress( incCounter ); | ||
907 | ++incCounter; | ||
908 | qApp->processEvents(); | 921 | qApp->processEvents(); |
909 | RecMailP mail = (*target.at( iii )); | 922 | RecMailP mail = (*target.at( iii )); |
910 | //#if 0 | 923 | //#if 0 |
911 | //qDebug("IMAP remove %d %d ", iii, mail->getNumber() ); | 924 | //qDebug("IMAP remove %d %d ", iii, mail->getNumber() ); |
912 | err = selectMbox(mail->getMbox()); | 925 | err = selectMbox(mail->getMbox()); |
913 | if ( err != MAILIMAP_NO_ERROR ) { | 926 | if ( err != MAILIMAP_NO_ERROR ) { |
914 | return; | 927 | return; |
915 | } | 928 | } |
@@ -1194,31 +1207,34 @@ encodedString* IMAPwrapper::fetchRawBody(const RecMailP&mail) | |||
1194 | // dummy | 1207 | // dummy |
1195 | QValueList<int> path; | 1208 | QValueList<int> path; |
1196 | return fetchRawPart(mail,path,false); | 1209 | return fetchRawPart(mail,path,false); |
1197 | } | 1210 | } |
1198 | 1211 | ||
1199 | void IMAPwrapper::mvcpAllMails(const FolderP&fromFolder, | 1212 | void IMAPwrapper::mvcpAllMails(const FolderP&fromFolder, |
1200 | const QString&targetFolder,AbstractMail*targetWrapper,bool moveit, int maxSizeInKb) | 1213 | const QString&targetFolder,AbstractMail*targetWrapper,bool moveit, int maxSizeInKb) |
1201 | { | 1214 | { |
1202 | if (targetWrapper != this || maxSizeInKb > 0 ) { | 1215 | if (targetWrapper != this || maxSizeInKb > 0 ) { |
1216 | mMax = 0; | ||
1217 | progress( tr("Copy")); | ||
1203 | AbstractMail::mvcpAllMails(fromFolder,targetFolder,targetWrapper,moveit, maxSizeInKb); | 1218 | AbstractMail::mvcpAllMails(fromFolder,targetFolder,targetWrapper,moveit, maxSizeInKb); |
1204 | qDebug("IMAPwrapper::mvcpAllMails::Using generic"); | 1219 | qDebug("IMAPwrapper::mvcpAllMails::Using generic"); |
1205 | // odebug << "Using generic" << oendl; | 1220 | // odebug << "Using generic" << oendl; |
1206 | return; | 1221 | return; |
1207 | } | 1222 | } |
1208 | mailimap_set *set = 0; | 1223 | mailimap_set *set = 0; |
1209 | login(); | 1224 | login(); |
1210 | if (!m_imap) { | 1225 | if (!m_imap) { |
1211 | return; | 1226 | return; |
1212 | } | 1227 | } |
1213 | int err = selectMbox(fromFolder->getName()); | 1228 | int err = selectMbox(fromFolder->getName()); |
1214 | if ( err != MAILIMAP_NO_ERROR ) { | 1229 | if ( err != MAILIMAP_NO_ERROR ) { |
1215 | return; | 1230 | return; |
1216 | } | 1231 | } |
1232 | Global::statusMessage( tr("Copying mails on server...") ); | ||
1217 | int last = m_imap->imap_selection_info->sel_exists; | 1233 | int last = m_imap->imap_selection_info->sel_exists; |
1218 | set = mailimap_set_new_interval( 1, last ); | 1234 | set = mailimap_set_new_interval( 1, last ); |
1219 | err = mailimap_copy(m_imap,set,targetFolder.latin1()); | 1235 | err = mailimap_copy(m_imap,set,targetFolder.latin1()); |
1220 | mailimap_set_free( set ); | 1236 | mailimap_set_free( set ); |
1221 | if ( err != MAILIMAP_NO_ERROR ) { | 1237 | if ( err != MAILIMAP_NO_ERROR ) { |
1222 | QString error_msg = tr("Error copy mails: %1").arg(m_imap->imap_response); | 1238 | QString error_msg = tr("Error copy mails: %1").arg(m_imap->imap_response); |
1223 | Global::statusMessage(error_msg); | 1239 | Global::statusMessage(error_msg); |
1224 | // odebug << error_msg << oendl; | 1240 | // odebug << error_msg << oendl; |
diff --git a/kmicromail/libmailwrapper/imapwrapper.h b/kmicromail/libmailwrapper/imapwrapper.h index 222fe95..db8ab5b 100644 --- a/kmicromail/libmailwrapper/imapwrapper.h +++ b/kmicromail/libmailwrapper/imapwrapper.h | |||
@@ -68,15 +68,17 @@ protected: | |||
68 | void fillSingleMsgPart(RecPartP&target_part,mailimap_body_type_msg*which); | 68 | void fillSingleMsgPart(RecPartP&target_part,mailimap_body_type_msg*which); |
69 | void fillMultiPart(RecPartP&target_part,mailimap_body_type_mpart*which); | 69 | void fillMultiPart(RecPartP&target_part,mailimap_body_type_mpart*which); |
70 | void traverseBody(const RecMailP&mail,mailimap_body*body,RecBodyP&target_body,int current_recursion,QValueList<int>recList,int current_count=1); | 70 | void traverseBody(const RecMailP&mail,mailimap_body*body,RecBodyP&target_body,int current_recursion,QValueList<int>recList,int current_count=1); |
71 | 71 | ||
72 | /* just helpers */ | 72 | /* just helpers */ |
73 | static void fillBodyFields(RecPartP&target_part,mailimap_body_fields*which); | 73 | static void fillBodyFields(RecPartP&target_part,mailimap_body_fields*which); |
74 | static QStringList address_list_to_stringlist(clist*list); | 74 | static QStringList address_list_to_stringlist(clist*list); |
75 | 75 | ||
76 | 76 | static void progress(QString mess = QString::null); | |
77 | static int mCurrent; | ||
78 | static int mMax; | ||
77 | IMAPaccount *account; | 79 | IMAPaccount *account; |
78 | mailimap *m_imap; | 80 | mailimap *m_imap; |
79 | QString m_Lastmbox; | 81 | QString m_Lastmbox; |
80 | }; | 82 | }; |
81 | 83 | ||
82 | #endif | 84 | #endif |
diff --git a/kmicromail/libmailwrapper/pop3wrapper.cpp b/kmicromail/libmailwrapper/pop3wrapper.cpp index f430121..8d2f778 100644 --- a/kmicromail/libmailwrapper/pop3wrapper.cpp +++ b/kmicromail/libmailwrapper/pop3wrapper.cpp | |||
@@ -121,21 +121,21 @@ void POP3wrapper::login() | |||
121 | QString server,user, pass; | 121 | QString server,user, pass; |
122 | uint16_t port; | 122 | uint16_t port; |
123 | int err = MAILPOP3_NO_ERROR; | 123 | int err = MAILPOP3_NO_ERROR; |
124 | 124 | ||
125 | server = account->getServer().latin1(); | 125 | server = account->getServer().latin1(); |
126 | port = account->getPort().toUInt(); | 126 | port = account->getPort().toUInt(); |
127 | 127 | ||
128 | if ( account->getUser().isEmpty() || account->getPassword().isEmpty() ) { | 128 | if ( account->getUser().isEmpty() || account->getPassword().isEmpty() ) { |
129 | qApp->processEvents(); | ||
129 | LoginDialog login( account->getUser(), account->getPassword(), NULL, 0, true ); | 130 | LoginDialog login( account->getUser(), account->getPassword(), NULL, 0, true ); |
130 | login.show(); | 131 | login.show(); |
131 | if ( QDialog::Accepted == login.exec() ) { | 132 | if ( QDialog::Accepted == login.exec() ) { |
132 | // ok | 133 | // ok |
133 | qDebug("ok "); | ||
134 | user = login.getUser(); | 134 | user = login.getUser(); |
135 | pass = login.getPassword(); | 135 | pass = login.getPassword(); |
136 | } else { | 136 | } else { |
137 | // cancel | 137 | // cancel |
138 | ; // odebug << "POP3: Login canceled" << oendl; | 138 | ; // odebug << "POP3: Login canceled" << oendl; |
139 | return; | 139 | return; |
140 | } | 140 | } |
141 | } else { | 141 | } else { |
@@ -160,17 +160,17 @@ void POP3wrapper::login() | |||
160 | //(ssl?CONNECTION_TYPE_TLS:CONNECTION_TYPE_PLAIN); | 160 | //(ssl?CONNECTION_TYPE_TLS:CONNECTION_TYPE_PLAIN); |
161 | 161 | ||
162 | pop3_mailstorage_init(m_pop3,(char*)server.latin1(), port, NULL, conntype, POP3_AUTH_TYPE_PLAIN, | 162 | pop3_mailstorage_init(m_pop3,(char*)server.latin1(), port, NULL, conntype, POP3_AUTH_TYPE_PLAIN, |
163 | (char*)user.latin1(),(char*)pass.latin1(),0,0,0); | 163 | (char*)user.latin1(),(char*)pass.latin1(),0,0,0); |
164 | 164 | ||
165 | err = mailstorage_connect(m_pop3); | 165 | err = mailstorage_connect(m_pop3); |
166 | if (err != MAIL_NO_ERROR) { | 166 | if (err != MAIL_NO_ERROR) { |
167 | ; // odebug << QString( "FEHLERNUMMER %1" ).arg( err ) << oendl; | 167 | ; // odebug << QString( "FEHLERNUMMER %1" ).arg( err ) << oendl; |
168 | Global::statusMessage(tr("Error initializing folder")); | 168 | Global::statusMessage(tr("Error %1 initializing folder").arg( err )); |
169 | mailstorage_free(m_pop3); | 169 | mailstorage_free(m_pop3); |
170 | m_pop3 = 0; | 170 | m_pop3 = 0; |
171 | } else { | 171 | } else { |
172 | mailsession * session = m_pop3->sto_session; | 172 | mailsession * session = m_pop3->sto_session; |
173 | mailpop3 * mail = ( ( pop3_session_state_data * )session->sess_data )->pop3_session; | 173 | mailpop3 * mail = ( ( pop3_session_state_data * )session->sess_data )->pop3_session; |
174 | if (mail) { | 174 | if (mail) { |
175 | mail->pop3_progr_fun = &pop3_progress; | 175 | mail->pop3_progr_fun = &pop3_progress; |
176 | } | 176 | } |
@@ -195,34 +195,21 @@ QValueList<Opie::Core::OSmartPointer<Folder> >* POP3wrapper::listFolders() { | |||
195 | 195 | ||
196 | void POP3wrapper::deleteMailList(const QValueList<RecMailP>&target) | 196 | void POP3wrapper::deleteMailList(const QValueList<RecMailP>&target) |
197 | { | 197 | { |
198 | login(); | 198 | login(); |
199 | if (!m_pop3) | 199 | if (!m_pop3) |
200 | return; | 200 | return; |
201 | int iii = 0; | 201 | int iii = 0; |
202 | int count = target.count(); | 202 | int count = target.count(); |
203 | QProgressBar bar( count,0 ); | 203 | QWidget wid; |
204 | bar.setCaption (("Removing mails - close to abort!") ); | 204 | wid.show(); |
205 | int w = 300; | ||
206 | if ( QApplication::desktop()->width() < 320 ) | ||
207 | w = 220; | ||
208 | int h = bar.sizeHint().height() ; | ||
209 | int dw = QApplication::desktop()->width(); | ||
210 | int dh = QApplication::desktop()->height(); | ||
211 | bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); | ||
212 | bar.show(); | ||
213 | int modulo = (count/10)+1; | ||
214 | int incCounter = 0; | ||
215 | while (iii < count ) { | 205 | while (iii < count ) { |
216 | if ( ! bar.isVisible() ) | 206 | Global::statusMessage(tr("Delete message %1 of %2").arg(iii).arg(count)); |
217 | return ; | 207 | wid.raise(); |
218 | if ( incCounter % modulo == 0 ) | ||
219 | bar.setProgress( incCounter ); | ||
220 | ++incCounter; | ||
221 | qApp->processEvents(); | 208 | qApp->processEvents(); |
222 | //qDebug("delete "); | 209 | //qDebug("delete "); |
223 | RecMailP mail = (*target.at( iii )); | 210 | RecMailP mail = (*target.at( iii )); |
224 | int err = mailsession_remove_message(m_pop3->sto_session,mail->getNumber()); | 211 | int err = mailsession_remove_message(m_pop3->sto_session,mail->getNumber()); |
225 | if (err != MAIL_NO_ERROR) { | 212 | if (err != MAIL_NO_ERROR) { |
226 | Global::statusMessage(tr("Error deleting mail")); | 213 | Global::statusMessage(tr("Error deleting mail")); |
227 | } | 214 | } |
228 | ++iii; | 215 | ++iii; |
@@ -247,35 +234,23 @@ int POP3wrapper::deleteAllMail(const FolderP&) { | |||
247 | int res = 1; | 234 | int res = 1; |
248 | 235 | ||
249 | uint32_t result = 0; | 236 | uint32_t result = 0; |
250 | int err = mailsession_messages_number(m_pop3->sto_session,NULL,&result); | 237 | int err = mailsession_messages_number(m_pop3->sto_session,NULL,&result); |
251 | if (err != MAIL_NO_ERROR) { | 238 | if (err != MAIL_NO_ERROR) { |
252 | Global::statusMessage(tr("Error getting folder info")); | 239 | Global::statusMessage(tr("Error getting folder info")); |
253 | return 0; | 240 | return 0; |
254 | } | 241 | } |
255 | QProgressBar bar( result,0 ); | 242 | QWidget wid; |
256 | bar.setCaption (("Deleting mails - close to abort!") ); | 243 | wid.show(); |
257 | int w = 300; | 244 | for (unsigned int i = 0; i < result; ++i) { |
258 | if ( QApplication::desktop()->width() < 320 ) | 245 | Global::statusMessage(tr("Delete message %1 of %2").arg(i).arg(result)); |
259 | w = 220; | 246 | wid.raise(); |
260 | int h = bar.sizeHint().height() ; | ||
261 | int dw = QApplication::desktop()->width(); | ||
262 | int dh = QApplication::desktop()->height(); | ||
263 | bar.setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); | ||
264 | bar.show(); | ||
265 | int modulo = (result/10)+1; | ||
266 | int incCounter = 0; | ||
267 | for (unsigned int i = 0; i < result; ++i) { | ||
268 | if ( ! bar.isVisible() ) | ||
269 | return 0; | ||
270 | if ( incCounter % modulo == 0 ) | ||
271 | bar.setProgress( incCounter ); | ||
272 | ++incCounter; | ||
273 | qApp->processEvents(); | 247 | qApp->processEvents(); |
248 | |||
274 | err = mailsession_remove_message(m_pop3->sto_session,i+1); | 249 | err = mailsession_remove_message(m_pop3->sto_session,i+1); |
275 | if (err != MAIL_NO_ERROR) { | 250 | if (err != MAIL_NO_ERROR) { |
276 | Global::statusMessage(tr("Error deleting mail %1").arg(i+1)); | 251 | Global::statusMessage(tr("Error deleting mail %1").arg(i+1)); |
277 | res=0; | 252 | res=0; |
278 | } | 253 | } |
279 | break; | 254 | break; |
280 | } | 255 | } |
281 | return res; | 256 | return res; |