summaryrefslogtreecommitdiffabout
path: root/kmicromail
Unidiff
Diffstat (limited to 'kmicromail') (more/less context) (ignore whitespace changes)
-rw-r--r--kmicromail/accountitem.cpp128
-rw-r--r--kmicromail/accountitem.h63
-rw-r--r--kmicromail/accountview.cpp30
-rw-r--r--kmicromail/accountview.h22
-rw-r--r--kmicromail/composemail.cpp14
-rw-r--r--kmicromail/composemail.h6
-rw-r--r--kmicromail/editaccounts.cpp40
-rw-r--r--kmicromail/editaccounts.h18
-rw-r--r--kmicromail/kmicromail.pro10
-rw-r--r--kmicromail/kmicromailE.pro2
-rw-r--r--kmicromail/koprefs.cpp2
-rw-r--r--kmicromail/koprefsdialog.cpp149
-rw-r--r--kmicromail/koprefsdialog.h12
-rw-r--r--kmicromail/libetpan/libetpan.pro2
-rw-r--r--kmicromail/libetpan/libetpanE.pro2
-rw-r--r--kmicromail/libmailwrapper/abstractmail.cpp30
-rw-r--r--kmicromail/libmailwrapper/abstractmail.h12
-rw-r--r--kmicromail/libmailwrapper/generatemail.cpp6
-rw-r--r--kmicromail/libmailwrapper/genericwrapper.cpp14
-rw-r--r--kmicromail/libmailwrapper/genericwrapper.h6
-rw-r--r--kmicromail/libmailwrapper/imapwrapper.cpp28
-rw-r--r--kmicromail/libmailwrapper/imapwrapper.h14
-rw-r--r--kmicromail/libmailwrapper/libmailwrapper.pro8
-rw-r--r--kmicromail/libmailwrapper/logindialog.cpp2
-rw-r--r--kmicromail/libmailwrapper/logindialog.h2
-rw-r--r--kmicromail/libmailwrapper/mailtypes.cpp10
-rw-r--r--kmicromail/libmailwrapper/mailtypes.h14
-rw-r--r--kmicromail/libmailwrapper/mailwrapper.cpp14
-rw-r--r--kmicromail/libmailwrapper/mailwrapper.h6
-rw-r--r--kmicromail/libmailwrapper/mboxwrapper.cpp14
-rw-r--r--kmicromail/libmailwrapper/mboxwrapper.h10
-rw-r--r--kmicromail/libmailwrapper/mhwrapper.cpp12
-rw-r--r--kmicromail/libmailwrapper/mhwrapper.h8
-rw-r--r--kmicromail/libmailwrapper/nntpwrapper.cpp12
-rw-r--r--kmicromail/libmailwrapper/nntpwrapper.h6
-rw-r--r--kmicromail/libmailwrapper/pop3wrapper.cpp20
-rw-r--r--kmicromail/libmailwrapper/pop3wrapper.h8
-rw-r--r--kmicromail/libmailwrapper/sendmailprogress.cpp2
-rw-r--r--kmicromail/libmailwrapper/settings.cpp10
-rw-r--r--kmicromail/libmailwrapper/smtpwrapper.cpp6
-rw-r--r--kmicromail/mailistviewitem.cpp4
-rw-r--r--kmicromail/mailistviewitem.h2
-rw-r--r--kmicromail/main.cpp5
-rw-r--r--kmicromail/mainwindow.cpp74
-rw-r--r--kmicromail/mainwindow.h26
-rw-r--r--kmicromail/nntpgroups.cpp16
-rw-r--r--kmicromail/nntpgroups.h2
-rw-r--r--kmicromail/nntpgroupsdlg.cpp4
-rw-r--r--kmicromail/opiemail.cpp47
-rw-r--r--kmicromail/opiemail.h17
-rw-r--r--kmicromail/qpe/qdialog.h2
-rw-r--r--kmicromail/qpe/qdialog_hacked.cpp6
-rw-r--r--kmicromail/selectsmtp.cpp4
-rw-r--r--kmicromail/selectsmtp.h2
-rw-r--r--kmicromail/selectstore.h2
-rw-r--r--kmicromail/settingsdialog.cpp6
-rw-r--r--kmicromail/settingsdialog.h2
-rw-r--r--kmicromail/statuswidget.cpp4
-rw-r--r--kmicromail/statuswidget.h2
-rw-r--r--kmicromail/viewmail.cpp47
-rw-r--r--kmicromail/viewmail.h26
-rw-r--r--kmicromail/viewmailbase.cpp25
-rw-r--r--kmicromail/viewmailbase.h25
63 files changed, 612 insertions, 512 deletions
diff --git a/kmicromail/accountitem.cpp b/kmicromail/accountitem.cpp
index 985a762..9b1ea2f 100644
--- a/kmicromail/accountitem.cpp
+++ b/kmicromail/accountitem.cpp
@@ -1,1187 +1,1189 @@
1 1
2#include "accountitem.h" 2#include "accountitem.h"
3#include "accountview.h" 3#include "accountview.h"
4#include "newmaildir.h" 4#include "newmaildir.h"
5#include "nntpgroupsdlg.h" 5#include "nntpgroupsdlg.h"
6#include "defines.h" 6#include "defines.h"
7 7
8#include <libmailwrapper/mailtypes.h> 8#include <libmailwrapper/mailtypes.h>
9#include <libmailwrapper/abstractmail.h> 9#include <libmailwrapper/abstractmail.h>
10#include <libmailwrapper/mailwrapper.h> 10#include <libmailwrapper/mailwrapper.h>
11/* OPIE */ 11/* OPIE */
12//#include <qpe/qpeapplication.h> 12//#include <qpe/qpeapplication.h>
13 13
14/* QT */ 14/* QT */
15#include <qpopupmenu.h> 15#include <q3popupmenu.h>
16#include <qmessagebox.h> 16#include <qmessagebox.h>
17//Added by qt3to4:
18#include <Q3ValueList>
17#include <kiconloader.h> 19#include <kiconloader.h>
18#include <klocale.h> 20#include <klocale.h>
19 21
20#define GET_NEW_MAILS 101 22#define GET_NEW_MAILS 101
21 23
22using namespace Opie::Core; 24using namespace Opie::Core;
23#define SETPIX(x) if (!account->getOffline()) {setPixmap( 0,x);} else {setPixmap( 0, PIXMAP_OFFLINE );} 25#define SETPIX(x) if (!account->getOffline()) {setPixmap( 0,x);} else {setPixmap( 0, PIXMAP_OFFLINE );}
24/** 26/**
25 * POP3 Account stuff 27 * POP3 Account stuff
26 */ 28 */
27POP3viewItem::POP3viewItem( POP3account *a, AccountView *parent ) 29POP3viewItem::POP3viewItem( POP3account *a, AccountView *parent )
28 : AccountViewItem( parent ) 30 : AccountViewItem( parent )
29{ 31{
30 account = a; 32 account = a;
31 wrapper = AbstractMail::getWrapper( account ); 33 wrapper = AbstractMail::getWrapper( account );
32 SETPIX(PIXMAP_POP3FOLDER); 34 SETPIX(PIXMAP_POP3FOLDER);
33#if 0 35#if 0
34 if (!account->getOffline()) 36 if (!account->getOffline())
35 { 37 {
36 setPixmap( 0, ); 38 setPixmap( 0, );
37 } 39 }
38 else 40 else
39 { 41 {
40 setPixmap( 0, PIXMAP_OFFLINE ); 42 setPixmap( 0, PIXMAP_OFFLINE );
41 } 43 }
42#endif 44#endif
43 setText( 0, account->getAccountName() ); 45 setText( 0, account->getAccountName() );
44 setOpen( true ); 46 setOpen( true );
45} 47}
46 48
47POP3viewItem::~POP3viewItem() 49POP3viewItem::~POP3viewItem()
48{ 50{
49 delete wrapper; 51 delete wrapper;
50} 52}
51 53
52AbstractMail *POP3viewItem::getWrapper() 54AbstractMail *POP3viewItem::getWrapper()
53{ 55{
54 return wrapper; 56 return wrapper;
55} 57}
56 58
57void POP3viewItem::refresh(QValueList<Opie::Core::OSmartPointer<RecMail> > & ) 59void POP3viewItem::refresh(Q3ValueList<Opie::Core::OSmartPointer<RecMail> > & )
58{ 60{
59 refresh(); 61 refresh();
60} 62}
61 63
62void POP3viewItem::refresh() 64void POP3viewItem::refresh()
63{ 65{
64 if (account->getOffline()) return; 66 if (account->getOffline()) return;
65 QValueList<FolderP> *folders = wrapper->listFolders(); 67 Q3ValueList<FolderP> *folders = wrapper->listFolders();
66 QListViewItem *child = firstChild(); 68 Q3ListViewItem *child = firstChild();
67 while ( child ) 69 while ( child )
68 { 70 {
69 QListViewItem *tmp = child; 71 Q3ListViewItem *tmp = child;
70 child = child->nextSibling(); 72 child = child->nextSibling();
71 delete tmp; 73 delete tmp;
72 } 74 }
73 QValueList<FolderP>::ConstIterator it; 75 Q3ValueList<FolderP>::ConstIterator it;
74 QListViewItem*item = 0; 76 Q3ListViewItem*item = 0;
75 for ( it = folders->begin(); it!=folders->end(); ++it) 77 for ( it = folders->begin(); it!=folders->end(); ++it)
76 { 78 {
77 item = new POP3folderItem( (*it), this , item ); 79 item = new POP3folderItem( (*it), this , item );
78 item->setSelectable( (*it)->may_select()); 80 item->setSelectable( (*it)->may_select());
79 } 81 }
80 delete folders; 82 delete folders;
81} 83}
82 84
83RECBODYP POP3viewItem::fetchBody( const RecMailP &mail ) 85RECBODYP POP3viewItem::fetchBody( const RecMailP &mail )
84{ 86{
85 87
86 return wrapper->fetchBody( mail ); 88 return wrapper->fetchBody( mail );
87} 89}
88 90
89QPopupMenu * POP3viewItem::getContextMenu() 91Q3PopupMenu * POP3viewItem::getContextMenu()
90{ 92{
91 QPopupMenu *m = new QPopupMenu(0); 93 Q3PopupMenu *m = new Q3PopupMenu(0);
92 if (m) 94 if (m)
93 { 95 {
94 if (!account->getOffline()) 96 if (!account->getOffline())
95 { 97 {
96 m->insertItem(i18n("Get new messages"),GET_NEW_MAILS); 98 m->insertItem(i18n("Get new messages"),GET_NEW_MAILS);
97 m->insertItem(i18n("Disconnect"),0); 99 m->insertItem(i18n("Disconnect"),0);
98 m->insertItem(i18n("Set offline"),1); 100 m->insertItem(i18n("Set offline"),1);
99 } 101 }
100 else 102 else
101 { 103 {
102 m->insertItem(i18n("Get new messages"),GET_NEW_MAILS); 104 m->insertItem(i18n("Get new messages"),GET_NEW_MAILS);
103 m->insertItem(i18n("Set online"),1); 105 m->insertItem(i18n("Set online"),1);
104 } 106 }
105 } 107 }
106 return m; 108 return m;
107} 109}
108 110
109void POP3viewItem::disconnect() 111void POP3viewItem::disconnect()
110{ 112{
111 QListViewItem *child = firstChild(); 113 Q3ListViewItem *child = firstChild();
112 while ( child ) 114 while ( child )
113 { 115 {
114 QListViewItem *tmp = child; 116 Q3ListViewItem *tmp = child;
115 child = child->nextSibling(); 117 child = child->nextSibling();
116 delete tmp; 118 delete tmp;
117 } 119 }
118 wrapper->logout(); 120 wrapper->logout();
119} 121}
120 122
121void POP3viewItem::setOnOffline() 123void POP3viewItem::setOnOffline()
122{ 124{
123 if (!account->getOffline()) 125 if (!account->getOffline())
124 { 126 {
125 disconnect(); 127 disconnect();
126 } 128 }
127 account->setOffline(!account->getOffline()); 129 account->setOffline(!account->getOffline());
128 account->save(); 130 account->save();
129 SETPIX(PIXMAP_POP3FOLDER); 131 SETPIX(PIXMAP_POP3FOLDER);
130 refresh(); 132 refresh();
131} 133}
132 134
133void POP3viewItem::contextMenuSelected(int which) 135void POP3viewItem::contextMenuSelected(int which)
134{ 136{
135 switch (which) 137 switch (which)
136 { 138 {
137 case 0: 139 case 0:
138 disconnect(); 140 disconnect();
139 break; 141 break;
140 case 1: 142 case 1:
141 setOnOffline(); 143 setOnOffline();
142 break; 144 break;
143 case GET_NEW_MAILS: // daunlood 145 case GET_NEW_MAILS: // daunlood
144 if (account->getOffline()) 146 if (account->getOffline())
145 setOnOffline(); 147 setOnOffline();
146 AccountView*bl = accountView(); 148 AccountView*bl = accountView();
147 if (!bl) return; 149 if (!bl) return;
148 AccountViewItem* in = findSubItem( "inbox" , 0); 150 AccountViewItem* in = findSubItem( "inbox" , 0);
149 if ( ! in ) 151 if ( ! in )
150 return; 152 return;
151 bl->downloadMailsInbox(in->getFolder() ,getWrapper()); 153 bl->downloadMailsInbox(in->getFolder() ,getWrapper());
152 setOnOffline(); 154 setOnOffline();
153 break; 155 break;
154 } 156 }
155} 157}
156 158
157POP3folderItem::~POP3folderItem() 159POP3folderItem::~POP3folderItem()
158{} 160{}
159 161
160POP3folderItem::POP3folderItem( const FolderP&folderInit, POP3viewItem *parent , QListViewItem*after ) 162POP3folderItem::POP3folderItem( const FolderP&folderInit, POP3viewItem *parent , Q3ListViewItem*after )
161 : AccountViewItem(folderInit,parent,after ) 163 : AccountViewItem(folderInit,parent,after )
162{ 164{
163 pop3 = parent; 165 pop3 = parent;
164 if (folder->getDisplayName().lower()!="inbox") 166 if (folder->getDisplayName().lower()!="inbox")
165 { 167 {
166 setPixmap( 0, PIXMAP_POP3FOLDER ); 168 setPixmap( 0, PIXMAP_POP3FOLDER );
167 } 169 }
168 else 170 else
169 { 171 {
170 setPixmap( 0, PIXMAP_INBOXFOLDER); 172 setPixmap( 0, PIXMAP_INBOXFOLDER);
171 } 173 }
172 setText( 0, folder->getDisplayName() ); 174 setText( 0, folder->getDisplayName() );
173} 175}
174 176
175void POP3folderItem::refresh(QValueList<RecMailP>&target) 177void POP3folderItem::refresh(Q3ValueList<RecMailP>&target)
176{ 178{
177 if (folder->may_select()) 179 if (folder->may_select())
178 pop3->getWrapper()->listMessages( folder->getName(),target ); 180 pop3->getWrapper()->listMessages( folder->getName(),target );
179} 181}
180 182
181RECBODYP POP3folderItem::fetchBody(const RecMailP&aMail) 183RECBODYP POP3folderItem::fetchBody(const RecMailP&aMail)
182{ 184{
183 return pop3->getWrapper()->fetchBody(aMail); 185 return pop3->getWrapper()->fetchBody(aMail);
184} 186}
185 187
186QPopupMenu * POP3folderItem::getContextMenu() 188Q3PopupMenu * POP3folderItem::getContextMenu()
187{ 189{
188 QPopupMenu *m = new QPopupMenu(0); 190 Q3PopupMenu *m = new Q3PopupMenu(0);
189 if (m) 191 if (m)
190 { 192 {
191 m->insertItem(i18n("Get new messages"),GET_NEW_MAILS); 193 m->insertItem(i18n("Get new messages"),GET_NEW_MAILS);
192 m->insertItem(i18n("Refresh header list"),0); 194 m->insertItem(i18n("Refresh header list"),0);
193 m->insertItem(i18n("Delete all mails"),1); 195 m->insertItem(i18n("Delete all mails"),1);
194 m->insertItem(i18n("Move/Copie all mails"),2); 196 m->insertItem(i18n("Move/Copie all mails"),2);
195 } 197 }
196 return m; 198 return m;
197} 199}
198 200
199void POP3folderItem::downloadMails() 201void POP3folderItem::downloadMails()
200{ 202{
201 AccountView*bl = pop3->accountView(); 203 AccountView*bl = pop3->accountView();
202 if (!bl) return; 204 if (!bl) return;
203 bl->downloadMails(folder,pop3->getWrapper()); 205 bl->downloadMails(folder,pop3->getWrapper());
204} 206}
205 207
206void POP3folderItem::contextMenuSelected(int which) 208void POP3folderItem::contextMenuSelected(int which)
207{ 209{
208 AccountView * view = (AccountView*)listView(); 210 AccountView * view = (AccountView*)listView();
209 switch (which) 211 switch (which)
210 { 212 {
211 case 0: 213 case 0:
212 /* must be 'cause pop3 lists are cached */ 214 /* must be 'cause pop3 lists are cached */
213 pop3->getWrapper()->logout(); 215 pop3->getWrapper()->logout();
214 view->refreshCurrent(); 216 view->refreshCurrent();
215 break; 217 break;
216 case 1: 218 case 1:
217 deleteAllMail(pop3->getWrapper(),folder); 219 deleteAllMail(pop3->getWrapper(),folder);
218 break; 220 break;
219 case 2: 221 case 2:
220 downloadMails(); 222 downloadMails();
221 break; 223 break;
222 case GET_NEW_MAILS: // daunlood 224 case GET_NEW_MAILS: // daunlood
223 view->downloadMailsInbox(getFolder() ,pop3->getWrapper()); 225 view->downloadMailsInbox(getFolder() ,pop3->getWrapper());
224 break; 226 break;
225 default: 227 default:
226 break; 228 break;
227 } 229 }
228} 230}
229 231
230/** 232/**
231 * NNTP Account stuff 233 * NNTP Account stuff
232 */ 234 */
233NNTPviewItem::NNTPviewItem( NNTPaccount *a, AccountView *parent ) 235NNTPviewItem::NNTPviewItem( NNTPaccount *a, AccountView *parent )
234 : AccountViewItem( parent ) 236 : AccountViewItem( parent )
235{ 237{
236 account = a; 238 account = a;
237 wrapper = AbstractMail::getWrapper( account ); 239 wrapper = AbstractMail::getWrapper( account );
238 //FIXME 240 //FIXME
239 SETPIX(PIXMAP_POP3FOLDER); 241 SETPIX(PIXMAP_POP3FOLDER);
240#if 0 242#if 0
241 if (!account->getOffline()) 243 if (!account->getOffline())
242 { 244 {
243 setPixmap( 0, ); 245 setPixmap( 0, );
244 } 246 }
245 else 247 else
246 { 248 {
247 setPixmap( 0, PIXMAP_OFFLINE ); 249 setPixmap( 0, PIXMAP_OFFLINE );
248 } 250 }
249#endif 251#endif
250 setText( 0, account->getAccountName() ); 252 setText( 0, account->getAccountName() );
251 setOpen( true ); 253 setOpen( true );
252} 254}
253 255
254NNTPviewItem::~NNTPviewItem() 256NNTPviewItem::~NNTPviewItem()
255{ 257{
256 delete wrapper; 258 delete wrapper;
257} 259}
258 260
259AbstractMail *NNTPviewItem::getWrapper() 261AbstractMail *NNTPviewItem::getWrapper()
260{ 262{
261 return wrapper; 263 return wrapper;
262} 264}
263 265
264void NNTPviewItem::refresh( QValueList<RecMailP> & ) 266void NNTPviewItem::refresh( Q3ValueList<RecMailP> & )
265{ 267{
266 refresh(); 268 refresh();
267} 269}
268 270
269void NNTPviewItem::refresh() 271void NNTPviewItem::refresh()
270{ 272{
271 if (account->getOffline()) return; 273 if (account->getOffline()) return;
272 QValueList<FolderP> *folders = wrapper->listFolders(); 274 Q3ValueList<FolderP> *folders = wrapper->listFolders();
273 275
274 QListViewItem *child = firstChild(); 276 Q3ListViewItem *child = firstChild();
275 while ( child ) 277 while ( child )
276 { 278 {
277 QListViewItem *tmp = child; 279 Q3ListViewItem *tmp = child;
278 child = child->nextSibling(); 280 child = child->nextSibling();
279 delete tmp; 281 delete tmp;
280 } 282 }
281 QValueList<FolderP>::ConstIterator it; 283 Q3ValueList<FolderP>::ConstIterator it;
282 QListViewItem*item = 0; 284 Q3ListViewItem*item = 0;
283 for ( it = folders->begin(); it!=folders->end(); ++it) 285 for ( it = folders->begin(); it!=folders->end(); ++it)
284 { 286 {
285 item = new NNTPfolderItem( (*it), this , item ); 287 item = new NNTPfolderItem( (*it), this , item );
286 item->setSelectable( (*it)->may_select()); 288 item->setSelectable( (*it)->may_select());
287 } 289 }
288 delete folders; 290 delete folders;
289} 291}
290 292
291RECBODYP NNTPviewItem::fetchBody( const RecMailP &mail ) 293RECBODYP NNTPviewItem::fetchBody( const RecMailP &mail )
292{ 294{
293 295
294 return wrapper->fetchBody( mail ); 296 return wrapper->fetchBody( mail );
295} 297}
296 298
297QPopupMenu * NNTPviewItem::getContextMenu() 299Q3PopupMenu * NNTPviewItem::getContextMenu()
298{ 300{
299 QPopupMenu *m = new QPopupMenu(0); 301 Q3PopupMenu *m = new Q3PopupMenu(0);
300 if (m) 302 if (m)
301 { 303 {
302 if (!account->getOffline()) 304 if (!account->getOffline())
303 { 305 {
304 m->insertItem(i18n("Disconnect"),0); 306 m->insertItem(i18n("Disconnect"),0);
305 m->insertItem(i18n("Set offline"),1); 307 m->insertItem(i18n("Set offline"),1);
306 //m->insertItem(i18n("(Un-)Subscribe groups"),2); 308 //m->insertItem(i18n("(Un-)Subscribe groups"),2);
307 } 309 }
308 else 310 else
309 { 311 {
310 m->insertItem(i18n("Set online"),1); 312 m->insertItem(i18n("Set online"),1);
311 } 313 }
312 } 314 }
313 return m; 315 return m;
314} 316}
315 317
316void NNTPviewItem::subscribeGroups() 318void NNTPviewItem::subscribeGroups()
317{ 319{
318 NNTPGroupsDlg dlg(account); 320 NNTPGroupsDlg dlg(account);
319#ifndef DESKTOP_VERSION 321#ifndef DESKTOP_VERSION
320 dlg.showMaximized(); 322 dlg.showMaximized();
321#endif 323#endif
322 if ( dlg.exec()== QDialog::Accepted ){ 324 if ( dlg.exec()== QDialog::Accepted ){
323 refresh(); 325 refresh();
324 } 326 }
325} 327}
326 328
327void NNTPviewItem::disconnect() 329void NNTPviewItem::disconnect()
328{ 330{
329 QListViewItem *child = firstChild(); 331 Q3ListViewItem *child = firstChild();
330 while ( child ) 332 while ( child )
331 { 333 {
332 QListViewItem *tmp = child; 334 Q3ListViewItem *tmp = child;
333 child = child->nextSibling(); 335 child = child->nextSibling();
334 delete tmp; 336 delete tmp;
335 } 337 }
336 wrapper->logout(); 338 wrapper->logout();
337} 339}
338 340
339void NNTPviewItem::setOnOffline() 341void NNTPviewItem::setOnOffline()
340{ 342{
341 if (!account->getOffline()) 343 if (!account->getOffline())
342 { 344 {
343 disconnect(); 345 disconnect();
344 } 346 }
345 account->setOffline(!account->getOffline()); 347 account->setOffline(!account->getOffline());
346 account->save(); 348 account->save();
347 //FIXME 349 //FIXME
348 SETPIX(PIXMAP_POP3FOLDER); 350 SETPIX(PIXMAP_POP3FOLDER);
349 refresh(); 351 refresh();
350} 352}
351 353
352void NNTPviewItem::contextMenuSelected(int which) 354void NNTPviewItem::contextMenuSelected(int which)
353{ 355{
354 switch (which) 356 switch (which)
355 { 357 {
356 case 0: 358 case 0:
357 disconnect(); 359 disconnect();
358 break; 360 break;
359 case 1: 361 case 1:
360 setOnOffline(); 362 setOnOffline();
361 break; 363 break;
362 case 2: 364 case 2:
363 subscribeGroups(); 365 subscribeGroups();
364 break; 366 break;
365 } 367 }
366} 368}
367 369
368NNTPfolderItem::~NNTPfolderItem() 370NNTPfolderItem::~NNTPfolderItem()
369{} 371{}
370 372
371NNTPfolderItem::NNTPfolderItem( const FolderP &folderInit, NNTPviewItem *parent , QListViewItem*after ) 373NNTPfolderItem::NNTPfolderItem( const FolderP &folderInit, NNTPviewItem *parent , Q3ListViewItem*after )
372 : AccountViewItem( folderInit, parent,after ) 374 : AccountViewItem( folderInit, parent,after )
373{ 375{
374 nntp = parent; 376 nntp = parent;
375 if (folder->getDisplayName().lower()!="inbox") 377 if (folder->getDisplayName().lower()!="inbox")
376 { 378 {
377 setPixmap( 0, PIXMAP_POP3FOLDER ); 379 setPixmap( 0, PIXMAP_POP3FOLDER );
378 } 380 }
379 else 381 else
380 { 382 {
381 setPixmap( 0, PIXMAP_INBOXFOLDER); 383 setPixmap( 0, PIXMAP_INBOXFOLDER);
382 } 384 }
383 setText( 0, folder->getDisplayName() ); 385 setText( 0, folder->getDisplayName() );
384} 386}
385 387
386void NNTPfolderItem::refresh(QValueList<RecMailP>&target) 388void NNTPfolderItem::refresh(Q3ValueList<RecMailP>&target)
387{ 389{
388 if (folder->may_select()) 390 if (folder->may_select())
389 nntp->getWrapper()->listMessages( folder->getName(),target ); 391 nntp->getWrapper()->listMessages( folder->getName(),target );
390} 392}
391 393
392RECBODYP NNTPfolderItem::fetchBody(const RecMailP&aMail) 394RECBODYP NNTPfolderItem::fetchBody(const RecMailP&aMail)
393{ 395{
394 return nntp->getWrapper()->fetchBody(aMail); 396 return nntp->getWrapper()->fetchBody(aMail);
395} 397}
396 398
397QPopupMenu * NNTPfolderItem::getContextMenu() 399Q3PopupMenu * NNTPfolderItem::getContextMenu()
398{ 400{
399 QPopupMenu *m = new QPopupMenu(0); 401 Q3PopupMenu *m = new Q3PopupMenu(0);
400 if (m) 402 if (m)
401 { 403 {
402 m->insertItem(i18n("Refresh header list"),0); 404 m->insertItem(i18n("Refresh header list"),0);
403 m->insertItem(i18n("Copy all postings"),1); 405 m->insertItem(i18n("Copy all postings"),1);
404 } 406 }
405 return m; 407 return m;
406} 408}
407 409
408void NNTPfolderItem::downloadMails() 410void NNTPfolderItem::downloadMails()
409{ 411{
410 AccountView*bl = nntp->accountView(); 412 AccountView*bl = nntp->accountView();
411 if (!bl) return; 413 if (!bl) return;
412 bl->downloadMails(folder,nntp->getWrapper()); 414 bl->downloadMails(folder,nntp->getWrapper());
413} 415}
414 416
415void NNTPfolderItem::contextMenuSelected(int which) 417void NNTPfolderItem::contextMenuSelected(int which)
416{ 418{
417 AccountView * view = (AccountView*)listView(); 419 AccountView * view = (AccountView*)listView();
418 switch (which) 420 switch (which)
419 { 421 {
420 case 0: 422 case 0:
421 /* must be 'cause pop3 lists are cached */ 423 /* must be 'cause pop3 lists are cached */
422 nntp->getWrapper()->logout(); 424 nntp->getWrapper()->logout();
423 view->refreshCurrent(); 425 view->refreshCurrent();
424 break; 426 break;
425 case 1: 427 case 1:
426 downloadMails(); 428 downloadMails();
427 break; 429 break;
428 default: 430 default:
429 break; 431 break;
430 } 432 }
431} 433}
432 434
433/** 435/**
434 * IMAP Account stuff 436 * IMAP Account stuff
435 */ 437 */
436IMAPviewItem::IMAPviewItem( IMAPaccount *a, AccountView *parent ) 438IMAPviewItem::IMAPviewItem( IMAPaccount *a, AccountView *parent )
437 : AccountViewItem( parent ) 439 : AccountViewItem( parent )
438{ 440{
439 account = a; 441 account = a;
440 wrapper = AbstractMail::getWrapper( account ); 442 wrapper = AbstractMail::getWrapper( account );
441 SETPIX(PIXMAP_IMAPFOLDER); 443 SETPIX(PIXMAP_IMAPFOLDER);
442 setText( 0, account->getAccountName() ); 444 setText( 0, account->getAccountName() );
443 setOpen( true ); 445 setOpen( true );
444} 446}
445 447
446IMAPviewItem::~IMAPviewItem() 448IMAPviewItem::~IMAPviewItem()
447{ 449{
448 delete wrapper; 450 delete wrapper;
449} 451}
450 452
451AbstractMail *IMAPviewItem::getWrapper() 453AbstractMail *IMAPviewItem::getWrapper()
452{ 454{
453 return wrapper; 455 return wrapper;
454} 456}
455 457
456void IMAPviewItem::refresh(QValueList<RecMailP>&) 458void IMAPviewItem::refresh(Q3ValueList<RecMailP>&)
457{ 459{
458 refreshFolders(false); 460 refreshFolders(false);
459} 461}
460 462
461const QStringList&IMAPviewItem::subFolders() 463const QStringList&IMAPviewItem::subFolders()
462{ 464{
463 return currentFolders; 465 return currentFolders;
464} 466}
465 467
466void IMAPviewItem::refreshFolders(bool force) 468void IMAPviewItem::refreshFolders(bool force)
467{ 469{
468 if (childCount()>0 && force==false) return; 470 if (childCount()>0 && force==false) return;
469 if (account->getOffline()) return; 471 if (account->getOffline()) return;
470 472
471 removeChilds(); 473 removeChilds();
472 currentFolders.clear(); 474 currentFolders.clear();
473 QValueList<FolderP> * folders = wrapper->listFolders(); 475 Q3ValueList<FolderP> * folders = wrapper->listFolders();
474 476
475 QValueList<FolderP>::Iterator it; 477 Q3ValueList<FolderP>::Iterator it;
476 QListViewItem*item = 0; 478 Q3ListViewItem*item = 0;
477 QListViewItem*titem = 0; 479 Q3ListViewItem*titem = 0;
478 QString fname,del,search; 480 QString fname,del,search;
479 int pos; 481 int pos;
480 482
481 for ( it = folders->begin(); it!=folders->end(); ++it) 483 for ( it = folders->begin(); it!=folders->end(); ++it)
482 { 484 {
483 if ((*it)->getDisplayName().lower()=="inbox") 485 if ((*it)->getDisplayName().lower()=="inbox")
484 { 486 {
485 item = new IMAPfolderItem( (*it), this , item ); 487 item = new IMAPfolderItem( (*it), this , item );
486 folders->remove(it); 488 folders->remove(it);
487 break; 489 break;
488 } 490 }
489 } 491 }
490 for ( it = folders->begin(); it!=folders->end(); ++it) 492 for ( it = folders->begin(); it!=folders->end(); ++it)
491 { 493 {
492 fname = (*it)->getDisplayName(); 494 fname = (*it)->getDisplayName();
493 currentFolders.append((*it)->getName()); 495 currentFolders.append((*it)->getName());
494 pos = fname.findRev((*it)->Separator()); 496 pos = fname.findRev((*it)->Separator());
495 if (pos != -1) 497 if (pos != -1)
496 { 498 {
497 fname = fname.left(pos); 499 fname = fname.left(pos);
498 } 500 }
499 IMAPfolderItem*pitem = (IMAPfolderItem*)findSubItem(fname); 501 IMAPfolderItem*pitem = (IMAPfolderItem*)findSubItem(fname);
500 if (pitem) 502 if (pitem)
501 { 503 {
502 titem = item; 504 titem = item;
503 item = new IMAPfolderItem( (*it),pitem,pitem->firstChild(),this); 505 item = new IMAPfolderItem( (*it),pitem,pitem->firstChild(),this);
504 /* setup the short name */ 506 /* setup the short name */
505 item->setText(0,(*it)->getDisplayName().mid(pos+1)); 507 item->setText(0,(*it)->getDisplayName().mid(pos+1));
506 item = titem; 508 item = titem;
507 } 509 }
508 else 510 else
509 { 511 {
510 item = new IMAPfolderItem( (*it), this , item ); 512 item = new IMAPfolderItem( (*it), this , item );
511 } 513 }
512 } 514 }
513 delete folders; 515 delete folders;
514} 516}
515 517
516QPopupMenu * IMAPviewItem::getContextMenu() 518Q3PopupMenu * IMAPviewItem::getContextMenu()
517{ 519{
518 QPopupMenu *m = new QPopupMenu(0); 520 Q3PopupMenu *m = new Q3PopupMenu(0);
519 if (m) 521 if (m)
520 { 522 {
521 if (!account->getOffline()) 523 if (!account->getOffline())
522 { 524 {
523 m->insertItem(i18n("Get new messages"),GET_NEW_MAILS); 525 m->insertItem(i18n("Get new messages"),GET_NEW_MAILS);
524 m->insertItem(i18n("Refresh folder list"),0); 526 m->insertItem(i18n("Refresh folder list"),0);
525 m->insertItem(i18n("Create new folder"),1); 527 m->insertItem(i18n("Create new folder"),1);
526 m->insertSeparator(); 528 m->insertSeparator();
527 m->insertItem(i18n("Disconnect"),2); 529 m->insertItem(i18n("Disconnect"),2);
528 m->insertItem(i18n("Set offline"),3); 530 m->insertItem(i18n("Set offline"),3);
529 m->insertSeparator(); 531 m->insertSeparator();
530 } 532 }
531 else 533 else
532 { 534 {
533 m->insertItem(i18n("Get new messages"),GET_NEW_MAILS); 535 m->insertItem(i18n("Get new messages"),GET_NEW_MAILS);
534 m->insertItem(i18n("Set online"),3); 536 m->insertItem(i18n("Set online"),3);
535 } 537 }
536 } 538 }
537 return m; 539 return m;
538} 540}
539 541
540void IMAPviewItem::createNewFolder() 542void IMAPviewItem::createNewFolder()
541{ 543{
542 Newmdirdlg ndirdlg; 544 Newmdirdlg ndirdlg;
543 545
544#ifndef DESKTOP_VERSION 546#ifndef DESKTOP_VERSION
545 //ndirdlg.showMaximized(); 547 //ndirdlg.showMaximized();
546#endif 548#endif
547 if ( ndirdlg.exec() ) 549 if ( ndirdlg.exec() )
548 { 550 {
549 QString ndir = ndirdlg.Newdir(); 551 QString ndir = ndirdlg.Newdir();
550 bool makesubs = ndirdlg.subpossible(); 552 bool makesubs = ndirdlg.subpossible();
551 QString delemiter = "/"; 553 QString delemiter = "/";
552 IMAPfolderItem*item = (IMAPfolderItem*)firstChild(); 554 IMAPfolderItem*item = (IMAPfolderItem*)firstChild();
553 if (item) 555 if (item)
554 { 556 {
555 delemiter = item->Delemiter(); 557 delemiter = item->Delemiter();
556 } 558 }
557 if (wrapper->createMbox(ndir,0,delemiter,makesubs)) 559 if (wrapper->createMbox(ndir,0,delemiter,makesubs))
558 { 560 {
559 refreshFolders(true); 561 refreshFolders(true);
560 } 562 }
561 } 563 }
562} 564}
563 565
564void IMAPviewItem::contextMenuSelected(int id) 566void IMAPviewItem::contextMenuSelected(int id)
565{ 567{
566 568
567 switch (id) 569 switch (id)
568 { 570 {
569 case 0: 571 case 0:
570 refreshFolders(true); 572 refreshFolders(true);
571 break; 573 break;
572 case 1: 574 case 1:
573 createNewFolder(); 575 createNewFolder();
574 break; 576 break;
575 case 2: 577 case 2:
576 removeChilds(); 578 removeChilds();
577 wrapper->logout(); 579 wrapper->logout();
578 break; 580 break;
579 case 3: 581 case 3:
580 if (account->getOffline()==false) 582 if (account->getOffline()==false)
581 { 583 {
582 removeChilds(); 584 removeChilds();
583 wrapper->logout(); 585 wrapper->logout();
584 } 586 }
585 account->setOffline(!account->getOffline()); 587 account->setOffline(!account->getOffline());
586 account->save(); 588 account->save();
587 SETPIX(PIXMAP_IMAPFOLDER); 589 SETPIX(PIXMAP_IMAPFOLDER);
588 refreshFolders(false); 590 refreshFolders(false);
589 break; 591 break;
590 case GET_NEW_MAILS: // daunlood 592 case GET_NEW_MAILS: // daunlood
591 { 593 {
592 if (account->getOffline()) { 594 if (account->getOffline()) {
593 contextMenuSelected( 3 ); 595 contextMenuSelected( 3 );
594 } 596 }
595 AccountView*bl = accountView(); 597 AccountView*bl = accountView();
596 if (!bl) return; 598 if (!bl) return;
597 AccountViewItem* in = findSubItem( "inbox" , 0); 599 AccountViewItem* in = findSubItem( "inbox" , 0);
598 if ( ! in ) 600 if ( ! in )
599 return; 601 return;
600 bl->downloadMailsInbox(in->getFolder(),getWrapper()); 602 bl->downloadMailsInbox(in->getFolder(),getWrapper());
601 } 603 }
602 break; 604 break;
603 default: 605 default:
604 break; 606 break;
605 } 607 }
606} 608}
607 609
608RECBODYP IMAPviewItem::fetchBody(const RecMailP&) 610RECBODYP IMAPviewItem::fetchBody(const RecMailP&)
609{ 611{
610 return new RecBody(); 612 return new RecBody();
611} 613}
612 614
613bool IMAPviewItem::offline() 615bool IMAPviewItem::offline()
614{ 616{
615 return account->getOffline(); 617 return account->getOffline();
616} 618}
617 619
618IMAPfolderItem::IMAPfolderItem( const FolderP& folderInit, IMAPviewItem *parent , QListViewItem*after ) 620IMAPfolderItem::IMAPfolderItem( const FolderP& folderInit, IMAPviewItem *parent , Q3ListViewItem*after )
619 : AccountViewItem( folderInit, parent , after ) 621 : AccountViewItem( folderInit, parent , after )
620{ 622{
621 imap = parent; 623 imap = parent;
622 if (folder->getDisplayName().lower()!="inbox") 624 if (folder->getDisplayName().lower()!="inbox")
623 { 625 {
624 setPixmap( 0, PIXMAP_IMAPFOLDER ); 626 setPixmap( 0, PIXMAP_IMAPFOLDER );
625 } 627 }
626 else 628 else
627 { 629 {
628 setPixmap( 0, PIXMAP_INBOXFOLDER); 630 setPixmap( 0, PIXMAP_INBOXFOLDER);
629 } 631 }
630 setText( 0, folder->getDisplayName() ); 632 setText( 0, folder->getDisplayName() );
631} 633}
632 634
633IMAPfolderItem::IMAPfolderItem(const FolderP &folderInit, IMAPfolderItem *parent , QListViewItem*after, IMAPviewItem *master ) 635IMAPfolderItem::IMAPfolderItem(const FolderP &folderInit, IMAPfolderItem *parent , Q3ListViewItem*after, IMAPviewItem *master )
634 : AccountViewItem(folderInit, parent,after ) 636 : AccountViewItem(folderInit, parent,after )
635{ 637{
636 imap = master; 638 imap = master;
637 if (folder->getDisplayName().lower()!="inbox") 639 if (folder->getDisplayName().lower()!="inbox")
638 { 640 {
639 setPixmap( 0, PIXMAP_IMAPFOLDER ); 641 setPixmap( 0, PIXMAP_IMAPFOLDER );
640 } 642 }
641 else 643 else
642 { 644 {
643 setPixmap( 0, PIXMAP_INBOXFOLDER); 645 setPixmap( 0, PIXMAP_INBOXFOLDER);
644 } 646 }
645 setText( 0, folder->getDisplayName() ); 647 setText( 0, folder->getDisplayName() );
646} 648}
647 649
648IMAPfolderItem::~IMAPfolderItem() 650IMAPfolderItem::~IMAPfolderItem()
649{} 651{}
650 652
651const QString& IMAPfolderItem::Delemiter()const 653const QString& IMAPfolderItem::Delemiter()const
652{ 654{
653 return folder->Separator(); 655 return folder->Separator();
654} 656}
655 657
656void IMAPfolderItem::refresh(QValueList<RecMailP>&target) 658void IMAPfolderItem::refresh(Q3ValueList<RecMailP>&target)
657{ 659{
658 if (folder->may_select()) 660 if (folder->may_select())
659 { 661 {
660 imap->getWrapper()->listMessages( folder->getName(),target ); 662 imap->getWrapper()->listMessages( folder->getName(),target );
661 } 663 }
662 else 664 else
663 { 665 {
664 target.clear(); 666 target.clear();
665 } 667 }
666} 668}
667 669
668RECBODYP IMAPfolderItem::fetchBody(const RecMailP&aMail) 670RECBODYP IMAPfolderItem::fetchBody(const RecMailP&aMail)
669{ 671{
670 return imap->getWrapper()->fetchBody(aMail); 672 return imap->getWrapper()->fetchBody(aMail);
671} 673}
672 674
673QPopupMenu * IMAPfolderItem::getContextMenu() 675Q3PopupMenu * IMAPfolderItem::getContextMenu()
674{ 676{
675 QPopupMenu *m = new QPopupMenu(0); 677 Q3PopupMenu *m = new Q3PopupMenu(0);
676 if (m) 678 if (m)
677 { 679 {
678 if (folder->may_select()) 680 if (folder->may_select())
679 { 681 {
680 m->insertItem(i18n("Get new messages"),GET_NEW_MAILS); 682 m->insertItem(i18n("Get new messages"),GET_NEW_MAILS);
681 m->insertItem(i18n("Refresh header list"),0); 683 m->insertItem(i18n("Refresh header list"),0);
682 m->insertItem(i18n("Move/Copie all mails"),4); 684 m->insertItem(i18n("Move/Copie all mails"),4);
683 m->insertItem(i18n("Delete all mails"),1); 685 m->insertItem(i18n("Delete all mails"),1);
684 } 686 }
685 if (folder->no_inferior()==false) 687 if (folder->no_inferior()==false)
686 { 688 {
687 m->insertItem(i18n("Create new subfolder"),2); 689 m->insertItem(i18n("Create new subfolder"),2);
688 } 690 }
689 if (folder->getDisplayName().lower()!="inbox") 691 if (folder->getDisplayName().lower()!="inbox")
690 { 692 {
691 m->insertItem(i18n("Delete folder"),3); 693 m->insertItem(i18n("Delete folder"),3);
692 } 694 }
693 } 695 }
694 return m; 696 return m;
695} 697}
696 698
697void IMAPfolderItem::createNewFolder() 699void IMAPfolderItem::createNewFolder()
698{ 700{
699 Newmdirdlg ndirdlg; 701 Newmdirdlg ndirdlg;
700 //ndirdlg.showMaximized(); 702 //ndirdlg.showMaximized();
701 if ( ndirdlg.exec() ) 703 if ( ndirdlg.exec() )
702 { 704 {
703 QString ndir = ndirdlg.Newdir(); 705 QString ndir = ndirdlg.Newdir();
704 bool makesubs = ndirdlg.subpossible(); 706 bool makesubs = ndirdlg.subpossible();
705 QString delemiter = Delemiter(); 707 QString delemiter = Delemiter();
706 if (imap->wrapper->createMbox(ndir,folder,delemiter,makesubs)) 708 if (imap->wrapper->createMbox(ndir,folder,delemiter,makesubs))
707 { 709 {
708 imap->refreshFolders(true); 710 imap->refreshFolders(true);
709 } 711 }
710 } 712 }
711} 713}
712 714
713void IMAPfolderItem::deleteFolder() 715void IMAPfolderItem::deleteFolder()
714{ 716{
715 int yesno = QMessageBox::warning(0,i18n("Delete folder"), 717 int yesno = QMessageBox::warning(0,i18n("Delete folder"),
716 i18n("<center>Realy delete folder <br><b>%1</b><br>and all if it content?</center>").arg(folder->getDisplayName()), 718 i18n("<center>Realy delete folder <br><b>%1</b><br>and all if it content?</center>").arg(folder->getDisplayName()),
717 i18n("Yes"), 719 i18n("Yes"),
718 i18n("No"),QString::null,1,1); 720 i18n("No"),QString::null,1,1);
719 721
720 if (yesno == 0) 722 if (yesno == 0)
721 { 723 {
722 if (imap->getWrapper()->deleteMbox(folder)) 724 if (imap->getWrapper()->deleteMbox(folder))
723 { 725 {
724 QListView*v=listView(); 726 Q3ListView*v=listView();
725 IMAPviewItem * box = imap; 727 IMAPviewItem * box = imap;
726 /* be carefull - after that this object is destroyd so don't use 728 /* be carefull - after that this object is destroyd so don't use
727 * any member of it after that call!!*/ 729 * any member of it after that call!!*/
728 imap->refreshFolders(true); 730 imap->refreshFolders(true);
729 if (v) 731 if (v)
730 { 732 {
731 v->setSelected(box,true); 733 v->setSelected(box,true);
732 } 734 }
733 } 735 }
734 } 736 }
735} 737}
736 738
737void IMAPfolderItem::downloadMails() 739void IMAPfolderItem::downloadMails()
738{ 740{
739 AccountView*bl = imap->accountView(); 741 AccountView*bl = imap->accountView();
740 if (!bl) return; 742 if (!bl) return;
741 bl->downloadMails(folder,imap->getWrapper()); 743 bl->downloadMails(folder,imap->getWrapper());
742} 744}
743 745
744void IMAPfolderItem::contextMenuSelected(int id) 746void IMAPfolderItem::contextMenuSelected(int id)
745{ 747{
746 748
747 AccountView * view = (AccountView*)listView(); 749 AccountView * view = (AccountView*)listView();
748 switch(id) 750 switch(id)
749 { 751 {
750 case 0: 752 case 0:
751 view->refreshCurrent(); 753 view->refreshCurrent();
752 break; 754 break;
753 case 1: 755 case 1:
754 deleteAllMail(imap->getWrapper(),folder); 756 deleteAllMail(imap->getWrapper(),folder);
755 break; 757 break;
756 case 2: 758 case 2:
757 createNewFolder(); 759 createNewFolder();
758 break; 760 break;
759 case 3: 761 case 3:
760 deleteFolder(); 762 deleteFolder();
761 break; 763 break;
762 case 4: 764 case 4:
763 downloadMails(); 765 downloadMails();
764 break; 766 break;
765 case GET_NEW_MAILS: // daunlood 767 case GET_NEW_MAILS: // daunlood
766 { 768 {
767 if (!view) return; 769 if (!view) return;
768 view->downloadMailsInbox(getFolder(),imap->getWrapper()); 770 view->downloadMailsInbox(getFolder(),imap->getWrapper());
769 } 771 }
770 break; 772 break;
771 default: 773 default:
772 break; 774 break;
773 } 775 }
774} 776}
775 777
776/** 778/**
777 * MH Account stuff 779 * MH Account stuff
778 */ 780 */
779/* MH is a little bit different - the top folder can contains messages other than in IMAP and 781/* MH is a little bit different - the top folder can contains messages other than in IMAP and
780 POP3 and MBOX */ 782 POP3 and MBOX */
781MHviewItem::MHviewItem( const QString&aPath, AccountView *parent ) 783MHviewItem::MHviewItem( const QString&aPath, AccountView *parent )
782 : AccountViewItem( parent ) 784 : AccountViewItem( parent )
783{ 785{
784 m_Path = aPath; 786 m_Path = aPath;
785 /* be carefull - the space within settext is wanted - thats why the string twice */ 787 /* be carefull - the space within settext is wanted - thats why the string twice */
786 wrapper = AbstractMail::getWrapper( m_Path,"Local Mailfolders"); 788 wrapper = AbstractMail::getWrapper( m_Path,"Local Mailfolders");
787 setPixmap( 0, PIXMAP_LOCALFOLDER ); 789 setPixmap( 0, PIXMAP_LOCALFOLDER );
788 setText( 0, i18n(" Local Mailfolders") ); 790 setText( 0, i18n(" Local Mailfolders") );
789 setOpen( true ); 791 setOpen( true );
790 folder = 0; 792 folder = 0;
791} 793}
792 794
793MHviewItem::~MHviewItem() 795MHviewItem::~MHviewItem()
794{ 796{
795 delete wrapper; 797 delete wrapper;
796} 798}
797 799
798AbstractMail *MHviewItem::getWrapper() 800AbstractMail *MHviewItem::getWrapper()
799{ 801{
800 return wrapper; 802 return wrapper;
801} 803}
802 804
803void MHviewItem::refresh( QValueList<RecMailP> & target) 805void MHviewItem::refresh( Q3ValueList<RecMailP> & target)
804{ 806{
805 refresh(false); 807 refresh(false);
806 getWrapper()->listMessages( "",target ); 808 getWrapper()->listMessages( "",target );
807} 809}
808 810
809void MHviewItem::refresh(bool force) 811void MHviewItem::refresh(bool force)
810{ 812{
811 if (childCount()>0 && force==false) return; 813 if (childCount()>0 && force==false) return;
812 removeChilds(); 814 removeChilds();
813 currentFolders.clear(); 815 currentFolders.clear();
814 QValueList<FolderP> *folders = wrapper->listFolders(); 816 Q3ValueList<FolderP> *folders = wrapper->listFolders();
815 QValueList<FolderP>::ConstIterator it; 817 Q3ValueList<FolderP>::ConstIterator it;
816 MHfolderItem*item = 0; 818 MHfolderItem*item = 0;
817 MHfolderItem*pmaster = 0; 819 MHfolderItem*pmaster = 0;
818 QString fname = ""; 820 QString fname = "";
819 int pos; 821 int pos;
820 for ( it = folders->begin(); it!=folders->end(); ++it) 822 for ( it = folders->begin(); it!=folders->end(); ++it)
821 { 823 {
822 fname = (*it)->getDisplayName(); 824 fname = (*it)->getDisplayName();
823 /* this folder itself */ 825 /* this folder itself */
824 if (fname=="/") 826 if (fname=="/")
825 { 827 {
826 currentFolders.append(fname); 828 currentFolders.append(fname);
827 folder = (*it); 829 folder = (*it);
828 continue; 830 continue;
829 } 831 }
830 currentFolders.append(fname); 832 currentFolders.append(fname);
831 pos = fname.findRev("/"); 833 pos = fname.findRev("/");
832 if (pos > 0) 834 if (pos > 0)
833 { 835 {
834 fname = fname.left(pos); 836 fname = fname.left(pos);
835 pmaster = (MHfolderItem*)findSubItem(fname); 837 pmaster = (MHfolderItem*)findSubItem(fname);
836 } 838 }
837 else 839 else
838 { 840 {
839 pmaster = 0; 841 pmaster = 0;
840 } 842 }
841 if (pmaster) 843 if (pmaster)
842 { 844 {
843 item = new MHfolderItem( (*it), pmaster, item, this ); 845 item = new MHfolderItem( (*it), pmaster, item, this );
844 } 846 }
845 else 847 else
846 { 848 {
847 item = new MHfolderItem( (*it), this , item ); 849 item = new MHfolderItem( (*it), this , item );
848 } 850 }
849 item->setSelectable((*it)->may_select()); 851 item->setSelectable((*it)->may_select());
850 } 852 }
851 delete folders; 853 delete folders;
852} 854}
853 855
854RECBODYP MHviewItem::fetchBody( const RecMailP &mail ) 856RECBODYP MHviewItem::fetchBody( const RecMailP &mail )
855{ 857{
856 858
857 return wrapper->fetchBody( mail ); 859 return wrapper->fetchBody( mail );
858} 860}
859 861
860QPopupMenu * MHviewItem::getContextMenu() 862Q3PopupMenu * MHviewItem::getContextMenu()
861{ 863{
862 QPopupMenu *m = new QPopupMenu(0); 864 Q3PopupMenu *m = new Q3PopupMenu(0);
863 if (m) 865 if (m)
864 { 866 {
865 m->insertItem(i18n("Refresh folder list"),0); 867 m->insertItem(i18n("Refresh folder list"),0);
866 m->insertItem(i18n("Create new folder"),1); 868 m->insertItem(i18n("Create new folder"),1);
867 m->insertItem(i18n("Delete all mails"),2); 869 m->insertItem(i18n("Delete all mails"),2);
868 m->insertItem(i18n("Move/Copie all mails"),3); 870 m->insertItem(i18n("Move/Copie all mails"),3);
869 } 871 }
870 return m; 872 return m;
871} 873}
872 874
873void MHviewItem::createFolder() 875void MHviewItem::createFolder()
874{ 876{
875 Newmdirdlg ndirdlg(0,0,true); 877 Newmdirdlg ndirdlg(0,0,true);
876 //ndirdlg.showMaximized(); 878 //ndirdlg.showMaximized();
877 if ( ndirdlg.exec() ) 879 if ( ndirdlg.exec() )
878 { 880 {
879 QString ndir = ndirdlg.Newdir(); 881 QString ndir = ndirdlg.Newdir();
880 if (wrapper->createMbox(ndir)) 882 if (wrapper->createMbox(ndir))
881 { 883 {
882 refresh(true); 884 refresh(true);
883 } 885 }
884 } 886 }
885} 887}
886 888
887void MHviewItem::downloadMails() 889void MHviewItem::downloadMails()
888{ 890{
889 AccountView*bl = accountView(); 891 AccountView*bl = accountView();
890 if (!bl) return; 892 if (!bl) return;
891 bl->downloadMails(folder,getWrapper()); 893 bl->downloadMails(folder,getWrapper());
892} 894}
893 895
894QStringList MHviewItem::subFolders() 896QStringList MHviewItem::subFolders()
895{ 897{
896 return currentFolders; 898 return currentFolders;
897} 899}
898 900
899void MHviewItem::contextMenuSelected(int which) 901void MHviewItem::contextMenuSelected(int which)
900{ 902{
901 switch (which) 903 switch (which)
902 { 904 {
903 case 0: 905 case 0:
904 refresh(true); 906 refresh(true);
905 break; 907 break;
906 case 1: 908 case 1:
907 createFolder(); 909 createFolder();
908 break; 910 break;
909 case 2: 911 case 2:
910 deleteAllMail(getWrapper(),folder); 912 deleteAllMail(getWrapper(),folder);
911 break; 913 break;
912 case 3: 914 case 3:
913 downloadMails(); 915 downloadMails();
914 break; 916 break;
915 default: 917 default:
916 break; 918 break;
917 } 919 }
918} 920}
919 921
920MHfolderItem::~MHfolderItem() 922MHfolderItem::~MHfolderItem()
921{} 923{}
922 924
923MHfolderItem::MHfolderItem( const FolderP &folderInit, MHviewItem *parent , QListViewItem*after ) 925MHfolderItem::MHfolderItem( const FolderP &folderInit, MHviewItem *parent , Q3ListViewItem*after )
924 : AccountViewItem(folderInit, parent,after ) 926 : AccountViewItem(folderInit, parent,after )
925{ 927{
926 mbox = parent; 928 mbox = parent;
927 initName(); 929 initName();
928} 930}
929 931
930MHfolderItem::MHfolderItem(const FolderP& folderInit, MHfolderItem *parent, QListViewItem*after, MHviewItem*master) 932MHfolderItem::MHfolderItem(const FolderP& folderInit, MHfolderItem *parent, Q3ListViewItem*after, MHviewItem*master)
931 : AccountViewItem(folderInit, parent,after ) 933 : AccountViewItem(folderInit, parent,after )
932{ 934{
933 folder = folderInit; 935 folder = folderInit;
934 mbox = master; 936 mbox = master;
935 initName(); 937 initName();
936} 938}
937 939
938void MHfolderItem::initName() 940void MHfolderItem::initName()
939{ 941{
940 QString bName = folder->getDisplayName(); 942 QString bName = folder->getDisplayName();
941 if (bName.startsWith("/")&&bName.length()>1) 943 if (bName.startsWith("/")&&bName.length()>1)
942 { 944 {
943 bName.replace(0,1,""); 945 bName.replace(0,1,"");
944 } 946 }
945 int pos = bName.findRev("/"); 947 int pos = bName.findRev("/");
946 if (pos > 0) 948 if (pos > 0)
947 { 949 {
948 bName.replace(0,pos+1,""); 950 bName.replace(0,pos+1,"");
949 } 951 }
950 if (bName.lower() == "outgoing") 952 if (bName.lower() == "outgoing")
951 { 953 {
952 setPixmap( 0, PIXMAP_OUTBOXFOLDER ); 954 setPixmap( 0, PIXMAP_OUTBOXFOLDER );
953 } 955 }
954 else if (bName.lower() == "inbox") 956 else if (bName.lower() == "inbox")
955 { 957 {
956 setPixmap( 0, PIXMAP_INBOXFOLDER); 958 setPixmap( 0, PIXMAP_INBOXFOLDER);
957 } else if (bName.lower() == "drafts") { 959 } else if (bName.lower() == "drafts") {
958 setPixmap(0, SmallIcon ("edit")); 960 setPixmap(0, SmallIcon ("edit"));
959 } else { 961 } else {
960 setPixmap( 0, PIXMAP_MBOXFOLDER ); 962 setPixmap( 0, PIXMAP_MBOXFOLDER );
961 } 963 }
962 setText( 0, bName ); 964 setText( 0, bName );
963} 965}
964 966
965const FolderP&MHfolderItem::getFolder()const 967const FolderP&MHfolderItem::getFolder()const
966{ 968{
967 return folder; 969 return folder;
968} 970}
969 971
970void MHfolderItem::refresh(QValueList<RecMailP>&target) 972void MHfolderItem::refresh(Q3ValueList<RecMailP>&target)
971{ 973{
972 if (folder->may_select()) 974 if (folder->may_select())
973 mbox->getWrapper()->listMessages( folder->getName(),target ); 975 mbox->getWrapper()->listMessages( folder->getName(),target );
974} 976}
975 977
976RECBODYP MHfolderItem::fetchBody(const RecMailP&aMail) 978RECBODYP MHfolderItem::fetchBody(const RecMailP&aMail)
977{ 979{
978 return mbox->getWrapper()->fetchBody(aMail); 980 return mbox->getWrapper()->fetchBody(aMail);
979} 981}
980 982
981void MHfolderItem::deleteFolder() 983void MHfolderItem::deleteFolder()
982{ 984{
983 int yesno = QMessageBox::warning(0,i18n("Delete folder"), 985 int yesno = QMessageBox::warning(0,i18n("Delete folder"),
984 i18n("<center>Realy delete folder <br><b>%1</b><br>and all if it content?</center>").arg(folder->getDisplayName()), 986 i18n("<center>Realy delete folder <br><b>%1</b><br>and all if it content?</center>").arg(folder->getDisplayName()),
985 i18n("Yes"), 987 i18n("Yes"),
986 i18n("No"),QString::null,1,1); 988 i18n("No"),QString::null,1,1);
987 989
988 if (yesno == 0) 990 if (yesno == 0)
989 { 991 {
990 if (mbox->getWrapper()->deleteMbox(folder)) 992 if (mbox->getWrapper()->deleteMbox(folder))
991 { 993 {
992 QListView*v=listView(); 994 Q3ListView*v=listView();
993 MHviewItem * box = mbox; 995 MHviewItem * box = mbox;
994 /* be carefull - after that this object is destroyd so don't use 996 /* be carefull - after that this object is destroyd so don't use
995 * any member of it after that call!!*/ 997 * any member of it after that call!!*/
996 mbox->refresh(true); 998 mbox->refresh(true);
997 if (v) 999 if (v)
998 { 1000 {
999 v->setSelected(box,true); 1001 v->setSelected(box,true);
1000 } 1002 }
1001 } 1003 }
1002 } 1004 }
1003} 1005}
1004 1006
1005QPopupMenu * MHfolderItem::getContextMenu() 1007Q3PopupMenu * MHfolderItem::getContextMenu()
1006{ 1008{
1007 QPopupMenu *m = new QPopupMenu(0); 1009 Q3PopupMenu *m = new Q3PopupMenu(0);
1008 if (m) 1010 if (m)
1009 { 1011 {
1010 m->insertItem(i18n("Move/Copie all mails"),2); 1012 m->insertItem(i18n("Move/Copie all mails"),2);
1011 m->insertItem(i18n("Delete all mails"),0); 1013 m->insertItem(i18n("Delete all mails"),0);
1012 m->insertItem(i18n("Create new subfolder"),3); 1014 m->insertItem(i18n("Create new subfolder"),3);
1013 m->insertItem(i18n("Delete folder"),1); 1015 m->insertItem(i18n("Delete folder"),1);
1014 } 1016 }
1015 return m; 1017 return m;
1016} 1018}
1017 1019
1018void MHfolderItem::downloadMails() 1020void MHfolderItem::downloadMails()
1019{ 1021{
1020 AccountView*bl = mbox->accountView(); 1022 AccountView*bl = mbox->accountView();
1021 if (!bl) return; 1023 if (!bl) return;
1022 bl->downloadMails(folder,mbox->getWrapper()); 1024 bl->downloadMails(folder,mbox->getWrapper());
1023} 1025}
1024 1026
1025void MHfolderItem::createFolder() 1027void MHfolderItem::createFolder()
1026{ 1028{
1027 Newmdirdlg ndirdlg(0,0,true); 1029 Newmdirdlg ndirdlg(0,0,true);
1028 //ndirdlg.showMaximized(); 1030 //ndirdlg.showMaximized();
1029 if (ndirdlg.exec() ) 1031 if (ndirdlg.exec() )
1030 { 1032 {
1031 QString ndir = ndirdlg.Newdir(); 1033 QString ndir = ndirdlg.Newdir();
1032 if (mbox->getWrapper()->createMbox(ndir,folder)) 1034 if (mbox->getWrapper()->createMbox(ndir,folder))
1033 { 1035 {
1034 QListView*v=listView(); 1036 Q3ListView*v=listView();
1035 MHviewItem * box = mbox; 1037 MHviewItem * box = mbox;
1036 /* be carefull - after that this object is destroyd so don't use 1038 /* be carefull - after that this object is destroyd so don't use
1037 * any member of it after that call!!*/ 1039 * any member of it after that call!!*/
1038 mbox->refresh(true); 1040 mbox->refresh(true);
1039 if (v) 1041 if (v)
1040 { 1042 {
1041 v->setSelected(box,true); 1043 v->setSelected(box,true);
1042 } 1044 }
1043 } 1045 }
1044 } 1046 }
1045} 1047}
1046 1048
1047void MHfolderItem::contextMenuSelected(int which) 1049void MHfolderItem::contextMenuSelected(int which)
1048{ 1050{
1049 switch(which) 1051 switch(which)
1050 { 1052 {
1051 case 0: 1053 case 0:
1052 deleteAllMail(mbox->getWrapper(),folder); 1054 deleteAllMail(mbox->getWrapper(),folder);
1053 break; 1055 break;
1054 case 1: 1056 case 1:
1055 deleteFolder(); 1057 deleteFolder();
1056 break; 1058 break;
1057 case 2: 1059 case 2:
1058 downloadMails(); 1060 downloadMails();
1059 break; 1061 break;
1060 case 3: 1062 case 3:
1061 createFolder(); 1063 createFolder();
1062 break; 1064 break;
1063 default: 1065 default:
1064 break; 1066 break;
1065 } 1067 }
1066} 1068}
1067 1069
1068bool MHfolderItem::isDraftfolder() 1070bool MHfolderItem::isDraftfolder()
1069{ 1071{
1070 if (folder && folder->getName()==AbstractMail::defaultLocalfolder()+"/"+AbstractMail::draftFolder()) return true; 1072 if (folder && folder->getName()==AbstractMail::defaultLocalfolder()+"/"+AbstractMail::draftFolder()) return true;
1071 return false; 1073 return false;
1072} 1074}
1073 1075
1074/** 1076/**
1075 * Generic stuff 1077 * Generic stuff
1076 */ 1078 */
1077 1079
1078const QString AccountViewItem::contextName="AccountViewItem"; 1080const QString AccountViewItem::contextName="AccountViewItem";
1079 1081
1080AccountViewItem::AccountViewItem( AccountView *parent ) 1082AccountViewItem::AccountViewItem( AccountView *parent )
1081 : QListViewItem( parent ) 1083 : Q3ListViewItem( parent )
1082{ 1084{
1083 init(); 1085 init();
1084 m_Backlink = parent; 1086 m_Backlink = parent;
1085} 1087}
1086 1088
1087AccountViewItem::AccountViewItem( QListViewItem *parent) 1089AccountViewItem::AccountViewItem( Q3ListViewItem *parent)
1088 : QListViewItem( parent),folder(0) 1090 : Q3ListViewItem( parent),folder(0)
1089{ 1091{
1090 init(); 1092 init();
1091} 1093}
1092 1094
1093AccountViewItem::AccountViewItem( QListViewItem *parent , QListViewItem*after ) 1095AccountViewItem::AccountViewItem( Q3ListViewItem *parent , Q3ListViewItem*after )
1094 :QListViewItem( parent,after ),folder(0) 1096 :Q3ListViewItem( parent,after ),folder(0)
1095{ 1097{
1096 init(); 1098 init();
1097} 1099}
1098 1100
1099AccountViewItem::AccountViewItem( const Opie::Core::OSmartPointer<Folder>&folderInit,QListViewItem *parent , QListViewItem*after ) 1101AccountViewItem::AccountViewItem( const Opie::Core::OSmartPointer<Folder>&folderInit,Q3ListViewItem *parent , Q3ListViewItem*after )
1100 :QListViewItem( parent,after ),folder(folderInit) 1102 :Q3ListViewItem( parent,after ),folder(folderInit)
1101{ 1103{
1102 init(); 1104 init();
1103} 1105}
1104 1106
1105void AccountViewItem::init() 1107void AccountViewItem::init()
1106{ 1108{
1107 m_Backlink = 0; 1109 m_Backlink = 0;
1108} 1110}
1109 1111
1110AccountViewItem::~AccountViewItem() 1112AccountViewItem::~AccountViewItem()
1111{ 1113{
1112 folder = 0; 1114 folder = 0;
1113} 1115}
1114 1116
1115AccountView*AccountViewItem::accountView() 1117AccountView*AccountViewItem::accountView()
1116{ 1118{
1117 return m_Backlink; 1119 return m_Backlink;
1118} 1120}
1119 1121
1120void AccountViewItem::deleteAllMail(AbstractMail*wrapper,const FolderP&folder) 1122void AccountViewItem::deleteAllMail(AbstractMail*wrapper,const FolderP&folder)
1121{ 1123{
1122 if (!wrapper) return; 1124 if (!wrapper) return;
1123 QString fname=""; 1125 QString fname="";
1124 if (folder) fname = folder->getDisplayName(); 1126 if (folder) fname = folder->getDisplayName();
1125 int yesno = QMessageBox::warning(0,i18n("Delete all mails"), 1127 int yesno = QMessageBox::warning(0,i18n("Delete all mails"),
1126 i18n("<center>Realy delete all mails in box <br>%1</center>"). 1128 i18n("<center>Realy delete all mails in box <br>%1</center>").
1127 arg(fname), 1129 arg(fname),
1128 i18n("Yes"), 1130 i18n("Yes"),
1129 i18n("No"),QString::null,1,1); 1131 i18n("No"),QString::null,1,1);
1130 1132
1131 if (yesno == 0) 1133 if (yesno == 0)
1132 { 1134 {
1133 if (wrapper->deleteAllMail(folder)) 1135 if (wrapper->deleteAllMail(folder))
1134 { 1136 {
1135 AccountView * view = (AccountView*)listView(); 1137 AccountView * view = (AccountView*)listView();
1136 if (view) view->refreshCurrent(); 1138 if (view) view->refreshCurrent();
1137 } 1139 }
1138 } 1140 }
1139} 1141}
1140 1142
1141void AccountViewItem::removeChilds() 1143void AccountViewItem::removeChilds()
1142{ 1144{
1143 QListViewItem *child = firstChild(); 1145 Q3ListViewItem *child = firstChild();
1144 while ( child ) 1146 while ( child )
1145 { 1147 {
1146 QListViewItem *tmp = child; 1148 Q3ListViewItem *tmp = child;
1147 child = child->nextSibling(); 1149 child = child->nextSibling();
1148 delete tmp; 1150 delete tmp;
1149 } 1151 }
1150} 1152}
1151 1153
1152bool AccountViewItem::matchName(const QString&name)const 1154bool AccountViewItem::matchName(const QString&name)const
1153{ 1155{
1154 if (!folder) return false; 1156 if (!folder) return false;
1155 return folder->getDisplayName().lower()==name.lower(); 1157 return folder->getDisplayName().lower()==name.lower();
1156} 1158}
1157 1159
1158 1160
1159AccountViewItem*AccountViewItem::findSubItem(const QString&path,AccountViewItem*start) 1161AccountViewItem*AccountViewItem::findSubItem(const QString&path,AccountViewItem*start)
1160{ 1162{
1161 AccountViewItem*pitem,*sitem; 1163 AccountViewItem*pitem,*sitem;
1162 if (!start) pitem = (AccountViewItem*)firstChild(); 1164 if (!start) pitem = (AccountViewItem*)firstChild();
1163 else pitem = (AccountViewItem*)start->firstChild(); 1165 else pitem = (AccountViewItem*)start->firstChild();
1164 while (pitem) 1166 while (pitem)
1165 { 1167 {
1166 if (pitem->matchName(path)) 1168 if (pitem->matchName(path))
1167 { 1169 {
1168 break; 1170 break;
1169 } 1171 }
1170 if (pitem->childCount()>0) 1172 if (pitem->childCount()>0)
1171 { 1173 {
1172 sitem = findSubItem(path,pitem); 1174 sitem = findSubItem(path,pitem);
1173 if (sitem) 1175 if (sitem)
1174 { 1176 {
1175 pitem = sitem; 1177 pitem = sitem;
1176 break; 1178 break;
1177 } 1179 }
1178 } 1180 }
1179 pitem=(AccountViewItem*)pitem->nextSibling(); 1181 pitem=(AccountViewItem*)pitem->nextSibling();
1180 } 1182 }
1181 return pitem; 1183 return pitem;
1182} 1184}
1183 1185
1184bool AccountViewItem::isDraftfolder() 1186bool AccountViewItem::isDraftfolder()
1185{ 1187{
1186 return false; 1188 return false;
1187} 1189}
diff --git a/kmicromail/accountitem.h b/kmicromail/accountitem.h
index 4c92bfc..bbfd05f 100644
--- a/kmicromail/accountitem.h
+++ b/kmicromail/accountitem.h
@@ -1,215 +1,218 @@
1#ifndef __ACCOUNT_ITEM 1#ifndef __ACCOUNT_ITEM
2#define __ACCOUNT_ITEM 2#define __ACCOUNT_ITEM
3 3
4 4
5#include <qlistview.h> 5#include <q3listview.h>
6#include <qlist.h> 6#include <qlist.h>
7//Added by qt3to4:
8#include <Q3ValueList>
9#include <Q3PopupMenu>
7#include <opie2/osmartpointer.h> 10#include <opie2/osmartpointer.h>
8#include <libmailwrapper/mailwrapper.h> 11#include <libmailwrapper/mailwrapper.h>
9 12
10class POP3wrapper; 13class POP3wrapper;
11class RecMail; 14class RecMail;
12class RecBody; 15class RecBody;
13class QPopupMenu; 16class Q3PopupMenu;
14class Selectstore; 17class Selectstore;
15class AccountView; 18class AccountView;
16class POP3account; 19class POP3account;
17class NNTPaccount; 20class NNTPaccount;
18class IMAPaccount; 21class IMAPaccount;
19class AbstractMail; 22class AbstractMail;
20class Folder; 23class Folder;
21 24
22#define RECBODYP Opie::Core::OSmartPointer<RecBody> 25#define RECBODYP Opie::Core::OSmartPointer<RecBody>
23 26
24class AccountViewItem : public QListViewItem 27class AccountViewItem : public Q3ListViewItem
25{ 28{
26 29
27public: 30public:
28 AccountViewItem( AccountView *parent ); 31 AccountViewItem( AccountView *parent );
29 AccountViewItem( QListViewItem *parent); 32 AccountViewItem( Q3ListViewItem *parent);
30 AccountViewItem( QListViewItem *parent , QListViewItem*after ); 33 AccountViewItem( Q3ListViewItem *parent , Q3ListViewItem*after );
31 AccountViewItem( const Opie::Core::OSmartPointer<Folder>&folderInit,QListViewItem *parent , QListViewItem*after ); 34 AccountViewItem( const Opie::Core::OSmartPointer<Folder>&folderInit,Q3ListViewItem *parent , Q3ListViewItem*after );
32 35
33 virtual ~AccountViewItem(); 36 virtual ~AccountViewItem();
34 virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&)=0; 37 virtual void refresh(Q3ValueList<Opie::Core::OSmartPointer<RecMail> >&)=0;
35 virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&)=0; 38 virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&)=0;
36 virtual QPopupMenu * getContextMenu(){return 0;}; 39 virtual Q3PopupMenu * getContextMenu(){return 0;};
37 virtual void contextMenuSelected(int){} 40 virtual void contextMenuSelected(int){}
38 virtual AccountView*accountView(); 41 virtual AccountView*accountView();
39 virtual bool matchName(const QString&name)const; 42 virtual bool matchName(const QString&name)const;
40 virtual bool isDraftfolder(); 43 virtual bool isDraftfolder();
41 Opie::Core::OSmartPointer<Folder> getFolder() { return folder; }; 44 Opie::Core::OSmartPointer<Folder> getFolder() { return folder; };
42 45
43protected: 46protected:
44 AccountViewItem*findSubItem(const QString&path,AccountViewItem*start=0); 47 AccountViewItem*findSubItem(const QString&path,AccountViewItem*start=0);
45 virtual void init(); 48 virtual void init();
46 virtual void removeChilds(); 49 virtual void removeChilds();
47 virtual void deleteAllMail(AbstractMail*wrapper,const Opie::Core::OSmartPointer<Folder>&f); 50 virtual void deleteAllMail(AbstractMail*wrapper,const Opie::Core::OSmartPointer<Folder>&f);
48 static const QString contextName; 51 static const QString contextName;
49 AccountView*m_Backlink; 52 AccountView*m_Backlink;
50 Opie::Core::OSmartPointer<Folder> folder; 53 Opie::Core::OSmartPointer<Folder> folder;
51}; 54};
52 55
53class POP3viewItem : public AccountViewItem 56class POP3viewItem : public AccountViewItem
54{ 57{
55 58
56public: 59public:
57 POP3viewItem( POP3account *a, AccountView *parent ); 60 POP3viewItem( POP3account *a, AccountView *parent );
58 virtual ~POP3viewItem(); 61 virtual ~POP3viewItem();
59 virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&target ); 62 virtual void refresh(Q3ValueList<Opie::Core::OSmartPointer<RecMail> >&target );
60 virtual RECBODYP fetchBody( const Opie::Core::OSmartPointer<RecMail> &mail ); 63 virtual RECBODYP fetchBody( const Opie::Core::OSmartPointer<RecMail> &mail );
61 AbstractMail *getWrapper(); 64 AbstractMail *getWrapper();
62 virtual QPopupMenu * getContextMenu(); 65 virtual Q3PopupMenu * getContextMenu();
63 virtual void contextMenuSelected(int); 66 virtual void contextMenuSelected(int);
64 67
65protected: 68protected:
66 POP3account *account; 69 POP3account *account;
67 virtual void refresh(); 70 virtual void refresh();
68 AbstractMail *wrapper; 71 AbstractMail *wrapper;
69 void disconnect(); 72 void disconnect();
70 void setOnOffline(); 73 void setOnOffline();
71}; 74};
72 75
73class POP3folderItem : public AccountViewItem 76class POP3folderItem : public AccountViewItem
74{ 77{
75 78
76public: 79public:
77 POP3folderItem( const Opie::Core::OSmartPointer<Folder>&folder, POP3viewItem *parent , QListViewItem*after ); 80 POP3folderItem( const Opie::Core::OSmartPointer<Folder>&folder, POP3viewItem *parent , Q3ListViewItem*after );
78 virtual ~POP3folderItem(); 81 virtual ~POP3folderItem();
79 virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&); 82 virtual void refresh(Q3ValueList<Opie::Core::OSmartPointer<RecMail> >&);
80 virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&); 83 virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&);
81 virtual QPopupMenu * getContextMenu(); 84 virtual Q3PopupMenu * getContextMenu();
82 virtual void contextMenuSelected(int); 85 virtual void contextMenuSelected(int);
83 86
84protected: 87protected:
85 void downloadMails(); 88 void downloadMails();
86 POP3viewItem *pop3; 89 POP3viewItem *pop3;
87}; 90};
88 91
89 92
90class NNTPviewItem : public AccountViewItem 93class NNTPviewItem : public AccountViewItem
91{ 94{
92 95
93public: 96public:
94 NNTPviewItem( NNTPaccount *a, AccountView *parent ); 97 NNTPviewItem( NNTPaccount *a, AccountView *parent );
95 virtual ~NNTPviewItem(); 98 virtual ~NNTPviewItem();
96 virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&target ); 99 virtual void refresh(Q3ValueList<Opie::Core::OSmartPointer<RecMail> >&target );
97 virtual RECBODYP fetchBody( const Opie::Core::OSmartPointer<RecMail> &mail ); 100 virtual RECBODYP fetchBody( const Opie::Core::OSmartPointer<RecMail> &mail );
98 AbstractMail *getWrapper(); 101 AbstractMail *getWrapper();
99 virtual QPopupMenu * getContextMenu(); 102 virtual Q3PopupMenu * getContextMenu();
100 virtual void contextMenuSelected(int); 103 virtual void contextMenuSelected(int);
101 104
102protected: 105protected:
103 NNTPaccount *account; 106 NNTPaccount *account;
104 virtual void refresh(); 107 virtual void refresh();
105 AbstractMail *wrapper; 108 AbstractMail *wrapper;
106 void disconnect(); 109 void disconnect();
107 void setOnOffline(); 110 void setOnOffline();
108 void subscribeGroups(); 111 void subscribeGroups();
109}; 112};
110 113
111class NNTPfolderItem : public AccountViewItem 114class NNTPfolderItem : public AccountViewItem
112{ 115{
113 116
114public: 117public:
115 NNTPfolderItem(const Opie::Core::OSmartPointer<Folder>&folder, NNTPviewItem *parent , QListViewItem*after ); 118 NNTPfolderItem(const Opie::Core::OSmartPointer<Folder>&folder, NNTPviewItem *parent , Q3ListViewItem*after );
116 virtual ~NNTPfolderItem(); 119 virtual ~NNTPfolderItem();
117 virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&); 120 virtual void refresh(Q3ValueList<Opie::Core::OSmartPointer<RecMail> >&);
118 virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&); 121 virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&);
119 virtual QPopupMenu * getContextMenu(); 122 virtual Q3PopupMenu * getContextMenu();
120 virtual void contextMenuSelected(int); 123 virtual void contextMenuSelected(int);
121 124
122protected: 125protected:
123 void downloadMails(); 126 void downloadMails();
124 NNTPviewItem *nntp; 127 NNTPviewItem *nntp;
125}; 128};
126 129
127 130
128 131
129class IMAPviewItem : public AccountViewItem 132class IMAPviewItem : public AccountViewItem
130{ 133{
131 friend class IMAPfolderItem; 134 friend class IMAPfolderItem;
132public: 135public:
133 IMAPviewItem( IMAPaccount *a, AccountView *parent ); 136 IMAPviewItem( IMAPaccount *a, AccountView *parent );
134 virtual ~IMAPviewItem(); 137 virtual ~IMAPviewItem();
135 virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&); 138 virtual void refresh(Q3ValueList<Opie::Core::OSmartPointer<RecMail> >&);
136 virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&); 139 virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&);
137 AbstractMail *getWrapper(); 140 AbstractMail *getWrapper();
138 virtual QPopupMenu * getContextMenu(); 141 virtual Q3PopupMenu * getContextMenu();
139 virtual void contextMenuSelected(int); 142 virtual void contextMenuSelected(int);
140 const QStringList&subFolders(); 143 const QStringList&subFolders();
141 virtual void refreshFolders(bool force=false); 144 virtual void refreshFolders(bool force=false);
142 bool offline(); 145 bool offline();
143 146
144protected: 147protected:
145 virtual void createNewFolder(); 148 virtual void createNewFolder();
146 IMAPaccount *account; 149 IMAPaccount *account;
147 AbstractMail *wrapper; 150 AbstractMail *wrapper;
148 QStringList currentFolders; 151 QStringList currentFolders;
149}; 152};
150 153
151class IMAPfolderItem : public AccountViewItem 154class IMAPfolderItem : public AccountViewItem
152{ 155{
153 156
154public: 157public:
155 IMAPfolderItem( const Opie::Core::OSmartPointer<Folder>&folder, IMAPviewItem *parent , QListViewItem*after ); 158 IMAPfolderItem( const Opie::Core::OSmartPointer<Folder>&folder, IMAPviewItem *parent , Q3ListViewItem*after );
156 IMAPfolderItem( const Opie::Core::OSmartPointer<Folder>&folder, IMAPfolderItem *parent , QListViewItem*after, IMAPviewItem *master ); 159 IMAPfolderItem( const Opie::Core::OSmartPointer<Folder>&folder, IMAPfolderItem *parent , Q3ListViewItem*after, IMAPviewItem *master );
157 virtual ~IMAPfolderItem(); 160 virtual ~IMAPfolderItem();
158 virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&); 161 virtual void refresh(Q3ValueList<Opie::Core::OSmartPointer<RecMail> >&);
159 virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&); 162 virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&);
160 virtual QPopupMenu * getContextMenu(); 163 virtual Q3PopupMenu * getContextMenu();
161 virtual void contextMenuSelected(int); 164 virtual void contextMenuSelected(int);
162 virtual const QString& Delemiter()const; 165 virtual const QString& Delemiter()const;
163protected: 166protected:
164 virtual void createNewFolder(); 167 virtual void createNewFolder();
165 virtual void deleteFolder(); 168 virtual void deleteFolder();
166 virtual void downloadMails(); 169 virtual void downloadMails();
167 IMAPviewItem *imap; 170 IMAPviewItem *imap;
168}; 171};
169 172
170class MHviewItem : public AccountViewItem 173class MHviewItem : public AccountViewItem
171{ 174{
172 friend class MHfolderItem; 175 friend class MHfolderItem;
173 176
174public: 177public:
175 MHviewItem( const QString&aMboxPath, AccountView *parent ); 178 MHviewItem( const QString&aMboxPath, AccountView *parent );
176 virtual ~MHviewItem(); 179 virtual ~MHviewItem();
177 virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&target ); 180 virtual void refresh(Q3ValueList<Opie::Core::OSmartPointer<RecMail> >&target );
178 virtual RECBODYP fetchBody( const Opie::Core::OSmartPointer<RecMail> &mail ); 181 virtual RECBODYP fetchBody( const Opie::Core::OSmartPointer<RecMail> &mail );
179 AbstractMail *getWrapper(); 182 AbstractMail *getWrapper();
180 virtual QPopupMenu * getContextMenu(); 183 virtual Q3PopupMenu * getContextMenu();
181 virtual void contextMenuSelected(int); 184 virtual void contextMenuSelected(int);
182 QStringList subFolders(); 185 QStringList subFolders();
183 virtual void refresh(bool force=false); 186 virtual void refresh(bool force=false);
184 187
185protected: 188protected:
186 void downloadMails(); 189 void downloadMails();
187 virtual void createFolder(); 190 virtual void createFolder();
188 QString m_Path; 191 QString m_Path;
189 AbstractMail *wrapper; 192 AbstractMail *wrapper;
190 QStringList currentFolders; 193 QStringList currentFolders;
191}; 194};
192 195
193class MHfolderItem : public AccountViewItem 196class MHfolderItem : public AccountViewItem
194{ 197{
195 198
196public: 199public:
197 MHfolderItem( const Opie::Core::OSmartPointer<Folder>&folder, MHviewItem *parent , QListViewItem*after ); 200 MHfolderItem( const Opie::Core::OSmartPointer<Folder>&folder, MHviewItem *parent , Q3ListViewItem*after );
198 MHfolderItem( const Opie::Core::OSmartPointer<Folder>&folder, MHfolderItem *parent, QListViewItem*after, MHviewItem*master); 201 MHfolderItem( const Opie::Core::OSmartPointer<Folder>&folder, MHfolderItem *parent, Q3ListViewItem*after, MHviewItem*master);
199 virtual ~MHfolderItem(); 202 virtual ~MHfolderItem();
200 virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&); 203 virtual void refresh(Q3ValueList<Opie::Core::OSmartPointer<RecMail> >&);
201 virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&); 204 virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&);
202 virtual QPopupMenu * getContextMenu(); 205 virtual Q3PopupMenu * getContextMenu();
203 virtual void contextMenuSelected(int); 206 virtual void contextMenuSelected(int);
204 virtual const Opie::Core::OSmartPointer<Folder>&getFolder()const; 207 virtual const Opie::Core::OSmartPointer<Folder>&getFolder()const;
205 virtual bool isDraftfolder(); 208 virtual bool isDraftfolder();
206 209
207protected: 210protected:
208 void downloadMails(); 211 void downloadMails();
209 virtual void createFolder(); 212 virtual void createFolder();
210 virtual void deleteFolder(); 213 virtual void deleteFolder();
211 void initName(); 214 void initName();
212 MHviewItem *mbox; 215 MHviewItem *mbox;
213}; 216};
214 217
215#endif 218#endif
diff --git a/kmicromail/accountview.cpp b/kmicromail/accountview.cpp
index d1d4f7e..eea1f65 100644
--- a/kmicromail/accountview.cpp
+++ b/kmicromail/accountview.cpp
@@ -1,263 +1,265 @@
1 1
2#include "accountview.h" 2#include "accountview.h"
3#include "accountitem.h" 3#include "accountitem.h"
4#include "selectstore.h" 4#include "selectstore.h"
5 5
6#include <libmailwrapper/settings.h> 6#include <libmailwrapper/settings.h>
7#include <libmailwrapper/mailwrapper.h> 7#include <libmailwrapper/mailwrapper.h>
8#include <libmailwrapper/mailtypes.h> 8#include <libmailwrapper/mailtypes.h>
9#include <libmailwrapper/abstractmail.h> 9#include <libmailwrapper/abstractmail.h>
10 10
11/* OPIE */ 11/* OPIE */
12#include <qpe/qpeapplication.h> 12#include <qpe/qpeapplication.h>
13 13
14/* QT */ 14/* QT */
15#include <qmessagebox.h> 15#include <qmessagebox.h>
16#include <qpopupmenu.h> 16#include <q3popupmenu.h>
17#include <qcheckbox.h> 17#include <qcheckbox.h>
18#include <qtimer.h> 18#include <qtimer.h>
19#include <qspinbox.h> 19#include <qspinbox.h>
20//Added by qt3to4:
21#include <Q3ValueList>
20#include <klocale.h> 22#include <klocale.h>
21#include <kmessagebox.h> 23#include <kmessagebox.h>
22 24
23using namespace Opie::Core; 25using namespace Opie::Core;
24AccountView::AccountView( QWidget *parent, const char *name, WFlags flags ) 26AccountView::AccountView( QWidget *parent, const char *name, Qt::WFlags flags )
25 : QListView( parent, name, flags ) 27 : Q3ListView( parent, name, flags )
26{ 28{
27 //connect( this, SIGNAL( selectionChanged(QListViewItem*) ), 29 //connect( this, SIGNAL( selectionChanged(QListViewItem*) ),
28 // SLOT( refresh(QListViewItem*) ) ); 30 // SLOT( refresh(QListViewItem*) ) );
29 connect( this, SIGNAL( clicked(QListViewItem*) ), 31 connect( this, SIGNAL( clicked(Q3ListViewItem*) ),
30 SLOT( refresh(QListViewItem*) ) ); 32 SLOT( refresh(Q3ListViewItem*) ) );
31 connect( this, SIGNAL( returnPressed(QListViewItem*) ), 33 connect( this, SIGNAL( returnPressed(Q3ListViewItem*) ),
32 SLOT( refresh(QListViewItem*) ) ); 34 SLOT( refresh(Q3ListViewItem*) ) );
33 connect( this, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ),this, 35 connect( this, SIGNAL( mouseButtonPressed(int,Q3ListViewItem*,const QPoint&,int) ),this,
34 SLOT( slotHold(int,QListViewItem*,const QPoint&,int) ) ); 36 SLOT( slotHold(int,Q3ListViewItem*,const QPoint&,int) ) );
35 setSorting(0); 37 setSorting(0);
36} 38}
37 39
38AccountView::~AccountView() 40AccountView::~AccountView()
39{ 41{
40 imapAccounts.clear(); 42 imapAccounts.clear();
41 mhAccounts.clear(); 43 mhAccounts.clear();
42} 44}
43 45
44void AccountView::slotContextMenu(int id) 46void AccountView::slotContextMenu(int id)
45{ 47{
46 AccountViewItem *view = static_cast<AccountViewItem *>(currentItem()); 48 AccountViewItem *view = static_cast<AccountViewItem *>(currentItem());
47 if (!view) return; 49 if (!view) return;
48 view->contextMenuSelected(id); 50 view->contextMenuSelected(id);
49} 51}
50 52
51void AccountView::slotHold(int button, QListViewItem * item,const QPoint&,int) 53void AccountView::slotHold(int button, Q3ListViewItem * item,const QPoint&,int)
52{ 54{
53 if (button==1) {return;} 55 if (button==1) {return;}
54 if (!item) return; 56 if (!item) return;
55 AccountViewItem *view = static_cast<AccountViewItem *>(item); 57 AccountViewItem *view = static_cast<AccountViewItem *>(item);
56 QPopupMenu*m = view->getContextMenu(); 58 Q3PopupMenu*m = view->getContextMenu();
57 if (!m) return; 59 if (!m) return;
58 connect(m,SIGNAL(activated(int)),this,SLOT(slotContextMenu(int))); 60 connect(m,SIGNAL(activated(int)),this,SLOT(slotContextMenu(int)));
59 m->setFocus(); 61 m->setFocus();
60 m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y()) ); 62 m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y()) );
61 delete m; 63 delete m;
62} 64}
63 65
64void AccountView::populate( QList<Account> list ) 66void AccountView::populate( QList<Account> list )
65{ 67{
66 clear(); 68 clear();
67 69
68 imapAccounts.clear(); 70 imapAccounts.clear();
69 mhAccounts.clear(); 71 mhAccounts.clear();
70 72
71 mhAccounts.append(new MHviewItem(AbstractMail::defaultLocalfolder(),this)); 73 mhAccounts.append(new MHviewItem(AbstractMail::defaultLocalfolder(),this));
72 74
73 Account *it; 75 Account *it;
74 for ( it = list.first(); it; it = list.next() ) 76 for ( it = list.first(); it; it = list.next() )
75 { 77 {
76 if ( it->getType() == MAILLIB::A_IMAP ) 78 if ( it->getType() == MAILLIB::A_IMAP )
77 { 79 {
78 IMAPaccount *imap = static_cast<IMAPaccount *>(it); 80 IMAPaccount *imap = static_cast<IMAPaccount *>(it);
79 imapAccounts.append(new IMAPviewItem( imap, this )); 81 imapAccounts.append(new IMAPviewItem( imap, this ));
80 } 82 }
81 else if ( it->getType() == MAILLIB::A_POP3 ) 83 else if ( it->getType() == MAILLIB::A_POP3 )
82 { 84 {
83 POP3account *pop3 = static_cast<POP3account *>(it); 85 POP3account *pop3 = static_cast<POP3account *>(it);
84 /* must not be hold 'cause it isn't required */ 86 /* must not be hold 'cause it isn't required */
85 (void) new POP3viewItem( pop3, this ); 87 (void) new POP3viewItem( pop3, this );
86 } 88 }
87 else if ( it->getType() == MAILLIB::A_NNTP ) 89 else if ( it->getType() == MAILLIB::A_NNTP )
88 { 90 {
89 NNTPaccount *nntp = static_cast<NNTPaccount *>(it); 91 NNTPaccount *nntp = static_cast<NNTPaccount *>(it);
90 /* must not be hold 'cause it isn't required */ 92 /* must not be hold 'cause it isn't required */
91 (void) new NNTPviewItem( nntp, this ); 93 (void) new NNTPviewItem( nntp, this );
92 } 94 }
93 } 95 }
94} 96}
95 97
96void AccountView::refresh(QListViewItem *item) 98void AccountView::refresh(Q3ListViewItem *item)
97{ 99{
98 if ( item ) 100 if ( item )
99 { 101 {
100 bool ask = true; 102 bool ask = true;
101 //qDebug("text -%s- ",item->text( 0 ).latin1() ); 103 //qDebug("text -%s- ",item->text( 0 ).latin1() );
102 if ( item->text( 0 ) == i18n (" Local Mailfolders") ) 104 if ( item->text( 0 ) == i18n (" Local Mailfolders") )
103 ask = false; 105 ask = false;
104 else { 106 else {
105 if ( item->parent() ) 107 if ( item->parent() )
106 if ( item->parent()->text( 0 ) == i18n (" Local Mailfolders") ) 108 if ( item->parent()->text( 0 ) == i18n (" Local Mailfolders") )
107 ask = false; 109 ask = false;
108 } 110 }
109 if ( ask ) { 111 if ( ask ) {
110 int result = KMessageBox::warningContinueCancel(this, 112 int result = KMessageBox::warningContinueCancel(this,
111 i18n("Refresh\n%1\n?").arg( item->text(0) ), 113 i18n("Refresh\n%1\n?").arg( item->text(0) ),
112 i18n("Refresh"),i18n("Refresh"),i18n("Cancel"), 114 i18n("Refresh"),i18n("Refresh"),i18n("Cancel"),
113 true); 115 true);
114 if (result != KMessageBox::Continue) return; 116 if (result != KMessageBox::Continue) return;
115 } 117 }
116 m_currentItem = item; 118 m_currentItem = item;
117 topLevelWidget()->setCaption( i18n ( "Refreshing %1 ... please wait" ). arg ( m_currentItem->text( 0 ) ) ) ; 119 topLevelWidget()->setCaption( i18n ( "Refreshing %1 ... please wait" ). arg ( m_currentItem->text( 0 ) ) ) ;
118 QTimer::singleShot( 500, this, SLOT ( refreshCurrentSelected() ) ); 120 QTimer::singleShot( 500, this, SLOT ( refreshCurrentSelected() ) );
119 121
120 } 122 }
121} 123}
122void AccountView::refreshOutgoing() 124void AccountView::refreshOutgoing()
123{ 125{
124 m_currentItem = currentItem(); 126 m_currentItem = currentItem();
125 if ( !m_currentItem ) return; 127 if ( !m_currentItem ) return;
126 AccountViewItem *view = static_cast<AccountViewItem *>(m_currentItem); 128 AccountViewItem *view = static_cast<AccountViewItem *>(m_currentItem);
127 if ( !view->getFolder() ) 129 if ( !view->getFolder() )
128 return; 130 return;
129 QString bName = view->getFolder()->getDisplayName(); 131 QString bName = view->getFolder()->getDisplayName();
130 if (bName.startsWith("/")&&bName.length()>1) 132 if (bName.startsWith("/")&&bName.length()>1)
131 { 133 {
132 bName.replace(0,1,""); 134 bName.replace(0,1,"");
133 } 135 }
134 int pos = bName.findRev("/"); 136 int pos = bName.findRev("/");
135 if (pos > 0) 137 if (pos > 0)
136 { 138 {
137 bName.replace(0,pos+1,""); 139 bName.replace(0,pos+1,"");
138 } 140 }
139 //qDebug("name *%s* ",bName.lower().latin1() ); 141 //qDebug("name *%s* ",bName.lower().latin1() );
140 if ( bName.lower() == "outgoing" || bName.lower() == "sent" || bName.lower() == "sendfailed" ) { 142 if ( bName.lower() == "outgoing" || bName.lower() == "sent" || bName.lower() == "sendfailed" ) {
141 refreshCurrent(); 143 refreshCurrent();
142 // qDebug("refresh "); 144 // qDebug("refresh ");
143 } 145 }
144} 146}
145void AccountView::refreshCurrentSelected() 147void AccountView::refreshCurrentSelected()
146{ 148{
147 if ( !m_currentItem ) return; 149 if ( !m_currentItem ) return;
148 QValueList<RecMailP> headerlist; 150 Q3ValueList<RecMailP> headerlist;
149 AccountViewItem *view = static_cast<AccountViewItem *>(m_currentItem); 151 AccountViewItem *view = static_cast<AccountViewItem *>(m_currentItem);
150 view->refresh(headerlist); 152 view->refresh(headerlist);
151 emit refreshMailview(headerlist); 153 emit refreshMailview(headerlist);
152 topLevelWidget()->setCaption( i18n ( "KOpieMail/Pi" ) ) ; 154 topLevelWidget()->setCaption( i18n ( "KOpieMail/Pi" ) ) ;
153} 155}
154 156
155void AccountView::refreshCurrent() 157void AccountView::refreshCurrent()
156{ 158{
157 m_currentItem = currentItem(); 159 m_currentItem = currentItem();
158 if ( !m_currentItem ) return; 160 if ( !m_currentItem ) return;
159 topLevelWidget()->setCaption( i18n ( "Refreshing %1 ... please wait" ). arg ( m_currentItem->text( 0 ) ) ) ; 161 topLevelWidget()->setCaption( i18n ( "Refreshing %1 ... please wait" ). arg ( m_currentItem->text( 0 ) ) ) ;
160 QTimer::singleShot( 500, this, SLOT ( refreshCurrentSelected() ) ); 162 QTimer::singleShot( 500, this, SLOT ( refreshCurrentSelected() ) );
161} 163}
162 164
163void AccountView::refreshAll() 165void AccountView::refreshAll()
164{ 166{
165} 167}
166 168
167RecBodyP AccountView::fetchBody(const RecMailP&aMail) 169RecBodyP AccountView::fetchBody(const RecMailP&aMail)
168{ 170{
169 QListViewItem*item = selectedItem (); 171 Q3ListViewItem*item = selectedItem ();
170 if (!item) return new RecBody(); 172 if (!item) return new RecBody();
171 AccountViewItem *view = static_cast<AccountViewItem *>(item); 173 AccountViewItem *view = static_cast<AccountViewItem *>(item);
172 return view->fetchBody(aMail); 174 return view->fetchBody(aMail);
173} 175}
174 176
175void AccountView::setupFolderselect(Selectstore*sels) 177void AccountView::setupFolderselect(Selectstore*sels)
176{ 178{
177 179
178#ifndef DESKTOP_VERSION 180#ifndef DESKTOP_VERSION
179 sels->showMaximized(); 181 sels->showMaximized();
180#else 182#else
181 sels->show(); 183 sels->show();
182#endif 184#endif
183 QStringList sFolders; 185 QStringList sFolders;
184 unsigned int i = 0; 186 unsigned int i = 0;
185 for (i=0; i < mhAccounts.count();++i) 187 for (i=0; i < mhAccounts.count();++i)
186 { 188 {
187 mhAccounts[i]->refresh(false); 189 mhAccounts[i]->refresh(false);
188 sFolders = mhAccounts[i]->subFolders(); 190 sFolders = mhAccounts[i]->subFolders();
189 sels->addAccounts(mhAccounts[i]->getWrapper(),sFolders); 191 sels->addAccounts(mhAccounts[i]->getWrapper(),sFolders);
190 } 192 }
191 for (i=0; i < imapAccounts.count();++i) 193 for (i=0; i < imapAccounts.count();++i)
192 { 194 {
193 if (imapAccounts[i]->offline()) 195 if (imapAccounts[i]->offline())
194 continue; 196 continue;
195 imapAccounts[i]->refreshFolders(false); 197 imapAccounts[i]->refreshFolders(false);
196 sels->addAccounts(imapAccounts[i]->getWrapper(),imapAccounts[i]->subFolders()); 198 sels->addAccounts(imapAccounts[i]->getWrapper(),imapAccounts[i]->subFolders());
197 } 199 }
198} 200}
199void AccountView::downloadMailsInbox(const FolderP&fromFolder,AbstractMail*fromWrapper) 201void AccountView::downloadMailsInbox(const FolderP&fromFolder,AbstractMail*fromWrapper)
200{ 202{
201#if 0 203#if 0
202 AbstractMail*targetMail = 0; 204 AbstractMail*targetMail = 0;
203 QString targetFolder = ""; 205 QString targetFolder = "";
204 Selectstore sels; 206 Selectstore sels;
205 setupFolderselect(&sels); 207 setupFolderselect(&sels);
206 if (!sels.exec()) return; 208 if (!sels.exec()) return;
207 targetMail = sels.currentMail(); 209 targetMail = sels.currentMail();
208 targetFolder = sels.currentFolder(); 210 targetFolder = sels.currentFolder();
209 if ( (fromWrapper==targetMail && fromFolder->getName()==targetFolder) || 211 if ( (fromWrapper==targetMail && fromFolder->getName()==targetFolder) ||
210 targetFolder.isEmpty()) 212 targetFolder.isEmpty())
211 { 213 {
212 return; 214 return;
213 } 215 }
214 if (sels.newFolder() && !targetMail->createMbox(targetFolder)) 216 if (sels.newFolder() && !targetMail->createMbox(targetFolder))
215 { 217 {
216 QMessageBox::critical(0,i18n("Error creating new Folder"), 218 QMessageBox::critical(0,i18n("Error creating new Folder"),
217 i18n("<center>Error while creating<br>new folder - breaking.</center>")); 219 i18n("<center>Error while creating<br>new folder - breaking.</center>"));
218 return; 220 return;
219 } 221 }
220 int maxsize = 0; 222 int maxsize = 0;
221 if ( sels.useSize->isChecked()) 223 if ( sels.useSize->isChecked())
222 maxsize = sels.sizeSpinBox->value(); 224 maxsize = sels.sizeSpinBox->value();
223 fromWrapper->mvcpAllMails(fromFolder,targetFolder,targetMail,sels.moveMails(), maxsize); 225 fromWrapper->mvcpAllMails(fromFolder,targetFolder,targetMail,sels.moveMails(), maxsize);
224#endif 226#endif
225 fromWrapper->downloadNewMails( fromFolder, mhAccounts[0]->getWrapper()); 227 fromWrapper->downloadNewMails( fromFolder, mhAccounts[0]->getWrapper());
226 refreshCurrent(); 228 refreshCurrent();
227 229
228} 230}
229 231
230void AccountView::downloadMails(const FolderP&fromFolder,AbstractMail*fromWrapper) 232void AccountView::downloadMails(const FolderP&fromFolder,AbstractMail*fromWrapper)
231{ 233{
232 AbstractMail*targetMail = 0; 234 AbstractMail*targetMail = 0;
233 QString targetFolder = ""; 235 QString targetFolder = "";
234 Selectstore sels; 236 Selectstore sels;
235 setupFolderselect(&sels); 237 setupFolderselect(&sels);
236 if (!sels.exec()) return; 238 if (!sels.exec()) return;
237 targetMail = sels.currentMail(); 239 targetMail = sels.currentMail();
238 targetFolder = sels.currentFolder(); 240 targetFolder = sels.currentFolder();
239 if ( (fromWrapper==targetMail && fromFolder->getName()==targetFolder) || 241 if ( (fromWrapper==targetMail && fromFolder->getName()==targetFolder) ||
240 targetFolder.isEmpty()) 242 targetFolder.isEmpty())
241 { 243 {
242 return; 244 return;
243 } 245 }
244 if (sels.newFolder() && !targetMail->createMbox(targetFolder)) 246 if (sels.newFolder() && !targetMail->createMbox(targetFolder))
245 { 247 {
246 QMessageBox::critical(0,i18n("Error creating new Folder"), 248 QMessageBox::critical(0,i18n("Error creating new Folder"),
247 i18n("<center>Error while creating<br>new folder - breaking.</center>")); 249 i18n("<center>Error while creating<br>new folder - breaking.</center>"));
248 return; 250 return;
249 } 251 }
250 int maxsize = 0; 252 int maxsize = 0;
251 if ( sels.useSize->isChecked()) 253 if ( sels.useSize->isChecked())
252 maxsize = sels.sizeSpinBox->value(); 254 maxsize = sels.sizeSpinBox->value();
253 255
254 fromWrapper->mvcpAllMails(fromFolder,targetFolder,targetMail,sels.moveMails(), maxsize); 256 fromWrapper->mvcpAllMails(fromFolder,targetFolder,targetMail,sels.moveMails(), maxsize);
255 refreshCurrent(); 257 refreshCurrent();
256} 258}
257 259
258bool AccountView::currentisDraft() 260bool AccountView::currentisDraft()
259{ 261{
260 AccountViewItem *view = static_cast<AccountViewItem *>(currentItem()); 262 AccountViewItem *view = static_cast<AccountViewItem *>(currentItem());
261 if (!view) return false; 263 if (!view) return false;
262 return view->isDraftfolder(); 264 return view->isDraftfolder();
263} 265}
diff --git a/kmicromail/accountview.h b/kmicromail/accountview.h
index 33f3479..14b0ff9 100644
--- a/kmicromail/accountview.h
+++ b/kmicromail/accountview.h
@@ -1,48 +1,50 @@
1#ifndef ACCOUNTVIEW_H 1#ifndef ACCOUNTVIEW_H
2#define ACCOUNTVIEW_H 2#define ACCOUNTVIEW_H
3 3
4#include <qlistview.h> 4#include <q3listview.h>
5#include <qlist.h> 5#include <qlist.h>
6//Added by qt3to4:
7#include <Q3ValueList>
6#include <opie2/osmartpointer.h> 8#include <opie2/osmartpointer.h>
7#include <libmailwrapper/mailtypes.h> 9#include <libmailwrapper/mailtypes.h>
8 10
9class Selectstore; 11class Selectstore;
10class Folder; 12class Folder;
11class AbstractMail; 13class AbstractMail;
12class Account; 14class Account;
13class IMAPviewItem; 15class IMAPviewItem;
14class MHviewItem; 16class MHviewItem;
15 17
16class AccountView : public QListView 18class AccountView : public Q3ListView
17{ 19{
18 Q_OBJECT 20 Q_OBJECT
19 21
20public: 22public:
21 AccountView( QWidget *parent = 0, const char *name = 0, WFlags flags = 0 ); 23 AccountView( QWidget *parent = 0, const char *name = 0, Qt::WFlags flags = 0 );
22 virtual ~AccountView(); 24 virtual ~AccountView();
23 virtual void populate( QList<Account> list ); 25 virtual void populate( QList<Account> list );
24 virtual RecBodyP fetchBody(const Opie::Core::OSmartPointer<RecMail>&aMail); 26 virtual RecBodyP fetchBody(const Opie::Core::OSmartPointer<RecMail>&aMail);
25 virtual void downloadMails(const Opie::Core::OSmartPointer<Folder>&fromFolder,AbstractMail*fromWrapper); 27 virtual void downloadMails(const Opie::Core::OSmartPointer<Folder>&fromFolder,AbstractMail*fromWrapper);
26 virtual void downloadMailsInbox(const Opie::Core::OSmartPointer<Folder>&fromFolder,AbstractMail*fromWrapper); 28 virtual void downloadMailsInbox(const Opie::Core::OSmartPointer<Folder>&fromFolder,AbstractMail*fromWrapper);
27 virtual bool currentisDraft(); 29 virtual bool currentisDraft();
28 QValueList<MHviewItem*> allAccounts() { return mhAccounts;} 30 Q3ValueList<MHviewItem*> allAccounts() { return mhAccounts;}
29public slots: 31public slots:
30 virtual void refreshAll(); 32 virtual void refreshAll();
31 virtual void refresh(QListViewItem *item); 33 virtual void refresh(Q3ListViewItem *item);
32 virtual void refreshCurrent(); 34 virtual void refreshCurrent();
33 virtual void refreshCurrentSelected(); 35 virtual void refreshCurrentSelected();
34 virtual void refreshOutgoing(); 36 virtual void refreshOutgoing();
35 virtual void slotHold(int, QListViewItem *,const QPoint&,int); 37 virtual void slotHold(int, Q3ListViewItem *,const QPoint&,int);
36 virtual void slotContextMenu(int id); 38 virtual void slotContextMenu(int id);
37 void setupFolderselect(Selectstore*sels); 39 void setupFolderselect(Selectstore*sels);
38 40
39signals: 41signals:
40 void refreshMailview(const QValueList<RecMailP>& ); 42 void refreshMailview(const Q3ValueList<RecMailP>& );
41 43
42protected: 44protected:
43 QListViewItem* m_currentItem; 45 Q3ListViewItem* m_currentItem;
44 QValueList<IMAPviewItem*> imapAccounts; 46 Q3ValueList<IMAPviewItem*> imapAccounts;
45 QValueList<MHviewItem*> mhAccounts; 47 Q3ValueList<MHviewItem*> mhAccounts;
46}; 48};
47 49
48#endif 50#endif
diff --git a/kmicromail/composemail.cpp b/kmicromail/composemail.cpp
index 4bc4441..81d7b52 100644
--- a/kmicromail/composemail.cpp
+++ b/kmicromail/composemail.cpp
@@ -1,272 +1,272 @@
1// CHANGED 2004-08-06 Lutz Rogowski 1// CHANGED 2004-08-06 Lutz Rogowski
2 2
3 3
4#ifdef DESKTOP_VERSION 4#ifdef DESKTOP_VERSION
5#include <qapplication.h> 5#include <qapplication.h>
6#include <kabc/addresseedialog.h> 6#include <kabc/addresseedialog.h>
7#include <kabc/stdaddressbook.h> 7#include <kabc/stdaddressbook.h>
8#include <kabc/addressee.h> 8#include <kabc/addressee.h>
9#else 9#else
10#include <qpe/qpeapplication.h> 10#include <qpe/qpeapplication.h>
11#endif //DESKTOP_VERSION 11#endif //DESKTOP_VERSION
12#include <libkdepim/externalapphandler.h> 12#include <libkdepim/externalapphandler.h>
13 13
14#include "koprefs.h" 14#include "koprefs.h"
15#include <klocale.h> 15#include <klocale.h>
16#include <kglobal.h> 16#include <kglobal.h>
17 17
18#ifdef MINIKDE_KDIALOG_H 18#ifdef MINIKDE_KDIALOG_H
19#undef MINIKDE_KDIALOG_H 19#undef MINIKDE_KDIALOG_H
20#endif 20#endif
21 21
22 22
23#include "composemail.h" 23#include "composemail.h"
24 24
25#include <libmailwrapper/smtpwrapper.h> 25#include <libmailwrapper/smtpwrapper.h>
26#include <libmailwrapper/storemail.h> 26#include <libmailwrapper/storemail.h>
27#include <libmailwrapper/abstractmail.h> 27#include <libmailwrapper/abstractmail.h>
28#include <libmailwrapper/mailtypes.h> 28#include <libmailwrapper/mailtypes.h>
29 29
30/* OPIE */ 30/* OPIE */
31//#include <opie2/ofiledialog.h> 31//#include <opie2/ofiledialog.h>
32//#include <opie2/odebug.h> 32//#include <opie2/odebug.h>
33#include <kfiledialog.h> 33#include <kfiledialog.h>
34//#include <qpe/resource.h> 34//#include <qpe/resource.h>
35#include <qpe/global.h> 35#include <qpe/global.h>
36//#include <qpe/contact.h> 36//#include <qpe/contact.h>
37 37
38 38
39#include <qcombobox.h> 39#include <qcombobox.h>
40#include <qcheckbox.h> 40#include <qcheckbox.h>
41#include <qiconset.h> 41#include <qicon.h>
42#include <qtimer.h> 42#include <qtimer.h>
43#include <qmessagebox.h> 43#include <qmessagebox.h>
44#include <qpushbutton.h> 44#include <qpushbutton.h>
45#include <qmultilineedit.h> 45#include <q3multilineedit.h>
46#include <qlabel.h> 46#include <qlabel.h>
47#include <qtabwidget.h> 47#include <qtabwidget.h>
48#include <qlistview.h> 48#include <q3listview.h>
49 49
50//using namespace Opie::Core; 50//using namespace Opie::Core;
51//using namespace Opie::Ui; 51//using namespace Opie::Ui;
52ComposeMail::ComposeMail( Settings *sett, QWidget *parent, const char *name, bool modal ) 52ComposeMail::ComposeMail( Settings *sett, QWidget *parent, const char *name, bool modal )
53 : ComposeMailUI( parent, name, modal ) 53 : ComposeMailUI( parent, name, modal )
54{ 54{
55 55
56 topLevelWidget()->setCaption( i18n("Compose mail - Click OK to send ->") ); 56 topLevelWidget()->setCaption( i18n("Compose mail - Click OK to send ->") );
57 mPickLineEdit = 0; 57 mPickLineEdit = 0;
58 mEncoding = KOPrefs::instance()->mCurrentCodeName; 58 mEncoding = KOPrefs::instance()->mCurrentCodeName;
59 //managed from opiemail now 59 //managed from opiemail now
60 //connect(ExternalAppHandler::instance(), SIGNAL(receivedNameEmailUidListEvent(const QString&, const QStringList&, const QStringList&, const QStringList&)), 60 //connect(ExternalAppHandler::instance(), SIGNAL(receivedNameEmailUidListEvent(const QString&, const QStringList&, const QStringList&, const QStringList&)),
61 // this, SLOT(insertAttendees(const QString&, const QStringList&, const QStringList&, const QStringList&))); 61 // this, SLOT(insertAttendees(const QString&, const QStringList&, const QStringList&, const QStringList&)));
62 settings = sett; 62 settings = sett;
63 m_replyid = ""; 63 m_replyid = "";
64 if ( KOPrefs::instance()->mUseKapi) { 64 if ( KOPrefs::instance()->mUseKapi) {
65 KConfig config( locateLocal("config", "kabcrc") ); 65 KConfig config( locateLocal("config", "kabcrc") );
66 config.setGroup( "General" ); 66 config.setGroup( "General" );
67 QString whoami_uid = config.readEntry( "WhoAmI" ); 67 QString whoami_uid = config.readEntry( "WhoAmI" );
68 68
69 if ( whoami_uid.isEmpty() ) { 69 if ( whoami_uid.isEmpty() ) {
70 QMessageBox::information( 0, i18n( "Hint" ), 70 QMessageBox::information( 0, i18n( "Hint" ),
71 i18n( "Please apply\n\"Set Who Am I\"\nin KA/Pi to get the from\nfield automatically filled out!\n" ), 71 i18n( "Please apply\n\"Set Who Am I\"\nin KA/Pi to get the from\nfield automatically filled out!\n" ),
72 i18n( "Ok" ) ); 72 i18n( "Ok" ) );
73 73
74 74
75 fillSettings(); 75 fillSettings();
76 } else 76 } else
77 ExternalAppHandler::instance()->requestDetailsFromKAPI("", "sendbacklist", whoami_uid); 77 ExternalAppHandler::instance()->requestDetailsFromKAPI("", "sendbacklist", whoami_uid);
78 78
79 79
80#ifdef DESKTOP_VERSION 80#ifdef DESKTOP_VERSION
81 KABC::Addressee con = KABC::StdAddressBook::self()->whoAmI( ); 81 KABC::Addressee con = KABC::StdAddressBook::self()->whoAmI( );
82 QStringList mails = con.emails(); 82 QStringList mails = con.emails();
83 QString defmail = con.preferredEmail(); 83 QString defmail = con.preferredEmail();
84 if ( mails.count() == 0) 84 if ( mails.count() == 0)
85 QMessageBox::information( 0, i18n( "Hint" ), 85 QMessageBox::information( 0, i18n( "Hint" ),
86 i18n( "Please apply\n\"Set Who Am I\"\nin KA/Pi to get the from\nfield automatically filled out!\n" ), 86 i18n( "Please apply\n\"Set Who Am I\"\nin KA/Pi to get the from\nfield automatically filled out!\n" ),
87 i18n( "Ok" ) ); 87 i18n( "Ok" ) );
88 if (defmail.length()!=0) { 88 if (defmail.length()!=0) {
89 fromBox->insertItem(defmail); 89 fromBox->insertItem(defmail);
90 } 90 }
91 QStringList::ConstIterator sit = mails.begin(); 91 QStringList::ConstIterator sit = mails.begin();
92 for (;sit!=mails.end();++sit) { 92 for (;sit!=mails.end();++sit) {
93 if ( (*sit)==defmail) 93 if ( (*sit)==defmail)
94 continue; 94 continue;
95 fromBox->insertItem((*sit)); 95 fromBox->insertItem((*sit));
96 } 96 }
97 senderNameEdit->setText(con.formattedName()); 97 senderNameEdit->setText(con.formattedName());
98#endif 98#endif
99 99
100 } else { 100 } else {
101 fillSettings(); 101 fillSettings();
102 } 102 }
103 checkBoxLater->setChecked( KOPrefs::instance()->mSendLater ); 103 checkBoxLater->setChecked( KOPrefs::instance()->mSendLater );
104 104
105 attList->addColumn( i18n( "Name" ) ); 105 attList->addColumn( i18n( "Name" ) );
106 attList->addColumn( i18n( "Size" ) ); 106 attList->addColumn( i18n( "Size" ) );
107 QList<Account> accounts = settings->getAccounts(); 107 QList<Account> accounts = settings->getAccounts();
108 108
109 if ( QApplication::desktop()->width() < 320 ) 109 if ( QApplication::desktop()->width() < 320 )
110 smtpAccountBox->setMaximumWidth( 80 ); 110 smtpAccountBox->setMaximumWidth( 80 );
111 Account *it; 111 Account *it;
112 for ( it = accounts.first(); it; it = accounts.next() ) { 112 for ( it = accounts.first(); it; it = accounts.next() ) {
113 if ( it->getType()==MAILLIB::A_SMTP ) { 113 if ( it->getType()==MAILLIB::A_SMTP ) {
114 SMTPaccount *smtp = static_cast<SMTPaccount *>(it); 114 SMTPaccount *smtp = static_cast<SMTPaccount *>(it);
115 smtpAccountBox->insertItem( smtp->getAccountName() ); 115 smtpAccountBox->insertItem( smtp->getAccountName() );
116 smtpAccounts.append( smtp ); 116 smtpAccounts.append( smtp );
117 } 117 }
118 } 118 }
119 connect( toButton, SIGNAL( clicked() ), SLOT( pickAddressTo() ) ); 119 connect( toButton, SIGNAL( clicked() ), SLOT( pickAddressTo() ) );
120 connect( ccButton, SIGNAL( clicked() ), SLOT( pickAddressCC() ) ); 120 connect( ccButton, SIGNAL( clicked() ), SLOT( pickAddressCC() ) );
121 connect( bccButton, SIGNAL( clicked() ), SLOT( pickAddressBCC() ) ); 121 connect( bccButton, SIGNAL( clicked() ), SLOT( pickAddressBCC() ) );
122 connect( replyButton, SIGNAL( clicked() ), SLOT( pickAddressReply() ) ); 122 connect( replyButton, SIGNAL( clicked() ), SLOT( pickAddressReply() ) );
123 connect( addButton, SIGNAL( clicked() ), SLOT( addAttachment() ) ); 123 connect( addButton, SIGNAL( clicked() ), SLOT( addAttachment() ) );
124 connect( deleteButton, SIGNAL( clicked() ), SLOT( removeAttachment() ) ); 124 connect( deleteButton, SIGNAL( clicked() ), SLOT( removeAttachment() ) );
125 connect( SaveButton, SIGNAL( clicked() ), SLOT( saveAsDraft()) ); 125 connect( SaveButton, SIGNAL( clicked() ), SLOT( saveAsDraft()) );
126 mMail = 0; 126 mMail = 0;
127 warnAttach = true; 127 warnAttach = true;
128 QIconSet icon; 128 QIcon icon;
129 //icon = SmallIcon("fileexport"); 129 //icon = SmallIcon("fileexport");
130 icon = SmallIcon("filesave"); 130 icon = SmallIcon("filesave");
131 SaveButton->setIconSet (icon ) ; 131 SaveButton->setIconSet (icon ) ;
132 if ( QApplication::desktop()->width() < 320 ) { 132 if ( QApplication::desktop()->width() < 320 ) {
133 SaveButton->setText ("") ; 133 SaveButton->setText ("") ;
134 SaveButton->setMaximumSize ( SaveButton->sizeHint().height(),SaveButton->sizeHint().height()) ; 134 SaveButton->setMaximumSize ( SaveButton->sizeHint().height(),SaveButton->sizeHint().height()) ;
135 } 135 }
136 else 136 else
137 SaveButton->setText (i18n("Save")); 137 SaveButton->setText (i18n("Save"));
138#ifndef DESKTOP_VERSION 138#ifndef DESKTOP_VERSION
139 QPEApplication::setStylusOperation( message, QPEApplication::RightOnHold ); 139 QPEApplication::setStylusOperation( message, QPEApplication::RightOnHold );
140 QPEApplication::setStylusOperation( senderNameEdit, QPEApplication::RightOnHold ); 140 QPEApplication::setStylusOperation( senderNameEdit, QPEApplication::RightOnHold );
141 QPEApplication::setStylusOperation( subjectLine, QPEApplication::RightOnHold ); 141 QPEApplication::setStylusOperation( subjectLine, QPEApplication::RightOnHold );
142#endif 142#endif
143 message->setFont ( KOPrefs::instance()->mComposeFont ); 143 message->setFont ( KOPrefs::instance()->mComposeFont );
144 message->setWordWrap (QMultiLineEdit::WidgetWidth); 144 message->setWordWrap (Q3MultiLineEdit::WidgetWidth);
145 if ( smtpAccounts.count() > 0 ) { 145 if ( smtpAccounts.count() > 0 ) {
146 fillValues( smtpAccountBox->currentItem() ); 146 fillValues( smtpAccountBox->currentItem() );
147 } else { 147 } else {
148 QMessageBox::information( 0, i18n( "Problem" ), 148 QMessageBox::information( 0, i18n( "Problem" ),
149 i18n( "Please create an\nSMTP account first.\nThe SMTP is needed\nfor sending mail.\n" ), 149 i18n( "Please create an\nSMTP account first.\nThe SMTP is needed\nfor sending mail.\n" ),
150 i18n( "Ok" ) ); 150 i18n( "Ok" ) );
151 return; 151 return;
152 } 152 }
153 connect( smtpAccountBox, SIGNAL( activated(int) ), SLOT( fillValues(int) ) ); 153 connect( smtpAccountBox, SIGNAL( activated(int) ), SLOT( fillValues(int) ) );
154 connect( SaveSigButton, SIGNAL( clicked() ), SLOT( saveSig()) ); 154 connect( SaveSigButton, SIGNAL( clicked() ), SLOT( saveSig()) );
155 if ( smtpAccountBox->count()) 155 if ( smtpAccountBox->count())
156 fillValues(0); 156 fillValues(0);
157#ifdef DESKTOP_VERSION 157#ifdef DESKTOP_VERSION
158 if ( QApplication::desktop()->width() <= 800 ) { 158 if ( QApplication::desktop()->width() <= 800 ) {
159 resize( QApplication::desktop()->size() ); 159 resize( QApplication::desktop()->size() );
160 } else 160 } else
161 resize( 800, 600 ); 161 resize( 800, 600 );
162 if ( QApplication::desktop()->width() >= 640 ) 162 if ( QApplication::desktop()->width() >= 640 )
163 senderNameEdit->setFixedWidth( 200 ); 163 senderNameEdit->setFixedWidth( 200 );
164#endif 164#endif
165} 165}
166 166
167void ComposeMail::fillSettings() 167void ComposeMail::fillSettings()
168{ 168{
169 if ( QApplication::desktop()->width() < 320 ) 169 if ( QApplication::desktop()->width() < 320 )
170 fromBox->setMaximumWidth( 100 ); 170 fromBox->setMaximumWidth( 100 );
171 QStringList mailList = QStringList::split(";",KOPrefs::instance()->mEmail); 171 QStringList mailList = QStringList::split(";",KOPrefs::instance()->mEmail);
172 QStringList::ConstIterator sit = mailList.begin(); 172 QStringList::ConstIterator sit = mailList.begin();
173 int pref = 0; 173 int pref = 0;
174 for (;sit!=mailList.end();++sit) { 174 for (;sit!=mailList.end();++sit) {
175 fromBox->insertItem((*sit)); 175 fromBox->insertItem((*sit));
176 } 176 }
177 senderNameEdit->setText(KOPrefs::instance()->mName); 177 senderNameEdit->setText(KOPrefs::instance()->mName);
178} 178}
179void ComposeMail::saveSig() 179void ComposeMail::saveSig()
180{ 180{
181 if ( smtpAccountBox->count()) { 181 if ( smtpAccountBox->count()) {
182 int cur = smtpAccountBox->currentItem (); 182 int cur = smtpAccountBox->currentItem ();
183 SMTPaccount *smtp = smtpAccounts.at( cur ); 183 SMTPaccount *smtp = smtpAccounts.at( cur );
184 if ( smtp ) 184 if ( smtp )
185 smtp->setSignature( sigMultiLine->text()); 185 smtp->setSignature( sigMultiLine->text());
186 } 186 }
187} 187}
188void ComposeMail::saveAsDraft() 188void ComposeMail::saveAsDraft()
189{ 189{
190 190
191 Opie::Core::OSmartPointer<Mail> mail= new Mail(); 191 Opie::Core::OSmartPointer<Mail> mail= new Mail();
192 mail->setMail(fromBox->currentText()); 192 mail->setMail(fromBox->currentText());
193 mail->setTo( toLine->text() ); 193 mail->setTo( toLine->text() );
194 mail->setName(senderNameEdit->text()); 194 mail->setName(senderNameEdit->text());
195 mail->setCC( ccLine->text() ); 195 mail->setCC( ccLine->text() );
196 mail->setBCC( bccLine->text() ); 196 mail->setBCC( bccLine->text() );
197 mail->setReply( replyLine->text() ); 197 mail->setReply( replyLine->text() );
198 mail->setSubject( subjectLine->text() ); 198 mail->setSubject( subjectLine->text() );
199 if (!m_replyid.isEmpty()) { 199 if (!m_replyid.isEmpty()) {
200 QStringList ids; 200 QStringList ids;
201 ids.append(m_replyid); 201 ids.append(m_replyid);
202 mail->setInreply(ids); 202 mail->setInreply(ids);
203 } 203 }
204 QString txt = message->text(); 204 QString txt = message->text();
205 if ( !sigMultiLine->text().isEmpty() ) { 205 if ( !sigMultiLine->text().isEmpty() ) {
206 txt.append( "\n--\n" ); 206 txt.append( "\n--\n" );
207 txt.append( sigMultiLine->text() ); 207 txt.append( sigMultiLine->text() );
208 } 208 }
209 mail->setMessage( txt ); 209 mail->setMessage( txt );
210 mail->setCharset (mEncoding); 210 mail->setCharset (mEncoding);
211 /* only use the default drafts folder name! */ 211 /* only use the default drafts folder name! */
212 Storemail wrapper(AbstractMail::draftFolder()); 212 Storemail wrapper(AbstractMail::draftFolder());
213 wrapper.storeMail(mail); 213 wrapper.storeMail(mail);
214 214
215 AttachViewItem *it = (AttachViewItem *) attList->firstChild(); 215 AttachViewItem *it = (AttachViewItem *) attList->firstChild();
216 /* attachments we will ignore! */ 216 /* attachments we will ignore! */
217 if ( it != 0 ) { 217 if ( it != 0 ) {
218 if ( warnAttach ) 218 if ( warnAttach )
219 QMessageBox::warning(0,i18n("Store message"), 219 QMessageBox::warning(0,i18n("Store message"),
220 i18n("<center>Attachments will not be stored in \"Draft\" folder</center>")); 220 i18n("<center>Attachments will not be stored in \"Draft\" folder</center>"));
221 warnAttach = false; 221 warnAttach = false;
222 } 222 }
223 setStatus( i18n("Mail saved as draft!") ); 223 setStatus( i18n("Mail saved as draft!") );
224} 224}
225void ComposeMail::clearStatus() 225void ComposeMail::clearStatus()
226{ 226{
227 topLevelWidget()->setCaption( i18n("Compose mail - Click OK to send ->") ); 227 topLevelWidget()->setCaption( i18n("Compose mail - Click OK to send ->") );
228} 228}
229void ComposeMail::setStatus( QString status ) 229void ComposeMail::setStatus( QString status )
230{ 230{
231 topLevelWidget()->setCaption( status ); 231 topLevelWidget()->setCaption( status );
232 QTimer::singleShot ( 10000, this, SLOT( clearStatus() ) ) ; 232 QTimer::singleShot ( 10000, this, SLOT( clearStatus() ) ) ;
233} 233}
234void ComposeMail::pickAddress( ) 234void ComposeMail::pickAddress( )
235{ 235{
236 236
237 QLineEdit *line = mPickLineEdit; 237 QLineEdit *line = mPickLineEdit;
238 if ( line == 0 ) 238 if ( line == 0 )
239 return; 239 return;
240#ifdef DESKTOP_VERSION 240#ifdef DESKTOP_VERSION
241 //qDebug(" ComposeMail::pickAddress "); 241 //qDebug(" ComposeMail::pickAddress ");
242 QString names ;//= AddressPicker::getNames(); 242 QString names ;//= AddressPicker::getNames();
243 243
244 KABC::Addressee::List list = KABC::AddresseeDialog::getAddressees(this); 244 KABC::Addressee::List list = KABC::AddresseeDialog::getAddressees(this);
245 uint i=0; 245 uint i=0;
246 for (i=0; i < list.count(); i++) { 246 for (i=0; i < list.count(); i++) {
247 if ( !list[i].preferredEmail().isEmpty()) { 247 if ( !list[i].preferredEmail().isEmpty()) {
248 if ( ! names.isEmpty() ) 248 if ( ! names.isEmpty() )
249 names+= ","; 249 names+= ",";
250 names+= "\""+list[i].realName() +"\"<" +list[i].preferredEmail() +">"; 250 names+= "\""+list[i].realName() +"\"<" +list[i].preferredEmail() +">";
251 251
252 } 252 }
253 } 253 }
254 254
255 255
256 if ( line->text().isEmpty() ) { 256 if ( line->text().isEmpty() ) {
257 line->setText( names ); 257 line->setText( names );
258 } else if ( !names.isEmpty() ) { 258 } else if ( !names.isEmpty() ) {
259 line->setText( line->text() + ", " + names ); 259 line->setText( line->text() + ", " + names );
260 } 260 }
261#else 261#else
262 bool res = ExternalAppHandler::instance()->requestNameEmailUidListFromKAPI("QPE/Application/ompi", this->name() /* name is here the unique uid*/); 262 bool res = ExternalAppHandler::instance()->requestNameEmailUidListFromKAPI("QPE/Application/ompi", this->name() /* name is here the unique uid*/);
263 // the result should now arrive through method insertAttendees 263 // the result should now arrive through method insertAttendees
264#endif 264#endif
265} 265}
266//the map includes name/email pairs, that comes from Ka/Pi 266//the map includes name/email pairs, that comes from Ka/Pi
267void ComposeMail::insertAttendees(const QString& uid,const QStringList& nameList,const QStringList& emailList,const QStringList& uidList) 267void ComposeMail::insertAttendees(const QString& uid,const QStringList& nameList,const QStringList& emailList,const QStringList& uidList)
268{ 268{
269 //qDebug("ComposeMail::insertAttendees "); 269 //qDebug("ComposeMail::insertAttendees ");
270 raise(); 270 raise();
271 271
272 QString UID = uid; 272 QString UID = uid;
@@ -409,138 +409,138 @@ void ComposeMail::removeAttachment()
409{ 409{
410 if ( !attList->currentItem() ) { 410 if ( !attList->currentItem() ) {
411 QMessageBox::information( this, i18n( "Error" ), 411 QMessageBox::information( this, i18n( "Error" ),
412 i18n( "<p>Please select a File.</p>" ), 412 i18n( "<p>Please select a File.</p>" ),
413 i18n( "Ok" ) ); 413 i18n( "Ok" ) );
414 } else { 414 } else {
415 attList->takeItem( attList->currentItem() ); 415 attList->takeItem( attList->currentItem() );
416 } 416 }
417} 417}
418 418
419void ComposeMail::accept() 419void ComposeMail::accept()
420{ 420{
421 if ( smtpAccountBox->count() == 0 ) { 421 if ( smtpAccountBox->count() == 0 ) {
422 422
423 reject(); 423 reject();
424 return; 424 return;
425 } 425 }
426 426
427 if (! checkBoxLater->isChecked() ) { 427 if (! checkBoxLater->isChecked() ) {
428 int yesno = QMessageBox::warning(0, subjectLine->text().left ( 25 ), 428 int yesno = QMessageBox::warning(0, subjectLine->text().left ( 25 ),
429 i18n("Send this message?"), 429 i18n("Send this message?"),
430 i18n("Yes"), 430 i18n("Yes"),
431 i18n("Cancel")); 431 i18n("Cancel"));
432 432
433 if (yesno == 1) { 433 if (yesno == 1) {
434 return; 434 return;
435 } 435 }
436 } 436 }
437#if 0 437#if 0
438 odebug << "Sending Mail with " 438 odebug << "Sending Mail with "
439 << smtpAccounts.at( smtpAccountBox->currentItem() )->getAccountName() << oendl; 439 << smtpAccounts.at( smtpAccountBox->currentItem() )->getAccountName() << oendl;
440#endif 440#endif
441 Opie::Core::OSmartPointer<Mail> mail=new Mail; 441 Opie::Core::OSmartPointer<Mail> mail=new Mail;
442 442
443 SMTPaccount *smtp = smtpAccounts.at( smtpAccountBox->currentItem() ); 443 SMTPaccount *smtp = smtpAccounts.at( smtpAccountBox->currentItem() );
444 mail->setMail(fromBox->currentText()); 444 mail->setMail(fromBox->currentText());
445 445
446 if ( !toLine->text().isEmpty() ) { 446 if ( !toLine->text().isEmpty() ) {
447 mail->setTo( toLine->text() ); 447 mail->setTo( toLine->text() );
448 } else { 448 } else {
449 QMessageBox::warning(0,i18n("Sending mail"), 449 QMessageBox::warning(0,i18n("Sending mail"),
450 i18n("No Receiver spezified" ) ); 450 i18n("No Receiver spezified" ) );
451 return; 451 return;
452 } 452 }
453 453
454 mail->setName(senderNameEdit->text()); 454 mail->setName(senderNameEdit->text());
455 mail->setCC( ccLine->text() ); 455 mail->setCC( ccLine->text() );
456 mail->setBCC( bccLine->text() ); 456 mail->setBCC( bccLine->text() );
457 mail->setReply( replyLine->text() ); 457 mail->setReply( replyLine->text() );
458 mail->setSubject( subjectLine->text() ); 458 mail->setSubject( subjectLine->text() );
459 if (!m_replyid.isEmpty()) { 459 if (!m_replyid.isEmpty()) {
460 QStringList ids; 460 QStringList ids;
461 ids.append(m_replyid); 461 ids.append(m_replyid);
462 mail->setInreply(ids); 462 mail->setInreply(ids);
463 } 463 }
464 QString txt = message->text(); 464 QString txt = message->text();
465 if ( !sigMultiLine->text().isEmpty() ) { 465 if ( !sigMultiLine->text().isEmpty() ) {
466 txt.append( "\n--\n" ); 466 txt.append( "\n--\n" );
467 txt.append( sigMultiLine->text() ); 467 txt.append( sigMultiLine->text() );
468 } 468 }
469 mail->setMessage( txt ); 469 mail->setMessage( txt );
470 mail->setCharset (mEncoding); 470 mail->setCharset (mEncoding);
471 AttachViewItem *it = (AttachViewItem *) attList->firstChild(); 471 AttachViewItem *it = (AttachViewItem *) attList->firstChild();
472 while ( it != 0 ) { 472 while ( it != 0 ) {
473 mail->addAttachment( it->getAttachment() ); 473 mail->addAttachment( it->getAttachment() );
474 it = (AttachViewItem *) it->nextSibling(); 474 it = (AttachViewItem *) it->nextSibling();
475 } 475 }
476 476
477 SMTPwrapper wrapper( smtp ); 477 SMTPwrapper wrapper( smtp );
478 if ( wrapper.sendMail( mail,checkBoxLater->isChecked() ) ) 478 if ( wrapper.sendMail( mail,checkBoxLater->isChecked() ) )
479 setStatus( tr ("Mail sent")); 479 setStatus( tr ("Mail sent"));
480 else { 480 else {
481 setStatus( tr ("Error: Something went wrong. Nothing sent")); 481 setStatus( tr ("Error: Something went wrong. Nothing sent"));
482 return; 482 return;
483 } 483 }
484 484
485 485
486 QDialog::accept(); 486 QDialog::accept();
487} 487}
488 488
489void ComposeMail::reject() 489void ComposeMail::reject()
490{ 490{
491 //qDebug("ComposeMail::reject() "); 491 //qDebug("ComposeMail::reject() ");
492 int yesno = QMessageBox::warning(0,i18n("Store message?"), 492 int yesno = QMessageBox::warning(0,i18n("Store message?"),
493 i18n("Store message into drafts?\n"), 493 i18n("Store message into drafts?\n"),
494 i18n("Yes"), 494 i18n("Yes"),
495 i18n("No")); 495 i18n("No"));
496 496
497 //qDebug("button %d ", yesno); 497 //qDebug("button %d ", yesno);
498 if (yesno == 0) { 498 if (yesno == 0) {
499 if ( toLine->text().isEmpty() ) { 499 if ( toLine->text().isEmpty() ) {
500 QMessageBox::warning(0,i18n("Sending mail"), 500 QMessageBox::warning(0,i18n("Sending mail"),
501 i18n("No Receiver spezified" ) ); 501 i18n("No Receiver spezified" ) );
502 return; 502 return;
503 } 503 }
504 saveAsDraft(); 504 saveAsDraft();
505 } 505 }
506 if (yesno == 2) { 506 if (yesno == 2) {
507 qDebug("return "); 507 qDebug("return ");
508 return; 508 return;
509 } 509 }
510 QDialog::reject(); 510 QDialog::reject();
511} 511}
512 512
513void ComposeMail::setCharset(const QString& charset) 513void ComposeMail::setCharset(const QString& charset)
514{ 514{
515 if ( !charset.isEmpty() ) 515 if ( !charset.isEmpty() )
516 mEncoding = charset; 516 mEncoding = charset;
517 qDebug("ComposeMail::setCharset %s ", mEncoding.latin1()); 517 qDebug("ComposeMail::setCharset %s ", mEncoding.latin1());
518} 518}
519ComposeMail::~ComposeMail() 519ComposeMail::~ComposeMail()
520{ 520{
521} 521}
522 522
523void ComposeMail::reEditMail(const RecMailP&current) 523void ComposeMail::reEditMail(const RecMailP&current)
524{ 524{
525 RecMailP data = current; 525 RecMailP data = current;
526 RecBodyP body = data->Wrapper()->fetchBody(current); 526 RecBodyP body = data->Wrapper()->fetchBody(current);
527 527
528 message->setText(body->Bodytext()); 528 message->setText(body->Bodytext());
529 subjectLine->setText( data->getSubject()); 529 subjectLine->setText( data->getSubject());
530 toLine->setText(data->To().join(",")); 530 toLine->setText(data->To().join(","));
531 ccLine->setText(data->CC().join(",")); 531 ccLine->setText(data->CC().join(","));
532 bccLine->setText(data->Bcc().join(",")); 532 bccLine->setText(data->Bcc().join(","));
533 replyLine->setText(data->Replyto()); 533 replyLine->setText(data->Replyto());
534 setCharset(body->getCharset()); 534 setCharset(body->getCharset());
535} 535}
536 536
537AttachViewItem::AttachViewItem( QListView *parent, Attachment *att ) 537AttachViewItem::AttachViewItem( Q3ListView *parent, Attachment *att )
538 : QListViewItem( parent ) 538 : Q3ListViewItem( parent )
539{ 539{
540 attachment = att; 540 attachment = att;
541 if ( !attachment->getPixmap().isNull() ) 541 if ( !attachment->getPixmap().isNull() )
542 setPixmap( 0,attachment->getPixmap() ); 542 setPixmap( 0,attachment->getPixmap() );
543 setText( 0, att->getName().isEmpty() ? att->getFileName() : att->getName() ); 543 setText( 0, att->getName().isEmpty() ? att->getFileName() : att->getName() );
544 setText( 1, QString::number( att->getSize() ) ); 544 setText( 1, QString::number( att->getSize() ) );
545} 545}
546 546
diff --git a/kmicromail/composemail.h b/kmicromail/composemail.h
index 966ac3e..9aef4e1 100644
--- a/kmicromail/composemail.h
+++ b/kmicromail/composemail.h
@@ -1,94 +1,94 @@
1#ifndef COMPOSEMAIL_H 1#ifndef COMPOSEMAIL_H
2#define COMPOSEMAIL_H 2#define COMPOSEMAIL_H
3 3
4#include <qlineedit.h> 4#include <qlineedit.h>
5#include <qlistview.h> 5#include <q3listview.h>
6 6
7#include "composemailui.h" 7#include "composemailui.h"
8//#include "addresspickerui.h" 8//#include "addresspickerui.h"
9#include <libmailwrapper/settings.h> 9#include <libmailwrapper/settings.h>
10#include <libmailwrapper/mailwrapper.h> 10#include <libmailwrapper/mailwrapper.h>
11 11
12class RecMail; 12class RecMail;
13 13
14#include <opie2/osmartpointer.h> 14#include <opie2/osmartpointer.h>
15#if 0 15#if 0
16class AddressPicker : public AddressPickerUI 16class AddressPicker : public AddressPickerUI
17{ 17{
18 //Q_OBJECT 18 //Q_OBJECT
19 19
20public: 20public:
21 AddressPicker( QWidget *parent = 0, const char *name = 0, bool modal = false ); 21 AddressPicker( QWidget *parent = 0, const char *name = 0, bool modal = false );
22 static QString getNames(); 22 static QString getNames();
23 23
24protected: 24protected:
25 QString selectedNames; 25 QString selectedNames;
26 void accept(); 26 void accept();
27 27
28}; 28};
29#endif 29#endif
30class RecMail; 30class RecMail;
31 31
32class ComposeMail : public ComposeMailUI 32class ComposeMail : public ComposeMailUI
33{ 33{
34 Q_OBJECT 34 Q_OBJECT
35 35
36public: 36public:
37 37
38 ComposeMail( Settings *s, QWidget *parent = 0, const char *name = 0, bool modal = false ); 38 ComposeMail( Settings *s, QWidget *parent = 0, const char *name = 0, bool modal = false );
39 virtual ~ComposeMail(); 39 virtual ~ComposeMail();
40 40
41 void reEditMail(const Opie::Core::OSmartPointer<RecMail>&current); 41 void reEditMail(const Opie::Core::OSmartPointer<RecMail>&current);
42 42
43public slots: 43public slots:
44 void slotAdjustColumns(); 44 void slotAdjustColumns();
45 45
46 void setTo( const QString & to ); 46 void setTo( const QString & to );
47 void setSubject( const QString & subject ); 47 void setSubject( const QString & subject );
48 void setInReplyTo( const QString & messageId ); 48 void setInReplyTo( const QString & messageId );
49 void setMessage( const QString & text ); 49 void setMessage( const QString & text );
50 void insertAttendees(const QString&, const QStringList& namelist, const QStringList& emaillist, const QStringList& uidlist); 50 void insertAttendees(const QString&, const QStringList& namelist, const QStringList& emaillist, const QStringList& uidlist);
51 void setCharset(const QString&); 51 void setCharset(const QString&);
52 52
53 53
54protected slots: 54protected slots:
55 void accept(); 55 void accept();
56 void reject(); 56 void reject();
57 57
58private slots: 58private slots:
59 void fillValues( int current ); 59 void fillValues( int current );
60 void fillSettings(); 60 void fillSettings();
61 void pickAddress(); 61 void pickAddress();
62 void pickAddressTo(); 62 void pickAddressTo();
63 void pickAddressCC(); 63 void pickAddressCC();
64 void pickAddressBCC(); 64 void pickAddressBCC();
65 void pickAddressReply(); 65 void pickAddressReply();
66 void saveAsDraft(); 66 void saveAsDraft();
67 void addAttachment(); 67 void addAttachment();
68 void removeAttachment(); 68 void removeAttachment();
69 void clearStatus(); 69 void clearStatus();
70 void setStatus( QString ); 70 void setStatus( QString );
71 void saveSig(); 71 void saveSig();
72 72
73protected: 73protected:
74 QLineEdit* mPickLineEdit; 74 QLineEdit* mPickLineEdit;
75 Opie::Core::OSmartPointer<Mail> mMail; 75 Opie::Core::OSmartPointer<Mail> mMail;
76 Settings *settings; 76 Settings *settings;
77 QList<SMTPaccount> smtpAccounts; 77 QList<SMTPaccount> smtpAccounts;
78 QString m_replyid; 78 QString m_replyid;
79 QString mEncoding; 79 QString mEncoding;
80 bool warnAttach; 80 bool warnAttach;
81}; 81};
82 82
83class AttachViewItem : public QListViewItem 83class AttachViewItem : public Q3ListViewItem
84{ 84{
85public: 85public:
86 AttachViewItem( QListView *parent, Attachment *att ); 86 AttachViewItem( Q3ListView *parent, Attachment *att );
87 Attachment *getAttachment() { return attachment; } 87 Attachment *getAttachment() { return attachment; }
88 88
89private: 89private:
90 Attachment *attachment; 90 Attachment *attachment;
91 91
92}; 92};
93 93
94#endif 94#endif
diff --git a/kmicromail/editaccounts.cpp b/kmicromail/editaccounts.cpp
index 2c0f2d8..f274dc3 100644
--- a/kmicromail/editaccounts.cpp
+++ b/kmicromail/editaccounts.cpp
@@ -1,703 +1,703 @@
1 1
2#include <qdialog.h> 2#include <qdialog.h>
3#include "kapplication.h" 3#include "kapplication.h"
4#include "defines.h" 4#include "defines.h"
5#include "editaccounts.h" 5#include "editaccounts.h"
6/* OPIE */ 6/* OPIE */
7#include <qpe/qpeapplication.h> 7#include <qpe/qpeapplication.h>
8 8
9/* QT */ 9/* QT */
10#include <qstringlist.h> 10#include <qstringlist.h>
11 11
12#include <qcombobox.h> 12#include <qcombobox.h>
13#include <qcheckbox.h> 13#include <qcheckbox.h>
14#include <qmessagebox.h> 14#include <qmessagebox.h>
15#include <qpushbutton.h> 15#include <qpushbutton.h>
16#include <qlineedit.h> 16#include <qlineedit.h>
17#include <qlabel.h> 17#include <qlabel.h>
18#include <qtabwidget.h> 18#include <qtabwidget.h>
19#include <qlistview.h> 19#include <q3listview.h>
20#include <qspinbox.h> 20#include <qspinbox.h>
21#include <klocale.h> 21#include <klocale.h>
22#include <kfiledialog.h> 22#include <kfiledialog.h>
23 23
24#include <libmailwrapper/nntpwrapper.h> 24#include <libmailwrapper/nntpwrapper.h>
25 25
26using namespace Opie::Core; 26using namespace Opie::Core;
27 27
28AccountListItem::AccountListItem( QListView *parent, Account *a) 28AccountListItem::AccountListItem( Q3ListView *parent, Account *a)
29 : QListViewItem( parent ) 29 : Q3ListViewItem( parent )
30{ 30{
31 account = a; 31 account = a;
32 setText( 0, account->getAccountName() ); 32 setText( 0, account->getAccountName() );
33 QString ttext = ""; 33 QString ttext = "";
34 switch (account->getType()) { 34 switch (account->getType()) {
35 case MAILLIB::A_NNTP: 35 case MAILLIB::A_NNTP:
36 ttext="NNTP"; 36 ttext="NNTP";
37 break; 37 break;
38 case MAILLIB::A_POP3: 38 case MAILLIB::A_POP3:
39 ttext = "POP3"; 39 ttext = "POP3";
40 break; 40 break;
41 case MAILLIB::A_IMAP: 41 case MAILLIB::A_IMAP:
42 ttext = "IMAP"; 42 ttext = "IMAP";
43 break; 43 break;
44 case MAILLIB::A_SMTP: 44 case MAILLIB::A_SMTP:
45 ttext = "SMTP"; 45 ttext = "SMTP";
46 break; 46 break;
47 default: 47 default:
48 ttext = "UNKNOWN"; 48 ttext = "UNKNOWN";
49 break; 49 break;
50 } 50 }
51 setText( 1, ttext); 51 setText( 1, ttext);
52} 52}
53 53
54EditAccounts::EditAccounts( Settings *s, QWidget *parent, const char *name, bool modal, WFlags flags ) 54EditAccounts::EditAccounts( Settings *s, QWidget *parent, const char *name, bool modal, Qt::WFlags flags )
55 : EditAccountsUI( parent, name, modal, flags ) 55 : EditAccountsUI( parent, name, modal, flags )
56{ 56{
57 settings = s; 57 settings = s;
58 58
59 mailList->addColumn( i18n( "Account" ) ); 59 mailList->addColumn( i18n( "Account" ) );
60 mailList->addColumn( i18n( "Type" ) ); 60 mailList->addColumn( i18n( "Type" ) );
61 61
62 newsList->addColumn( i18n( "Account" ) ); 62 newsList->addColumn( i18n( "Account" ) );
63 63
64 connect( newMail, SIGNAL( clicked() ), SLOT( slotNewMail() ) ); 64 connect( newMail, SIGNAL( clicked() ), SLOT( slotNewMail() ) );
65 connect( editMail, SIGNAL( clicked() ), SLOT( slotEditMail() ) ); 65 connect( editMail, SIGNAL( clicked() ), SLOT( slotEditMail() ) );
66 connect( deleteMail, SIGNAL( clicked() ), SLOT( slotDeleteMail() ) ); 66 connect( deleteMail, SIGNAL( clicked() ), SLOT( slotDeleteMail() ) );
67 connect( newNews, SIGNAL( clicked() ), SLOT( slotNewNews() ) ); 67 connect( newNews, SIGNAL( clicked() ), SLOT( slotNewNews() ) );
68 connect( editNews, SIGNAL( clicked() ), SLOT( slotEditNews() ) ); 68 connect( editNews, SIGNAL( clicked() ), SLOT( slotEditNews() ) );
69 connect( deleteNews, SIGNAL( clicked() ), SLOT( slotDeleteNews() ) ); 69 connect( deleteNews, SIGNAL( clicked() ), SLOT( slotDeleteNews() ) );
70 70
71 slotFillLists(); 71 slotFillLists();
72} 72}
73 73
74void EditAccounts::slotFillLists() 74void EditAccounts::slotFillLists()
75{ 75{
76 mailList->clear(); 76 mailList->clear();
77 newsList->clear(); 77 newsList->clear();
78 78
79 QList<Account> accounts = settings->getAccounts(); 79 QList<Account> accounts = settings->getAccounts();
80 Account *it; 80 Account *it;
81 for ( it = accounts.first(); it; it = accounts.next() ) 81 for ( it = accounts.first(); it; it = accounts.next() )
82 { 82 {
83 if ( it->getType()==MAILLIB::A_NNTP ) 83 if ( it->getType()==MAILLIB::A_NNTP )
84 { 84 {
85 (void) new AccountListItem( newsList, it ); 85 (void) new AccountListItem( newsList, it );
86 } 86 }
87 else 87 else
88 { 88 {
89 (void) new AccountListItem( mailList, it ); 89 (void) new AccountListItem( mailList, it );
90 } 90 }
91 } 91 }
92} 92}
93 93
94void EditAccounts::slotNewMail() 94void EditAccounts::slotNewMail()
95{ 95{
96 QString *selection = new QString(); 96 QString *selection = new QString();
97 SelectMailType selType( selection, this, 0, true ); 97 SelectMailType selType( selection, this, 0, true );
98 selType.show(); 98 selType.show();
99 if ( QDialog::Accepted == selType.exec() ) 99 if ( QDialog::Accepted == selType.exec() )
100 { 100 {
101 slotNewAccount( *selection ); 101 slotNewAccount( *selection );
102 } 102 }
103} 103}
104 104
105void EditAccounts::slotNewAccount( const QString &type ) 105void EditAccounts::slotNewAccount( const QString &type )
106{ 106{
107 if ( type.compare( i18n("IMAP") ) == 0 ) 107 if ( type.compare( i18n("IMAP") ) == 0 )
108 { 108 {
109 IMAPaccount *account = new IMAPaccount(); 109 IMAPaccount *account = new IMAPaccount();
110 IMAPconfig imap( account, this, 0, true ); 110 IMAPconfig imap( account, this, 0, true );
111 111
112#ifndef DESKTOP_VERSION 112#ifndef DESKTOP_VERSION
113 imap.showMaximized(); 113 imap.showMaximized();
114#endif 114#endif
115 if ( QDialog::Accepted == imap.exec() ) 115 if ( QDialog::Accepted == imap.exec() )
116 { 116 {
117 settings->addAccount( account ); 117 settings->addAccount( account );
118 account->save(); 118 account->save();
119 slotFillLists(); 119 slotFillLists();
120 } 120 }
121 else 121 else
122 { 122 {
123 account->remove(); 123 account->remove();
124 } 124 }
125 } 125 }
126 else if ( type.compare( i18n("POP3") ) == 0 ) 126 else if ( type.compare( i18n("POP3") ) == 0 )
127 { 127 {
128 POP3account *account = new POP3account(); 128 POP3account *account = new POP3account();
129 POP3config pop3( account, this, 0, true, WStyle_ContextHelp ); 129 POP3config pop3( account, this, 0, true, WStyle_ContextHelp );
130 if ( QDialog::Accepted == KApplication::execDialog( &pop3 ) ) 130 if ( QDialog::Accepted == KApplication::execDialog( &pop3 ) )
131 { 131 {
132 settings->addAccount( account ); 132 settings->addAccount( account );
133 account->save(); 133 account->save();
134 slotFillLists(); 134 slotFillLists();
135 } 135 }
136 else 136 else
137 { 137 {
138 account->remove(); 138 account->remove();
139 } 139 }
140 } 140 }
141 else if ( type.compare( i18n("SMTP") ) == 0 ) 141 else if ( type.compare( i18n("SMTP") ) == 0 )
142 { 142 {
143 SMTPaccount *account = new SMTPaccount(); 143 SMTPaccount *account = new SMTPaccount();
144 SMTPconfig smtp( account, this, 0, true, WStyle_ContextHelp ); 144 SMTPconfig smtp( account, this, 0, true, WStyle_ContextHelp );
145 if ( QDialog::Accepted == KApplication::execDialog( &smtp ) ) 145 if ( QDialog::Accepted == KApplication::execDialog( &smtp ) )
146 { 146 {
147 settings->addAccount( account ); 147 settings->addAccount( account );
148 account->save(); 148 account->save();
149 slotFillLists(); 149 slotFillLists();
150 150
151 } 151 }
152 else 152 else
153 { 153 {
154 account->remove(); 154 account->remove();
155 } 155 }
156 } 156 }
157 else if ( type.compare( i18n("NNTP") ) == 0 ) 157 else if ( type.compare( i18n("NNTP") ) == 0 )
158 { 158 {
159 NNTPaccount *account = new NNTPaccount(); 159 NNTPaccount *account = new NNTPaccount();
160 NNTPconfig nntp( account, this, 0, true, WStyle_ContextHelp ); 160 NNTPconfig nntp( account, this, 0, true, WStyle_ContextHelp );
161 if ( QDialog::Accepted == KApplication::execDialog( &nntp ) ) 161 if ( QDialog::Accepted == KApplication::execDialog( &nntp ) )
162 { 162 {
163 settings->addAccount( account ); 163 settings->addAccount( account );
164 account->save(); 164 account->save();
165 slotFillLists(); 165 slotFillLists();
166 } 166 }
167 else 167 else
168 { 168 {
169 account->remove(); 169 account->remove();
170 } 170 }
171 } 171 }
172} 172}
173 173
174void EditAccounts::slotEditAccount( Account *account ) 174void EditAccounts::slotEditAccount( Account *account )
175{ 175{
176 if ( account->getType() == MAILLIB::A_IMAP ) 176 if ( account->getType() == MAILLIB::A_IMAP )
177 { 177 {
178 IMAPaccount *imapAcc = static_cast<IMAPaccount *>(account); 178 IMAPaccount *imapAcc = static_cast<IMAPaccount *>(account);
179 IMAPconfig imap( imapAcc, this, 0, true, WStyle_ContextHelp ); 179 IMAPconfig imap( imapAcc, this, 0, true, WStyle_ContextHelp );
180 if ( QDialog::Accepted == KApplication::execDialog( &imap ) ) 180 if ( QDialog::Accepted == KApplication::execDialog( &imap ) )
181 { 181 {
182 slotFillLists(); 182 slotFillLists();
183 } 183 }
184 } 184 }
185 else if ( account->getType()==MAILLIB::A_POP3 ) 185 else if ( account->getType()==MAILLIB::A_POP3 )
186 { 186 {
187 POP3account *pop3Acc = static_cast<POP3account *>(account); 187 POP3account *pop3Acc = static_cast<POP3account *>(account);
188 POP3config pop3( pop3Acc, this, 0, true, WStyle_ContextHelp ); 188 POP3config pop3( pop3Acc, this, 0, true, WStyle_ContextHelp );
189 if ( QDialog::Accepted == KApplication::execDialog( &pop3 ) ) 189 if ( QDialog::Accepted == KApplication::execDialog( &pop3 ) )
190 { 190 {
191 slotFillLists(); 191 slotFillLists();
192 } 192 }
193 } 193 }
194 else if ( account->getType()==MAILLIB::A_SMTP ) 194 else if ( account->getType()==MAILLIB::A_SMTP )
195 { 195 {
196 SMTPaccount *smtpAcc = static_cast<SMTPaccount *>(account); 196 SMTPaccount *smtpAcc = static_cast<SMTPaccount *>(account);
197 SMTPconfig smtp( smtpAcc, this, 0, true, WStyle_ContextHelp ); 197 SMTPconfig smtp( smtpAcc, this, 0, true, WStyle_ContextHelp );
198 if ( QDialog::Accepted == KApplication::execDialog( &smtp ) ) 198 if ( QDialog::Accepted == KApplication::execDialog( &smtp ) )
199 { 199 {
200 slotFillLists(); 200 slotFillLists();
201 } 201 }
202 } 202 }
203 else if ( account->getType()==MAILLIB::A_NNTP) 203 else if ( account->getType()==MAILLIB::A_NNTP)
204 { 204 {
205 NNTPaccount *nntpAcc = static_cast<NNTPaccount *>(account); 205 NNTPaccount *nntpAcc = static_cast<NNTPaccount *>(account);
206 NNTPconfig nntp( nntpAcc, this, 0, true, WStyle_ContextHelp ); 206 NNTPconfig nntp( nntpAcc, this, 0, true, WStyle_ContextHelp );
207 if ( QDialog::Accepted == KApplication::execDialog( &nntp ) ) 207 if ( QDialog::Accepted == KApplication::execDialog( &nntp ) )
208 { 208 {
209 slotFillLists(); 209 slotFillLists();
210 } 210 }
211 } 211 }
212} 212}
213 213
214void EditAccounts::slotDeleteAccount( Account *account ) 214void EditAccounts::slotDeleteAccount( Account *account )
215{ 215{
216 if ( QMessageBox::information( this, i18n( "Question" ), 216 if ( QMessageBox::information( this, i18n( "Question" ),
217 i18n( "<p>Do you really want to delete the selected Account?</p>" ), 217 i18n( "<p>Do you really want to delete the selected Account?</p>" ),
218 i18n( "Yes" ), i18n( "No" ) ) == 0 ) 218 i18n( "Yes" ), i18n( "No" ) ) == 0 )
219 { 219 {
220 settings->delAccount( account ); 220 settings->delAccount( account );
221 slotFillLists(); 221 slotFillLists();
222 } 222 }
223} 223}
224 224
225void EditAccounts::slotEditMail() 225void EditAccounts::slotEditMail()
226{ 226{
227 if ( !mailList->currentItem() ) 227 if ( !mailList->currentItem() )
228 { 228 {
229 QMessageBox::information( this, i18n( "Error" ), 229 QMessageBox::information( this, i18n( "Error" ),
230 i18n( "<p>Please select an account.</p>" ), 230 i18n( "<p>Please select an account.</p>" ),
231 i18n( "Ok" ) ); 231 i18n( "Ok" ) );
232 return; 232 return;
233 } 233 }
234 234
235 Account *a = ((AccountListItem *) mailList->currentItem())->getAccount(); 235 Account *a = ((AccountListItem *) mailList->currentItem())->getAccount();
236 slotEditAccount( a ); 236 slotEditAccount( a );
237} 237}
238 238
239void EditAccounts::slotDeleteMail() 239void EditAccounts::slotDeleteMail()
240{ 240{
241 if ( !mailList->currentItem() ) 241 if ( !mailList->currentItem() )
242 { 242 {
243 QMessageBox::information( this, i18n( "Error" ), 243 QMessageBox::information( this, i18n( "Error" ),
244 i18n( "<p>Please select an account.</p>" ), 244 i18n( "<p>Please select an account.</p>" ),
245 i18n( "Ok" ) ); 245 i18n( "Ok" ) );
246 return; 246 return;
247 } 247 }
248 248
249 Account *a = ((AccountListItem *) mailList->currentItem())->getAccount(); 249 Account *a = ((AccountListItem *) mailList->currentItem())->getAccount();
250 slotDeleteAccount( a ); 250 slotDeleteAccount( a );
251} 251}
252 252
253void EditAccounts::slotNewNews() 253void EditAccounts::slotNewNews()
254{ 254{
255 slotNewAccount( "NNTP" ); 255 slotNewAccount( "NNTP" );
256} 256}
257 257
258void EditAccounts::slotEditNews() 258void EditAccounts::slotEditNews()
259{ 259{
260 if ( !newsList->currentItem() ) 260 if ( !newsList->currentItem() )
261 { 261 {
262 QMessageBox::information( this, i18n( "Error" ), 262 QMessageBox::information( this, i18n( "Error" ),
263 i18n( "<p>Please select an account.</p>" ), 263 i18n( "<p>Please select an account.</p>" ),
264 i18n( "Ok" ) ); 264 i18n( "Ok" ) );
265 return; 265 return;
266 } 266 }
267 267
268 Account *a = ((AccountListItem *) newsList->currentItem())->getAccount(); 268 Account *a = ((AccountListItem *) newsList->currentItem())->getAccount();
269 slotEditAccount( a ); 269 slotEditAccount( a );
270} 270}
271 271
272void EditAccounts::slotDeleteNews() 272void EditAccounts::slotDeleteNews()
273{ 273{
274 if ( !newsList->currentItem() ) 274 if ( !newsList->currentItem() )
275 { 275 {
276 QMessageBox::information( this, i18n( "Error" ), 276 QMessageBox::information( this, i18n( "Error" ),
277 i18n( "<p>Please select an account.</p>" ), 277 i18n( "<p>Please select an account.</p>" ),
278 i18n( "Ok" ) ); 278 i18n( "Ok" ) );
279 return; 279 return;
280 } 280 }
281 281
282 Account *a = ((AccountListItem *) newsList->currentItem())->getAccount(); 282 Account *a = ((AccountListItem *) newsList->currentItem())->getAccount();
283 slotDeleteAccount( a ); 283 slotDeleteAccount( a );
284} 284}
285 285
286void EditAccounts::slotAdjustColumns() 286void EditAccounts::slotAdjustColumns()
287{ 287{
288 int currPage = configTab->currentPageIndex(); 288 int currPage = configTab->currentPageIndex();
289 289
290 configTab->showPage( mailTab ); 290 configTab->showPage( mailTab );
291 mailList->setColumnWidth( 0, mailList->visibleWidth() - 50 ); 291 mailList->setColumnWidth( 0, mailList->visibleWidth() - 50 );
292 mailList->setColumnWidth( 1, 50 ); 292 mailList->setColumnWidth( 1, 50 );
293 293
294 configTab->showPage( newsTab ); 294 configTab->showPage( newsTab );
295 newsList->setColumnWidth( 0, newsList->visibleWidth() ); 295 newsList->setColumnWidth( 0, newsList->visibleWidth() );
296 296
297 configTab->setCurrentPage( currPage ); 297 configTab->setCurrentPage( currPage );
298} 298}
299 299
300void EditAccounts::accept() 300void EditAccounts::accept()
301{ 301{
302 settings->saveAccounts(); 302 settings->saveAccounts();
303 303
304 QDialog::accept(); 304 QDialog::accept();
305} 305}
306 306
307/** 307/**
308 * SelectMailType 308 * SelectMailType
309 */ 309 */
310 310
311SelectMailType::SelectMailType( QString *selection, QWidget *parent, const char *name, bool modal, WFlags flags ) 311SelectMailType::SelectMailType( QString *selection, QWidget *parent, const char *name, bool modal, Qt::WFlags flags )
312 : SelectMailTypeUI( parent, name, modal, flags ) 312 : SelectMailTypeUI( parent, name, modal, flags )
313{ 313{
314 selected = selection; 314 selected = selection;
315 selected->replace( 0, selected->length(), typeBox->currentText() ); 315 selected->replace( 0, selected->length(), typeBox->currentText() );
316 connect( typeBox, SIGNAL( activated(const QString&) ), SLOT( slotSelection(const QString&) ) ); 316 connect( typeBox, SIGNAL( activated(const QString&) ), SLOT( slotSelection(const QString&) ) );
317} 317}
318 318
319void SelectMailType::slotSelection( const QString &sel ) 319void SelectMailType::slotSelection( const QString &sel )
320{ 320{
321 selected->replace( 0, selected->length(), sel ); 321 selected->replace( 0, selected->length(), sel );
322} 322}
323 323
324/** 324/**
325 * IMAPconfig 325 * IMAPconfig
326 */ 326 */
327 327
328IMAPconfig::IMAPconfig( IMAPaccount *account, QWidget *parent, const char *name, bool modal, WFlags flags ) 328IMAPconfig::IMAPconfig( IMAPaccount *account, QWidget *parent, const char *name, bool modal, Qt::WFlags flags )
329 : IMAPconfigUI( parent, name, modal, flags ) 329 : IMAPconfigUI( parent, name, modal, flags )
330{ 330{
331 data = account; 331 data = account;
332 332
333 //fillValues(); 333 //fillValues();
334 334
335 connect( ComboBox1, SIGNAL( activated(int) ), SLOT( slotConnectionToggle(int) ) ); 335 connect( ComboBox1, SIGNAL( activated(int) ), SLOT( slotConnectionToggle(int) ) );
336 ComboBox1->insertItem( "Only if available", 0 ); 336 ComboBox1->insertItem( "Only if available", 0 );
337 ComboBox1->insertItem( "Always, Negotiated", 1 ); 337 ComboBox1->insertItem( "Always, Negotiated", 1 );
338 ComboBox1->insertItem( "Connect on secure port", 2 ); 338 ComboBox1->insertItem( "Connect on secure port", 2 );
339 ComboBox1->insertItem( "Run command instead", 3 ); 339 ComboBox1->insertItem( "Run command instead", 3 );
340 CommandEdit->hide(); 340 CommandEdit->hide();
341 fillValues(); 341 fillValues();
342 // ComboBox1->setCurrentItem( data->ConnectionType() ); 342 // ComboBox1->setCurrentItem( data->ConnectionType() );
343} 343}
344 344
345void IMAPconfig::slotConnectionToggle( int index ) 345void IMAPconfig::slotConnectionToggle( int index )
346{ 346{
347 if ( index == 2 ) 347 if ( index == 2 )
348 { 348 {
349 portLine->setText( IMAP_SSL_PORT ); 349 portLine->setText( IMAP_SSL_PORT );
350 CommandEdit->hide(); 350 CommandEdit->hide();
351 } 351 }
352 else if ( index == 3 ) 352 else if ( index == 3 )
353 { 353 {
354 portLine->setText( IMAP_PORT ); 354 portLine->setText( IMAP_PORT );
355 CommandEdit->show(); 355 CommandEdit->show();
356 } 356 }
357 else 357 else
358 { 358 {
359 portLine->setText( IMAP_PORT ); 359 portLine->setText( IMAP_PORT );
360 CommandEdit->hide(); 360 CommandEdit->hide();
361 } 361 }
362} 362}
363 363
364void IMAPconfig::fillValues() 364void IMAPconfig::fillValues()
365{ 365{
366 accountLine->setText( data->getAccountName() ); 366 accountLine->setText( data->getAccountName() );
367 serverLine->setText( data->getServer() ); 367 serverLine->setText( data->getServer() );
368 portLine->setText( data->getPort() ); 368 portLine->setText( data->getPort() );
369 ComboBox1->setCurrentItem( data->ConnectionType() ); 369 ComboBox1->setCurrentItem( data->ConnectionType() );
370 userLine->setText( data->getUser() ); 370 userLine->setText( data->getUser() );
371 passLine->setText( data->getPassword() ); 371 passLine->setText( data->getPassword() );
372 prefixLine->setText(data->getPrefix()); 372 prefixLine->setText(data->getPrefix());
373 localFolder->setText( data->getLocalFolder() ); 373 localFolder->setText( data->getLocalFolder() );
374 int max = data->getMaxMailSize() ; 374 int max = data->getMaxMailSize() ;
375 if ( max ) { 375 if ( max ) {
376 CheckBoxDown->setChecked( true ); 376 CheckBoxDown->setChecked( true );
377 SpinBoxDown->setValue ( max ); 377 SpinBoxDown->setValue ( max );
378 } else { 378 } else {
379 CheckBoxDown->setChecked( false ); 379 CheckBoxDown->setChecked( false );
380 SpinBoxDown->setValue ( 5 ); 380 SpinBoxDown->setValue ( 5 );
381 } 381 }
382 CheckBoxLeaveOn->setChecked( data->getLeaveOnServer() ); 382 CheckBoxLeaveOn->setChecked( data->getLeaveOnServer() );
383} 383}
384 384
385void IMAPconfig::accept() 385void IMAPconfig::accept()
386{ 386{
387 if ( localFolder->text().contains("/") ||localFolder->text().contains("\\") ) { 387 if ( localFolder->text().contains("/") ||localFolder->text().contains("\\") ) {
388 QMessageBox::information( this, i18n( "Error" ), 388 QMessageBox::information( this, i18n( "Error" ),
389 i18n( "No paths allowed in\nlocal folder settings.\nPlease specify a folder\nname or leave empty\nto create local folder\nwith account name\nautomatically." ), 389 i18n( "No paths allowed in\nlocal folder settings.\nPlease specify a folder\nname or leave empty\nto create local folder\nwith account name\nautomatically." ),
390 i18n( "Ok" ) ); 390 i18n( "Ok" ) );
391 return; 391 return;
392 } 392 }
393 data->setAccountName( accountLine->text() ); 393 data->setAccountName( accountLine->text() );
394 data->setServer( serverLine->text() ); 394 data->setServer( serverLine->text() );
395 data->setPort( portLine->text() ); 395 data->setPort( portLine->text() );
396 data->setConnectionType( ComboBox1->currentItem() ); 396 data->setConnectionType( ComboBox1->currentItem() );
397 data->setUser( userLine->text() ); 397 data->setUser( userLine->text() );
398 data->setPassword( passLine->text() ); 398 data->setPassword( passLine->text() );
399 data->setPrefix(prefixLine->text()); 399 data->setPrefix(prefixLine->text());
400 data->setLocalFolder( localFolder->text() ); 400 data->setLocalFolder( localFolder->text() );
401 data->setMaxMailSize( CheckBoxDown->isChecked()?SpinBoxDown->value():0 ) ; 401 data->setMaxMailSize( CheckBoxDown->isChecked()?SpinBoxDown->value():0 ) ;
402 data->setLeaveOnServer( CheckBoxLeaveOn->isChecked() ); 402 data->setLeaveOnServer( CheckBoxLeaveOn->isChecked() );
403 403
404 QDialog::accept(); 404 QDialog::accept();
405} 405}
406 406
407/** 407/**
408 * POP3config 408 * POP3config
409 */ 409 */
410 410
411POP3config::POP3config( POP3account *account, QWidget *parent, const char *name, bool modal, WFlags flags ) 411POP3config::POP3config( POP3account *account, QWidget *parent, const char *name, bool modal, Qt::WFlags flags )
412 : POP3configUI( parent, name, modal, flags ) 412 : POP3configUI( parent, name, modal, flags )
413{ 413{
414 data = account; 414 data = account;
415 //fillValues(); 415 //fillValues();
416 416
417 connect( ComboBox1, SIGNAL( activated(int) ), SLOT( slotConnectionToggle(int) ) ); 417 connect( ComboBox1, SIGNAL( activated(int) ), SLOT( slotConnectionToggle(int) ) );
418 ComboBox1->insertItem( "Only if available", 0 ); 418 ComboBox1->insertItem( "Only if available", 0 );
419 ComboBox1->insertItem( "Always, Negotiated", 1 ); 419 ComboBox1->insertItem( "Always, Negotiated", 1 );
420 ComboBox1->insertItem( "Connect on secure port", 2 ); 420 ComboBox1->insertItem( "Connect on secure port", 2 );
421 ComboBox1->insertItem( "Run command instead", 3 ); 421 ComboBox1->insertItem( "Run command instead", 3 );
422 CommandEdit->hide(); 422 CommandEdit->hide();
423 fillValues(); 423 fillValues();
424 //ComboBox1->setCurrentItem( data->ConnectionType() ); 424 //ComboBox1->setCurrentItem( data->ConnectionType() );
425} 425}
426 426
427void POP3config::slotConnectionToggle( int index ) 427void POP3config::slotConnectionToggle( int index )
428{ 428{
429 // 2 is ssl connection 429 // 2 is ssl connection
430 if ( index == 2 ) 430 if ( index == 2 )
431 { 431 {
432 portLine->setText( POP3_SSL_PORT ); 432 portLine->setText( POP3_SSL_PORT );
433 CommandEdit->hide(); 433 CommandEdit->hide();
434 } 434 }
435 else if ( index == 3 ) 435 else if ( index == 3 )
436 { 436 {
437 portLine->setText( POP3_PORT ); 437 portLine->setText( POP3_PORT );
438 CommandEdit->show(); 438 CommandEdit->show();
439 } 439 }
440 else 440 else
441 { 441 {
442 portLine->setText( POP3_PORT ); 442 portLine->setText( POP3_PORT );
443 CommandEdit->hide(); 443 CommandEdit->hide();
444 } 444 }
445} 445}
446 446
447void POP3config::fillValues() 447void POP3config::fillValues()
448{ 448{
449 accountLine->setText( data->getAccountName() ); 449 accountLine->setText( data->getAccountName() );
450 serverLine->setText( data->getServer() ); 450 serverLine->setText( data->getServer() );
451 portLine->setText( data->getPort() ); 451 portLine->setText( data->getPort() );
452 ComboBox1->setCurrentItem( data->ConnectionType() ); 452 ComboBox1->setCurrentItem( data->ConnectionType() );
453 userLine->setText( data->getUser() ); 453 userLine->setText( data->getUser() );
454 passLine->setText( data->getPassword() ); 454 passLine->setText( data->getPassword() );
455 localFolder->setText( data->getLocalFolder() ); 455 localFolder->setText( data->getLocalFolder() );
456 int max = data->getMaxMailSize() ; 456 int max = data->getMaxMailSize() ;
457 if ( max ) { 457 if ( max ) {
458 CheckBoxDown->setChecked( true ); 458 CheckBoxDown->setChecked( true );
459 SpinBoxDown->setValue ( max ); 459 SpinBoxDown->setValue ( max );
460 } else { 460 } else {
461 CheckBoxDown->setChecked( false ); 461 CheckBoxDown->setChecked( false );
462 SpinBoxDown->setValue ( 5 ); 462 SpinBoxDown->setValue ( 5 );
463 } 463 }
464 CheckBoxLeaveOn->setChecked( data->getLeaveOnServer() ); 464 CheckBoxLeaveOn->setChecked( data->getLeaveOnServer() );
465} 465}
466 466
467void POP3config::accept() 467void POP3config::accept()
468{ 468{
469 if ( localFolder->text().contains("/") ||localFolder->text().contains("\\") ) { 469 if ( localFolder->text().contains("/") ||localFolder->text().contains("\\") ) {
470 QMessageBox::information( this, i18n( "Error" ), 470 QMessageBox::information( this, i18n( "Error" ),
471 i18n( "No paths allowed in\nlocal folder settings.\nPlease specify a folder\nname or leave empty\nto create local folder\nwith account name\nautomatically." ), 471 i18n( "No paths allowed in\nlocal folder settings.\nPlease specify a folder\nname or leave empty\nto create local folder\nwith account name\nautomatically." ),
472 i18n( "Ok" ) ); 472 i18n( "Ok" ) );
473 return; 473 return;
474 } 474 }
475 data->setAccountName( accountLine->text() ); 475 data->setAccountName( accountLine->text() );
476 data->setServer( serverLine->text() ); 476 data->setServer( serverLine->text() );
477 data->setPort( portLine->text() ); 477 data->setPort( portLine->text() );
478 data->setConnectionType( ComboBox1->currentItem() ); 478 data->setConnectionType( ComboBox1->currentItem() );
479 data->setUser( userLine->text() ); 479 data->setUser( userLine->text() );
480 data->setPassword( passLine->text() ); 480 data->setPassword( passLine->text() );
481 data->setLocalFolder( localFolder->text() ); 481 data->setLocalFolder( localFolder->text() );
482 data->setMaxMailSize( CheckBoxDown->isChecked()?SpinBoxDown->value():0 ) ; 482 data->setMaxMailSize( CheckBoxDown->isChecked()?SpinBoxDown->value():0 ) ;
483 data->setLeaveOnServer( CheckBoxLeaveOn->isChecked() ); 483 data->setLeaveOnServer( CheckBoxLeaveOn->isChecked() );
484 484
485 QDialog::accept(); 485 QDialog::accept();
486} 486}
487 487
488/** 488/**
489 * SMTPconfig 489 * SMTPconfig
490 */ 490 */
491 491
492SMTPconfig::SMTPconfig( SMTPaccount *account, QWidget *parent, const char *name, bool modal, WFlags flags ) 492SMTPconfig::SMTPconfig( SMTPaccount *account, QWidget *parent, const char *name, bool modal, Qt::WFlags flags )
493 : SMTPconfigUI( parent, name, modal, flags ) 493 : SMTPconfigUI( parent, name, modal, flags )
494{ 494{
495 data = account; 495 data = account;
496 496
497 connect( loginBox, SIGNAL( toggled(bool) ), userLine, SLOT( setEnabled(bool) ) ); 497 connect( loginBox, SIGNAL( toggled(bool) ), userLine, SLOT( setEnabled(bool) ) );
498 connect( loginBox, SIGNAL( toggled(bool) ), passLine, SLOT( setEnabled(bool) ) ); 498 connect( loginBox, SIGNAL( toggled(bool) ), passLine, SLOT( setEnabled(bool) ) );
499 499
500 // fillValues(); 500 // fillValues();
501 QIconSet icon; 501 QIcon icon;
502 //icon = SmallIcon("fileexport"); 502 //icon = SmallIcon("fileexport");
503 icon = SmallIcon("fileopen"); 503 icon = SmallIcon("fileopen");
504 SignaturButton->setText(""); 504 SignaturButton->setText("");
505 SignaturButton->setIconSet (icon ) ; 505 SignaturButton->setIconSet (icon ) ;
506 SignaturButton->setMaximumSize ( SignaturButton->sizeHint().height()+4,SignaturButton->sizeHint().height()) ; 506 SignaturButton->setMaximumSize ( SignaturButton->sizeHint().height()+4,SignaturButton->sizeHint().height()) ;
507 connect( SignaturButton, SIGNAL( clicked() ), this, SLOT( chooseSig() ) ); 507 connect( SignaturButton, SIGNAL( clicked() ), this, SLOT( chooseSig() ) );
508 connect( ComboBox1, SIGNAL( activated(int) ), SLOT( slotConnectionToggle(int) ) ); 508 connect( ComboBox1, SIGNAL( activated(int) ), SLOT( slotConnectionToggle(int) ) );
509 ComboBox1->insertItem( "No secure connection, no TLS", 0 ); 509 ComboBox1->insertItem( "No secure connection, no TLS", 0 );
510 ComboBox1->insertItem( "Only if available, try TLS", 1 ); 510 ComboBox1->insertItem( "Only if available, try TLS", 1 );
511 ComboBox1->insertItem( "Always, use TLS", 2 ); 511 ComboBox1->insertItem( "Always, use TLS", 2 );
512 ComboBox1->insertItem( "Connect on secure port (SSL)", 3 ); 512 ComboBox1->insertItem( "Connect on secure port (SSL)", 3 );
513 ComboBox1->insertItem( "Run command instead", 4 ); 513 ComboBox1->insertItem( "Run command instead", 4 );
514 CommandEdit->hide(); 514 CommandEdit->hide();
515 fillValues(); 515 fillValues();
516 //ComboBox1->setCurrentItem( data->ConnectionType() ); 516 //ComboBox1->setCurrentItem( data->ConnectionType() );
517} 517}
518void SMTPconfig::chooseSig() 518void SMTPconfig::chooseSig()
519{ 519{
520 QString lnk = KFileDialog::getOpenFileName( "", "Choose Signatur File", this ); 520 QString lnk = KFileDialog::getOpenFileName( "", "Choose Signatur File", this );
521 if ( !lnk.isEmpty() ) { 521 if ( !lnk.isEmpty() ) {
522 SignaturEdit->setText( lnk ); 522 SignaturEdit->setText( lnk );
523 } 523 }
524} 524}
525void SMTPconfig::slotConnectionToggle( int index ) 525void SMTPconfig::slotConnectionToggle( int index )
526{ 526{
527 // 3 is ssl connection 527 // 3 is ssl connection
528 if ( index == 3 ) 528 if ( index == 3 )
529 { 529 {
530 portLine->setText( SMTP_SSL_PORT ); 530 portLine->setText( SMTP_SSL_PORT );
531 CommandEdit->hide(); 531 CommandEdit->hide();
532 } 532 }
533 else if ( index == 4 ) 533 else if ( index == 4 )
534 { 534 {
535 portLine->setText( SMTP_PORT ); 535 portLine->setText( SMTP_PORT );
536 CommandEdit->show(); 536 CommandEdit->show();
537 } 537 }
538 else 538 else
539 { 539 {
540 portLine->setText( SMTP_PORT ); 540 portLine->setText( SMTP_PORT );
541 CommandEdit->hide(); 541 CommandEdit->hide();
542 } 542 }
543} 543}
544 544
545void SMTPconfig::fillValues() 545void SMTPconfig::fillValues()
546{ 546{
547 accountLine->setText( data->getAccountName() ); 547 accountLine->setText( data->getAccountName() );
548 serverLine->setText( data->getServer() ); 548 serverLine->setText( data->getServer() );
549 portLine->setText( data->getPort() ); 549 portLine->setText( data->getPort() );
550 ComboBox1->setCurrentItem( data->ConnectionType() ); 550 ComboBox1->setCurrentItem( data->ConnectionType() );
551 loginBox->setChecked( data->getLogin() ); 551 loginBox->setChecked( data->getLogin() );
552 userLine->setText( data->getUser() ); 552 userLine->setText( data->getUser() );
553 passLine->setText( data->getPassword() ); 553 passLine->setText( data->getPassword() );
554 SignaturEdit->setText( data->getSigFile() ); 554 SignaturEdit->setText( data->getSigFile() );
555} 555}
556 556
557void SMTPconfig::accept() 557void SMTPconfig::accept()
558{ 558{
559 data->setAccountName( accountLine->text() ); 559 data->setAccountName( accountLine->text() );
560 data->setServer( serverLine->text() ); 560 data->setServer( serverLine->text() );
561 data->setPort( portLine->text() ); 561 data->setPort( portLine->text() );
562 data->setConnectionType( ComboBox1->currentItem() ); 562 data->setConnectionType( ComboBox1->currentItem() );
563 data->setLogin( loginBox->isChecked() ); 563 data->setLogin( loginBox->isChecked() );
564 data->setUser( userLine->text() ); 564 data->setUser( userLine->text() );
565 data->setPassword( passLine->text() ); 565 data->setPassword( passLine->text() );
566 data->setSigFile( SignaturEdit->text() ); 566 data->setSigFile( SignaturEdit->text() );
567 567
568 QDialog::accept(); 568 QDialog::accept();
569} 569}
570 570
571/** 571/**
572 * NNTPconfig 572 * NNTPconfig
573 */ 573 */
574 574
575NNTPconfig::NNTPconfig( NNTPaccount *account, QWidget *parent, const char *name, bool modal, WFlags flags ) 575NNTPconfig::NNTPconfig( NNTPaccount *account, QWidget *parent, const char *name, bool modal, Qt::WFlags flags )
576 : NNTPconfigUI( parent, name, modal, flags ) 576 : NNTPconfigUI( parent, name, modal, flags )
577{ 577{
578 data = account; 578 data = account;
579 579
580 connect( loginBox, SIGNAL( toggled(bool) ), userLine, SLOT( setEnabled(bool) ) ); 580 connect( loginBox, SIGNAL( toggled(bool) ), userLine, SLOT( setEnabled(bool) ) );
581 connect( loginBox, SIGNAL( toggled(bool) ), passLine, SLOT( setEnabled(bool) ) ); 581 connect( loginBox, SIGNAL( toggled(bool) ), passLine, SLOT( setEnabled(bool) ) );
582 connect( GetNGButton, SIGNAL( clicked() ), this, SLOT( slotGetNG() ) ); 582 connect( GetNGButton, SIGNAL( clicked() ), this, SLOT( slotGetNG() ) );
583 connect( ShowSubcribed, SIGNAL( clicked() ), this, SLOT( slotShowSub() ) ); 583 connect( ShowSubcribed, SIGNAL( clicked() ), this, SLOT( slotShowSub() ) );
584 connect( FilterButton, SIGNAL( clicked() ), this, SLOT( slotShowFilter() ) ); 584 connect( FilterButton, SIGNAL( clicked() ), this, SLOT( slotShowFilter() ) );
585 fillValues(); 585 fillValues();
586 586
587 connect( sslBox, SIGNAL( toggled(bool) ), SLOT( slotSSL(bool) ) ); 587 connect( sslBox, SIGNAL( toggled(bool) ), SLOT( slotSSL(bool) ) );
588} 588}
589 589
590void NNTPconfig::slotShowSub() 590void NNTPconfig::slotShowSub()
591{ 591{
592 save(); 592 save();
593 data->save(); 593 data->save();
594 ListViewGroups->clear(); 594 ListViewGroups->clear();
595 for ( QStringList::Iterator it = subscribedGroups.begin(); it != subscribedGroups.end(); ++it ) { 595 for ( QStringList::Iterator it = subscribedGroups.begin(); it != subscribedGroups.end(); ++it ) {
596 QCheckListItem *item; 596 Q3CheckListItem *item;
597 item = new QCheckListItem( ListViewGroups, (*it), QCheckListItem::CheckBox ); 597 item = new Q3CheckListItem( ListViewGroups, (*it), Q3CheckListItem::CheckBox );
598 item->setOn( true ); 598 item->setOn( true );
599 } 599 }
600 topLevelWidget()->setCaption( i18n("%1 groups subscribed").arg( subscribedGroups.count())); 600 topLevelWidget()->setCaption( i18n("%1 groups subscribed").arg( subscribedGroups.count()));
601} 601}
602void NNTPconfig::slotShowFilter() 602void NNTPconfig::slotShowFilter()
603{ 603{
604 save(); 604 save();
605 data->save(); 605 data->save();
606 ListViewGroups->clear(); 606 ListViewGroups->clear();
607 int count = 0; 607 int count = 0;
608 for ( QStringList::Iterator it = allGroups.begin(); it != allGroups.end(); ++it ) { 608 for ( QStringList::Iterator it = allGroups.begin(); it != allGroups.end(); ++it ) {
609 QCheckListItem *item; 609 Q3CheckListItem *item;
610 if ( GroupFilter->text().isEmpty() || (*it).find( GroupFilter->text() ) >= 0 ) { 610 if ( GroupFilter->text().isEmpty() || (*it).find( GroupFilter->text() ) >= 0 ) {
611 item = new QCheckListItem( ListViewGroups, (*it), QCheckListItem::CheckBox ); 611 item = new Q3CheckListItem( ListViewGroups, (*it), Q3CheckListItem::CheckBox );
612 ++count; 612 ++count;
613 if ( subscribedGroups.contains( (*it) ) >= 1 ) { 613 if ( subscribedGroups.contains( (*it) ) >= 1 ) {
614 item->setOn( true ); 614 item->setOn( true );
615 } 615 }
616 } 616 }
617 } 617 }
618 topLevelWidget()->setCaption( i18n("Filter found %1 groups").arg( count)); 618 topLevelWidget()->setCaption( i18n("Filter found %1 groups").arg( count));
619} 619}
620void NNTPconfig::slotGetNG() { 620void NNTPconfig::slotGetNG() {
621 save(); 621 save();
622 data->save(); 622 data->save();
623 topLevelWidget()->setCaption( i18n("Fetching group list...")); 623 topLevelWidget()->setCaption( i18n("Fetching group list..."));
624 qApp->processEvents(); 624 qApp->processEvents();
625 NNTPwrapper* tmp = new NNTPwrapper( data ); 625 NNTPwrapper* tmp = new NNTPwrapper( data );
626 allGroups = tmp->listAllNewsgroups(); 626 allGroups = tmp->listAllNewsgroups();
627 topLevelWidget()->setCaption( i18n("Downloaded %1 group names").arg( allGroups.count())); 627 topLevelWidget()->setCaption( i18n("Downloaded %1 group names").arg( allGroups.count()));
628 628
629 ListViewGroups->clear(); 629 ListViewGroups->clear();
630 630
631 for ( QStringList::Iterator it = allGroups.begin(); it != allGroups.end(); ++it ) { 631 for ( QStringList::Iterator it = allGroups.begin(); it != allGroups.end(); ++it ) {
632 QCheckListItem *item; 632 Q3CheckListItem *item;
633 item = new QCheckListItem( ListViewGroups, (*it), QCheckListItem::CheckBox ); 633 item = new Q3CheckListItem( ListViewGroups, (*it), Q3CheckListItem::CheckBox );
634 if ( subscribedGroups.contains( (*it) ) >= 1 ) { 634 if ( subscribedGroups.contains( (*it) ) >= 1 ) {
635 item->setOn( true ); 635 item->setOn( true );
636 636
637 } 637 }
638 } 638 }
639 delete tmp; 639 delete tmp;
640} 640}
641 641
642void NNTPconfig::slotSSL( bool enabled ) 642void NNTPconfig::slotSSL( bool enabled )
643{ 643{
644 if ( enabled ) 644 if ( enabled )
645 { 645 {
646 portLine->setText( NNTP_SSL_PORT ); 646 portLine->setText( NNTP_SSL_PORT );
647 } 647 }
648 else 648 else
649 { 649 {
650 portLine->setText( NNTP_PORT ); 650 portLine->setText( NNTP_PORT );
651 } 651 }
652} 652}
653 653
654void NNTPconfig::fillValues() 654void NNTPconfig::fillValues()
655{ 655{
656 accountLine->setText( data->getAccountName() ); 656 accountLine->setText( data->getAccountName() );
657 serverLine->setText( data->getServer() ); 657 serverLine->setText( data->getServer() );
658 portLine->setText( data->getPort() ); 658 portLine->setText( data->getPort() );
659 sslBox->setChecked( data->getSSL() ); 659 sslBox->setChecked( data->getSSL() );
660 loginBox->setChecked( data->getLogin() ); 660 loginBox->setChecked( data->getLogin() );
661 userLine->setText( data->getUser() ); 661 userLine->setText( data->getUser() );
662 passLine->setText( data->getPassword() ); 662 passLine->setText( data->getPassword() );
663 subscribedGroups = data->getGroups(); 663 subscribedGroups = data->getGroups();
664 /* don't forget that - you will overwrite values if user clicks cancel! */ 664 /* don't forget that - you will overwrite values if user clicks cancel! */
665 for ( QStringList::Iterator it = subscribedGroups.begin(); it != subscribedGroups.end(); ++it ) { 665 for ( QStringList::Iterator it = subscribedGroups.begin(); it != subscribedGroups.end(); ++it ) {
666 QCheckListItem *item; 666 Q3CheckListItem *item;
667 item = new QCheckListItem( ListViewGroups, (*it), QCheckListItem::CheckBox ); 667 item = new Q3CheckListItem( ListViewGroups, (*it), Q3CheckListItem::CheckBox );
668 item->setOn( true ); 668 item->setOn( true );
669 } 669 }
670} 670}
671 671
672void NNTPconfig::save() 672void NNTPconfig::save()
673{ 673{
674 data->setAccountName( accountLine->text() ); 674 data->setAccountName( accountLine->text() );
675 data->setServer( serverLine->text() ); 675 data->setServer( serverLine->text() );
676 data->setPort( portLine->text() ); 676 data->setPort( portLine->text() );
677 data->setSSL( sslBox->isChecked() ); 677 data->setSSL( sslBox->isChecked() );
678 data->setLogin( loginBox->isChecked() ); 678 data->setLogin( loginBox->isChecked() );
679 data->setUser( userLine->text() ); 679 data->setUser( userLine->text() );
680 data->setPassword( passLine->text() ); 680 data->setPassword( passLine->text() );
681 681
682 QListViewItemIterator list_it( ListViewGroups ); 682 Q3ListViewItemIterator list_it( ListViewGroups );
683 683
684 for ( ; list_it.current(); ++list_it ) { 684 for ( ; list_it.current(); ++list_it ) {
685 685
686 if ( ( (QCheckListItem*)list_it.current() )->isOn() ) { 686 if ( ( (Q3CheckListItem*)list_it.current() )->isOn() ) {
687 if ( subscribedGroups.contains( list_it.current()->text(0) ) < 1 ) 687 if ( subscribedGroups.contains( list_it.current()->text(0) ) < 1 )
688 subscribedGroups.append( list_it.current()->text(0) ); 688 subscribedGroups.append( list_it.current()->text(0) );
689 } else { 689 } else {
690 if ( subscribedGroups.contains( list_it.current()->text(0) ) >= 1 ) 690 if ( subscribedGroups.contains( list_it.current()->text(0) ) >= 1 )
691 subscribedGroups.remove( list_it.current()->text(0) ); 691 subscribedGroups.remove( list_it.current()->text(0) );
692 } 692 }
693 693
694 } 694 }
695 data->setGroups( subscribedGroups ); 695 data->setGroups( subscribedGroups );
696} 696}
697 697
698void NNTPconfig::accept() 698void NNTPconfig::accept()
699{ 699{
700 save(); 700 save();
701 QDialog::accept(); 701 QDialog::accept();
702} 702}
703 703
diff --git a/kmicromail/editaccounts.h b/kmicromail/editaccounts.h
index 465780c..3d01d23 100644
--- a/kmicromail/editaccounts.h
+++ b/kmicromail/editaccounts.h
@@ -1,157 +1,157 @@
1#ifndef EDITACCOUNTS_H 1#ifndef EDITACCOUNTS_H
2#define EDITACCOUNTS_H 2#define EDITACCOUNTS_H
3 3
4#include <qstring.h> 4#include <qstring.h>
5#include <qlistview.h> 5#include <q3listview.h>
6 6
7#include "editaccountsui.h" 7#include "editaccountsui.h"
8#include "selectmailtypeui.h" 8#include "selectmailtypeui.h"
9#include "imapconfigui.h" 9#include "imapconfigui.h"
10#include "pop3configui.h" 10#include "pop3configui.h"
11#include "smtpconfigui.h" 11#include "smtpconfigui.h"
12#include "nntpconfigui.h" 12#include "nntpconfigui.h"
13 13
14#include <libetpan/clist.h> 14#include <libetpan/clist.h>
15#include <libmailwrapper/settings.h> 15#include <libmailwrapper/settings.h>
16 16
17 17
18class AccountListItem : public QListViewItem 18class AccountListItem : public Q3ListViewItem
19{ 19{
20 20
21public: 21public:
22 AccountListItem( QListView *parent, Account *a); 22 AccountListItem( Q3ListView *parent, Account *a);
23 Account *getAccount() { return account; } 23 Account *getAccount() { return account; }
24 24
25private: 25private:
26 Account *account; 26 Account *account;
27 27
28}; 28};
29 29
30class EditAccounts : public EditAccountsUI 30class EditAccounts : public EditAccountsUI
31{ 31{
32 Q_OBJECT 32 Q_OBJECT
33 33
34public: 34public:
35 EditAccounts( Settings *s, QWidget *parent = 0, const char *name = 0, bool modal = 0, WFlags flags = 0 ); 35 EditAccounts( Settings *s, QWidget *parent = 0, const char *name = 0, bool modal = 0, Qt::WFlags flags = 0 );
36 36
37public slots: 37public slots:
38 void slotNewAccount( const QString &type ); 38 void slotNewAccount( const QString &type );
39 void slotEditAccount( Account *account ); 39 void slotEditAccount( Account *account );
40 void slotDeleteAccount( Account * account ); 40 void slotDeleteAccount( Account * account );
41 void slotAdjustColumns(); 41 void slotAdjustColumns();
42 42
43protected slots: 43protected slots:
44 void slotFillLists(); 44 void slotFillLists();
45 void slotNewMail(); 45 void slotNewMail();
46 void slotEditMail(); 46 void slotEditMail();
47 void slotDeleteMail(); 47 void slotDeleteMail();
48 void slotNewNews(); 48 void slotNewNews();
49 void slotEditNews(); 49 void slotEditNews();
50 void slotDeleteNews(); 50 void slotDeleteNews();
51 void accept(); 51 void accept();
52 52
53private: 53private:
54 Settings *settings; 54 Settings *settings;
55 55
56}; 56};
57 57
58class SelectMailType : public SelectMailTypeUI 58class SelectMailType : public SelectMailTypeUI
59{ 59{
60 Q_OBJECT 60 Q_OBJECT
61 61
62public: 62public:
63 SelectMailType( QString *selection = 0, QWidget *parent = 0, const char *name = 0, bool modal = 0, WFlags flags = 0 ); 63 SelectMailType( QString *selection = 0, QWidget *parent = 0, const char *name = 0, bool modal = 0, Qt::WFlags flags = 0 );
64 64
65private slots: 65private slots:
66 void slotSelection( const QString &sel ); 66 void slotSelection( const QString &sel );
67 67
68private: 68private:
69 QString *selected; 69 QString *selected;
70 70
71}; 71};
72 72
73class IMAPconfig : public IMAPconfigUI 73class IMAPconfig : public IMAPconfigUI
74{ 74{
75 Q_OBJECT 75 Q_OBJECT
76 76
77public: 77public:
78 IMAPconfig( IMAPaccount *account, QWidget *parent = 0, const char *name = 0, bool modal = 0, WFlags flags = 0 ); 78 IMAPconfig( IMAPaccount *account, QWidget *parent = 0, const char *name = 0, bool modal = 0, Qt::WFlags flags = 0 );
79 79
80public slots: 80public slots:
81 void fillValues(); 81 void fillValues();
82 82
83protected slots: 83protected slots:
84 void slotConnectionToggle( int index ); 84 void slotConnectionToggle( int index );
85 void accept(); 85 void accept();
86 86
87private: 87private:
88 IMAPaccount *data; 88 IMAPaccount *data;
89 89
90}; 90};
91 91
92class POP3config : public POP3configUI 92class POP3config : public POP3configUI
93{ 93{
94 Q_OBJECT 94 Q_OBJECT
95 95
96public: 96public:
97 POP3config( POP3account *account, QWidget *parent = 0, const char *name = 0, bool modal = 0, WFlags flags = 0 ); 97 POP3config( POP3account *account, QWidget *parent = 0, const char *name = 0, bool modal = 0, Qt::WFlags flags = 0 );
98 98
99public slots: 99public slots:
100 void fillValues(); 100 void fillValues();
101 101
102protected slots: 102protected slots:
103 void slotConnectionToggle( int index ); 103 void slotConnectionToggle( int index );
104 void accept(); 104 void accept();
105 105
106private: 106private:
107 POP3account *data; 107 POP3account *data;
108 108
109}; 109};
110 110
111class SMTPconfig : public SMTPconfigUI 111class SMTPconfig : public SMTPconfigUI
112{ 112{
113 Q_OBJECT 113 Q_OBJECT
114 114
115public: 115public:
116 SMTPconfig( SMTPaccount *account, QWidget *parent = 0, const char *name = 0, bool modal = 0, WFlags flags = 0 ); 116 SMTPconfig( SMTPaccount *account, QWidget *parent = 0, const char *name = 0, bool modal = 0, Qt::WFlags flags = 0 );
117 117
118public slots: 118public slots:
119 void fillValues(); 119 void fillValues();
120 120
121protected slots: 121protected slots:
122 void slotConnectionToggle( int index ); 122 void slotConnectionToggle( int index );
123 void accept(); 123 void accept();
124 void chooseSig(); 124 void chooseSig();
125 125
126private: 126private:
127 SMTPaccount *data; 127 SMTPaccount *data;
128 128
129}; 129};
130 130
131class NNTPconfig : public NNTPconfigUI 131class NNTPconfig : public NNTPconfigUI
132{ 132{
133 Q_OBJECT 133 Q_OBJECT
134 134
135public: 135public:
136 NNTPconfig( NNTPaccount *account, QWidget *parent = 0, const char *name = 0, bool modal = 0, WFlags flags = 0 ); 136 NNTPconfig( NNTPaccount *account, QWidget *parent = 0, const char *name = 0, bool modal = 0, Qt::WFlags flags = 0 );
137 137
138public slots: 138public slots:
139 void fillValues(); 139 void fillValues();
140 140
141protected slots: 141protected slots:
142 void slotSSL( bool enabled ); 142 void slotSSL( bool enabled );
143 void accept(); 143 void accept();
144 void slotGetNG(); 144 void slotGetNG();
145 void slotShowSub(); 145 void slotShowSub();
146 void slotShowFilter(); 146 void slotShowFilter();
147 147
148private: 148private:
149 QStringList subscribedGroups; 149 QStringList subscribedGroups;
150 QStringList allGroups; 150 QStringList allGroups;
151 void save(); 151 void save();
152 NNTPaccount *data; 152 NNTPaccount *data;
153 clist* list; 153 clist* list;
154 154
155}; 155};
156 156
157#endif 157#endif
diff --git a/kmicromail/kmicromail.pro b/kmicromail/kmicromail.pro
index 9f4d4bd..ce30bbf 100644
--- a/kmicromail/kmicromail.pro
+++ b/kmicromail/kmicromail.pro
@@ -1,78 +1,84 @@
1CONFIG += qt warn_on 1CONFIG += qt warn_on
2 TEMPLATE= app 2 TEMPLATE= app
3HEADERS = defines.h \ 3HEADERS = defines.h \
4 editaccounts.h \ 4 editaccounts.h \
5 composemail.h \ 5 composemail.h \
6 accountview.h \ 6 accountview.h \
7 accountitem.h \ 7 accountitem.h \
8 mainwindow.h \ 8 mainwindow.h \
9 viewmail.h \ 9 viewmail.h \
10 viewmailbase.h \ 10 viewmailbase.h \
11 opiemail.h \ 11 opiemail.h \
12 mailistviewitem.h \ 12 mailistviewitem.h \
13 settingsdialog.h \ 13 settingsdialog.h \
14 statuswidget.h \ 14 statuswidget.h \
15 newmaildir.h \ 15 newmaildir.h \
16 selectstore.h \ 16 selectstore.h \
17 selectsmtp.h \ 17 selectsmtp.h \
18 ./qpe/qdialog.h \ 18 ./qpe/qdialog.h \
19 nntpgroups.h \ 19 nntpgroups.h \
20 koprefs.h \ 20 koprefs.h \
21 koprefsdialog.h \ 21 koprefsdialog.h \
22 nntpgroupsdlg.h 22 nntpgroupsdlg.h
23 23
24SOURCES = main.cpp \ 24SOURCES = main.cpp \
25 opiemail.cpp \ 25 opiemail.cpp \
26 mainwindow.cpp \ 26 mainwindow.cpp \
27 accountview.cpp \ 27 accountview.cpp \
28 accountitem.cpp \ 28 accountitem.cpp \
29 composemail.cpp \ 29 composemail.cpp \
30 editaccounts.cpp \ 30 editaccounts.cpp \
31 viewmail.cpp \ 31 viewmail.cpp \
32 viewmailbase.cpp \ 32 viewmailbase.cpp \
33 mailistviewitem.cpp \ 33 mailistviewitem.cpp \
34 settingsdialog.cpp \ 34 settingsdialog.cpp \
35 statuswidget.cpp \ 35 statuswidget.cpp \
36 newmaildir.cpp \ 36 newmaildir.cpp \
37 selectstore.cpp \ 37 selectstore.cpp \
38 selectsmtp.cpp \ 38 selectsmtp.cpp \
39 nntpgroups.cpp \ 39 nntpgroups.cpp \
40 koprefs.cpp\ 40 koprefs.cpp\
41 koprefsdialog.cpp\ 41 koprefsdialog.cpp\
42 nntpgroupsdlg.cpp 42 nntpgroupsdlg.cpp
43 43
44INTERFACES = editaccountsui.ui \ 44#The following line was changed from INTERFACES to FORMS3 by qt3to4
45FORMS3 = editaccountsui.ui \
45 selectmailtypeui.ui \ 46 selectmailtypeui.ui \
46 imapconfigui.ui \ 47 imapconfigui.ui \
47 pop3configui.ui \ 48 pop3configui.ui \
48 nntpconfigui.ui \ 49 nntpconfigui.ui \
49 smtpconfigui.ui \ 50 smtpconfigui.ui \
50 composemailui.ui \ 51 composemailui.ui \
51 settingsdialogui.ui \ 52 settingsdialogui.ui \
52 statuswidgetui.ui \ 53 statuswidgetui.ui \
53 newmaildirui.ui \ 54 newmaildirui.ui \
54 selectstoreui.ui \ 55 selectstoreui.ui \
55 nntpgroupsui.ui 56 nntpgroupsui.ui
56 57
57 58
58INCLUDEPATH += ./qpe . .. ../libkdepim ../microkde ../microkde/kdecore ../libetpan/include ../microkde/kdeui 59INCLUDEPATH += ./qpe . .. ../libkdepim ../microkde ../microkde/kdecore ../libetpan/include ../microkde/kdeui
59LIBS += -L../bin -lmicromailwrapper -lmicrolibetpan -lmicrokde -lssl -lcrypto -lmicrokdepim -lmicrokabc -lpthread 60LIBS += -L../bin -lmicromailwrapper -lxmicrolibetpan -lxmicrokde -lssl -lcrypto -lxmicrokdepim -lxmicrokabc -lpthread
60 61
61DESTDIR= ../bin 62DESTDIR= ../bin
62TARGET = ompi 63TARGET = ompi
63 64
64DEFINES += DESKTOP_VERSION 65DEFINES += DESKTOP_VERSION
65unix : { 66unix : {
66OBJECTS_DIR = obj/unix 67OBJECTS_DIR = obj/unix
67MOC_DIR = moc/unix 68MOC_DIR = moc/unix
68} 69}
69win32: { 70win32: {
70DEFINES += _WIN32_ 71DEFINES += _WIN32_
71LIBS += mfc71u.lib 72LIBS += mfc71u.lib
72QMAKE_LINK += /NODEFAULTLIB:LIBC 73QMAKE_LINK += /NODEFAULTLIB:LIBC
73#QMAKE_LINK += /NODEFAULTLIB:MSVCRT 74#QMAKE_LINK += /NODEFAULTLIB:MSVCRT
74#QMAKE_LINK += /NODEFAULTLIB:uafxcw.lib 75#QMAKE_LINK += /NODEFAULTLIB:uafxcw.lib
75OBJECTS_DIR = obj/win 76OBJECTS_DIR = obj/win
76MOC_DIR = moc/win 77MOC_DIR = moc/win
77} 78}
78 79
80#The following line was inserted by qt3to4
81QT += xml qt3support
82#The following line was inserted by qt3to4
83CONFIG += uic3
84
diff --git a/kmicromail/kmicromailE.pro b/kmicromail/kmicromailE.pro
index a5a51f7..19fa398 100644
--- a/kmicromail/kmicromailE.pro
+++ b/kmicromail/kmicromailE.pro
@@ -1,72 +1,72 @@
1CONFIG += qt warn_on 1CONFIG += qt warn_on
2 TEMPLATE= app 2 TEMPLATE= app
3HEADERS = defines.h \ 3HEADERS = defines.h \
4 editaccounts.h \ 4 editaccounts.h \
5 composemail.h \ 5 composemail.h \
6 accountview.h \ 6 accountview.h \
7 accountitem.h \ 7 accountitem.h \
8 mainwindow.h \ 8 mainwindow.h \
9 viewmail.h \ 9 viewmail.h \
10 viewmailbase.h \ 10 viewmailbase.h \
11 opiemail.h \ 11 opiemail.h \
12 mailistviewitem.h \ 12 mailistviewitem.h \
13 settingsdialog.h \ 13 settingsdialog.h \
14 statuswidget.h \ 14 statuswidget.h \
15 newmaildir.h \ 15 newmaildir.h \
16 selectstore.h \ 16 selectstore.h \
17 selectsmtp.h \ 17 selectsmtp.h \
18 nntpgroups.h \ 18 nntpgroups.h \
19 koprefs.h \ 19 koprefs.h \
20 koprefsdialog.h \ 20 koprefsdialog.h \
21 nntpgroupsdlg.h 21 nntpgroupsdlg.h
22 22
23SOURCES = main.cpp \ 23SOURCES = main.cpp \
24 opiemail.cpp \ 24 opiemail.cpp \
25 mainwindow.cpp \ 25 mainwindow.cpp \
26 accountview.cpp \ 26 accountview.cpp \
27 accountitem.cpp \ 27 accountitem.cpp \
28 composemail.cpp \ 28 composemail.cpp \
29 editaccounts.cpp \ 29 editaccounts.cpp \
30 viewmail.cpp \ 30 viewmail.cpp \
31 viewmailbase.cpp \ 31 viewmailbase.cpp \
32 mailistviewitem.cpp \ 32 mailistviewitem.cpp \
33 settingsdialog.cpp \ 33 settingsdialog.cpp \
34 statuswidget.cpp \ 34 statuswidget.cpp \
35 newmaildir.cpp \ 35 newmaildir.cpp \
36 selectstore.cpp \ 36 selectstore.cpp \
37 selectsmtp.cpp \ 37 selectsmtp.cpp \
38 nntpgroups.cpp \ 38 nntpgroups.cpp \
39 koprefs.cpp\ 39 koprefs.cpp\
40 koprefsdialog.cpp\ 40 koprefsdialog.cpp\
41 nntpgroupsdlg.cpp 41 nntpgroupsdlg.cpp
42 42
43INTERFACES = editaccountsui.ui \ 43INTERFACES = editaccountsui.ui \
44 selectmailtypeui.ui \ 44 selectmailtypeui.ui \
45 imapconfigui.ui \ 45 imapconfigui.ui \
46 pop3configui.ui \ 46 pop3configui.ui \
47 nntpconfigui.ui \ 47 nntpconfigui.ui \
48 smtpconfigui.ui \ 48 smtpconfigui.ui \
49 composemailui.ui \ 49 composemailui.ui \
50 settingsdialogui.ui \ 50 settingsdialogui.ui \
51 statuswidgetui.ui \ 51 statuswidgetui.ui \
52 newmaildirui.ui \ 52 newmaildirui.ui \
53 selectstoreui.ui \ 53 selectstoreui.ui \
54 nntpgroupsui.ui 54 nntpgroupsui.ui
55 55
56 56
57INCLUDEPATH += $(QPEDIR)/include . $(KDEPIMDIR) $(KDEPIMDIR)/libkdepim $(KDEPIMDIR)/qtcompat $(KDEPIMDIR)/microkde $(KDEPIMDIR)/microkde/kdecore $(KDEPIMDIR)/libetpan/include $(KDEPIMDIR)/microkde/kdeui 57INCLUDEPATH += $(QPEDIR)/include . $(KDEPIMDIR) $(KDEPIMDIR)/libkdepim $(KDEPIMDIR)/qtcompat $(KDEPIMDIR)/microkde $(KDEPIMDIR)/microkde/kdecore $(KDEPIMDIR)/libetpan/include $(KDEPIMDIR)/microkde/kdeui
58LIBS += -L$(QPEDIR)/lib -lmicromailwrapper -lqpe -lmicrolibetpan -lmicrokde -lmicroqtcompat -lssl -lcrypto -ljpeg -lmicrokdepim -lpthread 58LIBS += -L$(QPEDIR)/lib -lmicromailwrapper -lqpe -lxmicrolibetpan -lxmicrokde -lmicroqtcompat -lssl -lcrypto -ljpeg -lxmicrokdepim -lpthread
59LIBS += $(QTOPIALIB) 59LIBS += $(QTOPIALIB)
60#LIBS += -lqtopia 60#LIBS += -lqtopia
61#next line for Zaurus only 61#next line for Zaurus only
62#LIBS += -luuid 62#LIBS += -luuid
63 63
64LIBS += $(GCC3EXTRALIB1) 64LIBS += $(GCC3EXTRALIB1)
65LIBS += $(GCC3EXTRALIB2) 65LIBS += $(GCC3EXTRALIB2)
66# 66#
67OBJECTS_DIR = obj/$(PLATFORM) 67OBJECTS_DIR = obj/$(PLATFORM)
68MOC_DIR = moc/$(PLATFORM) 68MOC_DIR = moc/$(PLATFORM)
69DESTDIR=$(QPEDIR)/bin 69DESTDIR=$(QPEDIR)/bin
70TARGET = ompi 70TARGET = ompi
71 71
72 72
diff --git a/kmicromail/koprefs.cpp b/kmicromail/koprefs.cpp
index e4b61dc..e2eed9a 100644
--- a/kmicromail/koprefs.cpp
+++ b/kmicromail/koprefs.cpp
@@ -1,126 +1,126 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23 23
24#include <time.h> 24#include <time.h>
25#ifndef _WIN32_ 25#ifndef _WIN32_
26#include <unistd.h> 26#include <unistd.h>
27#endif 27#endif
28#include <qdir.h> 28#include <qdir.h>
29#include <qtextstream.h> 29#include <q3textstream.h>
30#include <qtextcodec.h> 30#include <qtextcodec.h>
31#include <qstring.h> 31#include <qstring.h>
32#include <qregexp.h> 32#include <qregexp.h>
33#include <qfont.h> 33#include <qfont.h>
34#include <qcolor.h> 34#include <qcolor.h>
35#include <qstringlist.h> 35#include <qstringlist.h>
36#include <stdlib.h> 36#include <stdlib.h>
37 37
38#include <kglobal.h> 38#include <kglobal.h>
39#include <kconfig.h> 39#include <kconfig.h>
40#include <klocale.h> 40#include <klocale.h>
41#include <kdebug.h> 41#include <kdebug.h>
42#include <kemailsettings.h> 42#include <kemailsettings.h>
43#include <kstaticdeleter.h> 43#include <kstaticdeleter.h>
44#include <kglobalsettings.h> 44#include <kglobalsettings.h>
45 45
46#include "koprefs.h" 46#include "koprefs.h"
47#include "mainwindow.h" 47#include "mainwindow.h"
48 48
49 49
50KOPrefs *KOPrefs::mInstance = 0; 50KOPrefs *KOPrefs::mInstance = 0;
51static KStaticDeleter<KOPrefs> insd; 51static KStaticDeleter<KOPrefs> insd;
52 52
53KOPrefs::KOPrefs() : 53KOPrefs::KOPrefs() :
54 KPimPrefs("kopiemailrc") 54 KPimPrefs("kopiemailrc")
55{ 55{
56 KPrefs::setCurrentGroup("General"); 56 KPrefs::setCurrentGroup("General");
57 addItemString("SendCodec",&mSendCodec,i18n ("userdefined") ); 57 addItemString("SendCodec",&mSendCodec,i18n ("userdefined") );
58 addItemString("SenderName",&mName,i18n ("Please set at") ); 58 addItemString("SenderName",&mName,i18n ("Please set at") );
59 addItemString("SenderEmail",&mEmail,i18n ("Settings@General TAB") ); 59 addItemString("SenderEmail",&mEmail,i18n ("Settings@General TAB") );
60 addItemBool("ViewMailAsHtml",&mViewAsHtml,false); 60 addItemBool("ViewMailAsHtml",&mViewAsHtml,false);
61 addItemBool("SendMailLater",&mSendLater,true); 61 addItemBool("SendMailLater",&mSendLater,true);
62 addItemBool("ShowToField",&mShowToField,false); 62 addItemBool("ShowToField",&mShowToField,false);
63 addItemBool("UseKapi",&mUseKapi,false); 63 addItemBool("UseKapi",&mUseKapi,false);
64 addItemInt("CurrentCodec",&mCurrentCodec,0); 64 addItemInt("CurrentCodec",&mCurrentCodec,0);
65 addItemBool("ShowInfoSub",&mShowInfoSub,true); 65 addItemBool("ShowInfoSub",&mShowInfoSub,true);
66 addItemBool("ShowInfoFrom",&mShowInfoFrom,true); 66 addItemBool("ShowInfoFrom",&mShowInfoFrom,true);
67 addItemBool("ShowInfoTo",&mShowInfoTo,true); 67 addItemBool("ShowInfoTo",&mShowInfoTo,true);
68 addItemBool("ShowInfoStart",&mShowInfoStart,true); 68 addItemBool("ShowInfoStart",&mShowInfoStart,true);
69 KPrefs::setCurrentGroup("Fonts"); 69 KPrefs::setCurrentGroup("Fonts");
70 addItemFont("Application Font",&mAppFont,KGlobalSettings::generalFont()); 70 addItemFont("Application Font",&mAppFont,KGlobalSettings::generalFont());
71 addItemFont("Compose Font",&mComposeFont,KGlobalSettings::generalFont()); 71 addItemFont("Compose Font",&mComposeFont,KGlobalSettings::generalFont());
72 addItemFont("Read Font",&mReadFont,KGlobalSettings::generalFont()); 72 addItemFont("Read Font",&mReadFont,KGlobalSettings::generalFont());
73 fillMailDefaults(); 73 fillMailDefaults();
74 isDirty = false; 74 isDirty = false;
75} 75}
76 76
77 77
78KOPrefs::~KOPrefs() 78KOPrefs::~KOPrefs()
79{ 79{
80 if ( isDirty ) 80 if ( isDirty )
81 writeConfig(); 81 writeConfig();
82 if (mInstance == this) 82 if (mInstance == this)
83 mInstance = insd.setObject(0); 83 mInstance = insd.setObject(0);
84 84
85} 85}
86 86
87 87
88KOPrefs *KOPrefs::instance() 88KOPrefs *KOPrefs::instance()
89{ 89{
90 if (!mInstance) { 90 if (!mInstance) {
91 mInstance = insd.setObject(new KOPrefs()); 91 mInstance = insd.setObject(new KOPrefs());
92 mInstance->readConfig(); 92 mInstance->readConfig();
93 } 93 }
94 94
95 return mInstance; 95 return mInstance;
96} 96}
97 97
98void KOPrefs::usrSetDefaults() 98void KOPrefs::usrSetDefaults()
99{ 99{
100 100
101} 101}
102 102
103void KOPrefs::fillMailDefaults() 103void KOPrefs::fillMailDefaults()
104{ 104{
105 if (mName.isEmpty()) mName = i18n ("Please set at"); 105 if (mName.isEmpty()) mName = i18n ("Please set at");
106 if (mEmail.isEmpty()) mEmail = i18n ("Settings@General TAB"); 106 if (mEmail.isEmpty()) mEmail = i18n ("Settings@General TAB");
107} 107}
108 108
109void KOPrefs::usrReadConfig() 109void KOPrefs::usrReadConfig()
110{ 110{
111 111
112 KPimPrefs::usrReadConfig(); 112 KPimPrefs::usrReadConfig();
113} 113}
114 114
115 115
116void KOPrefs::usrWriteConfig() 116void KOPrefs::usrWriteConfig()
117{ 117{
118 KPimPrefs::usrWriteConfig(); 118 KPimPrefs::usrWriteConfig();
119} 119}
120 120
121 121
122 122
123KConfig* KOPrefs::getConfig() 123KConfig* KOPrefs::getConfig()
124{ 124{
125 return config(); 125 return config();
126} 126}
diff --git a/kmicromail/koprefsdialog.cpp b/kmicromail/koprefsdialog.cpp
index 017f1f7..e3102a4 100644
--- a/kmicromail/koprefsdialog.cpp
+++ b/kmicromail/koprefsdialog.cpp
@@ -1,1747 +1,1752 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23#include <kdialog.h> 23#include <kdialog.h>
24#include <qlayout.h> 24#include <qlayout.h>
25#include <qlabel.h> 25#include <qlabel.h>
26#include <qgroupbox.h> 26#include <q3groupbox.h>
27#include <qbuttongroup.h> 27#include <q3buttongroup.h>
28#include <qlineedit.h> 28#include <qlineedit.h>
29#include <qfont.h> 29#include <qfont.h>
30#include <qslider.h> 30#include <qslider.h>
31#include <qfile.h> 31#include <qfile.h>
32#include <qtextstream.h> 32#include <q3textstream.h>
33#include <qcombobox.h> 33#include <qcombobox.h>
34#include <qvbox.h> 34#include <q3vbox.h>
35#include <qhbox.h> 35#include <q3hbox.h>
36#include <qregexp.h> 36#include <qregexp.h>
37#include <qspinbox.h> 37#include <qspinbox.h>
38#include <qdatetime.h> 38#include <qdatetime.h>
39#include <qcheckbox.h> 39#include <qcheckbox.h>
40#include <qradiobutton.h> 40#include <qradiobutton.h>
41#include <qpushbutton.h> 41#include <qpushbutton.h>
42#include <qstrlist.h> 42#include <q3strlist.h>
43#include <qapplication.h> 43#include <qapplication.h>
44//Added by qt3to4:
45#include <Q3HBoxLayout>
46#include <Q3GridLayout>
47#include <QPixmap>
48#include <Q3Frame>
44 49
45#include <kcolorbutton.h> 50#include <kcolorbutton.h>
46#include <kdebug.h> 51#include <kdebug.h>
47#include <klocale.h> 52#include <klocale.h>
48#include <kglobal.h> 53#include <kglobal.h>
49#include <kfontdialog.h> 54#include <kfontdialog.h>
50#include <kfiledialog.h> 55#include <kfiledialog.h>
51#include <kmessagebox.h> 56#include <kmessagebox.h>
52#include <kcolordialog.h> 57#include <kcolordialog.h>
53#include <kiconloader.h> 58#include <kiconloader.h>
54#include <kemailsettings.h> 59#include <kemailsettings.h>
55#include <kstandarddirs.h> 60#include <kstandarddirs.h>
56#include <kglobalsettings.h> 61#include <kglobalsettings.h>
57 62
58#include <klineedit.h> 63#include <klineedit.h>
59 64
60 65
61#include "koprefs.h" 66#include "koprefs.h"
62 67
63#include "koprefsdialog.h" 68#include "koprefsdialog.h"
64//#include <kprefswidget.h> 69//#include <kprefswidget.h>
65 70
66 71
67KOPrefsDialog::KOPrefsDialog(QWidget *parent, char *name, bool modal) : 72KOPrefsDialog::KOPrefsDialog(QWidget *parent, char *name, bool modal) :
68 KPrefsDialog(KOPrefs::instance(),parent,name,true) 73 KPrefsDialog(KOPrefs::instance(),parent,name,true)
69{ 74{
70 75
71 setFont( KGlobalSettings::generalMaxFont() ); 76 setFont( KGlobalSettings::generalMaxFont() );
72 setCaption( i18n("Settings - some need a restart (nr)")); 77 setCaption( i18n("Settings - some need a restart (nr)"));
73 setupGlobalTab(); 78 setupGlobalTab();
74 setupMainTab(); 79 setupMainTab();
75 setupMailTab();; 80 setupMailTab();;
76 setupFontsTab(); 81 setupFontsTab();
77 readConfig(); 82 readConfig();
78#ifndef DESKTOP_VERSION 83#ifndef DESKTOP_VERSION
79 if ( QApplication::desktop()->height() == 480 ) 84 if ( QApplication::desktop()->height() == 480 )
80 hideButtons(); 85 hideButtons();
81#endif 86#endif
82 87
83#if 0 88#if 0
84 89
85 setupMainTab(); 90 setupMainTab();
86 setupLocaleTab(); 91 setupLocaleTab();
87 setupTimeZoneTab(); 92 setupTimeZoneTab();
88 setupTimeTab(); 93 setupTimeTab();
89 setupLocaleDateTab(); 94 setupLocaleDateTab();
90 setupFontsTab(); 95 setupFontsTab();
91 setupColorsTab(); 96 setupColorsTab();
92 setupViewsTab(); 97 setupViewsTab();
93 //setupSyncTab(); 98 //setupSyncTab();
94 //setupSyncAlgTab(); 99 //setupSyncAlgTab();
95 //setupPrinterTab(); 100 //setupPrinterTab();
96 //setupGroupSchedulingTab(); 101 //setupGroupSchedulingTab();
97 //setupGroupAutomationTab(); 102 //setupGroupAutomationTab();
98#endif 103#endif
99} 104}
100 105
101#include "kpimglobalprefs.h" 106#include "kpimglobalprefs.h"
102 107
103KOPrefsDialog::~KOPrefsDialog() 108KOPrefsDialog::~KOPrefsDialog()
104{ 109{
105} 110}
106void KOPrefsDialog::setupGlobalTab() 111void KOPrefsDialog::setupGlobalTab()
107{ 112{
108 113
109 114
110 115
111} 116}
112void KOPrefsDialog::setupMainTab() 117void KOPrefsDialog::setupMainTab()
113{ 118{
114 QFrame *topFrame = addPage(i18n("General"),0,0); 119 Q3Frame *topFrame = addPage(i18n("General"),0,0);
115 120
116 QGridLayout *topLayout = new QGridLayout(topFrame,6,2); 121 Q3GridLayout *topLayout = new Q3GridLayout(topFrame,6,2);
117 topLayout->setSpacing(spacingHint()); 122 topLayout->setSpacing(spacingHint());
118 topLayout->setMargin(marginHint()); 123 topLayout->setMargin(marginHint());
119 124
120 125
121 mNameEdit = new QLineEdit(topFrame); 126 mNameEdit = new QLineEdit(topFrame);
122 mNameLabel = new QLabel(mNameEdit, i18n("Full &name:"), topFrame); 127 mNameLabel = new QLabel(mNameEdit, i18n("Full &name:"), topFrame);
123 topLayout->addWidget(mNameLabel,0,0); 128 topLayout->addWidget(mNameLabel,0,0);
124 topLayout->addWidget(mNameEdit,0,1); 129 topLayout->addWidget(mNameEdit,0,1);
125 130
126 mEmailEdit = new QLineEdit(topFrame); 131 mEmailEdit = new QLineEdit(topFrame);
127 mEmailLabel = new QLabel(mEmailEdit, i18n("E&mail address:"),topFrame); 132 mEmailLabel = new QLabel(mEmailEdit, i18n("E&mail address:"),topFrame);
128 topLayout->addWidget(mEmailLabel,1,0); 133 topLayout->addWidget(mEmailLabel,1,0);
129 topLayout->addWidget(mEmailEdit,1,1); 134 topLayout->addWidget(mEmailEdit,1,1);
130 QLabel *lab = new QLabel( i18n("HINT: Separate multiple\neMail addresses by \";\""), topFrame); 135 QLabel *lab = new QLabel( i18n("HINT: Separate multiple\neMail addresses by \";\""), topFrame);
131 topLayout->addMultiCellWidget(lab,2,2,0,1); 136 topLayout->addMultiCellWidget(lab,2,2,0,1);
132 KPrefsDialogWidBool* ttt = addWidBool(i18n("Ignore above settings and\nuse KA/Pi \"Who am I\" instead!"), 137 KPrefsDialogWidBool* ttt = addWidBool(i18n("Ignore above settings and\nuse KA/Pi \"Who am I\" instead!"),
133 &(KOPrefs::instance()->mUseKapi),topFrame); 138 &(KOPrefs::instance()->mUseKapi),topFrame);
134 topLayout->addMultiCellWidget(ttt->checkBox(),3,3,0,1); 139 topLayout->addMultiCellWidget(ttt->checkBox(),3,3,0,1);
135} 140}
136 141
137void KOPrefsDialog::setupMailTab() 142void KOPrefsDialog::setupMailTab()
138{ 143{
139 QFrame *topFrame = addPage(i18n("Mail"),0,0); 144 Q3Frame *topFrame = addPage(i18n("Mail"),0,0);
140 145
141 QGridLayout *topLayout = new QGridLayout(topFrame,4,2); 146 Q3GridLayout *topLayout = new Q3GridLayout(topFrame,4,2);
142 topLayout->setSpacing(spacingHint()); 147 topLayout->setSpacing(spacingHint());
143 topLayout->setMargin(marginHint()); 148 topLayout->setMargin(marginHint());
144 149
145 KPrefsDialogWidBool* ttt = addWidBool(i18n("View mail as html"), 150 KPrefsDialogWidBool* ttt = addWidBool(i18n("View mail as html"),
146 &(KOPrefs::instance()->mViewAsHtml),topFrame); 151 &(KOPrefs::instance()->mViewAsHtml),topFrame);
147 topLayout->addMultiCellWidget(ttt->checkBox(),0,0,0,1); 152 topLayout->addMultiCellWidget(ttt->checkBox(),0,0,0,1);
148 153
149 154
150 ttt = addWidBool(i18n("Send mails later"), 155 ttt = addWidBool(i18n("Send mails later"),
151 &(KOPrefs::instance()->mSendLater),topFrame); 156 &(KOPrefs::instance()->mSendLater),topFrame);
152 topLayout->addMultiCellWidget(ttt->checkBox(),1,1,0,1); 157 topLayout->addMultiCellWidget(ttt->checkBox(),1,1,0,1);
153 ttt = addWidBool(i18n("Show \"To\" field in list view"), 158 ttt = addWidBool(i18n("Show \"To\" field in list view"),
154 &(KOPrefs::instance()->mShowToField),topFrame); 159 &(KOPrefs::instance()->mShowToField),topFrame);
155 topLayout->addMultiCellWidget(ttt->checkBox(),2,2,0,1); 160 topLayout->addMultiCellWidget(ttt->checkBox(),2,2,0,1);
156 161
157 int iii =3; 162 int iii =3;
158 ttt = addWidBool(i18n("Show info fields at startup"), 163 ttt = addWidBool(i18n("Show info fields at startup"),
159 &(KOPrefs::instance()->mShowInfoStart),topFrame); 164 &(KOPrefs::instance()->mShowInfoStart),topFrame);
160 topLayout->addMultiCellWidget(ttt->checkBox(),iii,iii,0,1); 165 topLayout->addMultiCellWidget(ttt->checkBox(),iii,iii,0,1);
161 ++iii; 166 ++iii;
162 ttt = addWidBool(i18n("Show \"Subject\" info field"), 167 ttt = addWidBool(i18n("Show \"Subject\" info field"),
163 &(KOPrefs::instance()->mShowInfoSub),topFrame); 168 &(KOPrefs::instance()->mShowInfoSub),topFrame);
164 topLayout->addMultiCellWidget(ttt->checkBox(),iii,iii,0,1); 169 topLayout->addMultiCellWidget(ttt->checkBox(),iii,iii,0,1);
165 ++iii; 170 ++iii;
166 ttt = addWidBool(i18n("Show \"From\" info field"), 171 ttt = addWidBool(i18n("Show \"From\" info field"),
167 &(KOPrefs::instance()->mShowInfoFrom),topFrame); 172 &(KOPrefs::instance()->mShowInfoFrom),topFrame);
168 topLayout->addMultiCellWidget(ttt->checkBox(),iii,iii,0,1); 173 topLayout->addMultiCellWidget(ttt->checkBox(),iii,iii,0,1);
169 ++iii; 174 ++iii;
170 ttt = addWidBool(i18n("Show \"To\" info field"), 175 ttt = addWidBool(i18n("Show \"To\" info field"),
171 &(KOPrefs::instance()->mShowInfoTo),topFrame); 176 &(KOPrefs::instance()->mShowInfoTo),topFrame);
172 topLayout->addMultiCellWidget(ttt->checkBox(),iii,iii,0,1); 177 topLayout->addMultiCellWidget(ttt->checkBox(),iii,iii,0,1);
173 ++iii; 178 ++iii;
174 179
175 /* 180 /*
176 mCodecEdit = new QLineEdit(topFrame); 181 mCodecEdit = new QLineEdit(topFrame);
177 topLayout->addMultiCellWidget( new QLabel(mCodecEdit, i18n("User defined codec for new mails:"), topFrame),2,2,0,1); 182 topLayout->addMultiCellWidget( new QLabel(mCodecEdit, i18n("User defined codec for new mails:"), topFrame),2,2,0,1);
178 topLayout->addMultiCellWidget(mCodecEdit,3,3,0,1); 183 topLayout->addMultiCellWidget(mCodecEdit,3,3,0,1);
179 topLayout->addMultiCellWidget( new QLabel(0, i18n("Example: iso-8859-15"), topFrame),4,4,0,1); 184 topLayout->addMultiCellWidget( new QLabel(0, i18n("Example: iso-8859-15"), topFrame),4,4,0,1);
180 */ 185 */
181} 186}
182void KOPrefsDialog::setupFontsTab() 187void KOPrefsDialog::setupFontsTab()
183{ 188{
184 189
185 QFrame *topFrame = addPage(i18n("Fonts"),0,0); 190 Q3Frame *topFrame = addPage(i18n("Fonts"),0,0);
186 // DesktopIcon("fonts",KIcon::SizeMedium)); 191 // DesktopIcon("fonts",KIcon::SizeMedium));
187 192
188 QGridLayout *topLayout = new QGridLayout(topFrame,7,3); 193 Q3GridLayout *topLayout = new Q3GridLayout(topFrame,7,3);
189 topLayout->setSpacing(1); 194 topLayout->setSpacing(1);
190 topLayout->setMargin(3); 195 topLayout->setMargin(3);
191 KPrefsDialogWidFont * tVFont; 196 KPrefsDialogWidFont * tVFont;
192 int i = 0; 197 int i = 0;
193 KPrefsDialogWidFont *timeLabelsFont = 198 KPrefsDialogWidFont *timeLabelsFont =
194 addWidFont(i18n("OK"),i18n("Application(nr)"), 199 addWidFont(i18n("OK"),i18n("Application(nr)"),
195 &(KOPrefs::instance()->mAppFont),topFrame); 200 &(KOPrefs::instance()->mAppFont),topFrame);
196 topLayout->addWidget(timeLabelsFont->label(),i,0); 201 topLayout->addWidget(timeLabelsFont->label(),i,0);
197 topLayout->addWidget(timeLabelsFont->preview(),i,1); 202 topLayout->addWidget(timeLabelsFont->preview(),i,1);
198 topLayout->addWidget(timeLabelsFont->button(),i,2); 203 topLayout->addWidget(timeLabelsFont->button(),i,2);
199 ++i; 204 ++i;
200 205
201 206
202 timeLabelsFont = 207 timeLabelsFont =
203 addWidFont(i18n("Dear Mr."),i18n("Compose mail:"), 208 addWidFont(i18n("Dear Mr."),i18n("Compose mail:"),
204 &(KOPrefs::instance()->mComposeFont),topFrame); 209 &(KOPrefs::instance()->mComposeFont),topFrame);
205 topLayout->addWidget(timeLabelsFont->label(),i,0); 210 topLayout->addWidget(timeLabelsFont->label(),i,0);
206 topLayout->addWidget(timeLabelsFont->preview(),i,1); 211 topLayout->addWidget(timeLabelsFont->preview(),i,1);
207 topLayout->addWidget(timeLabelsFont->button(),i,2); 212 topLayout->addWidget(timeLabelsFont->button(),i,2);
208 ++i; 213 ++i;
209 214
210 KPrefsDialogWidFont *timeBarFont = 215 KPrefsDialogWidFont *timeBarFont =
211 addWidFont(i18n("Hello"),i18n("Read mail:"), 216 addWidFont(i18n("Hello"),i18n("Read mail:"),
212 &(KOPrefs::instance()->mReadFont),topFrame); 217 &(KOPrefs::instance()->mReadFont),topFrame);
213 topLayout->addWidget(timeBarFont->label(),i,0); 218 topLayout->addWidget(timeBarFont->label(),i,0);
214 topLayout->addWidget(timeBarFont->preview(),i,1); 219 topLayout->addWidget(timeBarFont->preview(),i,1);
215 topLayout->addWidget(timeBarFont->button(),i,2); 220 topLayout->addWidget(timeBarFont->button(),i,2);
216 ++i; 221 ++i;
217 222
218 topLayout->setColStretch(1,1); 223 topLayout->setColStretch(1,1);
219 topLayout->setRowStretch(4,1); 224 topLayout->setRowStretch(4,1);
220 225
221} 226}
222void KOPrefsDialog::usrReadConfig() 227void KOPrefsDialog::usrReadConfig()
223{ 228{
224 229
225 mNameEdit->setText(KOPrefs::instance()->mName); 230 mNameEdit->setText(KOPrefs::instance()->mName);
226 mEmailEdit->setText(KOPrefs::instance()->mEmail); 231 mEmailEdit->setText(KOPrefs::instance()->mEmail);
227 //mCodecEdit->setText(KOPrefs::instance()->mSendCodec); 232 //mCodecEdit->setText(KOPrefs::instance()->mSendCodec);
228} 233}
229void KOPrefsDialog::usrWriteConfig() 234void KOPrefsDialog::usrWriteConfig()
230{ 235{
231 KOPrefs::instance()->mName = mNameEdit->text(); 236 KOPrefs::instance()->mName = mNameEdit->text();
232 KOPrefs::instance()->mEmail = mEmailEdit->text(); 237 KOPrefs::instance()->mEmail = mEmailEdit->text();
233 //KOPrefs::instance()->mSendCodec = mCodecEdit->text(); 238 //KOPrefs::instance()->mSendCodec = mCodecEdit->text();
234 239
235 240
236} 241}
237 242
238#if 0 243#if 0
239void KOPrefsDialog::setupLocaleDateTab() 244void KOPrefsDialog::setupLocaleDateTab()
240{ 245{
241QFrame *topFrame = addPage(i18n("Date Format"),0,0); 246Q3Frame *topFrame = addPage(i18n("Date Format"),0,0);
242 QGridLayout *topLayout = new QGridLayout(topFrame,3,2); 247 Q3GridLayout *topLayout = new Q3GridLayout(topFrame,3,2);
243 topLayout->setSpacing(spacingHint()); 248 topLayout->setSpacing(spacingHint());
244 topLayout->setMargin(marginHint()); 249 topLayout->setMargin(marginHint());
245 int iii = 0; 250 int iii = 0;
246 251
247 252
248 KPrefsWidRadios *syncPrefsGroup = 253 KPrefsWidRadios *syncPrefsGroup =
249 addWidRadios(i18n("Date Format:"),&(KOPrefs::instance()->mPreferredDate),topFrame); 254 addWidRadios(i18n("Date Format:"),&(KOPrefs::instance()->mPreferredDate),topFrame);
250 QString format; 255 QString format;
251 if ( QApplication::desktop()->width() < 480 ) 256 if ( QApplication::desktop()->width() < 480 )
252 format = "(%d.%m.%Y)"; 257 format = "(%d.%m.%Y)";
253 else 258 else
254 format = "(%d.%m.%Y|%A %d %B %Y)"; 259 format = "(%d.%m.%Y|%A %d %B %Y)";
255 syncPrefsGroup->addRadio(i18n("24.03.2004 "+format)); 260 syncPrefsGroup->addRadio(i18n("24.03.2004 "+format));
256 if ( QApplication::desktop()->width() < 480 ) 261 if ( QApplication::desktop()->width() < 480 )
257 format = "(%m.%d.%Y)"; 262 format = "(%m.%d.%Y)";
258 else 263 else
259 format = "(%m.%d.%Y|%A %B %d %Y)"; 264 format = "(%m.%d.%Y|%A %B %d %Y)";
260 syncPrefsGroup->addRadio(i18n("03.24.2004 "+format)); 265 syncPrefsGroup->addRadio(i18n("03.24.2004 "+format));
261 if ( QApplication::desktop()->width() < 480 ) 266 if ( QApplication::desktop()->width() < 480 )
262 format = "(%Y-%m-%d)"; 267 format = "(%Y-%m-%d)";
263 else 268 else
264 format = "(%Y-%m-%d|%A %Y %B %d)"; 269 format = "(%Y-%m-%d|%A %Y %B %d)";
265 syncPrefsGroup->addRadio(i18n("2004-03-24 "+format)); 270 syncPrefsGroup->addRadio(i18n("2004-03-24 "+format));
266 syncPrefsGroup->addRadio(i18n("User defined")); 271 syncPrefsGroup->addRadio(i18n("User defined"));
267 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1); 272 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1);
268 ++iii; 273 ++iii;
269 ++iii; 274 ++iii;
270 QLabel * lab; 275 QLabel * lab;
271 mUserDateFormatLong = new QLineEdit(topFrame); 276 mUserDateFormatLong = new QLineEdit(topFrame);
272 lab = new QLabel(mUserDateFormatLong, i18n("User long date:"), topFrame); 277 lab = new QLabel(mUserDateFormatLong, i18n("User long date:"), topFrame);
273 topLayout->addWidget(lab ,iii,0); 278 topLayout->addWidget(lab ,iii,0);
274 topLayout->addWidget(mUserDateFormatLong,iii,1); 279 topLayout->addWidget(mUserDateFormatLong,iii,1);
275 ++iii; 280 ++iii;
276 mUserDateFormatShort = new QLineEdit(topFrame); 281 mUserDateFormatShort = new QLineEdit(topFrame);
277 lab = new QLabel(mUserDateFormatShort, i18n("User short date:"), topFrame); 282 lab = new QLabel(mUserDateFormatShort, i18n("User short date:"), topFrame);
278 topLayout->addWidget(lab ,iii,0); 283 topLayout->addWidget(lab ,iii,0);
279 topLayout->addWidget(mUserDateFormatShort,iii,1); 284 topLayout->addWidget(mUserDateFormatShort,iii,1);
280 ++iii; 285 ++iii;
281 lab = new QLabel( i18n("Monday 19 April 2004: %A %d %B %Y"), topFrame); 286 lab = new QLabel( i18n("Monday 19 April 2004: %A %d %B %Y"), topFrame);
282 topLayout->addMultiCellWidget(lab ,iii,iii,0,1); 287 topLayout->addMultiCellWidget(lab ,iii,iii,0,1);
283 ++iii; 288 ++iii;
284 lab = new QLabel( i18n("Mon 19.04.04: %a %d.%m.%y"), topFrame); 289 lab = new QLabel( i18n("Mon 19.04.04: %a %d.%m.%y"), topFrame);
285 topLayout->addMultiCellWidget(lab ,iii,iii,0,1); 290 topLayout->addMultiCellWidget(lab ,iii,iii,0,1);
286 ++iii; 291 ++iii;
287 lab = new QLabel( i18n("Mon, 19.Apr.04: %a, %d.%b.%y"), topFrame); 292 lab = new QLabel( i18n("Mon, 19.Apr.04: %a, %d.%b.%y"), topFrame);
288 topLayout->addMultiCellWidget(lab ,iii,iii,0,1); 293 topLayout->addMultiCellWidget(lab ,iii,iii,0,1);
289 ++iii; 294 ++iii;
290 295
291} 296}
292 297
293void KOPrefsDialog::setupLocaleTab() 298void KOPrefsDialog::setupLocaleTab()
294{ 299{
295 QFrame *topFrame = addPage(i18n("Locale"),0,0); 300 Q3Frame *topFrame = addPage(i18n("Locale"),0,0);
296 QGridLayout *topLayout = new QGridLayout(topFrame,4,2); 301 Q3GridLayout *topLayout = new Q3GridLayout(topFrame,4,2);
297 topLayout->setSpacing(spacingHint()); 302 topLayout->setSpacing(spacingHint());
298 topLayout->setMargin(marginHint()); 303 topLayout->setMargin(marginHint());
299 int iii = 0; 304 int iii = 0;
300 KPrefsWidRadios *syncPrefsGroup = 305 KPrefsWidRadios *syncPrefsGroup =
301 addWidRadios(i18n("Language:(needs restart)"),&(KOPrefs::instance()->mPreferredLanguage),topFrame); 306 addWidRadios(i18n("Language:(needs restart)"),&(KOPrefs::instance()->mPreferredLanguage),topFrame);
302 syncPrefsGroup->addRadio(i18n("English")); 307 syncPrefsGroup->addRadio(i18n("English"));
303 syncPrefsGroup->addRadio(i18n("German")); 308 syncPrefsGroup->addRadio(i18n("German"));
304 syncPrefsGroup->addRadio(i18n("French")); 309 syncPrefsGroup->addRadio(i18n("French"));
305 syncPrefsGroup->addRadio(i18n("User defined (usertranslation.txt)")); 310 syncPrefsGroup->addRadio(i18n("User defined (usertranslation.txt)"));
306 if ( QApplication::desktop()->width() < 300 ) 311 if ( QApplication::desktop()->width() < 300 )
307 ;// syncPrefsGroup->groupBox()-> setOrientation (Qt::Vertical); 312 ;// syncPrefsGroup->groupBox()-> setOrientation (Qt::Vertical);
308 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1); 313 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1);
309 ++iii; 314 ++iii;
310 315
311 syncPrefsGroup = 316 syncPrefsGroup =
312 addWidRadios(i18n("Time Format(nr):"),&(KOPrefs::instance()->mPreferredTime),topFrame); 317 addWidRadios(i18n("Time Format(nr):"),&(KOPrefs::instance()->mPreferredTime),topFrame);
313 if ( QApplication::desktop()->width() > 300 ) 318 if ( QApplication::desktop()->width() > 300 )
314 syncPrefsGroup->groupBox()-> setOrientation (Qt::Vertical); 319 syncPrefsGroup->groupBox()-> setOrientation (Qt::Vertical);
315 syncPrefsGroup->addRadio(i18n("24:00")); 320 syncPrefsGroup->addRadio(i18n("24:00"));
316 syncPrefsGroup->addRadio(i18n("12:00am")); 321 syncPrefsGroup->addRadio(i18n("12:00am"));
317 syncPrefsGroup->groupBox()-> setOrientation (Qt::Vertical); 322 syncPrefsGroup->groupBox()-> setOrientation (Qt::Vertical);
318 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1); 323 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1);
319 ++iii; 324 ++iii;
320 KPrefsDialogWidBool *sb; 325 KPrefsDialogWidBool *sb;
321 if ( QApplication::desktop()->width() < 300 ) { 326 if ( QApplication::desktop()->width() < 300 ) {
322 sb = 327 sb =
323 addWidBool(i18n("Week starts on Sunday"), 328 addWidBool(i18n("Week starts on Sunday"),
324 &(KOPrefs::instance()->mWeekStartsOnSunday),topFrame); 329 &(KOPrefs::instance()->mWeekStartsOnSunday),topFrame);
325 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1); 330 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1);
326 ++iii; 331 ++iii;
327 sb = 332 sb =
328 addWidBool(i18n("Use short date in (WN/E) view"), 333 addWidBool(i18n("Use short date in (WN/E) view"),
329 &(KOPrefs::instance()->mShortDateInViewer),topFrame); 334 &(KOPrefs::instance()->mShortDateInViewer),topFrame);
330 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1); 335 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1);
331 } 336 }
332 else { 337 else {
333 QWidget * hb = new QWidget( topFrame ); 338 QWidget * hb = new QWidget( topFrame );
334 QHBoxLayout *hbLayout = new QHBoxLayout(hb); 339 Q3HBoxLayout *hbLayout = new Q3HBoxLayout(hb);
335 sb = 340 sb =
336 addWidBool(i18n("Week starts on Sunday"), 341 addWidBool(i18n("Week starts on Sunday"),
337 &(KOPrefs::instance()->mWeekStartsOnSunday),hb); 342 &(KOPrefs::instance()->mWeekStartsOnSunday),hb);
338 hbLayout->addWidget(sb->checkBox() ); 343 hbLayout->addWidget(sb->checkBox() );
339 sb = 344 sb =
340 addWidBool(i18n("Use short date in (WN/E) view"), 345 addWidBool(i18n("Use short date in (WN/E) view"),
341 &(KOPrefs::instance()->mShortDateInViewer),hb); 346 &(KOPrefs::instance()->mShortDateInViewer),hb);
342 hbLayout->addWidget(sb->checkBox() ); 347 hbLayout->addWidget(sb->checkBox() );
343 topLayout->addMultiCellWidget(hb, iii,iii,0,1); 348 topLayout->addMultiCellWidget(hb, iii,iii,0,1);
344 349
345 } 350 }
346 //#ifndef DESKTOP_VERSION 351 //#ifndef DESKTOP_VERSION
347#if 0 352#if 0
348 ++iii; 353 ++iii;
349 sb = 354 sb =
350 addWidBool(i18n("Quick load/save (w/o Unicode)"), 355 addWidBool(i18n("Quick load/save (w/o Unicode)"),
351 &(KOPrefs::instance()->mUseQuicksave),topFrame); 356 &(KOPrefs::instance()->mUseQuicksave),topFrame);
352 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1); 357 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1);
353#endif 358#endif
354} 359}
355void KOPrefsDialog::showSyncPage() 360void KOPrefsDialog::showSyncPage()
356{ 361{
357 showPage ( 2 ) ; 362 showPage ( 2 ) ;
358 363
359} 364}
360void KOPrefsDialog::setupSyncAlgTab() 365void KOPrefsDialog::setupSyncAlgTab()
361{ 366{
362#if 0 367#if 0
363 QLabel * lab; 368 QLabel * lab;
364 QFrame *topFrame = addPage(i18n("Sync Prefs"),0,0); 369 Q3Frame *topFrame = addPage(i18n("Sync Prefs"),0,0);
365 mSetupSyncAlgTab = topFrame; 370 mSetupSyncAlgTab = topFrame;
366 QGridLayout *topLayout = new QGridLayout(topFrame,6,2); 371 Q3GridLayout *topLayout = new Q3GridLayout(topFrame,6,2);
367 topLayout->setSpacing(spacingHint()); 372 topLayout->setSpacing(spacingHint());
368 topLayout->setMargin(marginHint()); 373 topLayout->setMargin(marginHint());
369 int iii = 0; 374 int iii = 0;
370 375
371 KPrefsDialogWidBool *sb = 376 KPrefsDialogWidBool *sb =
372 addWidBool(i18n("Ask for preferences before syncing"), 377 addWidBool(i18n("Ask for preferences before syncing"),
373 &(KOPrefs::instance()->mAskForPreferences),topFrame); 378 &(KOPrefs::instance()->mAskForPreferences),topFrame);
374 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1); 379 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1);
375 380
376 ++iii; 381 ++iii;
377 382
378 KPrefsWidRadios *syncPrefsGroup = 383 KPrefsWidRadios *syncPrefsGroup =
379 addWidRadios(i18n("Sync preferences:"),&(KOPrefs::instance()->mSyncAlgoPrefs), 384 addWidRadios(i18n("Sync preferences:"),&(KOPrefs::instance()->mSyncAlgoPrefs),
380 topFrame); 385 topFrame);
381 syncPrefsGroup->addRadio(i18n("Take local entry on conflict")); 386 syncPrefsGroup->addRadio(i18n("Take local entry on conflict"));
382 syncPrefsGroup->addRadio(i18n("Take remote entry on conflict")); 387 syncPrefsGroup->addRadio(i18n("Take remote entry on conflict"));
383 syncPrefsGroup->addRadio(i18n("Take newest entry on conflict")); 388 syncPrefsGroup->addRadio(i18n("Take newest entry on conflict"));
384 syncPrefsGroup->addRadio(i18n("Ask for every entry on conflict")); 389 syncPrefsGroup->addRadio(i18n("Ask for every entry on conflict"));
385 syncPrefsGroup->addRadio(i18n("Force take local entry always")); 390 syncPrefsGroup->addRadio(i18n("Force take local entry always"));
386 syncPrefsGroup->addRadio(i18n("Force take remote entry always")); 391 syncPrefsGroup->addRadio(i18n("Force take remote entry always"));
387 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1); 392 topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1);
388 ++iii; 393 ++iii;
389 sb = 394 sb =
390 addWidBool(i18n("Show summary after syncing"), 395 addWidBool(i18n("Show summary after syncing"),
391 &(KOPrefs::instance()->mShowSyncSummary),topFrame); 396 &(KOPrefs::instance()->mShowSyncSummary),topFrame);
392 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1); 397 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1);
393 398
394 ++iii; 399 ++iii;
395#endif 400#endif
396 401
397 402
398 403
399} 404}
400 405
401 406
402void KOPrefsDialog::setupSyncTab() 407void KOPrefsDialog::setupSyncTab()
403{ 408{
404#if 0 409#if 0
405 QLabel * lab; 410 QLabel * lab;
406 QFrame *topFrame = addPage(i18n("Sync Network"),0,0); 411 Q3Frame *topFrame = addPage(i18n("Sync Network"),0,0);
407 QGridLayout *topLayout = new QGridLayout(topFrame,6,2); 412 Q3GridLayout *topLayout = new Q3GridLayout(topFrame,6,2);
408 topLayout->setSpacing(spacingHint()); 413 topLayout->setSpacing(spacingHint());
409 topLayout->setMargin(marginHint()); 414 topLayout->setMargin(marginHint());
410 lab = new QLabel(i18n("Remote syncing (via ssh/scp)\nnetwork settings "), topFrame); 415 lab = new QLabel(i18n("Remote syncing (via ssh/scp)\nnetwork settings "), topFrame);
411 int iii = 0; 416 int iii = 0;
412 topLayout->addMultiCellWidget(lab , iii,iii,0,1); 417 topLayout->addMultiCellWidget(lab , iii,iii,0,1);
413 ++iii; 418 ++iii;
414 419
415 mRemoteIPEdit = new QLineEdit(topFrame); 420 mRemoteIPEdit = new QLineEdit(topFrame);
416 lab = new QLabel(mRemoteIPEdit, i18n("Remote IP:"), topFrame); 421 lab = new QLabel(mRemoteIPEdit, i18n("Remote IP:"), topFrame);
417 topLayout->addWidget(lab ,iii,0); 422 topLayout->addWidget(lab ,iii,0);
418 topLayout->addWidget(mRemoteIPEdit,iii,1); 423 topLayout->addWidget(mRemoteIPEdit,iii,1);
419 ++iii; 424 ++iii;
420 mRemoteUser = new QLineEdit(topFrame); 425 mRemoteUser = new QLineEdit(topFrame);
421 lab = new QLabel(mRemoteUser, i18n("Remote user:"), topFrame); 426 lab = new QLabel(mRemoteUser, i18n("Remote user:"), topFrame);
422 topLayout->addWidget(lab ,iii,0); 427 topLayout->addWidget(lab ,iii,0);
423 topLayout->addWidget(mRemoteUser, iii,1); 428 topLayout->addWidget(mRemoteUser, iii,1);
424 ++iii; 429 ++iii;
425 430
426 mRemoteFile = new QLineEdit(topFrame); 431 mRemoteFile = new QLineEdit(topFrame);
427 lab = new QLabel(mRemoteFile, i18n("Remote file:"), topFrame); 432 lab = new QLabel(mRemoteFile, i18n("Remote file:"), topFrame);
428 topLayout->addWidget(lab ,iii,0); 433 topLayout->addWidget(lab ,iii,0);
429 topLayout->addWidget(mRemoteFile,iii,1); 434 topLayout->addWidget(mRemoteFile,iii,1);
430 ++iii; 435 ++iii;
431 436
432 mLocalTempFile = new QLineEdit(topFrame); 437 mLocalTempFile = new QLineEdit(topFrame);
433 lab = new QLabel(mLocalTempFile, i18n("Local temp file:"), topFrame); 438 lab = new QLabel(mLocalTempFile, i18n("Local temp file:"), topFrame);
434 topLayout->addWidget(lab ,iii,0); 439 topLayout->addWidget(lab ,iii,0);
435 topLayout->addWidget(mLocalTempFile,iii,1); 440 topLayout->addWidget(mLocalTempFile,iii,1);
436 ++iii; 441 ++iii;
437 442
438 KPrefsDialogWidBool *wb = 443 KPrefsDialogWidBool *wb =
439 addWidBool(i18n("Write back synced file"), 444 addWidBool(i18n("Write back synced file"),
440 &(KOPrefs::instance()->mWriteBackFile),topFrame); 445 &(KOPrefs::instance()->mWriteBackFile),topFrame);
441 topLayout->addMultiCellWidget(wb->checkBox(), iii,iii,0,1); 446 topLayout->addMultiCellWidget(wb->checkBox(), iii,iii,0,1);
442 ++iii; 447 ++iii;
443 wb = 448 wb =
444 addWidBool(i18n("Write back existing entries only"), 449 addWidBool(i18n("Write back existing entries only"),
445 &(KOPrefs::instance()->mWriteBackExistingOnly),topFrame); 450 &(KOPrefs::instance()->mWriteBackExistingOnly),topFrame);
446 topLayout->addMultiCellWidget(wb->checkBox(), iii,iii,0,1); 451 topLayout->addMultiCellWidget(wb->checkBox(), iii,iii,0,1);
447 ++iii; 452 ++iii;
448 453
449#endif 454#endif
450} 455}
451 456
452void KOPrefsDialog::setupMainTab() 457void KOPrefsDialog::setupMainTab()
453{ 458{
454 QFrame *topFrame = addPage(i18n("General"),0,0); 459 Q3Frame *topFrame = addPage(i18n("General"),0,0);
455 // DesktopIcon("identity",KIcon::SizeMedium)); 460 // DesktopIcon("identity",KIcon::SizeMedium));
456 461
457 QGridLayout *topLayout = new QGridLayout(topFrame,6,2); 462 Q3GridLayout *topLayout = new Q3GridLayout(topFrame,6,2);
458 topLayout->setSpacing(spacingHint()); 463 topLayout->setSpacing(spacingHint());
459 topLayout->setMargin(marginHint()); 464 topLayout->setMargin(marginHint());
460 465
461 // KPrefsDialogWidBool *emailControlCenter = 466 // KPrefsDialogWidBool *emailControlCenter =
462// addWidBool(i18n("&Use email settings from Control Center"), 467// addWidBool(i18n("&Use email settings from Control Center"),
463// &(KOPrefs::instance()->mEmailControlCenter),topFrame); 468// &(KOPrefs::instance()->mEmailControlCenter),topFrame);
464// topLayout->addMultiCellWidget(emailControlCenter->checkBox(),0,0,0,1); 469// topLayout->addMultiCellWidget(emailControlCenter->checkBox(),0,0,0,1);
465 // connect(emailControlCenter->checkBox(),SIGNAL(toggled(bool)), 470 // connect(emailControlCenter->checkBox(),SIGNAL(toggled(bool)),
466 // SLOT(toggleEmailSettings(bool))); 471 // SLOT(toggleEmailSettings(bool)));
467 472
468 mNameEdit = new QLineEdit(topFrame); 473 mNameEdit = new QLineEdit(topFrame);
469 mNameLabel = new QLabel(mNameEdit, i18n("Full &name:"), topFrame); 474 mNameLabel = new QLabel(mNameEdit, i18n("Full &name:"), topFrame);
470 topLayout->addWidget(mNameLabel,0,0); 475 topLayout->addWidget(mNameLabel,0,0);
471 topLayout->addWidget(mNameEdit,0,1); 476 topLayout->addWidget(mNameEdit,0,1);
472 477
473 mEmailEdit = new QLineEdit(topFrame); 478 mEmailEdit = new QLineEdit(topFrame);
474 mEmailLabel = new QLabel(mEmailEdit, i18n("E&mail address:"),topFrame); 479 mEmailLabel = new QLabel(mEmailEdit, i18n("E&mail address:"),topFrame);
475 topLayout->addWidget(mEmailLabel,1,0); 480 topLayout->addWidget(mEmailLabel,1,0);
476 topLayout->addWidget(mEmailEdit,1,1); 481 topLayout->addWidget(mEmailEdit,1,1);
477 KPrefsDialogWidBool *wb; 482 KPrefsDialogWidBool *wb;
478 QHBox *dummy; 483 Q3HBox *dummy;
479 if ( QApplication::desktop()->width() > 480 ) { 484 if ( QApplication::desktop()->width() > 480 ) {
480 dummy = new QHBox(topFrame); 485 dummy = new Q3HBox(topFrame);
481 } else { 486 } else {
482 dummy = new QVBox(topFrame); 487 dummy = new Q3VBox(topFrame);
483 } 488 }
484 489
485 topLayout->addMultiCellWidget(dummy, 2,2,0,1); 490 topLayout->addMultiCellWidget(dummy, 2,2,0,1);
486 addWidBool(i18n("Full menu bar(nr)"), 491 addWidBool(i18n("Full menu bar(nr)"),
487 &(KOPrefs::instance()->mShowFullMenu),dummy); 492 &(KOPrefs::instance()->mShowFullMenu),dummy);
488 493
489 494
490 addWidBool(i18n("Mini icons in toolbar(nr)"), 495 addWidBool(i18n("Mini icons in toolbar(nr)"),
491 &(KOPrefs::instance()->mToolBarMiniIcons),dummy); 496 &(KOPrefs::instance()->mToolBarMiniIcons),dummy);
492 497
493 498
494 dummy = new QHBox(topFrame); 499 dummy = new Q3HBox(topFrame);
495 new QLabel(i18n("Days in What's Next:"),dummy); 500 new QLabel(i18n("Days in What's Next:"),dummy);
496 mWhatsNextSpin = new QSpinBox(1,14,1,dummy); 501 mWhatsNextSpin = new QSpinBox(1,14,1,dummy);
497 502
498 topLayout->addMultiCellWidget(dummy,3,3,0,1); 503 topLayout->addMultiCellWidget(dummy,3,3,0,1);
499 504
500 505
501 506
502 dummy = new QHBox(topFrame); 507 dummy = new Q3HBox(topFrame);
503 new QLabel(i18n("Days in Next-X-Days:"),dummy); 508 new QLabel(i18n("Days in Next-X-Days:"),dummy);
504 mNextXDaysSpin = new QSpinBox(2,14,1,dummy); 509 mNextXDaysSpin = new QSpinBox(2,14,1,dummy);
505 510
506 topLayout->addMultiCellWidget(dummy,4,4,0,1); 511 topLayout->addMultiCellWidget(dummy,4,4,0,1);
507 512
508 QHBox *prioBox = new QHBox(topFrame); 513 Q3HBox *prioBox = new Q3HBox(topFrame);
509 // intervalBox->setSpacing(spacingHint()); 514 // intervalBox->setSpacing(spacingHint());
510 topLayout->addMultiCellWidget(prioBox,5,5,0,1); 515 topLayout->addMultiCellWidget(prioBox,5,5,0,1);
511 QString messa = i18n("Show topmost todo prios in What's Next:"); 516 QString messa = i18n("Show topmost todo prios in What's Next:");
512 517
513 if ( QApplication::desktop()->width() < 300 ) 518 if ( QApplication::desktop()->width() < 300 )
514 messa = i18n("Show topmost todo prios in What's N.:"); 519 messa = i18n("Show topmost todo prios in What's N.:");
515 QLabel *prioLabel = new QLabel(messa, prioBox); 520 QLabel *prioLabel = new QLabel(messa, prioBox);
516 mPrioSpin = new QSpinBox(0,5,1,prioBox); 521 mPrioSpin = new QSpinBox(0,5,1,prioBox);
517 if ( QApplication::desktop()->width() < 300 ) 522 if ( QApplication::desktop()->width() < 300 )
518 mPrioSpin->setFixedWidth( 40 ); 523 mPrioSpin->setFixedWidth( 40 );
519 524
520 // KPrefsDialogWidBool *bcc = 525 // KPrefsDialogWidBool *bcc =
521// addWidBool(i18n("Send copy to owner when mailing events"), 526// addWidBool(i18n("Send copy to owner when mailing events"),
522// &(KOPrefs::instance()->mBcc),topFrame); 527// &(KOPrefs::instance()->mBcc),topFrame);
523// topLayout->addMultiCellWidget(bcc->checkBox(),4,4,0,1); 528// topLayout->addMultiCellWidget(bcc->checkBox(),4,4,0,1);
524 529
525 530
526 // QGroupBox *autoSaveGroup = new QGroupBox(1,Horizontal,i18n("Auto-Save"), topFrame); 531 // QGroupBox *autoSaveGroup = new QGroupBox(1,Horizontal,i18n("Auto-Save"), topFrame);
527 //topLayout->addMultiCellWidget(autoSaveGroup,6,6,0,1); 532 //topLayout->addMultiCellWidget(autoSaveGroup,6,6,0,1);
528 533
529 // addWidBool(i18n("Enable automatic saving of calendar"), 534 // addWidBool(i18n("Enable automatic saving of calendar"),
530 // &(KOPrefs::instance()->mAutoSave),autoSaveGroup); 535 // &(KOPrefs::instance()->mAutoSave),autoSaveGroup);
531 536
532 QHBox *intervalBox = new QHBox(topFrame); 537 Q3HBox *intervalBox = new Q3HBox(topFrame);
533 // intervalBox->setSpacing(spacingHint()); 538 // intervalBox->setSpacing(spacingHint());
534 topLayout->addMultiCellWidget(intervalBox,6,6,0,1); 539 topLayout->addMultiCellWidget(intervalBox,6,6,0,1);
535 QLabel *autoSaveIntervalLabel = new QLabel(i18n("Auto save delay in minutes:"),intervalBox); 540 QLabel *autoSaveIntervalLabel = new QLabel(i18n("Auto save delay in minutes:"),intervalBox);
536 mAutoSaveIntervalSpin = new QSpinBox(0,500,1,intervalBox); 541 mAutoSaveIntervalSpin = new QSpinBox(0,500,1,intervalBox);
537 autoSaveIntervalLabel->setBuddy(mAutoSaveIntervalSpin); 542 autoSaveIntervalLabel->setBuddy(mAutoSaveIntervalSpin);
538 /* 543 /*
539 QHBox * agendasize = new QHBox ( topFrame ); 544 QHBox * agendasize = new QHBox ( topFrame );
540 545
541 new QLabel (i18n("AllDayAgenda Height:"), agendasize ); 546 new QLabel (i18n("AllDayAgenda Height:"), agendasize );
542 547
543 548
544 mHourSizeSlider = new QSlider(24,47,1,24,Horizontal,agendasize); 549 mHourSizeSlider = new QSlider(24,47,1,24,Horizontal,agendasize);
545 topLayout->addMultiCellWidget(agendasize,7,7,0,1); 550 topLayout->addMultiCellWidget(agendasize,7,7,0,1);
546 */ 551 */
547 KPrefsDialogWidBool *verticalScreen = 552 KPrefsDialogWidBool *verticalScreen =
548 addWidBool(i18n("Show vertical screen (Needs restart)"), 553 addWidBool(i18n("Show vertical screen (Needs restart)"),
549 &(KOPrefs::instance()->mVerticalScreen),topFrame); 554 &(KOPrefs::instance()->mVerticalScreen),topFrame);
550 //topLayout->addWidget(verticalScreen->checkBox(),ii++,0); 555 //topLayout->addWidget(verticalScreen->checkBox(),ii++,0);
551 topLayout->addMultiCellWidget(verticalScreen->checkBox(),7,7,0,1); 556 topLayout->addMultiCellWidget(verticalScreen->checkBox(),7,7,0,1);
552 557
553 KPrefsDialogWidBool *ask = 558 KPrefsDialogWidBool *ask =
554 addWidBool(i18n("Ask for quit when closing KO/Pi"), 559 addWidBool(i18n("Ask for quit when closing KO/Pi"),
555 &(KOPrefs::instance()->mAskForQuit),topFrame); 560 &(KOPrefs::instance()->mAskForQuit),topFrame);
556 topLayout->addMultiCellWidget(ask->checkBox(),8,8,0,1); 561 topLayout->addMultiCellWidget(ask->checkBox(),8,8,0,1);
557 562
558 563
559 /* 564 /*
560 KPrefsDialogWidBool *confirmCheck = 565 KPrefsDialogWidBool *confirmCheck =
561 addWidBool(i18n("Confirm &deletes"),&(KOPrefs::instance()->mConfirm), 566 addWidBool(i18n("Confirm &deletes"),&(KOPrefs::instance()->mConfirm),
562 topFrame); 567 topFrame);
563 topLayout->addMultiCellWidget(confirmCheck->checkBox(),7,7,0,1); 568 topLayout->addMultiCellWidget(confirmCheck->checkBox(),7,7,0,1);
564 569
565 570
566 mEnableGroupScheduling = 571 mEnableGroupScheduling =
567 addWidBool(i18n("Enable group scheduling"), 572 addWidBool(i18n("Enable group scheduling"),
568 &(KOPrefs::instance()->mEnableGroupScheduling),topFrame); 573 &(KOPrefs::instance()->mEnableGroupScheduling),topFrame);
569 topLayout->addWidget(mEnableGroupScheduling->checkBox(),8,0); 574 topLayout->addWidget(mEnableGroupScheduling->checkBox(),8,0);
570 connect(mEnableGroupScheduling->checkBox(),SIGNAL(clicked()), 575 connect(mEnableGroupScheduling->checkBox(),SIGNAL(clicked()),
571 SLOT(warningGroupScheduling())); 576 SLOT(warningGroupScheduling()));
572 577
573 mEnableProjectView = 578 mEnableProjectView =
574 addWidBool(i18n("Enable project view"), 579 addWidBool(i18n("Enable project view"),
575 &(KOPrefs::instance()->mEnableProjectView),topFrame); 580 &(KOPrefs::instance()->mEnableProjectView),topFrame);
576 topLayout->addWidget(mEnableProjectView->checkBox(),9,0); 581 topLayout->addWidget(mEnableProjectView->checkBox(),9,0);
577 connect(mEnableProjectView->checkBox(),SIGNAL(clicked()), 582 connect(mEnableProjectView->checkBox(),SIGNAL(clicked()),
578 SLOT(warningProjectView())); 583 SLOT(warningProjectView()));
579 584
580 // Can't be disabled anymore 585 // Can't be disabled anymore
581 mEnableGroupScheduling->checkBox()->hide(); 586 mEnableGroupScheduling->checkBox()->hide();
582 587
583 // Disable setting, because this feature now becomes stable 588 // Disable setting, because this feature now becomes stable
584 mEnableProjectView->checkBox()->hide(); 589 mEnableProjectView->checkBox()->hide();
585 590
586 KPrefsWidRadios *defaultFormatGroup = 591 KPrefsWidRadios *defaultFormatGroup =
587 addWidRadios(i18n("Default Calendar Format"), 592 addWidRadios(i18n("Default Calendar Format"),
588 &(KOPrefs::instance()->mDefaultFormat),topFrame); 593 &(KOPrefs::instance()->mDefaultFormat),topFrame);
589 defaultFormatGroup->addRadio(i18n("vCalendar")); 594 defaultFormatGroup->addRadio(i18n("vCalendar"));
590 defaultFormatGroup->addRadio(i18n("iCalendar")); 595 defaultFormatGroup->addRadio(i18n("iCalendar"));
591 596
592 topLayout->addMultiCellWidget(defaultFormatGroup->groupBox(),10,10,0,1); 597 topLayout->addMultiCellWidget(defaultFormatGroup->groupBox(),10,10,0,1);
593 598
594 // Default format unconditionally is iCalendar 599 // Default format unconditionally is iCalendar
595 defaultFormatGroup->groupBox()->hide(); 600 defaultFormatGroup->groupBox()->hide();
596 601
597 KPrefsWidRadios *mailClientGroup = 602 KPrefsWidRadios *mailClientGroup =
598 addWidRadios(i18n("Mail Client"),&(KOPrefs::instance()->mMailClient), 603 addWidRadios(i18n("Mail Client"),&(KOPrefs::instance()->mMailClient),
599 topFrame); 604 topFrame);
600 mailClientGroup->addRadio(i18n("KMail")); 605 mailClientGroup->addRadio(i18n("KMail"));
601 mailClientGroup->addRadio(i18n("Sendmail")); 606 mailClientGroup->addRadio(i18n("Sendmail"));
602 topLayout->addMultiCellWidget(mailClientGroup->groupBox(),11,11,0,1); 607 topLayout->addMultiCellWidget(mailClientGroup->groupBox(),11,11,0,1);
603 608
604 KPrefsDialogWidBool *htmlsave = 609 KPrefsDialogWidBool *htmlsave =
605 addWidBool(i18n("Export to HTML with every save"),&(KOPrefs::instance()->mHtmlWithSave), 610 addWidBool(i18n("Export to HTML with every save"),&(KOPrefs::instance()->mHtmlWithSave),
606 topFrame); 611 topFrame);
607 topLayout->addMultiCellWidget(htmlsave->checkBox(),12,12,0,1); 612 topLayout->addMultiCellWidget(htmlsave->checkBox(),12,12,0,1);
608 613
609 KPrefsWidRadios *destinationGroup = 614 KPrefsWidRadios *destinationGroup =
610 addWidRadios(i18n("New Events/Todos should"),&(KOPrefs::instance()->mDestination), 615 addWidRadios(i18n("New Events/Todos should"),&(KOPrefs::instance()->mDestination),
611 topFrame); 616 topFrame);
612 destinationGroup->addRadio(i18n("be added to the standard resource")); 617 destinationGroup->addRadio(i18n("be added to the standard resource"));
613 destinationGroup->addRadio(i18n("be asked which resource to use")); 618 destinationGroup->addRadio(i18n("be asked which resource to use"));
614 topLayout->addMultiCellWidget(destinationGroup->groupBox(),13,13,0,1); 619 topLayout->addMultiCellWidget(destinationGroup->groupBox(),13,13,0,1);
615 620
616 topLayout->setRowStretch(14,1); 621 topLayout->setRowStretch(14,1);
617 */ 622 */
618} 623}
619 624
620 625
621void KOPrefsDialog::setupTimeTab() 626void KOPrefsDialog::setupTimeTab()
622{ 627{
623 QFrame *topFrame = addPage(i18n("Time"),0,0); 628 Q3Frame *topFrame = addPage(i18n("Time"),0,0);
624 // DesktopIcon("clock",KIcon::SizeMedium)); 629 // DesktopIcon("clock",KIcon::SizeMedium));
625 630
626 QGridLayout *topLayout = new QGridLayout(topFrame,4,2); 631 Q3GridLayout *topLayout = new Q3GridLayout(topFrame,4,2);
627 topLayout->setSpacing(spacingHint()); 632 topLayout->setSpacing(spacingHint());
628 topLayout->setMargin(marginHint()); 633 topLayout->setMargin(marginHint());
629 634
630 QHBox *dummy = new QHBox(topFrame); 635 Q3HBox *dummy = new Q3HBox(topFrame);
631 KPrefsWidTime *dayBegins = 636 KPrefsWidTime *dayBegins =
632 addWidTime(i18n("Day begins at:"),&(KOPrefs::instance()->mDayBegins), 637 addWidTime(i18n("Day begins at:"),&(KOPrefs::instance()->mDayBegins),
633 dummy); 638 dummy);
634 //topLayout->addWidget(dayBegins->label(),2,0); 639 //topLayout->addWidget(dayBegins->label(),2,0);
635 640
636 //topLayout->addWidget(dayBegins->spinBox(),2,1); 641 //topLayout->addWidget(dayBegins->spinBox(),2,1);
637 topLayout->addMultiCellWidget(dummy,0,0,0,1); 642 topLayout->addMultiCellWidget(dummy,0,0,0,1);
638 643
639 topLayout->addWidget(new QLabel(i18n("Default appointment time:"), 644 topLayout->addWidget(new QLabel(i18n("Default appointment time:"),
640 topFrame),1,0); 645 topFrame),1,0);
641 mStartTimeSpin = new QSpinBox(0,23,1,topFrame); 646 mStartTimeSpin = new QSpinBox(0,23,1,topFrame);
642 mStartTimeSpin->setSuffix(":00"); 647 mStartTimeSpin->setSuffix(":00");
643 topLayout->addWidget(mStartTimeSpin,1,1); 648 topLayout->addWidget(mStartTimeSpin,1,1);
644 649
645 topLayout->addWidget(new QLabel(i18n("Def. duration of new app.:"), 650 topLayout->addWidget(new QLabel(i18n("Def. duration of new app.:"),
646 topFrame),2,0); 651 topFrame),2,0);
647 mDefaultDurationSpin = new QSpinBox(0,23,1,topFrame); 652 mDefaultDurationSpin = new QSpinBox(0,23,1,topFrame);
648 mDefaultDurationSpin->setSuffix(":00"); 653 mDefaultDurationSpin->setSuffix(":00");
649 topLayout->addWidget(mDefaultDurationSpin,2,1); 654 topLayout->addWidget(mDefaultDurationSpin,2,1);
650 655
651 QStringList alarmList; 656 QStringList alarmList;
652 alarmList << i18n("1 minute") << i18n("5 minutes") << i18n("10 minutes") 657 alarmList << i18n("1 minute") << i18n("5 minutes") << i18n("10 minutes")
653 << i18n("15 minutes") << i18n("30 minutes")<< i18n("1 hour")<< i18n("3 hours") << i18n("24 hours") ; 658 << i18n("15 minutes") << i18n("30 minutes")<< i18n("1 hour")<< i18n("3 hours") << i18n("24 hours") ;
654 topLayout->addWidget(new QLabel(i18n("Default alarm time:"),topFrame), 659 topLayout->addWidget(new QLabel(i18n("Default alarm time:"),topFrame),
655 3,0); 660 3,0);
656 mAlarmTimeCombo = new QComboBox(topFrame); 661 mAlarmTimeCombo = new QComboBox(topFrame);
657 mAlarmTimeCombo->insertStringList(alarmList); 662 mAlarmTimeCombo->insertStringList(alarmList);
658 topLayout->addWidget(mAlarmTimeCombo,3,1); 663 topLayout->addWidget(mAlarmTimeCombo,3,1);
659 664
660 665
661 QGroupBox *workingHoursGroup = new QGroupBox(1,Horizontal, 666 Q3GroupBox *workingHoursGroup = new Q3GroupBox(1,Qt::Horizontal,
662 i18n("Working Hours"), 667 i18n("Working Hours"),
663 topFrame); 668 topFrame);
664 topLayout->addMultiCellWidget(workingHoursGroup,4,4,0,1); 669 topLayout->addMultiCellWidget(workingHoursGroup,4,4,0,1);
665 workingHoursGroup->layout()->setSpacing( 0 ); 670 workingHoursGroup->layout()->setSpacing( 0 );
666 workingHoursGroup->layout()->setMargin( 4 ); 671 workingHoursGroup->layout()->setMargin( 4 );
667 QHBox *workStartBox = new QHBox(workingHoursGroup); 672 Q3HBox *workStartBox = new Q3HBox(workingHoursGroup);
668 // workStartBox->setMargin( 0 ); 673 // workStartBox->setMargin( 0 );
669 addWidTime(i18n("Daily starting hour:"), 674 addWidTime(i18n("Daily starting hour:"),
670 &(KOPrefs::instance()->mWorkingHoursStart),workStartBox); 675 &(KOPrefs::instance()->mWorkingHoursStart),workStartBox);
671 676
672 QHBox *workEndBox = new QHBox(workingHoursGroup); 677 Q3HBox *workEndBox = new Q3HBox(workingHoursGroup);
673 //workEndBox->setMargin( 0 ); 678 //workEndBox->setMargin( 0 );
674 addWidTime(i18n("Daily ending hour:"), 679 addWidTime(i18n("Daily ending hour:"),
675 &(KOPrefs::instance()->mWorkingHoursEnd),workEndBox); 680 &(KOPrefs::instance()->mWorkingHoursEnd),workEndBox);
676 QVBox *excludeBox = new QVBox(workingHoursGroup); 681 Q3VBox *excludeBox = new Q3VBox(workingHoursGroup);
677 //excludeBox->setMargin( 0 ); 682 //excludeBox->setMargin( 0 );
678 addWidBool(i18n("Exclude holidays"), 683 addWidBool(i18n("Exclude holidays"),
679 &(KOPrefs::instance()->mExcludeHolidays),excludeBox); 684 &(KOPrefs::instance()->mExcludeHolidays),excludeBox);
680 685
681 addWidBool(i18n("Exclude Saturdays"), 686 addWidBool(i18n("Exclude Saturdays"),
682 &(KOPrefs::instance()->mExcludeSaturdays),excludeBox); 687 &(KOPrefs::instance()->mExcludeSaturdays),excludeBox);
683 688
684// KPrefsDialogWidBool *marcusBainsShowSeconds = addWidBool(i18n("Show seconds on Marcus Bains line"), 689// KPrefsDialogWidBool *marcusBainsShowSeconds = addWidBool(i18n("Show seconds on Marcus Bains line"),
685 // &(KOPrefs::instance()->mMarcusBainsShowSeconds), 690 // &(KOPrefs::instance()->mMarcusBainsShowSeconds),
686 // topFrame); 691 // topFrame);
687// topLayout->addWidget(marcusBainsShowSeconds->checkBox(),5,0); 692// topLayout->addWidget(marcusBainsShowSeconds->checkBox(),5,0);
688 693
689 // topLayout->setRowStretch(6,1); 694 // topLayout->setRowStretch(6,1);
690} 695}
691 696
692 697
693void KOPrefsDialog::setupViewsTab() 698void KOPrefsDialog::setupViewsTab()
694{ 699{
695 700
696 QFrame *topFrame = addPage(i18n("Views"),0,0); 701 Q3Frame *topFrame = addPage(i18n("Views"),0,0);
697 // DesktopIcon("viewmag",KIcon::SizeMedium)); 702 // DesktopIcon("viewmag",KIcon::SizeMedium));
698 703
699 QGridLayout *topLayout = new QGridLayout(topFrame,6,1); 704 Q3GridLayout *topLayout = new Q3GridLayout(topFrame,6,1);
700 topLayout->setSpacing(spacingHint()); 705 topLayout->setSpacing(spacingHint());
701 topLayout->setMargin(marginHint()); 706 topLayout->setMargin(marginHint());
702 707
703// QBoxLayout *dayBeginsLayout = new QHBoxLayout; 708// QBoxLayout *dayBeginsLayout = new QHBoxLayout;
704// topLayout->addLayout(dayBeginsLayout,0,0); 709// topLayout->addLayout(dayBeginsLayout,0,0);
705 710
706// KPrefsWidTime *dayBegins = 711// KPrefsWidTime *dayBegins =
707// addWidTime(i18n("Day begins at:"),&(KOPrefs::instance()->mDayBegins), 712// addWidTime(i18n("Day begins at:"),&(KOPrefs::instance()->mDayBegins),
708// topFrame); 713// topFrame);
709// dayBeginsLayout->addWidget(dayBegins->label()); 714// dayBeginsLayout->addWidget(dayBegins->label());
710// dayBeginsLayout->addStretch(1); 715// dayBeginsLayout->addStretch(1);
711// dayBeginsLayout->addWidget(dayBegins->spinBox()); 716// dayBeginsLayout->addWidget(dayBegins->spinBox());
712 717
713// QBoxLayout *nextDaysLayout = new QHBoxLayout; 718// QBoxLayout *nextDaysLayout = new QHBoxLayout;
714// topLayout->addLayout(nextDaysLayout,1,0); 719// topLayout->addLayout(nextDaysLayout,1,0);
715// nextDaysLayout->addWidget(new QLabel(i18n("Days to show in Next-X-Days view:"),topFrame)); 720// nextDaysLayout->addWidget(new QLabel(i18n("Days to show in Next-X-Days view:"),topFrame));
716// mNextXDaysSpin = new QSpinBox(2,14,1,topFrame); 721// mNextXDaysSpin = new QSpinBox(2,14,1,topFrame);
717// nextDaysLayout->addStretch(1); 722// nextDaysLayout->addStretch(1);
718// nextDaysLayout->addWidget(mNextXDaysSpin); 723// nextDaysLayout->addWidget(mNextXDaysSpin);
719 724
720 725
721 int ii = 0; 726 int ii = 0;
722 KPrefsDialogWidBool *dummy = 727 KPrefsDialogWidBool *dummy =
723 addWidBool(i18n("Edit item on doubleclick (if not, show)"), 728 addWidBool(i18n("Edit item on doubleclick (if not, show)"),
724 &(KOPrefs::instance()->mEditOnDoubleClick),topFrame); 729 &(KOPrefs::instance()->mEditOnDoubleClick),topFrame);
725 topLayout->addWidget(dummy->checkBox(),ii++,0); 730 topLayout->addWidget(dummy->checkBox(),ii++,0);
726 731
727 dummy = 732 dummy =
728 addWidBool(i18n("Highlight current day in agenda"), 733 addWidBool(i18n("Highlight current day in agenda"),
729 &(KOPrefs::instance()->mHighlightCurrentDay),topFrame); 734 &(KOPrefs::instance()->mHighlightCurrentDay),topFrame);
730 topLayout->addWidget(dummy->checkBox(),ii++,0); 735 topLayout->addWidget(dummy->checkBox(),ii++,0);
731 736
732 dummy = 737 dummy =
733 addWidBool(i18n("Use light color for highlight current day"), 738 addWidBool(i18n("Use light color for highlight current day"),
734 &(KOPrefs::instance()->mUseHighlightLightColor),topFrame); 739 &(KOPrefs::instance()->mUseHighlightLightColor),topFrame);
735 topLayout->addWidget(dummy->checkBox(),ii++,0); 740 topLayout->addWidget(dummy->checkBox(),ii++,0);
736 741
737 KPrefsDialogWidBool *dailyRecur = 742 KPrefsDialogWidBool *dailyRecur =
738 addWidBool(i18n("Show events that recur daily in date nav."), 743 addWidBool(i18n("Show events that recur daily in date nav."),
739 &(KOPrefs::instance()->mDailyRecur),topFrame); 744 &(KOPrefs::instance()->mDailyRecur),topFrame);
740 topLayout->addWidget(dailyRecur->checkBox(),ii++,0); 745 topLayout->addWidget(dailyRecur->checkBox(),ii++,0);
741 746
742 KPrefsDialogWidBool *weeklyRecur = 747 KPrefsDialogWidBool *weeklyRecur =
743 addWidBool(i18n("Show ev. that recur weekly in date nav."), 748 addWidBool(i18n("Show ev. that recur weekly in date nav."),
744 &(KOPrefs::instance()->mWeeklyRecur),topFrame); 749 &(KOPrefs::instance()->mWeeklyRecur),topFrame);
745 topLayout->addWidget(weeklyRecur->checkBox(),ii++,0); 750 topLayout->addWidget(weeklyRecur->checkBox(),ii++,0);
746 if ( QApplication::desktop()->width() > 640 ) { 751 if ( QApplication::desktop()->width() > 640 ) {
747 752
748 KPrefsDialogWidBool *enableToolTips = 753 KPrefsDialogWidBool *enableToolTips =
749 addWidBool(i18n("Enable tooltips displaying summary of ev."), 754 addWidBool(i18n("Enable tooltips displaying summary of ev."),
750 &(KOPrefs::instance()->mEnableToolTips),topFrame); 755 &(KOPrefs::instance()->mEnableToolTips),topFrame);
751 topLayout->addWidget(enableToolTips->checkBox(),ii++,0); 756 topLayout->addWidget(enableToolTips->checkBox(),ii++,0);
752 757
753 } 758 }
754 KPrefsDialogWidBool *passwdk = 759 KPrefsDialogWidBool *passwdk =
755 addWidBool(i18n("Show parent To-Do's in What's Next view"), 760 addWidBool(i18n("Show parent To-Do's in What's Next view"),
756 &(KOPrefs::instance()->mWNViewShowsParents),topFrame); 761 &(KOPrefs::instance()->mWNViewShowsParents),topFrame);
757 topLayout->addWidget(passwdk->checkBox(), ii++,0); 762 topLayout->addWidget(passwdk->checkBox(), ii++,0);
758 763
759 passwdk = 764 passwdk =
760 addWidBool(i18n("Show location in What's Next view"), 765 addWidBool(i18n("Show location in What's Next view"),
761 &(KOPrefs::instance()->mWNViewShowLocation),topFrame); 766 &(KOPrefs::instance()->mWNViewShowLocation),topFrame);
762 topLayout->addWidget(passwdk->checkBox(), ii++,0); 767 topLayout->addWidget(passwdk->checkBox(), ii++,0);
763 768
764 passwdk = 769 passwdk =
765 addWidBool(i18n("Show Sync Events in WN/Agenda view"), 770 addWidBool(i18n("Show Sync Events in WN/Agenda view"),
766 &(KOPrefs::instance()->mShowSyncEvents),topFrame); 771 &(KOPrefs::instance()->mShowSyncEvents),topFrame);
767 topLayout->addWidget(passwdk->checkBox(), ii++,0); 772 topLayout->addWidget(passwdk->checkBox(), ii++,0);
768 773
769 774
770 KPrefsDialogWidBool *marcusBainsEnabled = 775 KPrefsDialogWidBool *marcusBainsEnabled =
771 addWidBool(i18n("Show Marcus Bains line"), 776 addWidBool(i18n("Show Marcus Bains line"),
772 &(KOPrefs::instance()->mMarcusBainsEnabled),topFrame); 777 &(KOPrefs::instance()->mMarcusBainsEnabled),topFrame);
773 topLayout->addWidget(marcusBainsEnabled->checkBox(),ii++,0); 778 topLayout->addWidget(marcusBainsEnabled->checkBox(),ii++,0);
774 779
775 780
776 // topLayout->addWidget(hourSizeGroup,ii++,0); 781 // topLayout->addWidget(hourSizeGroup,ii++,0);
777 // topLayout->addMultiCellWidget(hourSizeGroup,ii,ii,0,0); 782 // topLayout->addMultiCellWidget(hourSizeGroup,ii,ii,0,0);
778 //topLayout->setRowStretch(11,1); 783 //topLayout->setRowStretch(11,1);
779 784
780 785
781 786
782 787
783 788
784 789
785 topFrame = addPage(i18n("ViewChange"),0,0); 790 topFrame = addPage(i18n("ViewChange"),0,0);
786 // DesktopIcon("viewmag",KIcon::SizeMedium)); 791 // DesktopIcon("viewmag",KIcon::SizeMedium));
787 792
788 topLayout = new QGridLayout(topFrame,6,1); 793 topLayout = new Q3GridLayout(topFrame,6,1);
789 topLayout->setSpacing(spacingHint()); 794 topLayout->setSpacing(spacingHint());
790 topLayout->setMargin(marginHint()); 795 topLayout->setMargin(marginHint());
791 ii = 0; 796 ii = 0;
792 797
793 798
794 dummy = 799 dummy =
795 addWidBool(i18n("Hold fullscreen on view change"), 800 addWidBool(i18n("Hold fullscreen on view change"),
796 &(KOPrefs::instance()->mViewChangeHoldFullscreen),topFrame); 801 &(KOPrefs::instance()->mViewChangeHoldFullscreen),topFrame);
797 topLayout->addWidget(dummy->checkBox(),ii++,0); 802 topLayout->addWidget(dummy->checkBox(),ii++,0);
798 803
799 dummy = 804 dummy =
800 addWidBool(i18n("Hold non-fullscreen on view change"), 805 addWidBool(i18n("Hold non-fullscreen on view change"),
801 &(KOPrefs::instance()->mViewChangeHoldNonFullscreen),topFrame); 806 &(KOPrefs::instance()->mViewChangeHoldNonFullscreen),topFrame);
802 topLayout->addWidget(dummy->checkBox(),ii++,0); 807 topLayout->addWidget(dummy->checkBox(),ii++,0);
803 808
804 809
805 KPrefsDialogWidBool *fullViewTodo = 810 KPrefsDialogWidBool *fullViewTodo =
806 addWidBool(i18n("Event list view uses full window"), 811 addWidBool(i18n("Event list view uses full window"),
807 &(KOPrefs::instance()->mFullViewTodo),topFrame); 812 &(KOPrefs::instance()->mFullViewTodo),topFrame);
808 topLayout->addWidget(fullViewTodo->checkBox(),ii++,0); 813 topLayout->addWidget(fullViewTodo->checkBox(),ii++,0);
809 814
810 KPrefsDialogWidBool *fullViewMonth = 815 KPrefsDialogWidBool *fullViewMonth =
811 addWidBool(i18n("Next days view uses full window"), 816 addWidBool(i18n("Next days view uses full window"),
812 &(KOPrefs::instance()->mFullViewMonth),topFrame); 817 &(KOPrefs::instance()->mFullViewMonth),topFrame);
813 topLayout->addWidget(fullViewMonth->checkBox(),ii++,0); 818 topLayout->addWidget(fullViewMonth->checkBox(),ii++,0);
814 819
815 dummy = 820 dummy =
816 addWidBool(i18n("Set agenda to DayBeginsAt on change"), 821 addWidBool(i18n("Set agenda to DayBeginsAt on change"),
817 &(KOPrefs::instance()->mSetTimeToDayStartAt),topFrame); 822 &(KOPrefs::instance()->mSetTimeToDayStartAt),topFrame);
818 topLayout->addWidget(dummy->checkBox(),ii++,0); 823 topLayout->addWidget(dummy->checkBox(),ii++,0);
819 824
820 dummy = 825 dummy =
821 addWidBool(i18n("Set agenda to current time on change"), 826 addWidBool(i18n("Set agenda to current time on change"),
822 &(KOPrefs::instance()->mCenterOnCurrentTime),topFrame); 827 &(KOPrefs::instance()->mCenterOnCurrentTime),topFrame);
823 topLayout->addWidget(dummy->checkBox(),ii++,0); 828 topLayout->addWidget(dummy->checkBox(),ii++,0);
824 829
825 dummy = 830 dummy =
826 addWidBool(i18n("Listview uses monthly timespan"), 831 addWidBool(i18n("Listview uses monthly timespan"),
827 &(KOPrefs::instance()->mListViewMonthTimespan),topFrame); 832 &(KOPrefs::instance()->mListViewMonthTimespan),topFrame);
828 topLayout->addWidget(dummy->checkBox(),ii++,0); 833 topLayout->addWidget(dummy->checkBox(),ii++,0);
829 dummy = 834 dummy =
830 addWidBool(i18n("Highlight selection in Time Edit"), 835 addWidBool(i18n("Highlight selection in Time Edit"),
831 &(KOPrefs::instance()->mHightlightDateTimeEdit),topFrame); 836 &(KOPrefs::instance()->mHightlightDateTimeEdit),topFrame);
832 topLayout->addWidget( dummy->checkBox(), ii++,0); 837 topLayout->addWidget( dummy->checkBox(), ii++,0);
833 838
834 839
835 840
836 841
837 842
838 topFrame = addPage(i18n("Month View"),0,0); 843 topFrame = addPage(i18n("Month View"),0,0);
839 // DesktopIcon("viewmag",KIcon::SizeMedium)); 844 // DesktopIcon("viewmag",KIcon::SizeMedium));
840 845
841 topLayout = new QGridLayout(topFrame,5,1); 846 topLayout = new Q3GridLayout(topFrame,5,1);
842 topLayout->setSpacing(spacingHint()); 847 topLayout->setSpacing(spacingHint());
843 topLayout->setMargin(marginHint()); 848 topLayout->setMargin(marginHint());
844 ii = 0; 849 ii = 0;
845 QLabel *lab; 850 QLabel *lab;
846 QHBox *habo = new QHBox( topFrame ); 851 Q3HBox *habo = new Q3HBox( topFrame );
847 if ( QApplication::desktop()->width() < 320 ) { 852 if ( QApplication::desktop()->width() < 320 ) {
848 lab = new QLabel ( i18n("Show events that recur "), topFrame ); 853 lab = new QLabel ( i18n("Show events that recur "), topFrame );
849 topLayout->addMultiCellWidget(lab,ii, ii,0,1); 854 topLayout->addMultiCellWidget(lab,ii, ii,0,1);
850 ii++; 855 ii++;
851 856
852 } else { 857 } else {
853 new QLabel ( i18n("Show events that recur "), habo ); 858 new QLabel ( i18n("Show events that recur "), habo );
854 859
855 } 860 }
856 dailyRecur = 861 dailyRecur =
857 addWidBool(i18n("daily"), 862 addWidBool(i18n("daily"),
858 &(KOPrefs::instance()->mMonthDailyRecur),habo); 863 &(KOPrefs::instance()->mMonthDailyRecur),habo);
859 // topLayout->addWidget(dailyRecur->checkBox(),ii++,0); 864 // topLayout->addWidget(dailyRecur->checkBox(),ii++,0);
860 865
861 weeklyRecur = 866 weeklyRecur =
862 addWidBool(i18n("weekly"), 867 addWidBool(i18n("weekly"),
863 &(KOPrefs::instance()->mMonthWeeklyRecur),habo); 868 &(KOPrefs::instance()->mMonthWeeklyRecur),habo);
864 topLayout->addMultiCellWidget(habo,ii, ii,0,1); 869 topLayout->addMultiCellWidget(habo,ii, ii,0,1);
865 ii++; 870 ii++;
866 871
867 872
868 habo = new QHBox( topFrame ); 873 habo = new Q3HBox( topFrame );
869 if ( QApplication::desktop()->width() < 320 ) { 874 if ( QApplication::desktop()->width() < 320 ) {
870 lab = new QLabel (i18n("Show in every cell ") , topFrame ); 875 lab = new QLabel (i18n("Show in every cell ") , topFrame );
871 topLayout->addMultiCellWidget(lab,ii, ii,0,1); 876 topLayout->addMultiCellWidget(lab,ii, ii,0,1);
872 ii++; 877 ii++;
873 878
874 } else { 879 } else {
875 new QLabel ( i18n("Show in every cell "), habo ); 880 new QLabel ( i18n("Show in every cell "), habo );
876 } 881 }
877 weeklyRecur = 882 weeklyRecur =
878 addWidBool(i18n("short month"), 883 addWidBool(i18n("short month"),
879 &(KOPrefs::instance()->mMonthShowShort),habo); 884 &(KOPrefs::instance()->mMonthShowShort),habo);
880 weeklyRecur = 885 weeklyRecur =
881 addWidBool(i18n("icons"), 886 addWidBool(i18n("icons"),
882 &(KOPrefs::instance()->mMonthShowIcons),habo); 887 &(KOPrefs::instance()->mMonthShowIcons),habo);
883 888
884 topLayout->addMultiCellWidget(habo,ii, ii,0,1); 889 topLayout->addMultiCellWidget(habo,ii, ii,0,1);
885 ii++; 890 ii++;
886#ifdef DESKTOP_VERSION 891#ifdef DESKTOP_VERSION
887 KPrefsDialogWidBool *enableMonthScroll = 892 KPrefsDialogWidBool *enableMonthScroll =
888 addWidBool(i18n("Enable scrollbars in month view cells"), 893 addWidBool(i18n("Enable scrollbars in month view cells"),
889 &(KOPrefs::instance()->mEnableMonthScroll),topFrame); 894 &(KOPrefs::instance()->mEnableMonthScroll),topFrame);
890 topLayout->addWidget(enableMonthScroll->checkBox(),ii++,0); 895 topLayout->addWidget(enableMonthScroll->checkBox(),ii++,0);
891#endif 896#endif
892 897
893 dummy = 898 dummy =
894 addWidBool(i18n("Show Sat/Sun together"), 899 addWidBool(i18n("Show Sat/Sun together"),
895 &(KOPrefs::instance()->mMonthViewSatSunTog),topFrame); 900 &(KOPrefs::instance()->mMonthViewSatSunTog),topFrame);
896 topLayout->addWidget(dummy->checkBox(),ii++,0); 901 topLayout->addWidget(dummy->checkBox(),ii++,0);
897 902
898 KPrefsDialogWidBool *coloredCategoriesInMonthView = 903 KPrefsDialogWidBool *coloredCategoriesInMonthView =
899 addWidBool(i18n("Month view uses category colors"), 904 addWidBool(i18n("Month view uses category colors"),
900 &(KOPrefs::instance()->mMonthViewUsesCategoryColor),topFrame); 905 &(KOPrefs::instance()->mMonthViewUsesCategoryColor),topFrame);
901 topLayout->addWidget(coloredCategoriesInMonthView->checkBox(),ii++,0); 906 topLayout->addWidget(coloredCategoriesInMonthView->checkBox(),ii++,0);
902 907
903 dummy = 908 dummy =
904 addWidBool(i18n("Categorie colors are applied to text"), 909 addWidBool(i18n("Categorie colors are applied to text"),
905 &(KOPrefs::instance()->mMonthViewUsesForegroundColor),topFrame); 910 &(KOPrefs::instance()->mMonthViewUsesForegroundColor),topFrame);
906 topLayout->addWidget(dummy->checkBox(),ii++,0); 911 topLayout->addWidget(dummy->checkBox(),ii++,0);
907 coloredCategoriesInMonthView = 912 coloredCategoriesInMonthView =
908 addWidBool(i18n("Month view uses day colors"), 913 addWidBool(i18n("Month view uses day colors"),
909 &(KOPrefs::instance()->mMonthViewUsesDayColors),topFrame); 914 &(KOPrefs::instance()->mMonthViewUsesDayColors),topFrame);
910 topLayout->addWidget(coloredCategoriesInMonthView->checkBox(),ii++,0); 915 topLayout->addWidget(coloredCategoriesInMonthView->checkBox(),ii++,0);
911 916
912 KPrefsWidColor *holidayColor = 917 KPrefsWidColor *holidayColor =
913 addWidColor(i18n("Day color odd months"), 918 addWidColor(i18n("Day color odd months"),
914 &(KOPrefs::instance()->mMonthViewOddColor),topFrame); 919 &(KOPrefs::instance()->mMonthViewOddColor),topFrame);
915 topLayout->addWidget(holidayColor->label(),ii,0); 920 topLayout->addWidget(holidayColor->label(),ii,0);
916 topLayout->addWidget(holidayColor->button(),ii++,1); 921 topLayout->addWidget(holidayColor->button(),ii++,1);
917 922
918 holidayColor = 923 holidayColor =
919 addWidColor(i18n("Day color even months"), 924 addWidColor(i18n("Day color even months"),
920 &(KOPrefs::instance()->mMonthViewEvenColor),topFrame); 925 &(KOPrefs::instance()->mMonthViewEvenColor),topFrame);
921 topLayout->addWidget(holidayColor->label(),ii,0); 926 topLayout->addWidget(holidayColor->label(),ii,0);
922 topLayout->addWidget(holidayColor->button(),ii++,1); 927 topLayout->addWidget(holidayColor->button(),ii++,1);
923 928
924 929
925 holidayColor = 930 holidayColor =
926 addWidColor(i18n("Color for Sundays + category \"Holiday\""), 931 addWidColor(i18n("Color for Sundays + category \"Holiday\""),
927 &(KOPrefs::instance()->mMonthViewHolidayColor),topFrame); 932 &(KOPrefs::instance()->mMonthViewHolidayColor),topFrame);
928 topLayout->addWidget(holidayColor->label(),ii,0); 933 topLayout->addWidget(holidayColor->label(),ii,0);
929 topLayout->addWidget(holidayColor->button(),ii++,1); 934 topLayout->addWidget(holidayColor->button(),ii++,1);
930 935
931 // *********************** Todo View 936 // *********************** Todo View
932 937
933 topFrame = addPage(i18n("Todo View"),0,0); 938 topFrame = addPage(i18n("Todo View"),0,0);
934 // DesktopIcon("viewmag",KIcon::SizeMedium)); 939 // DesktopIcon("viewmag",KIcon::SizeMedium));
935 940
936 topLayout = new QGridLayout(topFrame,4,1); 941 topLayout = new Q3GridLayout(topFrame,4,1);
937 topLayout->setSpacing(spacingHint()); 942 topLayout->setSpacing(spacingHint());
938 topLayout->setMargin(marginHint()); 943 topLayout->setMargin(marginHint());
939 ii = 0; 944 ii = 0;
940 945
941 KPrefsDialogWidBool *showCompletedTodo = 946 KPrefsDialogWidBool *showCompletedTodo =
942 addWidBool(i18n("To-do view shows completed Todos"), 947 addWidBool(i18n("To-do view shows completed Todos"),
943 &(KOPrefs::instance()->mShowCompletedTodo),topFrame); 948 &(KOPrefs::instance()->mShowCompletedTodo),topFrame);
944 topLayout->addWidget(showCompletedTodo->checkBox(),ii++,0); 949 topLayout->addWidget(showCompletedTodo->checkBox(),ii++,0);
945 dummy = 950 dummy =
946 addWidBool(i18n("To-do view shows complete as 'xx %'"), 951 addWidBool(i18n("To-do view shows complete as 'xx %'"),
947 &(KOPrefs::instance()->mTodoViewShowsPercentage),topFrame); 952 &(KOPrefs::instance()->mTodoViewShowsPercentage),topFrame);
948 topLayout->addWidget(dummy->checkBox(),ii++,0); 953 topLayout->addWidget(dummy->checkBox(),ii++,0);
949 954
950 dummy = 955 dummy =
951 addWidBool(i18n("Small To-do view uses smaller font"), 956 addWidBool(i18n("Small To-do view uses smaller font"),
952 &(KOPrefs::instance()->mTodoViewUsesSmallFont),topFrame); 957 &(KOPrefs::instance()->mTodoViewUsesSmallFont),topFrame);
953 topLayout->addWidget(dummy->checkBox(),ii++,0); 958 topLayout->addWidget(dummy->checkBox(),ii++,0);
954 959
955 960
956 961
957 dummy = 962 dummy =
958 addWidBool(i18n("Todo view uses category colors"), 963 addWidBool(i18n("Todo view uses category colors"),
959 &(KOPrefs::instance()->mTodoViewUsesCatColors),topFrame); 964 &(KOPrefs::instance()->mTodoViewUsesCatColors),topFrame);
960 topLayout->addWidget(dummy->checkBox(),ii++,0); 965 topLayout->addWidget(dummy->checkBox(),ii++,0);
961 966
962 967
963 QWidget* wid = new QWidget( topFrame ); 968 QWidget* wid = new QWidget( topFrame );
964 // Todo due today color 969 // Todo due today color
965 KPrefsWidColor *todoDueTodayColor = 970 KPrefsWidColor *todoDueTodayColor =
966 addWidColor(i18n("Todo due today color:"), 971 addWidColor(i18n("Todo due today color:"),
967 &(KOPrefs::instance()->mTodoDueTodayColor),wid); 972 &(KOPrefs::instance()->mTodoDueTodayColor),wid);
968 QHBoxLayout *widLayout = new QHBoxLayout(wid); 973 Q3HBoxLayout *widLayout = new Q3HBoxLayout(wid);
969 widLayout->addWidget( todoDueTodayColor->label() ); 974 widLayout->addWidget( todoDueTodayColor->label() );
970 widLayout->addWidget( todoDueTodayColor->button() ); 975 widLayout->addWidget( todoDueTodayColor->button() );
971 topLayout->addWidget(wid,ii++,0); 976 topLayout->addWidget(wid,ii++,0);
972 //topLayout->addWidget(todoDueTodayColor->button(),ii++,1); 977 //topLayout->addWidget(todoDueTodayColor->button(),ii++,1);
973 978
974 // Todo overdue color 979 // Todo overdue color
975 wid = new QWidget( topFrame ); 980 wid = new QWidget( topFrame );
976 widLayout = new QHBoxLayout(wid); 981 widLayout = new Q3HBoxLayout(wid);
977 KPrefsWidColor *todoOverdueColor = 982 KPrefsWidColor *todoOverdueColor =
978 addWidColor(i18n("Todo overdue color:"), 983 addWidColor(i18n("Todo overdue color:"),
979 &(KOPrefs::instance()->mTodoOverdueColor),wid); 984 &(KOPrefs::instance()->mTodoOverdueColor),wid);
980 widLayout->addWidget(todoOverdueColor->label()); 985 widLayout->addWidget(todoOverdueColor->label());
981 widLayout->addWidget(todoOverdueColor->button()); 986 widLayout->addWidget(todoOverdueColor->button());
982 topLayout->addWidget(wid,ii++,0); 987 topLayout->addWidget(wid,ii++,0);
983 988
984 dummy = 989 dummy =
985 addWidBool(i18n("Colors are applied to text"), 990 addWidBool(i18n("Colors are applied to text"),
986 &(KOPrefs::instance()->mTodoViewUsesForegroundColor),topFrame); 991 &(KOPrefs::instance()->mTodoViewUsesForegroundColor),topFrame);
987 topLayout->addWidget(dummy->checkBox(),ii++,0); 992 topLayout->addWidget(dummy->checkBox(),ii++,0);
988 993
989 dummy = 994 dummy =
990 addWidBool(i18n("Allday Agenda view shows todos"), 995 addWidBool(i18n("Allday Agenda view shows todos"),
991 &(KOPrefs::instance()->mShowTodoInAgenda),topFrame); 996 &(KOPrefs::instance()->mShowTodoInAgenda),topFrame);
992 topLayout->addWidget(dummy->checkBox(),ii++,0); 997 topLayout->addWidget(dummy->checkBox(),ii++,0);
993 998
994 999
995 1000
996 1001
997 topFrame = addPage(i18n("Alarm"),0,0); 1002 topFrame = addPage(i18n("Alarm"),0,0);
998 // DesktopIcon("viewmag",KIcon::SizeMedium)); 1003 // DesktopIcon("viewmag",KIcon::SizeMedium));
999 1004
1000 topLayout = new QGridLayout(topFrame,2,1); 1005 topLayout = new Q3GridLayout(topFrame,2,1);
1001 topLayout->setSpacing(spacingHint()); 1006 topLayout->setSpacing(spacingHint());
1002 topLayout->setMargin(marginHint()); 1007 topLayout->setMargin(marginHint());
1003 int iii = 0; 1008 int iii = 0;
1004 1009
1005 dummy = 1010 dummy =
1006 addWidBool(i18n("Use internal alarm notification"), 1011 addWidBool(i18n("Use internal alarm notification"),
1007 &(KOPrefs::instance()->mUseInternalAlarmNotification),topFrame); 1012 &(KOPrefs::instance()->mUseInternalAlarmNotification),topFrame);
1008 topLayout->addWidget(dummy->checkBox(),iii++,0); 1013 topLayout->addWidget(dummy->checkBox(),iii++,0);
1009 lab = new QLabel( i18n("Note: KO/Pi must be running to notify you about an alarm. Recommended for use on Zaurus: Disable this option and install KO/Pi alarm applet.\n"), topFrame); 1014 lab = new QLabel( i18n("Note: KO/Pi must be running to notify you about an alarm. Recommended for use on Zaurus: Disable this option and install KO/Pi alarm applet.\n"), topFrame);
1010 1015
1011 topLayout->addWidget(lab ,iii++,0); 1016 topLayout->addWidget(lab ,iii++,0);
1012#ifndef DESKTOP_VERSION 1017#ifndef DESKTOP_VERSION
1013 lab->setAlignment( AlignLeft|WordBreak|AlignTop); 1018 lab->setAlignment( Qt::AlignLeft|Qt::TextWordWrap|Qt::AlignTop);
1014#else 1019#else
1015 lab->setAlignment( AlignLeft|BreakAnywhere|WordBreak|AlignTop); 1020 lab->setAlignment( Qt::AlignLeft|Qt::TextWrapAnywhere|Qt::TextWordWrap|Qt::AlignTop);
1016 lab->setSizePolicy( QSizePolicy( QSizePolicy::Ignored , QSizePolicy::Ignored,true) ); 1021 lab->setSizePolicy( QSizePolicy( QSizePolicy::Ignored , QSizePolicy::Ignored,true) );
1017#endif 1022#endif
1018 1023
1019 QHBox* dummyBox = new QHBox(topFrame); 1024 Q3HBox* dummyBox = new Q3HBox(topFrame);
1020 new QLabel(i18n("Play beeps count:"),dummyBox); 1025 new QLabel(i18n("Play beeps count:"),dummyBox);
1021 mAlarmPlayBeeps = new QSpinBox(0,500,1,dummyBox); 1026 mAlarmPlayBeeps = new QSpinBox(0,500,1,dummyBox);
1022 topLayout->addWidget(dummyBox,iii++,0); 1027 topLayout->addWidget(dummyBox,iii++,0);
1023 1028
1024 dummyBox = new QHBox(topFrame); 1029 dummyBox = new Q3HBox(topFrame);
1025 new QLabel(i18n("Beeps interval in sec:"),dummyBox); 1030 new QLabel(i18n("Beeps interval in sec:"),dummyBox);
1026 mAlarmBeepInterval = new QSpinBox(1,600,1,dummyBox); 1031 mAlarmBeepInterval = new QSpinBox(1,600,1,dummyBox);
1027 topLayout->addWidget(dummyBox,iii++,0); 1032 topLayout->addWidget(dummyBox,iii++,0);
1028 1033
1029 dummyBox = new QHBox(topFrame); 1034 dummyBox = new Q3HBox(topFrame);
1030 new QLabel(i18n("Default suspend time in min:"),dummyBox); 1035 new QLabel(i18n("Default suspend time in min:"),dummyBox);
1031 mAlarmSuspendTime = new QSpinBox(1,600,1,dummyBox); 1036 mAlarmSuspendTime = new QSpinBox(1,600,1,dummyBox);
1032 topLayout->addWidget(dummyBox,iii++,0); 1037 topLayout->addWidget(dummyBox,iii++,0);
1033 1038
1034 dummyBox = new QHBox(topFrame); 1039 dummyBox = new Q3HBox(topFrame);
1035 new QLabel(i18n("Auto suspend count:"),dummyBox); 1040 new QLabel(i18n("Auto suspend count:"),dummyBox);
1036 mAlarmSuspendCount = new QSpinBox(0,60,1,dummyBox); 1041 mAlarmSuspendCount = new QSpinBox(0,60,1,dummyBox);
1037 topLayout->addWidget(dummyBox,iii++,0); 1042 topLayout->addWidget(dummyBox,iii++,0);
1038 1043
1039 1044
1040 1045
1041 1046
1042 1047
1043 1048
1044 1049
1045 QHBox* hbo = new QHBox ( topFrame ); 1050 Q3HBox* hbo = new Q3HBox ( topFrame );
1046 mDefaultAlarmFile = new QLineEdit(hbo); 1051 mDefaultAlarmFile = new QLineEdit(hbo);
1047 QPushButton * loadTemplate = new QPushButton(hbo); 1052 QPushButton * loadTemplate = new QPushButton(hbo);
1048 QPixmap icon; 1053 QPixmap icon;
1049 if ( QApplication::desktop()->width() < 321 ) 1054 if ( QApplication::desktop()->width() < 321 )
1050 icon = SmallIcon("fileimport16"); 1055 icon = SmallIcon("fileimport16");
1051 else 1056 else
1052 icon = SmallIcon("fileimport"); 1057 icon = SmallIcon("fileimport");
1053 loadTemplate->setIconSet (icon ) ; 1058 loadTemplate->setIconSet (icon ) ;
1054 connect( loadTemplate, SIGNAL( clicked() ), this , SLOT( selectSoundFile() ) ); 1059 connect( loadTemplate, SIGNAL( clicked() ), this , SLOT( selectSoundFile() ) );
1055 int size = loadTemplate->sizeHint().height(); 1060 int size = loadTemplate->sizeHint().height();
1056 loadTemplate->setFixedSize( size, size ); 1061 loadTemplate->setFixedSize( size, size );
1057 //lab = new QLabel( i18n("This setting is useless for 5500 user!"), topFrame); 1062 //lab = new QLabel( i18n("This setting is useless for 5500 user!"), topFrame);
1058 // topLayout->addWidget(lab ,iii++,0); 1063 // topLayout->addWidget(lab ,iii++,0);
1059 lab = new QLabel( i18n("Alarm *.wav file for newly created alarm:"), topFrame); 1064 lab = new QLabel( i18n("Alarm *.wav file for newly created alarm:"), topFrame);
1060 topLayout->addWidget(lab ,iii++,0); 1065 topLayout->addWidget(lab ,iii++,0);
1061 topLayout->addWidget(hbo,iii++,0); 1066 topLayout->addWidget(hbo,iii++,0);
1062 // lab = new QLabel( i18n("Note: This does not mean, that for every alarm this file is replayed. This file here is associated with a newly created alarm."), topFrame); 1067 // lab = new QLabel( i18n("Note: This does not mean, that for every alarm this file is replayed. This file here is associated with a newly created alarm."), topFrame);
1063 1068
1064// topLayout->addWidget(lab ,iii++,0); 1069// topLayout->addWidget(lab ,iii++,0);
1065// #ifndef DESKTOP_VERSION 1070// #ifndef DESKTOP_VERSION
1066// lab->setAlignment( AlignLeft|WordBreak|AlignTop); 1071// lab->setAlignment( AlignLeft|WordBreak|AlignTop);
1067// #else 1072// #else
1068// lab->setAlignment( AlignLeft|BreakAnywhere|WordBreak|AlignTop); 1073// lab->setAlignment( AlignLeft|BreakAnywhere|WordBreak|AlignTop);
1069// lab->setSizePolicy( QSizePolicy( QSizePolicy::Ignored , QSizePolicy::Ignored,true) ); 1074// lab->setSizePolicy( QSizePolicy( QSizePolicy::Ignored , QSizePolicy::Ignored,true) );
1070// #endif 1075// #endif
1071 1076
1072 1077
1073} 1078}
1074 1079
1075void KOPrefsDialog::selectSoundFile() 1080void KOPrefsDialog::selectSoundFile()
1076{ 1081{
1077 QString fileName = mDefaultAlarmFile->text(); 1082 QString fileName = mDefaultAlarmFile->text();
1078 fileName = KFileDialog::getSaveFileName( mDefaultAlarmFile->text() , "Choose default alarm file", this ); 1083 fileName = KFileDialog::getSaveFileName( mDefaultAlarmFile->text() , "Choose default alarm file", this );
1079 if ( fileName.length() > 0 ) 1084 if ( fileName.length() > 0 )
1080 mDefaultAlarmFile->setText( fileName ); 1085 mDefaultAlarmFile->setText( fileName );
1081} 1086}
1082void KOPrefsDialog::setupFontsTab() 1087void KOPrefsDialog::setupFontsTab()
1083{ 1088{
1084 1089
1085 QFrame *topFrame = addPage(i18n("Fonts"),0,0); 1090 Q3Frame *topFrame = addPage(i18n("Fonts"),0,0);
1086 // DesktopIcon("fonts",KIcon::SizeMedium)); 1091 // DesktopIcon("fonts",KIcon::SizeMedium));
1087 1092
1088 QGridLayout *topLayout = new QGridLayout(topFrame,7,3); 1093 Q3GridLayout *topLayout = new Q3GridLayout(topFrame,7,3);
1089 topLayout->setSpacing(1); 1094 topLayout->setSpacing(1);
1090 topLayout->setMargin(3); 1095 topLayout->setMargin(3);
1091 KPrefsDialogWidFont * tVFont; 1096 KPrefsDialogWidFont * tVFont;
1092 int i = 0; 1097 int i = 0;
1093 KPrefsDialogWidFont *timeLabelsFont = 1098 KPrefsDialogWidFont *timeLabelsFont =
1094 addWidFont(i18n("23"),i18n("DateNavigator:(nr)"), 1099 addWidFont(i18n("23"),i18n("DateNavigator:(nr)"),
1095 &(KOPrefs::instance()->mDateNavigatorFont),topFrame); 1100 &(KOPrefs::instance()->mDateNavigatorFont),topFrame);
1096 topLayout->addWidget(timeLabelsFont->label(),i,0); 1101 topLayout->addWidget(timeLabelsFont->label(),i,0);
1097 topLayout->addWidget(timeLabelsFont->preview(),i,1); 1102 topLayout->addWidget(timeLabelsFont->preview(),i,1);
1098 topLayout->addWidget(timeLabelsFont->button(),i,2); 1103 topLayout->addWidget(timeLabelsFont->button(),i,2);
1099 ++i; 1104 ++i;
1100 1105
1101 1106
1102 timeLabelsFont = 1107 timeLabelsFont =
1103 addWidFont(i18n("Mon 15"),i18n("Date Labels:"), 1108 addWidFont(i18n("Mon 15"),i18n("Date Labels:"),
1104 &(KOPrefs::instance()->mTimeLabelsFont),topFrame); 1109 &(KOPrefs::instance()->mTimeLabelsFont),topFrame);
1105 topLayout->addWidget(timeLabelsFont->label(),i,0); 1110 topLayout->addWidget(timeLabelsFont->label(),i,0);
1106 topLayout->addWidget(timeLabelsFont->preview(),i,1); 1111 topLayout->addWidget(timeLabelsFont->preview(),i,1);
1107 topLayout->addWidget(timeLabelsFont->button(),i,2); 1112 topLayout->addWidget(timeLabelsFont->button(),i,2);
1108 ++i; 1113 ++i;
1109 1114
1110 KPrefsDialogWidFont *timeBarFont = 1115 KPrefsDialogWidFont *timeBarFont =
1111 addWidFont(KGlobal::locale()->formatTime(QTime(12,34)),i18n("Time bar:"), 1116 addWidFont(KGlobal::locale()->formatTime(QTime(12,34)),i18n("Time bar:"),
1112 &(KOPrefs::instance()->mTimeBarFont),topFrame); 1117 &(KOPrefs::instance()->mTimeBarFont),topFrame);
1113 topLayout->addWidget(timeBarFont->label(),i,0); 1118 topLayout->addWidget(timeBarFont->label(),i,0);
1114 topLayout->addWidget(timeBarFont->preview(),i,1); 1119 topLayout->addWidget(timeBarFont->preview(),i,1);
1115 topLayout->addWidget(timeBarFont->button(),i,2); 1120 topLayout->addWidget(timeBarFont->button(),i,2);
1116 ++i; 1121 ++i;
1117 1122
1118 1123
1119 KPrefsDialogWidFont *marcusBainsFont = 1124 KPrefsDialogWidFont *marcusBainsFont =
1120 addWidFont(KGlobal::locale()->formatTime(QTime(12,34,23)),i18n("M. Bains line:"), 1125 addWidFont(KGlobal::locale()->formatTime(QTime(12,34,23)),i18n("M. Bains line:"),
1121 &(KOPrefs::instance()->mMarcusBainsFont),topFrame); 1126 &(KOPrefs::instance()->mMarcusBainsFont),topFrame);
1122 topLayout->addWidget(marcusBainsFont->label(),i,0); 1127 topLayout->addWidget(marcusBainsFont->label(),i,0);
1123 topLayout->addWidget(marcusBainsFont->preview(),i,1); 1128 topLayout->addWidget(marcusBainsFont->preview(),i,1);
1124 topLayout->addWidget(marcusBainsFont->button(),i,2); 1129 topLayout->addWidget(marcusBainsFont->button(),i,2);
1125 ++i; 1130 ++i;
1126 1131
1127 tVFont = 1132 tVFont =
1128 addWidFont(i18n("Summary"),i18n("Event Viewer:"), 1133 addWidFont(i18n("Summary"),i18n("Event Viewer:"),
1129 &(KOPrefs::instance()->mEventViewFont),topFrame); 1134 &(KOPrefs::instance()->mEventViewFont),topFrame);
1130 topLayout->addWidget(tVFont->label(),i,0); 1135 topLayout->addWidget(tVFont->label(),i,0);
1131 topLayout->addWidget(tVFont->preview(),i,1); 1136 topLayout->addWidget(tVFont->preview(),i,1);
1132 topLayout->addWidget(tVFont->button(),i,2); 1137 topLayout->addWidget(tVFont->button(),i,2);
1133 ++i; 1138 ++i;
1134 1139
1135 1140
1136 1141
1137 tVFont = 1142 tVFont =
1138 addWidFont(i18n("Details"),i18n("EditorBox:"), 1143 addWidFont(i18n("Details"),i18n("EditorBox:"),
1139 &(KOPrefs::instance()->mEditBoxFont),topFrame); 1144 &(KOPrefs::instance()->mEditBoxFont),topFrame);
1140 topLayout->addWidget(tVFont->label(),i,0); 1145 topLayout->addWidget(tVFont->label(),i,0);
1141 topLayout->addWidget(tVFont->preview(),i,1); 1146 topLayout->addWidget(tVFont->preview(),i,1);
1142 topLayout->addWidget(tVFont->button(),i,2); 1147 topLayout->addWidget(tVFont->button(),i,2);
1143 ++i; 1148 ++i;
1144 1149
1145 1150
1146 1151
1147 topLayout->setColStretch(1,1); 1152 topLayout->setColStretch(1,1);
1148 topLayout->setRowStretch(4,1); 1153 topLayout->setRowStretch(4,1);
1149 1154
1150 1155
1151 i = 0; 1156 i = 0;
1152 topFrame = addPage(i18n("View Fonts"),0, 1157 topFrame = addPage(i18n("View Fonts"),0,
1153 DesktopIcon("fonts",KIcon::SizeMedium)); 1158 DesktopIcon("fonts",KIcon::SizeMedium));
1154 1159
1155 topLayout = new QGridLayout(topFrame,7,3); 1160 topLayout = new Q3GridLayout(topFrame,7,3);
1156 topLayout->setSpacing(1); 1161 topLayout->setSpacing(1);
1157 topLayout->setMargin(3); 1162 topLayout->setMargin(3);
1158 1163
1159 tVFont = 1164 tVFont =
1160 addWidFont(i18n("Configure KO"),i18n("What's Next View:"), 1165 addWidFont(i18n("Configure KO"),i18n("What's Next View:"),
1161 &(KOPrefs::instance()->mWhatsNextFont),topFrame); 1166 &(KOPrefs::instance()->mWhatsNextFont),topFrame);
1162 topLayout->addWidget(tVFont->label(),i,0); 1167 topLayout->addWidget(tVFont->label(),i,0);
1163 topLayout->addWidget(tVFont->preview(),i,1); 1168 topLayout->addWidget(tVFont->preview(),i,1);
1164 topLayout->addWidget(tVFont->button(),i,2); 1169 topLayout->addWidget(tVFont->button(),i,2);
1165 ++i; 1170 ++i;
1166 KPrefsDialogWidFont *agendaViewFont = 1171 KPrefsDialogWidFont *agendaViewFont =
1167 addWidFont(i18n("Event text"),i18n("Agenda view:"), 1172 addWidFont(i18n("Event text"),i18n("Agenda view:"),
1168 &(KOPrefs::instance()->mAgendaViewFont),topFrame); 1173 &(KOPrefs::instance()->mAgendaViewFont),topFrame);
1169 topLayout->addWidget(agendaViewFont->label(),i,0); 1174 topLayout->addWidget(agendaViewFont->label(),i,0);
1170 topLayout->addWidget(agendaViewFont->preview(),i,1); 1175 topLayout->addWidget(agendaViewFont->preview(),i,1);
1171 topLayout->addWidget(agendaViewFont->button(),i,2); 1176 topLayout->addWidget(agendaViewFont->button(),i,2);
1172 ++i; 1177 ++i;
1173 1178
1174 1179
1175 KPrefsDialogWidFont *monthViewFont = 1180 KPrefsDialogWidFont *monthViewFont =
1176 addWidFont(KGlobal::locale()->formatTime(QTime(12,34)) + " " + i18n("Event"), 1181 addWidFont(KGlobal::locale()->formatTime(QTime(12,34)) + " " + i18n("Event"),
1177 i18n("Month view:"),&(KOPrefs::instance()->mMonthViewFont),topFrame); 1182 i18n("Month view:"),&(KOPrefs::instance()->mMonthViewFont),topFrame);
1178 topLayout->addWidget(monthViewFont->label(),i,0); 1183 topLayout->addWidget(monthViewFont->label(),i,0);
1179 topLayout->addWidget(monthViewFont->preview(),i,1); 1184 topLayout->addWidget(monthViewFont->preview(),i,1);
1180 topLayout->addWidget(monthViewFont->button(),i,2); 1185 topLayout->addWidget(monthViewFont->button(),i,2);
1181 ++i; 1186 ++i;
1182 1187
1183 1188
1184 KPrefsDialogWidFont *lVFont = 1189 KPrefsDialogWidFont *lVFont =
1185 addWidFont(i18n("Event"),i18n("List View:"), 1190 addWidFont(i18n("Event"),i18n("List View:"),
1186 &(KOPrefs::instance()->mListViewFont),topFrame); 1191 &(KOPrefs::instance()->mListViewFont),topFrame);
1187 topLayout->addWidget(lVFont->label(),i,0); 1192 topLayout->addWidget(lVFont->label(),i,0);
1188 topLayout->addWidget(lVFont->preview(),i,1); 1193 topLayout->addWidget(lVFont->preview(),i,1);
1189 topLayout->addWidget(lVFont->button(),i,2); 1194 topLayout->addWidget(lVFont->button(),i,2);
1190 ++i; 1195 ++i;
1191 1196
1192 1197
1193 tVFont = 1198 tVFont =
1194 addWidFont(i18n("ToDo"),i18n("ToDoView:"), 1199 addWidFont(i18n("ToDo"),i18n("ToDoView:"),
1195 &(KOPrefs::instance()->mTodoViewFont),topFrame); 1200 &(KOPrefs::instance()->mTodoViewFont),topFrame);
1196 topLayout->addWidget(tVFont->label(),i,0); 1201 topLayout->addWidget(tVFont->label(),i,0);
1197 topLayout->addWidget(tVFont->preview(),i,1); 1202 topLayout->addWidget(tVFont->preview(),i,1);
1198 topLayout->addWidget(tVFont->button(),i,2); 1203 topLayout->addWidget(tVFont->button(),i,2);
1199 ++i; 1204 ++i;
1200 1205
1201 1206
1202 tVFont = 1207 tVFont =
1203 addWidFont(i18n("Today"),i18n("JournalView:"), 1208 addWidFont(i18n("Today"),i18n("JournalView:"),
1204 &(KOPrefs::instance()->mJornalViewFont),topFrame); 1209 &(KOPrefs::instance()->mJornalViewFont),topFrame);
1205 topLayout->addWidget(tVFont->label(),i,0); 1210 topLayout->addWidget(tVFont->label(),i,0);
1206 topLayout->addWidget(tVFont->preview(),i,1); 1211 topLayout->addWidget(tVFont->preview(),i,1);
1207 topLayout->addWidget(tVFont->button(),i,2); 1212 topLayout->addWidget(tVFont->button(),i,2);
1208 ++i; 1213 ++i;
1209 1214
1210 1215
1211 1216
1212 1217
1213 topLayout->setColStretch(1,1); 1218 topLayout->setColStretch(1,1);
1214 topLayout->setRowStretch(4,1); 1219 topLayout->setRowStretch(4,1);
1215 1220
1216 1221
1217 1222
1218 1223
1219} 1224}
1220 1225
1221void KOPrefsDialog::setupColorsTab() 1226void KOPrefsDialog::setupColorsTab()
1222{ 1227{
1223 QFrame *topFrame = addPage(i18n("Colors"),0,0); 1228 Q3Frame *topFrame = addPage(i18n("Colors"),0,0);
1224 // DesktopIcon("colorize",KIcon::SizeMedium)); 1229 // DesktopIcon("colorize",KIcon::SizeMedium));
1225 1230
1226 QGridLayout *topLayout = new QGridLayout(topFrame,5,2); 1231 Q3GridLayout *topLayout = new Q3GridLayout(topFrame,5,2);
1227 // topLayout->setSpacing(spacingHint()); 1232 // topLayout->setSpacing(spacingHint());
1228 // topLayout->setMargin(marginHint()); 1233 // topLayout->setMargin(marginHint());
1229 1234
1230 topLayout->setSpacing(2); 1235 topLayout->setSpacing(2);
1231 topLayout->setMargin(3); 1236 topLayout->setMargin(3);
1232 1237
1233 int ii = 1; 1238 int ii = 1;
1234 QGroupBox *categoryGroup ; 1239 Q3GroupBox *categoryGroup ;
1235 1240
1236 categoryGroup = new QGroupBox(1,Vertical,i18n("Categories"), 1241 categoryGroup = new Q3GroupBox(1,Qt::Vertical,i18n("Categories"),
1237 topFrame); 1242 topFrame);
1238 topLayout->addMultiCellWidget(categoryGroup,0,0,0,1); 1243 topLayout->addMultiCellWidget(categoryGroup,0,0,0,1);
1239 1244
1240 mCategoryCombo = new QComboBox(categoryGroup); 1245 mCategoryCombo = new QComboBox(categoryGroup);
1241 mCategoryCombo->insertStringList(KOPrefs::instance()->mCustomCategories); 1246 mCategoryCombo->insertStringList(KOPrefs::instance()->mCustomCategories);
1242 connect(mCategoryCombo,SIGNAL(activated(int)),SLOT(updateCategoryColor())); 1247 connect(mCategoryCombo,SIGNAL(activated(int)),SLOT(updateCategoryColor()));
1243 1248
1244 mCategoryButton = new KColorButton(categoryGroup); 1249 mCategoryButton = new KColorButton(categoryGroup);
1245 connect(mCategoryButton,SIGNAL(changed(const QColor &)),SLOT(setCategoryColor())); 1250 connect(mCategoryButton,SIGNAL(changed(const QColor &)),SLOT(setCategoryColor()));
1246 updateCategoryColor(); 1251 updateCategoryColor();
1247 1252
1248 1253
1249 // Holiday Color 1254 // Holiday Color
1250 1255
1251 KPrefsWidColor *holidayColor = 1256 KPrefsWidColor *holidayColor =
1252 addWidColor(i18n("Holiday color:"), 1257 addWidColor(i18n("Holiday color:"),
1253 &(KOPrefs::instance()->mHolidayColor),topFrame); 1258 &(KOPrefs::instance()->mHolidayColor),topFrame);
1254 topLayout->addWidget(holidayColor->label(),ii,0); 1259 topLayout->addWidget(holidayColor->label(),ii,0);
1255 topLayout->addWidget(holidayColor->button(),ii++,1); 1260 topLayout->addWidget(holidayColor->button(),ii++,1);
1256 1261
1257 // Highlight Color 1262 // Highlight Color
1258 KPrefsWidColor *highlightColor = 1263 KPrefsWidColor *highlightColor =
1259 addWidColor(i18n("Highlight color:"), 1264 addWidColor(i18n("Highlight color:"),
1260 &(KOPrefs::instance()->mHighlightColor),topFrame); 1265 &(KOPrefs::instance()->mHighlightColor),topFrame);
1261 topLayout->addWidget(highlightColor->label(),ii,0); 1266 topLayout->addWidget(highlightColor->label(),ii,0);
1262 topLayout->addWidget(highlightColor->button(),ii++,1); 1267 topLayout->addWidget(highlightColor->button(),ii++,1);
1263 1268
1264 // Event color 1269 // Event color
1265 KPrefsWidColor *eventColor = 1270 KPrefsWidColor *eventColor =
1266 addWidColor(i18n("Default event color:"), 1271 addWidColor(i18n("Default event color:"),
1267 &(KOPrefs::instance()->mEventColor),topFrame); 1272 &(KOPrefs::instance()->mEventColor),topFrame);
1268 topLayout->addWidget(eventColor->label(),ii,0); 1273 topLayout->addWidget(eventColor->label(),ii,0);
1269 topLayout->addWidget(eventColor->button(),ii++,1); 1274 topLayout->addWidget(eventColor->button(),ii++,1);
1270 1275
1271 // agenda view background color 1276 // agenda view background color
1272 KPrefsWidColor *agendaBgColor = 1277 KPrefsWidColor *agendaBgColor =
1273 addWidColor(i18n("Agenda view background color:"), 1278 addWidColor(i18n("Agenda view background color:"),
1274 &(KOPrefs::instance()->mAgendaBgColor),topFrame); 1279 &(KOPrefs::instance()->mAgendaBgColor),topFrame);
1275 topLayout->addWidget(agendaBgColor->label(),ii,0); 1280 topLayout->addWidget(agendaBgColor->label(),ii,0);
1276 topLayout->addWidget(agendaBgColor->button(),ii++,1); 1281 topLayout->addWidget(agendaBgColor->button(),ii++,1);
1277 1282
1278 // working hours color 1283 // working hours color
1279 KPrefsWidColor *workingHoursColor = 1284 KPrefsWidColor *workingHoursColor =
1280 addWidColor(i18n("Working hours color:"), 1285 addWidColor(i18n("Working hours color:"),
1281 &(KOPrefs::instance()->mWorkingHoursColor),topFrame); 1286 &(KOPrefs::instance()->mWorkingHoursColor),topFrame);
1282 topLayout->addWidget(workingHoursColor->label(),ii,0); 1287 topLayout->addWidget(workingHoursColor->label(),ii,0);
1283 topLayout->addWidget(workingHoursColor->button(),ii++,1); 1288 topLayout->addWidget(workingHoursColor->button(),ii++,1);
1284 1289
1285 KPrefsDialogWidBool *sb = 1290 KPrefsDialogWidBool *sb =
1286 addWidBool(i18n("Use colors for application:"), 1291 addWidBool(i18n("Use colors for application:"),
1287 &(KOPrefs::instance()->mUseAppColors),topFrame); 1292 &(KOPrefs::instance()->mUseAppColors),topFrame);
1288 topLayout->addMultiCellWidget(sb->checkBox(), ii, ii, 0,1 ); 1293 topLayout->addMultiCellWidget(sb->checkBox(), ii, ii, 0,1 );
1289 1294
1290 ii++; 1295 ii++;
1291 KPrefsWidColor * workingHoursColor1 = 1296 KPrefsWidColor * workingHoursColor1 =
1292 addWidColor(i18n("Buttons, menus, etc.:"), 1297 addWidColor(i18n("Buttons, menus, etc.:"),
1293 &(KOPrefs::instance()->mAppColor1),topFrame); 1298 &(KOPrefs::instance()->mAppColor1),topFrame);
1294 topLayout->addWidget(workingHoursColor1->label(),ii,0); 1299 topLayout->addWidget(workingHoursColor1->label(),ii,0);
1295 topLayout->addWidget(workingHoursColor1->button(),ii++,1); 1300 topLayout->addWidget(workingHoursColor1->button(),ii++,1);
1296 1301
1297 KPrefsWidColor * workingHoursColor2 = 1302 KPrefsWidColor * workingHoursColor2 =
1298 addWidColor(i18n("Frames, labels, etc.:"), 1303 addWidColor(i18n("Frames, labels, etc.:"),
1299 &(KOPrefs::instance()->mAppColor2),topFrame); 1304 &(KOPrefs::instance()->mAppColor2),topFrame);
1300 topLayout->addWidget(workingHoursColor2->label(),ii,0); 1305 topLayout->addWidget(workingHoursColor2->label(),ii,0);
1301 topLayout->addWidget(workingHoursColor2->button(),ii++,1); 1306 topLayout->addWidget(workingHoursColor2->button(),ii++,1);
1302 1307
1303 1308
1304 1309
1305} 1310}
1306 1311
1307void KOPrefsDialog::setCategoryColor() 1312void KOPrefsDialog::setCategoryColor()
1308{ 1313{
1309 mCategoryDict.replace(mCategoryCombo->currentText(), new QColor(mCategoryButton->color())); 1314 mCategoryDict.replace(mCategoryCombo->currentText(), new QColor(mCategoryButton->color()));
1310} 1315}
1311 1316
1312void KOPrefsDialog::updateCategoryColor() 1317void KOPrefsDialog::updateCategoryColor()
1313{ 1318{
1314 QString cat = mCategoryCombo->currentText(); 1319 QString cat = mCategoryCombo->currentText();
1315 QColor *color = mCategoryDict.find(cat); 1320 QColor *color = mCategoryDict.find(cat);
1316 if (!color) { 1321 if (!color) {
1317 color = KOPrefs::instance()->categoryColor(cat); 1322 color = KOPrefs::instance()->categoryColor(cat);
1318 } 1323 }
1319 if (color) { 1324 if (color) {
1320 mCategoryButton->setColor(*color); 1325 mCategoryButton->setColor(*color);
1321 } 1326 }
1322} 1327}
1323 1328
1324void KOPrefsDialog::setupPrinterTab() 1329void KOPrefsDialog::setupPrinterTab()
1325{ 1330{
1326 mPrinterTab = addPage(i18n("Printing"),0, 1331 mPrinterTab = addPage(i18n("Printing"),0,
1327 DesktopIcon("fileprint",KIcon::SizeMedium)); 1332 DesktopIcon("fileprint",KIcon::SizeMedium));
1328 1333
1329 QGridLayout *topLayout = new QGridLayout(mPrinterTab,5,2); 1334 Q3GridLayout *topLayout = new Q3GridLayout(mPrinterTab,5,2);
1330 topLayout->setSpacing(spacingHint()); 1335 topLayout->setSpacing(spacingHint());
1331 topLayout->setMargin(marginHint()); 1336 topLayout->setMargin(marginHint());
1332 1337
1333 topLayout->setRowStretch(4,1); 1338 topLayout->setRowStretch(4,1);
1334} 1339}
1335 1340
1336void KOPrefsDialog::setupGroupSchedulingTab() 1341void KOPrefsDialog::setupGroupSchedulingTab()
1337{ 1342{
1338#if 0 1343#if 0
1339 QFrame *topFrame = addPage(i18n("Group Scheduling"),0, 1344 Q3Frame *topFrame = addPage(i18n("Group Scheduling"),0,
1340 DesktopIcon("personal",KIcon::SizeMedium)); 1345 DesktopIcon("personal",KIcon::SizeMedium));
1341 1346
1342 QGridLayout *topLayout = new QGridLayout(topFrame,6,2); 1347 Q3GridLayout *topLayout = new Q3GridLayout(topFrame,6,2);
1343 topLayout->setSpacing(spacingHint()); 1348 topLayout->setSpacing(spacingHint());
1344 topLayout->setMargin(marginHint()); 1349 topLayout->setMargin(marginHint());
1345 1350
1346#if 0 1351#if 0
1347 KPrefsWidRadios *schedulerGroup = 1352 KPrefsWidRadios *schedulerGroup =
1348 addWidRadios(i18n("Scheduler Mail Client"),&(KOPrefs::instance()->mIMIPScheduler), 1353 addWidRadios(i18n("Scheduler Mail Client"),&(KOPrefs::instance()->mIMIPScheduler),
1349 topFrame); 1354 topFrame);
1350 schedulerGroup->addRadio("Dummy"); // Only for debugging 1355 schedulerGroup->addRadio("Dummy"); // Only for debugging
1351 schedulerGroup->addRadio(i18n("Mail client")); 1356 schedulerGroup->addRadio(i18n("Mail client"));
1352 1357
1353 topLayout->addMultiCellWidget(schedulerGroup->groupBox(),0,0,0,1); 1358 topLayout->addMultiCellWidget(schedulerGroup->groupBox(),0,0,0,1);
1354#endif 1359#endif
1355 1360
1356 KPrefsWidRadios *sendGroup = 1361 KPrefsWidRadios *sendGroup =
1357 addWidRadios(i18n("Scheduler Mails Should Be"),&(KOPrefs::instance()->mIMIPSend), 1362 addWidRadios(i18n("Scheduler Mails Should Be"),&(KOPrefs::instance()->mIMIPSend),
1358 topFrame); 1363 topFrame);
1359 sendGroup->addRadio(i18n("Send to outbox")); 1364 sendGroup->addRadio(i18n("Send to outbox"));
1360 sendGroup->addRadio(i18n("Send directly")); 1365 sendGroup->addRadio(i18n("Send directly"));
1361 1366
1362 topLayout->addMultiCellWidget(sendGroup->groupBox(),1,1,0,1); 1367 topLayout->addMultiCellWidget(sendGroup->groupBox(),1,1,0,1);
1363 1368
1364 topLayout->addMultiCellWidget(new QLabel(i18n("Additional email addresses:"),topFrame),2,2,0,1); 1369 topLayout->addMultiCellWidget(new QLabel(i18n("Additional email addresses:"),topFrame),2,2,0,1);
1365 mAMails = new QListView(topFrame); 1370 mAMails = new Q3ListView(topFrame);
1366 mAMails->addColumn(i18n("Email"),300); 1371 mAMails->addColumn(i18n("Email"),300);
1367 topLayout->addMultiCellWidget(mAMails,3,3,0,1); 1372 topLayout->addMultiCellWidget(mAMails,3,3,0,1);
1368 1373
1369 topLayout->addWidget(new QLabel(i18n("Additional email address:"),topFrame),4,0); 1374 topLayout->addWidget(new QLabel(i18n("Additional email address:"),topFrame),4,0);
1370 aEmailsEdit = new QLineEdit(topFrame); 1375 aEmailsEdit = new QLineEdit(topFrame);
1371 aEmailsEdit->setEnabled(false); 1376 aEmailsEdit->setEnabled(false);
1372 topLayout->addWidget(aEmailsEdit,4,1); 1377 topLayout->addWidget(aEmailsEdit,4,1);
1373 1378
1374 QPushButton *add = new QPushButton(i18n("New"),topFrame,"new"); 1379 QPushButton *add = new QPushButton(i18n("New"),topFrame,"new");
1375 topLayout->addWidget(add,5,0); 1380 topLayout->addWidget(add,5,0);
1376 QPushButton *del = new QPushButton(i18n("Remove"),topFrame,"remove"); 1381 QPushButton *del = new QPushButton(i18n("Remove"),topFrame,"remove");
1377 topLayout->addWidget(del,5,1); 1382 topLayout->addWidget(del,5,1);
1378 1383
1379 //topLayout->setRowStretch(2,1); 1384 //topLayout->setRowStretch(2,1);
1380 connect(add, SIGNAL( clicked() ), this, SLOT(addItem()) ); 1385 connect(add, SIGNAL( clicked() ), this, SLOT(addItem()) );
1381 connect(del, SIGNAL( clicked() ), this, SLOT(removeItem()) ); 1386 connect(del, SIGNAL( clicked() ), this, SLOT(removeItem()) );
1382 connect(aEmailsEdit,SIGNAL( textChanged(const QString&) ), this,SLOT(updateItem())); 1387 connect(aEmailsEdit,SIGNAL( textChanged(const QString&) ), this,SLOT(updateItem()));
1383 connect(mAMails,SIGNAL(selectionChanged(QListViewItem *)),SLOT(updateInput())); 1388 connect(mAMails,SIGNAL(selectionChanged(Q3ListViewItem *)),SLOT(updateInput()));
1384#endif 1389#endif
1385} 1390}
1386 1391
1387void KOPrefsDialog::setupGroupAutomationTab() 1392void KOPrefsDialog::setupGroupAutomationTab()
1388{ 1393{
1389 return; 1394 return;
1390 QFrame *topFrame = addPage(i18n("Group Automation"),0, 1395 Q3Frame *topFrame = addPage(i18n("Group Automation"),0,
1391 DesktopIcon("personal",KIcon::SizeMedium)); 1396 DesktopIcon("personal",KIcon::SizeMedium));
1392 1397
1393 QGridLayout *topLayout = new QGridLayout(topFrame,5,1); 1398 Q3GridLayout *topLayout = new Q3GridLayout(topFrame,5,1);
1394 topLayout->setSpacing(spacingHint()); 1399 topLayout->setSpacing(spacingHint());
1395 topLayout->setMargin(marginHint()); 1400 topLayout->setMargin(marginHint());
1396 1401
1397 KPrefsWidRadios *autoRefreshGroup = 1402 KPrefsWidRadios *autoRefreshGroup =
1398 addWidRadios(i18n("Auto Send Refresh"), 1403 addWidRadios(i18n("Auto Send Refresh"),
1399 &(KOPrefs::instance()->mIMIPAutoRefresh),topFrame); 1404 &(KOPrefs::instance()->mIMIPAutoRefresh),topFrame);
1400 autoRefreshGroup->addRadio(i18n("Never")); 1405 autoRefreshGroup->addRadio(i18n("Never"));
1401 autoRefreshGroup->addRadio(i18n("If attendee is in addressbook")); 1406 autoRefreshGroup->addRadio(i18n("If attendee is in addressbook"));
1402 //autoRefreshGroup->addRadio(i18n("selected emails")); 1407 //autoRefreshGroup->addRadio(i18n("selected emails"));
1403 topLayout->addMultiCellWidget(autoRefreshGroup->groupBox(),0,0,0,0); 1408 topLayout->addMultiCellWidget(autoRefreshGroup->groupBox(),0,0,0,0);
1404 1409
1405 KPrefsWidRadios *autoInsertGroup = 1410 KPrefsWidRadios *autoInsertGroup =
1406 addWidRadios(i18n("Auto Insert IMIP Replies"), 1411 addWidRadios(i18n("Auto Insert IMIP Replies"),
1407 &(KOPrefs::instance()->mIMIPAutoInsertReply),topFrame); 1412 &(KOPrefs::instance()->mIMIPAutoInsertReply),topFrame);
1408 autoInsertGroup->addRadio(i18n("Never")); 1413 autoInsertGroup->addRadio(i18n("Never"));
1409 autoInsertGroup->addRadio(i18n("If attendee is in addressbook")); 1414 autoInsertGroup->addRadio(i18n("If attendee is in addressbook"));
1410 //autoInsertGroup->addRadio(i18n("selected emails")); 1415 //autoInsertGroup->addRadio(i18n("selected emails"));
1411 topLayout->addMultiCellWidget(autoInsertGroup->groupBox(),1,1,0,0); 1416 topLayout->addMultiCellWidget(autoInsertGroup->groupBox(),1,1,0,0);
1412 1417
1413 KPrefsWidRadios *autoRequestGroup = 1418 KPrefsWidRadios *autoRequestGroup =
1414 addWidRadios(i18n("Auto Insert IMIP Requests"), 1419 addWidRadios(i18n("Auto Insert IMIP Requests"),
1415 &(KOPrefs::instance()->mIMIPAutoInsertRequest),topFrame); 1420 &(KOPrefs::instance()->mIMIPAutoInsertRequest),topFrame);
1416 autoRequestGroup->addRadio(i18n("Never")); 1421 autoRequestGroup->addRadio(i18n("Never"));
1417 autoRequestGroup->addRadio(i18n("If organizer is in addressbook")); 1422 autoRequestGroup->addRadio(i18n("If organizer is in addressbook"));
1418 //autoInsertGroup->addRadio(i18n("selected emails")); 1423 //autoInsertGroup->addRadio(i18n("selected emails"));
1419 topLayout->addMultiCellWidget(autoRequestGroup->groupBox(),2,2,0,0); 1424 topLayout->addMultiCellWidget(autoRequestGroup->groupBox(),2,2,0,0);
1420 1425
1421 KPrefsWidRadios *autoFreeBusyGroup = 1426 KPrefsWidRadios *autoFreeBusyGroup =
1422 addWidRadios(i18n("Auto Send FreeBusy Information"), 1427 addWidRadios(i18n("Auto Send FreeBusy Information"),
1423 &(KOPrefs::instance()->mIMIPAutoFreeBusy),topFrame); 1428 &(KOPrefs::instance()->mIMIPAutoFreeBusy),topFrame);
1424 autoFreeBusyGroup->addRadio(i18n("Never")); 1429 autoFreeBusyGroup->addRadio(i18n("Never"));
1425 autoFreeBusyGroup->addRadio(i18n("If requested from an email in addressbook")); 1430 autoFreeBusyGroup->addRadio(i18n("If requested from an email in addressbook"));
1426 //autoFreeBusyGroup->addRadio(i18n("selected emails")); 1431 //autoFreeBusyGroup->addRadio(i18n("selected emails"));
1427 topLayout->addMultiCellWidget(autoFreeBusyGroup->groupBox(),3,3,0,0); 1432 topLayout->addMultiCellWidget(autoFreeBusyGroup->groupBox(),3,3,0,0);
1428 1433
1429 KPrefsWidRadios *autoFreeBusyReplyGroup = 1434 KPrefsWidRadios *autoFreeBusyReplyGroup =
1430 addWidRadios(i18n("Auto Save FreeBusy Replies"), 1435 addWidRadios(i18n("Auto Save FreeBusy Replies"),
1431 &(KOPrefs::instance()->mIMIPAutoFreeBusyReply),topFrame); 1436 &(KOPrefs::instance()->mIMIPAutoFreeBusyReply),topFrame);
1432 autoFreeBusyReplyGroup->addRadio(i18n("Never")); 1437 autoFreeBusyReplyGroup->addRadio(i18n("Never"));
1433 autoFreeBusyReplyGroup->addRadio(i18n("If attendee is in addressbook")); 1438 autoFreeBusyReplyGroup->addRadio(i18n("If attendee is in addressbook"));
1434 //autoFreeBusyGroup->addRadio(i18n("selected emails")); 1439 //autoFreeBusyGroup->addRadio(i18n("selected emails"));
1435 topLayout->addMultiCellWidget(autoFreeBusyReplyGroup->groupBox(),4,4,0,0); 1440 topLayout->addMultiCellWidget(autoFreeBusyReplyGroup->groupBox(),4,4,0,0);
1436} 1441}
1437 1442
1438void KOPrefsDialog::showPrinterTab() 1443void KOPrefsDialog::showPrinterTab()
1439{ 1444{
1440 showPage(pageIndex(mPrinterTab)); 1445 showPage(pageIndex(mPrinterTab));
1441} 1446}
1442 1447
1443 1448
1444void KOPrefsDialog::setCombo(QComboBox *combo, const QString & text, 1449void KOPrefsDialog::setCombo(QComboBox *combo, const QString & text,
1445 const QStringList *tags) 1450 const QStringList *tags)
1446{ 1451{
1447 if (tags) { 1452 if (tags) {
1448 int i = tags->findIndex(text); 1453 int i = tags->findIndex(text);
1449 if (i > 0) combo->setCurrentItem(i); 1454 if (i > 0) combo->setCurrentItem(i);
1450 } else { 1455 } else {
1451 for(int i=0;i<combo->count();++i) { 1456 for(int i=0;i<combo->count();++i) {
1452 if (combo->text(i) == text) { 1457 if (combo->text(i) == text) {
1453 combo->setCurrentItem(i); 1458 combo->setCurrentItem(i);
1454 break; 1459 break;
1455 } 1460 }
1456 } 1461 }
1457 } 1462 }
1458} 1463}
1459 1464
1460void KOPrefsDialog::usrReadConfig() 1465void KOPrefsDialog::usrReadConfig()
1461{ 1466{
1462 mNameEdit->setText(KOPrefs::instance()->fullName()); 1467 mNameEdit->setText(KOPrefs::instance()->fullName());
1463 mEmailEdit->setText(KOPrefs::instance()->email()); 1468 mEmailEdit->setText(KOPrefs::instance()->email());
1464 1469
1465 mAutoSaveIntervalSpin->setValue(KOPrefs::instance()->mAutoSaveInterval); 1470 mAutoSaveIntervalSpin->setValue(KOPrefs::instance()->mAutoSaveInterval);
1466 QDate current ( 2001, 1,1); 1471 QDate current ( 2001, 1,1);
1467 mStartDateSavingEdit->setDate(current.addDays(KOPrefs::instance()->mDaylightsavingStart-1)); 1472 mStartDateSavingEdit->setDate(current.addDays(KOPrefs::instance()->mDaylightsavingStart-1));
1468 mEndDateSavingEdit->setDate(current.addDays(KOPrefs::instance()->mDaylightsavingEnd-1)); 1473 mEndDateSavingEdit->setDate(current.addDays(KOPrefs::instance()->mDaylightsavingEnd-1));
1469 setCombo(mTimeZoneCombo,i18n(KOPrefs::instance()->mTimeZoneId)); 1474 setCombo(mTimeZoneCombo,i18n(KOPrefs::instance()->mTimeZoneId));
1470 //mTimezoneOffsetSpin->setValue( KOPrefs::instance()->mTimeZoneOffset); 1475 //mTimezoneOffsetSpin->setValue( KOPrefs::instance()->mTimeZoneOffset);
1471 mStartTimeSpin->setValue(KOPrefs::instance()->mStartTime); 1476 mStartTimeSpin->setValue(KOPrefs::instance()->mStartTime);
1472 mDefaultDurationSpin->setValue(KOPrefs::instance()->mDefaultDuration); 1477 mDefaultDurationSpin->setValue(KOPrefs::instance()->mDefaultDuration);
1473 mAlarmTimeCombo->setCurrentItem(KOPrefs::instance()->mAlarmTime); 1478 mAlarmTimeCombo->setCurrentItem(KOPrefs::instance()->mAlarmTime);
1474 // if (KOPrefs::instance()->mAllDaySize > 47 ) 1479 // if (KOPrefs::instance()->mAllDaySize > 47 )
1475 // KOPrefs::instance()->mAllDaySize = KOPrefs::instance()->mAllDaySize/2; 1480 // KOPrefs::instance()->mAllDaySize = KOPrefs::instance()->mAllDaySize/2;
1476 //mHourSizeSlider->setValue(KOPrefs::instance()->mAllDaySize); 1481 //mHourSizeSlider->setValue(KOPrefs::instance()->mAllDaySize);
1477 1482
1478 mNextXDaysSpin->setValue(KOPrefs::instance()->mNextXDays); 1483 mNextXDaysSpin->setValue(KOPrefs::instance()->mNextXDays);
1479 mWhatsNextSpin->setValue(KOPrefs::instance()->mWhatsNextDays); 1484 mWhatsNextSpin->setValue(KOPrefs::instance()->mWhatsNextDays);
1480 mPrioSpin->setValue(KOPrefs::instance()->mWhatsNextPrios); 1485 mPrioSpin->setValue(KOPrefs::instance()->mWhatsNextPrios);
1481 // mAMails->clear(); 1486 // mAMails->clear();
1482 // for ( QStringList::Iterator it = KOPrefs::instance()->mAdditionalMails.begin(); 1487 // for ( QStringList::Iterator it = KOPrefs::instance()->mAdditionalMails.begin();
1483// it != KOPrefs::instance()->mAdditionalMails.end(); ++it ) { 1488// it != KOPrefs::instance()->mAdditionalMails.end(); ++it ) {
1484// QListViewItem *item = new QListViewItem(mAMails); 1489// QListViewItem *item = new QListViewItem(mAMails);
1485// item->setText(0,*it); 1490// item->setText(0,*it);
1486// mAMails->insertItem(item); 1491// mAMails->insertItem(item);
1487// } 1492// }
1488 1493
1489 // mRemoteIPEdit->setText(KOPrefs::instance()->mRemoteIP); 1494 // mRemoteIPEdit->setText(KOPrefs::instance()->mRemoteIP);
1490 //mRemoteUser->setText(KOPrefs::instance()->mRemoteUser); 1495 //mRemoteUser->setText(KOPrefs::instance()->mRemoteUser);
1491 //mRemotePassWd->setText(KOPrefs::instance()->mRemotePassWd); 1496 //mRemotePassWd->setText(KOPrefs::instance()->mRemotePassWd);
1492 //mRemoteFile->setText(KOPrefs::instance()->mRemoteFile); 1497 //mRemoteFile->setText(KOPrefs::instance()->mRemoteFile);
1493 1498
1494 //that soundmLocalTempFile->setText(KOPrefs::instance()->mLocalTempFile); 1499 //that soundmLocalTempFile->setText(KOPrefs::instance()->mLocalTempFile);
1495 mDefaultAlarmFile->setText(KOPrefs::instance()->mDefaultAlarmFile); 1500 mDefaultAlarmFile->setText(KOPrefs::instance()->mDefaultAlarmFile);
1496 QString dummy = KOPrefs::instance()->mUserDateFormatLong; 1501 QString dummy = KOPrefs::instance()->mUserDateFormatLong;
1497 mUserDateFormatLong->setText(dummy.replace( QRegExp("K"), QString(",") )); 1502 mUserDateFormatLong->setText(dummy.replace( QRegExp("K"), QString(",") ));
1498 dummy = KOPrefs::instance()->mUserDateFormatShort; 1503 dummy = KOPrefs::instance()->mUserDateFormatShort;
1499 mUserDateFormatShort->setText(dummy.replace( QRegExp("K"), QString(",") )); 1504 mUserDateFormatShort->setText(dummy.replace( QRegExp("K"), QString(",") ));
1500 updateCategories(); 1505 updateCategories();
1501 mAlarmPlayBeeps->setValue(KOPrefs::instance()->mAlarmPlayBeeps ); 1506 mAlarmPlayBeeps->setValue(KOPrefs::instance()->mAlarmPlayBeeps );
1502 mAlarmSuspendTime->setValue(KOPrefs::instance()->mAlarmSuspendTime ); 1507 mAlarmSuspendTime->setValue(KOPrefs::instance()->mAlarmSuspendTime );
1503 mAlarmSuspendCount->setValue(KOPrefs::instance()->mAlarmSuspendCount ); 1508 mAlarmSuspendCount->setValue(KOPrefs::instance()->mAlarmSuspendCount );
1504 mAlarmBeepInterval->setValue(KOPrefs::instance()->mAlarmBeepInterval ); 1509 mAlarmBeepInterval->setValue(KOPrefs::instance()->mAlarmBeepInterval );
1505} 1510}
1506 1511
1507 1512
1508void KOPrefsDialog::usrWriteConfig() 1513void KOPrefsDialog::usrWriteConfig()
1509{ 1514{
1510 1515
1511 // KOPrefs::instance()->mRemoteIP = mRemoteIPEdit->text(); 1516 // KOPrefs::instance()->mRemoteIP = mRemoteIPEdit->text();
1512 //KOPrefs::instance()->mRemoteUser = mRemoteUser->text(); 1517 //KOPrefs::instance()->mRemoteUser = mRemoteUser->text();
1513 //KOPrefs::instance()->mRemotePassWd = mRemotePassWd->text(); 1518 //KOPrefs::instance()->mRemotePassWd = mRemotePassWd->text();
1514 //KOPrefs::instance()->mRemoteFile= mRemoteFile->text(); 1519 //KOPrefs::instance()->mRemoteFile= mRemoteFile->text();
1515 //KOPrefs::instance()->mLocalTempFile =mLocalTempFile->text(); 1520 //KOPrefs::instance()->mLocalTempFile =mLocalTempFile->text();
1516 KOPrefs::instance()->mDefaultAlarmFile =mDefaultAlarmFile->text(); 1521 KOPrefs::instance()->mDefaultAlarmFile =mDefaultAlarmFile->text();
1517 1522
1518 KOPrefs::instance()->mUserDateFormatShort = mUserDateFormatShort->text().replace( QRegExp(","), QString("K") ); 1523 KOPrefs::instance()->mUserDateFormatShort = mUserDateFormatShort->text().replace( QRegExp(","), QString("K") );
1519 KOPrefs::instance()->mUserDateFormatLong = mUserDateFormatLong->text().replace( QRegExp(","), QString("K") ); 1524 KOPrefs::instance()->mUserDateFormatLong = mUserDateFormatLong->text().replace( QRegExp(","), QString("K") );
1520 KOPrefs::instance()->setFullName(mNameEdit->text()); 1525 KOPrefs::instance()->setFullName(mNameEdit->text());
1521 KOPrefs::instance()->setEmail(mEmailEdit->text()); 1526 KOPrefs::instance()->setEmail(mEmailEdit->text());
1522 1527
1523 KOPrefs::instance()->mAutoSaveInterval = mAutoSaveIntervalSpin->value(); 1528 KOPrefs::instance()->mAutoSaveInterval = mAutoSaveIntervalSpin->value();
1524 1529
1525 KOPrefs::instance()->mTimeZoneId = mTimeZoneCombo->currentText(); 1530 KOPrefs::instance()->mTimeZoneId = mTimeZoneCombo->currentText();
1526 QDate date; 1531 QDate date;
1527 date = mStartDateSavingEdit->date(); 1532 date = mStartDateSavingEdit->date();
1528 int sub = 0; 1533 int sub = 0;
1529 if ( QDate::leapYear( date.year() ) && date.dayOfYear() > 59 ) 1534 if ( QDate::leapYear( date.year() ) && date.dayOfYear() > 59 )
1530 sub = 1; 1535 sub = 1;
1531 KOPrefs::instance()->mDaylightsavingStart = date.dayOfYear()-sub; 1536 KOPrefs::instance()->mDaylightsavingStart = date.dayOfYear()-sub;
1532 date = mEndDateSavingEdit->date(); 1537 date = mEndDateSavingEdit->date();
1533 if ( QDate::leapYear( date.year() ) && date.dayOfYear() > 59 ) 1538 if ( QDate::leapYear( date.year() ) && date.dayOfYear() > 59 )
1534 sub = 1; 1539 sub = 1;
1535 else 1540 else
1536 sub = 0; 1541 sub = 0;
1537 KOPrefs::instance()->mDaylightsavingEnd = date.dayOfYear()-sub; 1542 KOPrefs::instance()->mDaylightsavingEnd = date.dayOfYear()-sub;
1538 // KOPrefs::instance()->mTimeZoneOffset = mTimezoneOffsetSpin->value(); 1543 // KOPrefs::instance()->mTimeZoneOffset = mTimezoneOffsetSpin->value();
1539 1544
1540 KOPrefs::instance()->mStartTime = mStartTimeSpin->value(); 1545 KOPrefs::instance()->mStartTime = mStartTimeSpin->value();
1541 KOPrefs::instance()->mDefaultDuration = mDefaultDurationSpin->value(); 1546 KOPrefs::instance()->mDefaultDuration = mDefaultDurationSpin->value();
1542 KOPrefs::instance()->mAlarmTime = mAlarmTimeCombo->currentItem(); 1547 KOPrefs::instance()->mAlarmTime = mAlarmTimeCombo->currentItem();
1543 1548
1544 //KOPrefs::instance()->mAllDaySize = mHourSizeSlider->value(); 1549 //KOPrefs::instance()->mAllDaySize = mHourSizeSlider->value();
1545 1550
1546 QDictIterator<QColor> it(mCategoryDict); 1551 Q3DictIterator<QColor> it(mCategoryDict);
1547 while (it.current()) { 1552 while (it.current()) {
1548 KOPrefs::instance()->setCategoryColor(it.currentKey(),*it.current()); 1553 KOPrefs::instance()->setCategoryColor(it.currentKey(),*it.current());
1549 ++it; 1554 ++it;
1550 } 1555 }
1551 1556
1552 KOPrefs::instance()->mNextXDays = mNextXDaysSpin->value(); 1557 KOPrefs::instance()->mNextXDays = mNextXDaysSpin->value();
1553 KOPrefs::instance()->mWhatsNextDays = mWhatsNextSpin->value(); 1558 KOPrefs::instance()->mWhatsNextDays = mWhatsNextSpin->value();
1554 KOPrefs::instance()->mWhatsNextPrios = mPrioSpin->value(); 1559 KOPrefs::instance()->mWhatsNextPrios = mPrioSpin->value();
1555 1560
1556 KOPrefs::instance()->mAdditionalMails.clear(); 1561 KOPrefs::instance()->mAdditionalMails.clear();
1557 // QListViewItem *item; 1562 // QListViewItem *item;
1558 // item = mAMails->firstChild(); 1563 // item = mAMails->firstChild();
1559 // while (item) 1564 // while (item)
1560 // { 1565 // {
1561 // KOPrefs::instance()->mAdditionalMails.append( item->text(0) ); 1566 // KOPrefs::instance()->mAdditionalMails.append( item->text(0) );
1562 // item = item->nextSibling(); 1567 // item = item->nextSibling();
1563 // } 1568 // }
1564 KOPrefs::instance()->mAlarmPlayBeeps = mAlarmPlayBeeps->value(); 1569 KOPrefs::instance()->mAlarmPlayBeeps = mAlarmPlayBeeps->value();
1565 KOPrefs::instance()->mAlarmSuspendTime = mAlarmSuspendTime->value() ; 1570 KOPrefs::instance()->mAlarmSuspendTime = mAlarmSuspendTime->value() ;
1566 KOPrefs::instance()->mAlarmSuspendCount= mAlarmSuspendCount->value() ; 1571 KOPrefs::instance()->mAlarmSuspendCount= mAlarmSuspendCount->value() ;
1567 KOPrefs::instance()->mAlarmBeepInterval= mAlarmBeepInterval->value() ; 1572 KOPrefs::instance()->mAlarmBeepInterval= mAlarmBeepInterval->value() ;
1568 1573
1569} 1574}
1570 1575
1571void KOPrefsDialog::updateCategories() 1576void KOPrefsDialog::updateCategories()
1572{ 1577{
1573 mCategoryCombo->clear(); 1578 mCategoryCombo->clear();
1574 mCategoryDict.clear(); 1579 mCategoryDict.clear();
1575 mCategoryCombo->insertStringList(KOPrefs::instance()->mCustomCategories); 1580 mCategoryCombo->insertStringList(KOPrefs::instance()->mCustomCategories);
1576 updateCategoryColor(); 1581 updateCategoryColor();
1577} 1582}
1578 1583
1579void KOPrefsDialog::warningGroupScheduling() 1584void KOPrefsDialog::warningGroupScheduling()
1580{ 1585{
1581 warningExperimental(mEnableGroupScheduling->checkBox()->isChecked()); 1586 warningExperimental(mEnableGroupScheduling->checkBox()->isChecked());
1582} 1587}
1583 1588
1584void KOPrefsDialog::warningProjectView() 1589void KOPrefsDialog::warningProjectView()
1585{ 1590{
1586 warningExperimental(mEnableProjectView->checkBox()->isChecked()); 1591 warningExperimental(mEnableProjectView->checkBox()->isChecked());
1587} 1592}
1588 1593
1589void KOPrefsDialog::warningExperimental(bool on) 1594void KOPrefsDialog::warningExperimental(bool on)
1590{ 1595{
1591 if (on) { 1596 if (on) {
1592 KMessageBox::information(this,i18n("This is an experimental feature. " 1597 KMessageBox::information(this,i18n("This is an experimental feature. "
1593 "It may not work, it may do nothing useful and it may cause data loss. " 1598 "It may not work, it may do nothing useful and it may cause data loss. "
1594 "Use with care.\n" 1599 "Use with care.\n"
1595 "You have to restart KOrganizer for this setting to take effect.")); 1600 "You have to restart KOrganizer for this setting to take effect."));
1596 } else { 1601 } else {
1597 KMessageBox::information(this, 1602 KMessageBox::information(this,
1598 i18n("You have to restart KOrganizer for this setting to take effect.")); 1603 i18n("You have to restart KOrganizer for this setting to take effect."));
1599 } 1604 }
1600} 1605}
1601 1606
1602void KOPrefsDialog::toggleEmailSettings(bool on) 1607void KOPrefsDialog::toggleEmailSettings(bool on)
1603{ 1608{
1604 if (on) { 1609 if (on) {
1605 mEmailEdit->setEnabled(false); 1610 mEmailEdit->setEnabled(false);
1606 mNameEdit->setEnabled(false); 1611 mNameEdit->setEnabled(false);
1607 mEmailLabel->setEnabled(false); 1612 mEmailLabel->setEnabled(false);
1608 mNameLabel->setEnabled(false); 1613 mNameLabel->setEnabled(false);
1609 1614
1610 KEMailSettings settings; 1615 KEMailSettings settings;
1611 mNameEdit->setText(settings.getSetting(KEMailSettings::RealName)); 1616 mNameEdit->setText(settings.getSetting(KEMailSettings::RealName));
1612 mEmailEdit->setText(settings.getSetting(KEMailSettings::EmailAddress)); 1617 mEmailEdit->setText(settings.getSetting(KEMailSettings::EmailAddress));
1613 } else { 1618 } else {
1614 mEmailEdit->setEnabled(true); 1619 mEmailEdit->setEnabled(true);
1615 mNameEdit->setEnabled(true); 1620 mNameEdit->setEnabled(true);
1616 mEmailLabel->setEnabled(true); 1621 mEmailLabel->setEnabled(true);
1617 mNameLabel->setEnabled(true); 1622 mNameLabel->setEnabled(true);
1618 } 1623 }
1619} 1624}
1620 1625
1621void KOPrefsDialog::addItem() 1626void KOPrefsDialog::addItem()
1622{ 1627{
1623 // aEmailsEdit->setEnabled(true); 1628 // aEmailsEdit->setEnabled(true);
1624// QListViewItem *item = new QListViewItem(mAMails); 1629// QListViewItem *item = new QListViewItem(mAMails);
1625// mAMails->insertItem(item); 1630// mAMails->insertItem(item);
1626// mAMails->setSelected(item,true); 1631// mAMails->setSelected(item,true);
1627// aEmailsEdit->setText(i18n("(EmptyEmail)")); 1632// aEmailsEdit->setText(i18n("(EmptyEmail)"));
1628} 1633}
1629 1634
1630void KOPrefsDialog::removeItem() 1635void KOPrefsDialog::removeItem()
1631{ 1636{
1632// QListViewItem *item; 1637// QListViewItem *item;
1633// item = mAMails->selectedItem(); 1638// item = mAMails->selectedItem();
1634// if (!item) return; 1639// if (!item) return;
1635// mAMails->takeItem(item); 1640// mAMails->takeItem(item);
1636// item = mAMails->selectedItem(); 1641// item = mAMails->selectedItem();
1637// if (!item) { 1642// if (!item) {
1638// aEmailsEdit->setText(""); 1643// aEmailsEdit->setText("");
1639// aEmailsEdit->setEnabled(false); 1644// aEmailsEdit->setEnabled(false);
1640// } 1645// }
1641// if (mAMails->childCount() == 0) { 1646// if (mAMails->childCount() == 0) {
1642// aEmailsEdit->setEnabled(false); 1647// aEmailsEdit->setEnabled(false);
1643// } 1648// }
1644} 1649}
1645 1650
1646void KOPrefsDialog::updateItem() 1651void KOPrefsDialog::updateItem()
1647{ 1652{
1648 // QListViewItem *item; 1653 // QListViewItem *item;
1649// item = mAMails->selectedItem(); 1654// item = mAMails->selectedItem();
1650// if (!item) return; 1655// if (!item) return;
1651// item->setText(0,aEmailsEdit->text()); 1656// item->setText(0,aEmailsEdit->text());
1652} 1657}
1653 1658
1654void KOPrefsDialog::updateInput() 1659void KOPrefsDialog::updateInput()
1655{ 1660{
1656// QListViewItem *item; 1661// QListViewItem *item;
1657// item = mAMails->selectedItem(); 1662// item = mAMails->selectedItem();
1658// if (!item) return; 1663// if (!item) return;
1659// aEmailsEdit->setEnabled(true); 1664// aEmailsEdit->setEnabled(true);
1660// aEmailsEdit->setText(item->text(0)); 1665// aEmailsEdit->setText(item->text(0));
1661} 1666}
1662void KOPrefsDialog::updateTimezoneOffset( int index ) 1667void KOPrefsDialog::updateTimezoneOffset( int index )
1663{ 1668{
1664 /* 1669 /*
1665 qDebug("updateTimezoneOffset %d ", index); 1670 qDebug("updateTimezoneOffset %d ", index);
1666 if ( index < 24 ) { 1671 if ( index < 24 ) {
1667 mTimezoneOffsetSpin->setEnabled ( false ); 1672 mTimezoneOffsetSpin->setEnabled ( false );
1668 mTimezoneOffsetSpin->setValue( ( index-11 ) * 60 ); 1673 mTimezoneOffsetSpin->setValue( ( index-11 ) * 60 );
1669 1674
1670 1675
1671 } else { 1676 } else {
1672 if ( index == 24 ) { 1677 if ( index == 24 ) {
1673 mTimezoneOffsetSpin->setEnabled ( true ); 1678 mTimezoneOffsetSpin->setEnabled ( true );
1674 mTimezoneOffsetSpin->setValue( KOPrefs::instance()->mTimeZoneOffset); 1679 mTimezoneOffsetSpin->setValue( KOPrefs::instance()->mTimeZoneOffset);
1675 1680
1676 } else { 1681 } else {
1677 mTimezoneOffsetSpin->setEnabled ( false ); 1682 mTimezoneOffsetSpin->setEnabled ( false );
1678 mTimezoneOffsetSpin->setValue( 0 ); 1683 mTimezoneOffsetSpin->setValue( 0 );
1679 } 1684 }
1680 } 1685 }
1681 */ 1686 */
1682} 1687}
1683 1688
1684void KOPrefsDialog::setupTimeZoneTab() 1689void KOPrefsDialog::setupTimeZoneTab()
1685{ 1690{
1686 QFrame *topFrame = addPage(i18n("Time Zone"),0,0); 1691 Q3Frame *topFrame = addPage(i18n("Time Zone"),0,0);
1687 // DesktopIcon("clock",KIcon::SizeMedium)); 1692 // DesktopIcon("clock",KIcon::SizeMedium));
1688 1693
1689 QGridLayout *topLayout = new QGridLayout(topFrame,5,2); 1694 Q3GridLayout *topLayout = new Q3GridLayout(topFrame,5,2);
1690 topLayout->setSpacing(spacingHint()); 1695 topLayout->setSpacing(spacingHint());
1691 topLayout->setMargin(marginHint()); 1696 topLayout->setMargin(marginHint());
1692 1697
1693 QHBox *timeZoneBox = new QHBox( topFrame ); 1698 Q3HBox *timeZoneBox = new Q3HBox( topFrame );
1694 topLayout->addMultiCellWidget( timeZoneBox, 0, 0, 0, 1 ); 1699 topLayout->addMultiCellWidget( timeZoneBox, 0, 0, 0, 1 );
1695 1700
1696 new QLabel( i18n("Timezone:"), timeZoneBox ); 1701 new QLabel( i18n("Timezone:"), timeZoneBox );
1697 mTimeZoneCombo = new QComboBox( timeZoneBox ); 1702 mTimeZoneCombo = new QComboBox( timeZoneBox );
1698 if ( QApplication::desktop()->width() < 300 ) { 1703 if ( QApplication::desktop()->width() < 300 ) {
1699 mTimeZoneCombo->setMaximumWidth(150); 1704 mTimeZoneCombo->setMaximumWidth(150);
1700 } 1705 }
1701 1706
1702 QStringList list; 1707 QStringList list;
1703 list = KGlobal::locale()->timeZoneList(); 1708 list = KGlobal::locale()->timeZoneList();
1704 mTimeZoneCombo->insertStringList(list); 1709 mTimeZoneCombo->insertStringList(list);
1705 1710
1706 // find the currently set time zone and select it 1711 // find the currently set time zone and select it
1707 QString sCurrentlySet = KOPrefs::instance()->mTimeZoneId; 1712 QString sCurrentlySet = KOPrefs::instance()->mTimeZoneId;
1708 int nCurrentlySet = 11; 1713 int nCurrentlySet = 11;
1709 for (int i = 0; i < mTimeZoneCombo->count(); i++) 1714 for (int i = 0; i < mTimeZoneCombo->count(); i++)
1710 { 1715 {
1711 if (mTimeZoneCombo->text(i) == sCurrentlySet) 1716 if (mTimeZoneCombo->text(i) == sCurrentlySet)
1712 { 1717 {
1713 nCurrentlySet = i; 1718 nCurrentlySet = i;
1714 break; 1719 break;
1715 } 1720 }
1716 } 1721 }
1717 mTimeZoneCombo->setCurrentItem(nCurrentlySet); 1722 mTimeZoneCombo->setCurrentItem(nCurrentlySet);
1718 int iii = 1; 1723 int iii = 1;
1719 KPrefsDialogWidBool *sb = 1724 KPrefsDialogWidBool *sb =
1720 addWidBool(i18n("Timezone has daylight saving"), 1725 addWidBool(i18n("Timezone has daylight saving"),
1721 &(KOPrefs::instance()->mUseDaylightsaving),topFrame); 1726 &(KOPrefs::instance()->mUseDaylightsaving),topFrame);
1722 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1); 1727 topLayout->addMultiCellWidget(sb->checkBox(), iii,iii,0,1);
1723 ++iii; 1728 ++iii;
1724 QLabel* lab = new QLabel( i18n("Actual start and end is the\nsunday before this date."), topFrame ); 1729 QLabel* lab = new QLabel( i18n("Actual start and end is the\nsunday before this date."), topFrame );
1725 topLayout->addMultiCellWidget(lab, iii,iii,0,1); 1730 topLayout->addMultiCellWidget(lab, iii,iii,0,1);
1726 ++iii; 1731 ++iii;
1727 lab = new QLabel( i18n("The year in the date is ignored."), topFrame ); 1732 lab = new QLabel( i18n("The year in the date is ignored."), topFrame );
1728 topLayout->addMultiCellWidget(lab, iii,iii,0,1); 1733 topLayout->addMultiCellWidget(lab, iii,iii,0,1);
1729 ++iii; 1734 ++iii;
1730 lab = new QLabel( i18n("Daylight start:"), topFrame ); 1735 lab = new QLabel( i18n("Daylight start:"), topFrame );
1731 topLayout->addWidget(lab, iii,0); 1736 topLayout->addWidget(lab, iii,0);
1732 mStartDateSavingEdit = new KDateEdit(topFrame); 1737 mStartDateSavingEdit = new KDateEdit(topFrame);
1733 topLayout->addWidget(mStartDateSavingEdit, iii,1); 1738 topLayout->addWidget(mStartDateSavingEdit, iii,1);
1734 ++iii; 1739 ++iii;
1735 1740
1736 lab = new QLabel( i18n("Daylight end:"), topFrame ); 1741 lab = new QLabel( i18n("Daylight end:"), topFrame );
1737 topLayout->addWidget(lab, iii,0); 1742 topLayout->addWidget(lab, iii,0);
1738 mEndDateSavingEdit = new KDateEdit(topFrame); 1743 mEndDateSavingEdit = new KDateEdit(topFrame);
1739 topLayout->addWidget(mEndDateSavingEdit, iii,1); 1744 topLayout->addWidget(mEndDateSavingEdit, iii,1);
1740 ++iii; 1745 ++iii;
1741 QDate current ( 2001, 1,1); 1746 QDate current ( 2001, 1,1);
1742 mStartDateSavingEdit->setDate(current.addDays(KOPrefs::instance()->mDaylightsavingStart-1)); 1747 mStartDateSavingEdit->setDate(current.addDays(KOPrefs::instance()->mDaylightsavingStart-1));
1743 mEndDateSavingEdit->setDate(current.addDays(KOPrefs::instance()->mDaylightsavingEnd-1)); 1748 mEndDateSavingEdit->setDate(current.addDays(KOPrefs::instance()->mDaylightsavingEnd-1));
1744 1749
1745 1750
1746} 1751}
1747#endif 1752#endif
diff --git a/kmicromail/koprefsdialog.h b/kmicromail/koprefsdialog.h
index 7fa9261..042af3f 100644
--- a/kmicromail/koprefsdialog.h
+++ b/kmicromail/koprefsdialog.h
@@ -1,179 +1,181 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2000,2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23#ifndef _KOPREFSDIALOG_H 23#ifndef _KOPREFSDIALOG_H
24#define _KOPREFSDIALOG_H 24#define _KOPREFSDIALOG_H
25 25
26#include <qframe.h> 26#include <q3frame.h>
27#include <qdict.h> 27#include <q3dict.h>
28#include <qcolor.h> 28#include <qcolor.h>
29#include <qlistview.h> 29#include <q3listview.h>
30//Added by qt3to4:
31#include <QLabel>
30 32
31#include <kdialogbase.h> 33#include <kdialogbase.h>
32 34
33#include <libkdepim/kprefsdialog.h> 35#include <libkdepim/kprefsdialog.h>
34#include <libkdepim/kdateedit.h> 36#include <libkdepim/kdateedit.h>
35#include <kcmconfigs/kdepimconfigwidget.h> 37#include <kcmconfigs/kdepimconfigwidget.h>
36 38
37class KColorButton; 39class KColorButton;
38class QSpinBox; 40class QSpinBox;
39class QSlider; 41class QSlider;
40class KURLRequester; 42class KURLRequester;
41class QComboBox; 43class QComboBox;
42class QLineEdit; 44class QLineEdit;
43class QStringList; 45class QStringList;
44 46
45/** Dialog to change the korganizer configuration. 47/** Dialog to change the korganizer configuration.
46 */ 48 */
47class KOPrefsDialog : public KPrefsDialog 49class KOPrefsDialog : public KPrefsDialog
48{ 50{
49 Q_OBJECT 51 Q_OBJECT
50 public: 52 public:
51 /** Initialize dialog and pages */ 53 /** Initialize dialog and pages */
52 KOPrefsDialog(QWidget *parent=0,char *name=0,bool modal=false); 54 KOPrefsDialog(QWidget *parent=0,char *name=0,bool modal=false);
53 ~KOPrefsDialog(); 55 ~KOPrefsDialog();
54 56
55protected: 57protected:
56 void usrReadConfig(); 58 void usrReadConfig();
57 void usrWriteConfig(); 59 void usrWriteConfig();
58 60
59 void setupMainTab(); 61 void setupMainTab();
60 void setupGlobalTab(); 62 void setupGlobalTab();
61 void setupMailTab(); 63 void setupMailTab();
62 void setupFontsTab(); 64 void setupFontsTab();
63 private: 65 private:
64 QLineEdit *mNameEdit; 66 QLineEdit *mNameEdit;
65 QLineEdit *mCodecEdit; 67 QLineEdit *mCodecEdit;
66 QLineEdit *mEmailEdit; 68 QLineEdit *mEmailEdit;
67 QLabel *mNameLabel; 69 QLabel *mNameLabel;
68 QLabel *mEmailLabel; 70 QLabel *mEmailLabel;
69#if 0 71#if 0
70 /* 72 /*
71 public slots: 73 public slots:
72 void showPrinterTab(); 74 void showPrinterTab();
73 75
74 76
75 void updateCategories(); 77 void updateCategories();
76 void showSyncPage(); 78 void showSyncPage();
77 protected slots: 79 protected slots:
78 void selectSoundFile(); 80 void selectSoundFile();
79 void setCategoryColor(); 81 void setCategoryColor();
80 void updateCategoryColor(); 82 void updateCategoryColor();
81 void updateTimezoneOffset( int ); 83 void updateTimezoneOffset( int );
82 84
83 85
84 void warningExperimental(bool on); 86 void warningExperimental(bool on);
85 void warningGroupScheduling(); 87 void warningGroupScheduling();
86 void warningProjectView(); 88 void warningProjectView();
87 89
88 void toggleEmailSettings(bool); 90 void toggleEmailSettings(bool);
89 91
90 //additional emails 92 //additional emails
91 void addItem(); 93 void addItem();
92 void removeItem(); 94 void removeItem();
93 void updateItem(); 95 void updateItem();
94 void updateInput(); 96 void updateInput();
95*/ 97*/
96 protected: 98 protected:
97 void usrReadConfig(); 99 void usrReadConfig();
98 void usrWriteConfig(); 100 void usrWriteConfig();
99 101
100 void setupMainTab(); 102 void setupMainTab();
101 void setupTimeTab(); 103 void setupTimeTab();
102 void setupTimeZoneTab(); 104 void setupTimeZoneTab();
103 void setupLocaleTab(); 105 void setupLocaleTab();
104 void setupLocaleDateTab(); 106 void setupLocaleDateTab();
105 void setupFontsTab(); 107 void setupFontsTab();
106 void setupColorsTab(); 108 void setupColorsTab();
107 void setupViewsTab(); 109 void setupViewsTab();
108 void setupDisplayTab(); 110 void setupDisplayTab();
109 void setupPrinterTab(); 111 void setupPrinterTab();
110 void setupGroupSchedulingTab(); 112 void setupGroupSchedulingTab();
111 void setupGroupAutomationTab(); 113 void setupGroupAutomationTab();
112 void setupSyncTab(); 114 void setupSyncTab();
113 void setupSyncAlgTab(); 115 void setupSyncAlgTab();
114 116
115 void setCombo(QComboBox *combo,const QString & text, const QStringList *tags = 0); 117 void setCombo(QComboBox *combo,const QString & text, const QStringList *tags = 0);
116 118
117 119
118 private: 120 private:
119 KPrefsWidBool *mEnableGroupScheduling; 121 KPrefsWidBool *mEnableGroupScheduling;
120 KPrefsWidBool *mEnableProjectView; 122 KPrefsWidBool *mEnableProjectView;
121 123
122 QFrame *mPrinterTab; 124 Q3Frame *mPrinterTab;
123 125
124 QLineEdit *nameEdit; 126 QLineEdit *nameEdit;
125 QLineEdit *emailEdit; 127 QLineEdit *emailEdit;
126 128
127 QComboBox *timeCombo; 129 QComboBox *timeCombo;
128 QComboBox *tzCombo; 130 QComboBox *tzCombo;
129 131
130 // widgets holding preferences data 132 // widgets holding preferences data
131 QLineEdit *mNameEdit; 133 QLineEdit *mNameEdit;
132 QLineEdit *mEmailEdit; 134 QLineEdit *mEmailEdit;
133 QLabel *mNameLabel; 135 QLabel *mNameLabel;
134 QLabel *mEmailLabel; 136 QLabel *mEmailLabel;
135 QLineEdit *mAdditionalEdit; 137 QLineEdit *mAdditionalEdit;
136 QSpinBox *mAutoSaveIntervalSpin; 138 QSpinBox *mAutoSaveIntervalSpin;
137 QSpinBox *mPrioSpin; 139 QSpinBox *mPrioSpin;
138 // QListView *mAMails; 140 // QListView *mAMails;
139 QLineEdit *aEmailsEdit; 141 QLineEdit *aEmailsEdit;
140 142
141 QComboBox *mTimeZoneCombo; 143 QComboBox *mTimeZoneCombo;
142 QStringList tzonenames; 144 QStringList tzonenames;
143 QSpinBox *mStartTimeSpin; 145 QSpinBox *mStartTimeSpin;
144 QSpinBox *mDefaultDurationSpin; 146 QSpinBox *mDefaultDurationSpin;
145 QComboBox *mAlarmTimeCombo; 147 QComboBox *mAlarmTimeCombo;
146 148
147 QComboBox *mCategoryCombo; 149 QComboBox *mCategoryCombo;
148 KColorButton *mCategoryButton; 150 KColorButton *mCategoryButton;
149 QDict<QColor> mCategoryDict; 151 Q3Dict<QColor> mCategoryDict;
150 152
151 QSlider *mHourSizeSlider; 153 QSlider *mHourSizeSlider;
152 154
153 QSpinBox *mNextXDaysSpin; 155 QSpinBox *mNextXDaysSpin;
154 QSpinBox *mWhatsNextSpin; 156 QSpinBox *mWhatsNextSpin;
155 157
156 QLineEdit * mRemoteIPEdit; 158 QLineEdit * mRemoteIPEdit;
157 QLineEdit * mRemoteUser; 159 QLineEdit * mRemoteUser;
158 QLineEdit * mRemotePassWd; 160 QLineEdit * mRemotePassWd;
159 QLineEdit * mRemoteFile; 161 QLineEdit * mRemoteFile;
160 QLineEdit * mLocalTempFile; 162 QLineEdit * mLocalTempFile;
161 QWidget* mSetupSyncAlgTab; 163 QWidget* mSetupSyncAlgTab;
162 QLineEdit * mUserDateFormatLong; 164 QLineEdit * mUserDateFormatLong;
163 QLineEdit * mUserDateFormatShort; 165 QLineEdit * mUserDateFormatShort;
164 166
165 QSpinBox *mTimezoneOffsetSpin; 167 QSpinBox *mTimezoneOffsetSpin;
166 QSpinBox *mDaylightsavingStart; 168 QSpinBox *mDaylightsavingStart;
167 QSpinBox *mDaylightsavingEnd; 169 QSpinBox *mDaylightsavingEnd;
168 KDateEdit* mStartDateSavingEdit; 170 KDateEdit* mStartDateSavingEdit;
169 KDateEdit* mEndDateSavingEdit; 171 KDateEdit* mEndDateSavingEdit;
170 QSpinBox * mAlarmPlayBeeps; 172 QSpinBox * mAlarmPlayBeeps;
171 QSpinBox * mAlarmSuspendTime; 173 QSpinBox * mAlarmSuspendTime;
172 QSpinBox * mAlarmSuspendCount; 174 QSpinBox * mAlarmSuspendCount;
173 QSpinBox * mAlarmBeepInterval; 175 QSpinBox * mAlarmBeepInterval;
174 176
175 QLineEdit * mDefaultAlarmFile; 177 QLineEdit * mDefaultAlarmFile;
176#endif 178#endif
177}; 179};
178 180
179#endif 181#endif
diff --git a/kmicromail/libetpan/libetpan.pro b/kmicromail/libetpan/libetpan.pro
index dfafa07..4b2654e 100644
--- a/kmicromail/libetpan/libetpan.pro
+++ b/kmicromail/libetpan/libetpan.pro
@@ -1,134 +1,134 @@
1###################################################################### 1######################################################################
2# Automatically generated by qmake (1.07a) Thu Jul 1 00:54:03 2004 2# Automatically generated by qmake (1.07a) Thu Jul 1 00:54:03 2004
3###################################################################### 3######################################################################
4 4
5TEMPLATE = lib 5TEMPLATE = lib
6 TARGET = microlibetpan 6 TARGET = xmicrolibetpan
7 7
8OBJECTS_DIR = obj 8OBJECTS_DIR = obj
9MOC_DIR = moc 9MOC_DIR = moc
10DESTDIR=../../bin 10DESTDIR=../../bin
11 11
12DEPENDPATH += generic \ 12DEPENDPATH += generic \
13 imap \ 13 imap \
14 imf \ 14 imf \
15 maildir \ 15 maildir \
16 mbox \ 16 mbox \
17 mh \ 17 mh \
18 mime \ 18 mime \
19 nntp \ 19 nntp \
20 pop3 \ 20 pop3 \
21 smtp \ 21 smtp \
22 tests \ 22 tests \
23 tools \ 23 tools \
24 include/libetpan 24 include/libetpan
25INCLUDEPATH += . \ 25INCLUDEPATH += . \
26 generic \ 26 generic \
27 include \ 27 include \
28 tools \ 28 tools \
29 imf \ 29 imf \
30 imap \ 30 imap \
31 mime \ 31 mime \
32 maildir \ 32 maildir \
33 mbox \ 33 mbox \
34 mh \ 34 mh \
35 nntp \ 35 nntp \
36 pop3 \ 36 pop3 \
37 smtp \ 37 smtp \
38 tests 38 tests
39 39
40# Input 40# Input
41HEADERS += generic/data_message_driver.h \ 41HEADERS += generic/data_message_driver.h \
42 generic/generic_cache.h \ 42 generic/generic_cache.h \
43 generic/generic_cache_types.h \ 43 generic/generic_cache_types.h \
44 generic/imapdriver.h \ 44 generic/imapdriver.h \
45 generic/imapdriver_cached.h \ 45 generic/imapdriver_cached.h \
46 generic/imapdriver_cached_message.h \ 46 generic/imapdriver_cached_message.h \
47 generic/imapdriver_message.h \ 47 generic/imapdriver_message.h \
48 generic/imapdriver_tools.h \ 48 generic/imapdriver_tools.h \
49 generic/imapdriver_types.h \ 49 generic/imapdriver_types.h \
50 generic/imapstorage.h \ 50 generic/imapstorage.h \
51 generic/imfcache.h \ 51 generic/imfcache.h \
52 generic/libetpan.h \ 52 generic/libetpan.h \
53 generic/libetpan_version.h \ 53 generic/libetpan_version.h \
54 generic/maildirdriver.h \ 54 generic/maildirdriver.h \
55 generic/maildirdriver_cached.h \ 55 generic/maildirdriver_cached.h \
56 generic/maildirdriver_cached_message.h \ 56 generic/maildirdriver_cached_message.h \
57 generic/maildirdriver_message.h \ 57 generic/maildirdriver_message.h \
58 generic/maildirdriver_tools.h \ 58 generic/maildirdriver_tools.h \
59 generic/maildirdriver_types.h \ 59 generic/maildirdriver_types.h \
60 generic/maildirstorage.h \ 60 generic/maildirstorage.h \
61 generic/maildriver.h \ 61 generic/maildriver.h \
62 generic/maildriver_errors.h \ 62 generic/maildriver_errors.h \
63 generic/maildriver_tools.h \ 63 generic/maildriver_tools.h \
64 generic/maildriver_types.h \ 64 generic/maildriver_types.h \
65 generic/maildriver_types_helper.h \ 65 generic/maildriver_types_helper.h \
66 generic/mailfolder.h \ 66 generic/mailfolder.h \
67 generic/mailmessage.h \ 67 generic/mailmessage.h \
68 generic/mailmessage_tools.h \ 68 generic/mailmessage_tools.h \
69 generic/mailmessage_types.h \ 69 generic/mailmessage_types.h \
70 generic/mailstorage.h \ 70 generic/mailstorage.h \
71 generic/mailstorage_tools.h \ 71 generic/mailstorage_tools.h \
72 generic/mailstorage_types.h \ 72 generic/mailstorage_types.h \
73 generic/mailthread.h \ 73 generic/mailthread.h \
74 generic/mailthread_types.h \ 74 generic/mailthread_types.h \
75 generic/mboxdriver.h \ 75 generic/mboxdriver.h \
76 generic/mboxdriver_cached.h \ 76 generic/mboxdriver_cached.h \
77 generic/mboxdriver_cached_message.h \ 77 generic/mboxdriver_cached_message.h \
78 generic/mboxdriver_message.h \ 78 generic/mboxdriver_message.h \
79 generic/mboxdriver_tools.h \ 79 generic/mboxdriver_tools.h \
80 generic/mboxdriver_types.h \ 80 generic/mboxdriver_types.h \
81 generic/mboxstorage.h \ 81 generic/mboxstorage.h \
82 generic/mhdriver.h \ 82 generic/mhdriver.h \
83 generic/mhdriver_cached.h \ 83 generic/mhdriver_cached.h \
84 generic/mhdriver_cached_message.h \ 84 generic/mhdriver_cached_message.h \
85 generic/mhdriver_message.h \ 85 generic/mhdriver_message.h \
86 generic/mhdriver_tools.h \ 86 generic/mhdriver_tools.h \
87 generic/mhdriver_types.h \ 87 generic/mhdriver_types.h \
88 generic/mhstorage.h \ 88 generic/mhstorage.h \
89 generic/mime_message_driver.h \ 89 generic/mime_message_driver.h \
90 generic/nntpdriver.h \ 90 generic/nntpdriver.h \
91 generic/nntpdriver_cached.h \ 91 generic/nntpdriver_cached.h \
92 generic/nntpdriver_cached_message.h \ 92 generic/nntpdriver_cached_message.h \
93 generic/nntpdriver_message.h \ 93 generic/nntpdriver_message.h \
94 generic/nntpdriver_tools.h \ 94 generic/nntpdriver_tools.h \
95 generic/nntpdriver_types.h \ 95 generic/nntpdriver_types.h \
96 generic/nntpstorage.h \ 96 generic/nntpstorage.h \
97 generic/pop3driver.h \ 97 generic/pop3driver.h \
98 generic/pop3driver_cached.h \ 98 generic/pop3driver_cached.h \
99 generic/pop3driver_cached_message.h \ 99 generic/pop3driver_cached_message.h \
100 generic/pop3driver_message.h \ 100 generic/pop3driver_message.h \
101 generic/pop3driver_tools.h \ 101 generic/pop3driver_tools.h \
102 generic/pop3driver_types.h \ 102 generic/pop3driver_types.h \
103 generic/pop3storage.h \ 103 generic/pop3storage.h \
104 imap/mailimap.h \ 104 imap/mailimap.h \
105 imap/mailimap_helper.h \ 105 imap/mailimap_helper.h \
106 imap/mailimap_keywords.h \ 106 imap/mailimap_keywords.h \
107 imap/mailimap_parser.h \ 107 imap/mailimap_parser.h \
108 imap/mailimap_print.h \ 108 imap/mailimap_print.h \
109 imap/mailimap_sender.h \ 109 imap/mailimap_sender.h \
110 imap/mailimap_socket.h \ 110 imap/mailimap_socket.h \
111 imap/mailimap_ssl.h \ 111 imap/mailimap_ssl.h \
112 imap/mailimap_types.h \ 112 imap/mailimap_types.h \
113 imap/mailimap_types_helper.h \ 113 imap/mailimap_types_helper.h \
114 imf/mailimf.h \ 114 imf/mailimf.h \
115 imf/mailimf_types.h \ 115 imf/mailimf_types.h \
116 imf/mailimf_types_helper.h \ 116 imf/mailimf_types_helper.h \
117 imf/mailimf_write.h \ 117 imf/mailimf_write.h \
118 maildir/maildir.h \ 118 maildir/maildir.h \
119 maildir/maildir_types.h \ 119 maildir/maildir_types.h \
120 mbox/mailmbox.h \ 120 mbox/mailmbox.h \
121 mbox/mailmbox_parse.h \ 121 mbox/mailmbox_parse.h \
122 mbox/mailmbox_types.h \ 122 mbox/mailmbox_types.h \
123 mh/mailmh.h \ 123 mh/mailmh.h \
124 mime/mailmime.h \ 124 mime/mailmime.h \
125 mime/mailmime_content.h \ 125 mime/mailmime_content.h \
126 mime/mailmime_decode.h \ 126 mime/mailmime_decode.h \
127 mime/mailmime_disposition.h \ 127 mime/mailmime_disposition.h \
128 mime/mailmime_types.h \ 128 mime/mailmime_types.h \
129 mime/mailmime_types_helper.h \ 129 mime/mailmime_types_helper.h \
130 mime/mailmime_write.h \ 130 mime/mailmime_write.h \
131 nntp/newsnntp.h \ 131 nntp/newsnntp.h \
132 nntp/newsnntp_socket.h \ 132 nntp/newsnntp_socket.h \
133 nntp/newsnntp_ssl.h \ 133 nntp/newsnntp_ssl.h \
134 nntp/newsnntp_types.h \ 134 nntp/newsnntp_types.h \
diff --git a/kmicromail/libetpan/libetpanE.pro b/kmicromail/libetpan/libetpanE.pro
index 7f37948..ea22692 100644
--- a/kmicromail/libetpan/libetpanE.pro
+++ b/kmicromail/libetpan/libetpanE.pro
@@ -1,134 +1,134 @@
1###################################################################### 1######################################################################
2# Automatically generated by qmake (1.07a) Thu Jul 1 00:54:03 2004 2# Automatically generated by qmake (1.07a) Thu Jul 1 00:54:03 2004
3###################################################################### 3######################################################################
4 4
5TEMPLATE = lib 5TEMPLATE = lib
6 TARGET = microlibetpan 6 TARGET = xmicrolibetpan
7 7
8OBJECTS_DIR = obj/$(PLATFORM) 8OBJECTS_DIR = obj/$(PLATFORM)
9MOC_DIR = moc/$(PLATFORM) 9MOC_DIR = moc/$(PLATFORM)
10DESTDIR=$(QPEDIR)/lib 10DESTDIR=$(QPEDIR)/lib
11 11
12DEPENDPATH += generic \ 12DEPENDPATH += generic \
13 imap \ 13 imap \
14 imf \ 14 imf \
15 maildir \ 15 maildir \
16 mbox \ 16 mbox \
17 mh \ 17 mh \
18 mime \ 18 mime \
19 nntp \ 19 nntp \
20 pop3 \ 20 pop3 \
21 smtp \ 21 smtp \
22 tests \ 22 tests \
23 tools \ 23 tools \
24 include/libetpan 24 include/libetpan
25INCLUDEPATH += . \ 25INCLUDEPATH += . \
26 generic \ 26 generic \
27 include \ 27 include \
28 tools \ 28 tools \
29 imf \ 29 imf \
30 imap \ 30 imap \
31 mime \ 31 mime \
32 maildir \ 32 maildir \
33 mbox \ 33 mbox \
34 mh \ 34 mh \
35 nntp \ 35 nntp \
36 pop3 \ 36 pop3 \
37 smtp \ 37 smtp \
38 tests 38 tests
39 39
40# Input 40# Input
41HEADERS += generic/data_message_driver.h \ 41HEADERS += generic/data_message_driver.h \
42 generic/generic_cache.h \ 42 generic/generic_cache.h \
43 generic/generic_cache_types.h \ 43 generic/generic_cache_types.h \
44 generic/imapdriver.h \ 44 generic/imapdriver.h \
45 generic/imapdriver_cached.h \ 45 generic/imapdriver_cached.h \
46 generic/imapdriver_cached_message.h \ 46 generic/imapdriver_cached_message.h \
47 generic/imapdriver_message.h \ 47 generic/imapdriver_message.h \
48 generic/imapdriver_tools.h \ 48 generic/imapdriver_tools.h \
49 generic/imapdriver_types.h \ 49 generic/imapdriver_types.h \
50 generic/imapstorage.h \ 50 generic/imapstorage.h \
51 generic/imfcache.h \ 51 generic/imfcache.h \
52 generic/libetpan.h \ 52 generic/libetpan.h \
53 generic/libetpan_version.h \ 53 generic/libetpan_version.h \
54 generic/maildirdriver.h \ 54 generic/maildirdriver.h \
55 generic/maildirdriver_cached.h \ 55 generic/maildirdriver_cached.h \
56 generic/maildirdriver_cached_message.h \ 56 generic/maildirdriver_cached_message.h \
57 generic/maildirdriver_message.h \ 57 generic/maildirdriver_message.h \
58 generic/maildirdriver_tools.h \ 58 generic/maildirdriver_tools.h \
59 generic/maildirdriver_types.h \ 59 generic/maildirdriver_types.h \
60 generic/maildirstorage.h \ 60 generic/maildirstorage.h \
61 generic/maildriver.h \ 61 generic/maildriver.h \
62 generic/maildriver_errors.h \ 62 generic/maildriver_errors.h \
63 generic/maildriver_tools.h \ 63 generic/maildriver_tools.h \
64 generic/maildriver_types.h \ 64 generic/maildriver_types.h \
65 generic/maildriver_types_helper.h \ 65 generic/maildriver_types_helper.h \
66 generic/mailfolder.h \ 66 generic/mailfolder.h \
67 generic/mailmessage.h \ 67 generic/mailmessage.h \
68 generic/mailmessage_tools.h \ 68 generic/mailmessage_tools.h \
69 generic/mailmessage_types.h \ 69 generic/mailmessage_types.h \
70 generic/mailstorage.h \ 70 generic/mailstorage.h \
71 generic/mailstorage_tools.h \ 71 generic/mailstorage_tools.h \
72 generic/mailstorage_types.h \ 72 generic/mailstorage_types.h \
73 generic/mailthread.h \ 73 generic/mailthread.h \
74 generic/mailthread_types.h \ 74 generic/mailthread_types.h \
75 generic/mboxdriver.h \ 75 generic/mboxdriver.h \
76 generic/mboxdriver_cached.h \ 76 generic/mboxdriver_cached.h \
77 generic/mboxdriver_cached_message.h \ 77 generic/mboxdriver_cached_message.h \
78 generic/mboxdriver_message.h \ 78 generic/mboxdriver_message.h \
79 generic/mboxdriver_tools.h \ 79 generic/mboxdriver_tools.h \
80 generic/mboxdriver_types.h \ 80 generic/mboxdriver_types.h \
81 generic/mboxstorage.h \ 81 generic/mboxstorage.h \
82 generic/mhdriver.h \ 82 generic/mhdriver.h \
83 generic/mhdriver_cached.h \ 83 generic/mhdriver_cached.h \
84 generic/mhdriver_cached_message.h \ 84 generic/mhdriver_cached_message.h \
85 generic/mhdriver_message.h \ 85 generic/mhdriver_message.h \
86 generic/mhdriver_tools.h \ 86 generic/mhdriver_tools.h \
87 generic/mhdriver_types.h \ 87 generic/mhdriver_types.h \
88 generic/mhstorage.h \ 88 generic/mhstorage.h \
89 generic/mime_message_driver.h \ 89 generic/mime_message_driver.h \
90 generic/nntpdriver.h \ 90 generic/nntpdriver.h \
91 generic/nntpdriver_cached.h \ 91 generic/nntpdriver_cached.h \
92 generic/nntpdriver_cached_message.h \ 92 generic/nntpdriver_cached_message.h \
93 generic/nntpdriver_message.h \ 93 generic/nntpdriver_message.h \
94 generic/nntpdriver_tools.h \ 94 generic/nntpdriver_tools.h \
95 generic/nntpdriver_types.h \ 95 generic/nntpdriver_types.h \
96 generic/nntpstorage.h \ 96 generic/nntpstorage.h \
97 generic/pop3driver.h \ 97 generic/pop3driver.h \
98 generic/pop3driver_cached.h \ 98 generic/pop3driver_cached.h \
99 generic/pop3driver_cached_message.h \ 99 generic/pop3driver_cached_message.h \
100 generic/pop3driver_message.h \ 100 generic/pop3driver_message.h \
101 generic/pop3driver_tools.h \ 101 generic/pop3driver_tools.h \
102 generic/pop3driver_types.h \ 102 generic/pop3driver_types.h \
103 generic/pop3storage.h \ 103 generic/pop3storage.h \
104 imap/mailimap.h \ 104 imap/mailimap.h \
105 imap/mailimap_helper.h \ 105 imap/mailimap_helper.h \
106 imap/mailimap_keywords.h \ 106 imap/mailimap_keywords.h \
107 imap/mailimap_parser.h \ 107 imap/mailimap_parser.h \
108 imap/mailimap_print.h \ 108 imap/mailimap_print.h \
109 imap/mailimap_sender.h \ 109 imap/mailimap_sender.h \
110 imap/mailimap_socket.h \ 110 imap/mailimap_socket.h \
111 imap/mailimap_ssl.h \ 111 imap/mailimap_ssl.h \
112 imap/mailimap_types.h \ 112 imap/mailimap_types.h \
113 imap/mailimap_types_helper.h \ 113 imap/mailimap_types_helper.h \
114 imf/mailimf.h \ 114 imf/mailimf.h \
115 imf/mailimf_types.h \ 115 imf/mailimf_types.h \
116 imf/mailimf_types_helper.h \ 116 imf/mailimf_types_helper.h \
117 imf/mailimf_write.h \ 117 imf/mailimf_write.h \
118 maildir/maildir.h \ 118 maildir/maildir.h \
119 maildir/maildir_types.h \ 119 maildir/maildir_types.h \
120 mbox/mailmbox.h \ 120 mbox/mailmbox.h \
121 mbox/mailmbox_parse.h \ 121 mbox/mailmbox_parse.h \
122 mbox/mailmbox_types.h \ 122 mbox/mailmbox_types.h \
123 mh/mailmh.h \ 123 mh/mailmh.h \
124 mime/mailmime.h \ 124 mime/mailmime.h \
125 mime/mailmime_content.h \ 125 mime/mailmime_content.h \
126 mime/mailmime_decode.h \ 126 mime/mailmime_decode.h \
127 mime/mailmime_disposition.h \ 127 mime/mailmime_disposition.h \
128 mime/mailmime_types.h \ 128 mime/mailmime_types.h \
129 mime/mailmime_types_helper.h \ 129 mime/mailmime_types_helper.h \
130 mime/mailmime_write.h \ 130 mime/mailmime_write.h \
131 nntp/newsnntp.h \ 131 nntp/newsnntp.h \
132 nntp/newsnntp_socket.h \ 132 nntp/newsnntp_socket.h \
133 nntp/newsnntp_ssl.h \ 133 nntp/newsnntp_ssl.h \
134 nntp/newsnntp_types.h \ 134 nntp/newsnntp_types.h \
diff --git a/kmicromail/libmailwrapper/abstractmail.cpp b/kmicromail/libmailwrapper/abstractmail.cpp
index 870985e..746d2ae 100644
--- a/kmicromail/libmailwrapper/abstractmail.cpp
+++ b/kmicromail/libmailwrapper/abstractmail.cpp
@@ -1,282 +1,284 @@
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#include <qpe/global.h>
9 9
10 10
11#include <qprogressbar.h> 11#include <q3progressbar.h>
12#include <qapplication.h> 12#include <qapplication.h>
13#include <qmessagebox.h> 13#include <qmessagebox.h>
14//Added by qt3to4:
15#include <Q3ValueList>
14#include <klocale.h> 16#include <klocale.h>
15#include <kdecore/kstandarddirs.h> 17#include <kdecore/kstandarddirs.h>
16#include <qfile.h> 18#include <qfile.h>
17#include <qtextstream.h> 19#include <q3textstream.h>
18#include <stdlib.h> 20#include <stdlib.h>
19#include <libetpan/mailmime_content.h> 21#include <libetpan/mailmime_content.h>
20#include <libetpan/mailmime.h> 22#include <libetpan/mailmime.h>
21 23
22using namespace Opie::Core; 24using namespace Opie::Core;
23AbstractMail* AbstractMail::getWrapper(IMAPaccount *a) 25AbstractMail* AbstractMail::getWrapper(IMAPaccount *a)
24{ 26{
25 return new IMAPwrapper(a); 27 return new IMAPwrapper(a);
26} 28}
27 29
28AbstractMail* AbstractMail::getWrapper(POP3account *a) 30AbstractMail* AbstractMail::getWrapper(POP3account *a)
29{ 31{
30 return new POP3wrapper(a); 32 return new POP3wrapper(a);
31} 33}
32 34
33AbstractMail* AbstractMail::getWrapper(NNTPaccount *a) 35AbstractMail* AbstractMail::getWrapper(NNTPaccount *a)
34{ 36{
35 return new NNTPwrapper(a); 37 return new NNTPwrapper(a);
36} 38}
37 39
38AbstractMail* AbstractMail::getWrapper(const QString&a,const QString&name) 40AbstractMail* AbstractMail::getWrapper(const QString&a,const QString&name)
39{ 41{
40 return new MHwrapper(a,name); 42 return new MHwrapper(a,name);
41} 43}
42 44
43AbstractMail* AbstractMail::getWrapper(Account*a) 45AbstractMail* AbstractMail::getWrapper(Account*a)
44{ 46{
45 if (!a) return 0; 47 if (!a) return 0;
46 switch (a->getType()) { 48 switch (a->getType()) {
47 case MAILLIB::A_IMAP: 49 case MAILLIB::A_IMAP:
48 return new IMAPwrapper((IMAPaccount*)a); 50 return new IMAPwrapper((IMAPaccount*)a);
49 break; 51 break;
50 case MAILLIB::A_POP3: 52 case MAILLIB::A_POP3:
51 return new POP3wrapper((POP3account*)a); 53 return new POP3wrapper((POP3account*)a);
52 break; 54 break;
53 case MAILLIB::A_NNTP: 55 case MAILLIB::A_NNTP:
54 return new NNTPwrapper((NNTPaccount*)a); 56 return new NNTPwrapper((NNTPaccount*)a);
55 break; 57 break;
56 default: 58 default:
57 return 0; 59 return 0;
58 } 60 }
59} 61}
60 62
61encodedString* AbstractMail::decode_String(const encodedString*text,const QString&enc) 63encodedString* AbstractMail::decode_String(const encodedString*text,const QString&enc)
62{ 64{
63 // odebug << "Decode string start" << oendl; 65 // odebug << "Decode string start" << oendl;
64 char*result_text; 66 char*result_text;
65 size_t index = 0; 67 size_t index = 0;
66 /* reset for recursive use! */ 68 /* reset for recursive use! */
67 size_t target_length = 0; 69 size_t target_length = 0;
68 result_text = 0; 70 result_text = 0;
69 int mimetype = MAILMIME_MECHANISM_7BIT; 71 int mimetype = MAILMIME_MECHANISM_7BIT;
70 if (enc.lower()=="quoted-printable") { 72 if (enc.lower()=="quoted-printable") {
71 mimetype = MAILMIME_MECHANISM_QUOTED_PRINTABLE; 73 mimetype = MAILMIME_MECHANISM_QUOTED_PRINTABLE;
72 } else if (enc.lower()=="base64") { 74 } else if (enc.lower()=="base64") {
73 mimetype = MAILMIME_MECHANISM_BASE64; 75 mimetype = MAILMIME_MECHANISM_BASE64;
74 } else if (enc.lower()=="8bit") { 76 } else if (enc.lower()=="8bit") {
75 mimetype = MAILMIME_MECHANISM_8BIT; 77 mimetype = MAILMIME_MECHANISM_8BIT;
76 } else if (enc.lower()=="binary") { 78 } else if (enc.lower()=="binary") {
77 mimetype = MAILMIME_MECHANISM_BINARY; 79 mimetype = MAILMIME_MECHANISM_BINARY;
78 } 80 }
79 int err = mailmime_part_parse(text->Content(),text->Length(),&index,mimetype, 81 int err = mailmime_part_parse(text->Content(),text->Length(),&index,mimetype,
80 &result_text,&target_length); 82 &result_text,&target_length);
81 83
82 encodedString* result = new encodedString(); 84 encodedString* result = new encodedString();
83 if (err == MAILIMF_NO_ERROR) { 85 if (err == MAILIMF_NO_ERROR) {
84 result->setContent(result_text,target_length); 86 result->setContent(result_text,target_length);
85 } 87 }
86 //odebug << "Decode string finished" << oendl; 88 //odebug << "Decode string finished" << oendl;
87 return result; 89 return result;
88} 90}
89 91
90QString AbstractMail::convert_String(const char*text) 92QString AbstractMail::convert_String(const char*text)
91{ 93{
92 size_t index = 0; 94 size_t index = 0;
93 char*res = 0; 95 char*res = 0;
94 int err = MAILIMF_NO_ERROR; 96 int err = MAILIMF_NO_ERROR;
95 97
96 QString result(text); 98 QString result(text);
97 //qDebug("convert_String %s ", text); 99 //qDebug("convert_String %s ", text);
98 //err = mailmime_encoded_phrase_parse("iso-8859-1", 100 //err = mailmime_encoded_phrase_parse("iso-8859-1",
99 // text, strlen(text),&index, "iso-8859-1",&res); 101 // text, strlen(text),&index, "iso-8859-1",&res);
100 err = mailmime_encoded_phrase_parse("iso-8859-1", 102 err = mailmime_encoded_phrase_parse("iso-8859-1",
101 text, strlen(text),&index, "utf-8",&res); 103 text, strlen(text),&index, "utf-8",&res);
102 if (err == MAILIMF_NO_ERROR && res && strlen(res)) { 104 if (err == MAILIMF_NO_ERROR && res && strlen(res)) {
103 result = QString::fromUtf8(res); 105 result = QString::fromUtf8(res);
104 } 106 }
105 //qDebug("convert_String:%s ",result.latin1() ); 107 //qDebug("convert_String:%s ",result.latin1() );
106 if (res) free(res); 108 if (res) free(res);
107 return result; 109 return result;
108} 110}
109 111
110/* cp & paste from launcher */ 112/* cp & paste from launcher */
111QString AbstractMail::gen_attachment_id() 113QString AbstractMail::gen_attachment_id()
112{ 114{
113 QFile file( "/proc/sys/kernel/random/uuid" ); 115 QFile file( "/proc/sys/kernel/random/uuid" );
114 if (!file.open(IO_ReadOnly ) ) 116 if (!file.open(QIODevice::ReadOnly ) )
115 return QString::null; 117 return QString::null;
116 118
117 QTextStream stream(&file); 119 Q3TextStream stream(&file);
118 120
119 return "{" + stream.read().stripWhiteSpace() + "}"; 121 return "{" + stream.read().stripWhiteSpace() + "}";
120} 122}
121 123
122int AbstractMail::createMbox(const QString&,const FolderP&,const QString& ,bool) 124int AbstractMail::createMbox(const QString&,const FolderP&,const QString& ,bool)
123{ 125{
124 return 0; 126 return 0;
125} 127}
126 128
127QString AbstractMail::defaultLocalfolder() 129QString AbstractMail::defaultLocalfolder()
128{ 130{
129 // QString f = getenv( "HOME" ); 131 // QString f = getenv( "HOME" );
130 QString f = locateLocal( "data", "kopiemail/localmail"); 132 QString f = locateLocal( "data", "kopiemail/localmail");
131 // f += "/Applications/opiemail/localmail"; 133 // f += "/Applications/opiemail/localmail";
132 return f; 134 return f;
133} 135}
134 136
135QString AbstractMail::draftFolder() 137QString AbstractMail::draftFolder()
136{ 138{
137 return QString("Drafts"); 139 return QString("Drafts");
138} 140}
139 141
140/* temporary - will be removed when implemented in all classes */ 142/* temporary - will be removed when implemented in all classes */
141void AbstractMail::deleteMails(const QString &,const QValueList<Opie::Core::OSmartPointer<RecMail> > &) 143void AbstractMail::deleteMails(const QString &,const Q3ValueList<Opie::Core::OSmartPointer<RecMail> > &)
142{ 144{
143} 145}
144void AbstractMail::deleteMailList(const QValueList<RecMailP>&target) 146void AbstractMail::deleteMailList(const Q3ValueList<RecMailP>&target)
145{ 147{
146 //qDebug("AbstractMail::deleteMailList:: Please reimplement! "); 148 //qDebug("AbstractMail::deleteMailList:: Please reimplement! ");
147 // this is currently re-implemented in pop3wrapper and imapwrapper 149 // this is currently re-implemented in pop3wrapper and imapwrapper
148 int iii = 0; 150 int iii = 0;
149 int count = target.count(); 151 int count = target.count();
150 QProgressBar wid ( count ); 152 Q3ProgressBar wid ( count );
151 wid.setCaption( i18n("Deleting ...")); 153 wid.setCaption( i18n("Deleting ..."));
152 wid.show(); 154 wid.show();
153 while (iii < count ) { 155 while (iii < count ) {
154 Global::statusMessage(i18n("Delete message %1 of %2").arg(iii).arg(count)); 156 Global::statusMessage(i18n("Delete message %1 of %2").arg(iii).arg(count));
155 wid.setProgress( iii ); 157 wid.setProgress( iii );
156 wid.raise(); 158 wid.raise();
157 qApp->processEvents(); 159 qApp->processEvents();
158 RecMailP mail = (*target.at( iii )); 160 RecMailP mail = (*target.at( iii ));
159 deleteMail(mail); 161 deleteMail(mail);
160 ++iii; 162 ++iii;
161 } 163 }
162} 164}
163 165
164void AbstractMail::downloadNewMails(const FolderP&fromFolder, AbstractMail*targetMail ) 166void AbstractMail::downloadNewMails(const FolderP&fromFolder, AbstractMail*targetMail )
165{ 167{
166 //qDebug("AbstractMail::downloadNewMails %s ", fromFolder->getName().latin1()); 168 //qDebug("AbstractMail::downloadNewMails %s ", fromFolder->getName().latin1());
167 // get local folder 169 // get local folder
168 Account * acc = getAccount(); 170 Account * acc = getAccount();
169 if ( !acc ) return; 171 if ( !acc ) return;
170 QString lfName = acc->getLocalFolder(); 172 QString lfName = acc->getLocalFolder();
171 if ( lfName.isEmpty() ) 173 if ( lfName.isEmpty() )
172 lfName = acc->getAccountName(); 174 lfName = acc->getAccountName();
173 // create local folder 175 // create local folder
174 if ( !targetMail->createMbox(lfName)) 176 if ( !targetMail->createMbox(lfName))
175 { 177 {
176 QMessageBox::critical(0,i18n("Error creating new Folder"), 178 QMessageBox::critical(0,i18n("Error creating new Folder"),
177 i18n("Error while creating new folder\n%1\n\nCancelling action.").arg(lfName)); 179 i18n("Error while creating new folder\n%1\n\nCancelling action.").arg(lfName));
178 return; 180 return;
179 } 181 }
180 QValueList<RecMailP> t; 182 Q3ValueList<RecMailP> t;
181 listMessages(fromFolder->getName(),t,acc->getMaxMailSize() ); 183 listMessages(fromFolder->getName(),t,acc->getMaxMailSize() );
182 if ( t.count() == 0 ) { 184 if ( t.count() == 0 ) {
183 qDebug("There are no new messages %s", fromFolder->getName().latin1()); 185 qDebug("There are no new messages %s", fromFolder->getName().latin1());
184 Global::statusMessage(i18n("There are no new messages")); 186 Global::statusMessage(i18n("There are no new messages"));
185 return; 187 return;
186 } 188 }
187 Global::statusMessage(i18n("%1 :Downloading mails..."). arg(acc->getAccountName())); 189 Global::statusMessage(i18n("%1 :Downloading mails..."). arg(acc->getAccountName()));
188 qDebug(i18n("%1 :Downloading mails..."). arg(acc->getAccountName())); 190 qDebug(i18n("%1 :Downloading mails..."). arg(acc->getAccountName()));
189 qApp->processEvents(); 191 qApp->processEvents();
190 QValueList<RecMailP> e; 192 Q3ValueList<RecMailP> e;
191 targetMail->listMessages(lfName,e,acc->getMaxMailSize() ); 193 targetMail->listMessages(lfName,e,acc->getMaxMailSize() );
192 //qDebug("target has mails %d ", e.count()); 194 //qDebug("target has mails %d ", e.count());
193 QValueList<RecMailP> n; 195 Q3ValueList<RecMailP> n;
194 int iii = 0; 196 int iii = 0;
195 int count = t.count(); 197 int count = t.count();
196 while (iii < count ) { 198 while (iii < count ) {
197 RecMailP r = (*t.at( iii )); 199 RecMailP r = (*t.at( iii ));
198 bool found = false; 200 bool found = false;
199 int jjj = 0; 201 int jjj = 0;
200 int countE = e.count(); 202 int countE = e.count();
201 while (jjj < countE ) { 203 while (jjj < countE ) {
202 RecMailP re = (*e.at( jjj )); 204 RecMailP re = (*e.at( jjj ));
203 if ( re->isEqual(r) ) { 205 if ( re->isEqual(r) ) {
204 found = true; 206 found = true;
205 break; 207 break;
206 } 208 }
207 ++jjj; 209 ++jjj;
208 } 210 }
209 if ( !found ) { 211 if ( !found ) {
210 //qDebug("AAAdate *%s* ", r->isodate.latin1() ); 212 //qDebug("AAAdate *%s* ", r->isodate.latin1() );
211 n.append( r ); 213 n.append( r );
212 } 214 }
213 ++iii; 215 ++iii;
214 } 216 }
215 qDebug("Downloaded %d messages ",n.count() ); 217 qDebug("Downloaded %d messages ",n.count() );
216 if ( n.count() == 0 ) { 218 if ( n.count() == 0 ) {
217 Global::statusMessage(i18n("There are no new messages")); 219 Global::statusMessage(i18n("There are no new messages"));
218 return; 220 return;
219 } 221 }
220 mvcpMailList( n,lfName,targetMail,!acc->getLeaveOnServer()); 222 mvcpMailList( n,lfName,targetMail,!acc->getLeaveOnServer());
221 Global::statusMessage(i18n("Downloaded %1 messages").arg(n.count())); 223 Global::statusMessage(i18n("Downloaded %1 messages").arg(n.count()));
222 224
223#if 0 225#if 0
224 QValueList<RecMailP> t; 226 Q3ValueList<RecMailP> t;
225 listMessages(fromFolder->getName(),t, maxSizeInKb); 227 listMessages(fromFolder->getName(),t, maxSizeInKb);
226 mvcpMailList( t,targetFolder,targetWrapper,moveit); 228 mvcpMailList( t,targetFolder,targetWrapper,moveit);
227#endif 229#endif
228 230
229} 231}
230void AbstractMail::mvcpAllMails(const FolderP&fromFolder, 232void AbstractMail::mvcpAllMails(const FolderP&fromFolder,
231 const QString&targetFolder,AbstractMail*targetWrapper,bool moveit, int maxSizeInKb) 233 const QString&targetFolder,AbstractMail*targetWrapper,bool moveit, int maxSizeInKb)
232{ 234{
233 QValueList<RecMailP> t; 235 Q3ValueList<RecMailP> t;
234 listMessages(fromFolder->getName(),t, maxSizeInKb); 236 listMessages(fromFolder->getName(),t, maxSizeInKb);
235 mvcpMailList( t,targetFolder,targetWrapper,moveit); 237 mvcpMailList( t,targetFolder,targetWrapper,moveit);
236 238
237} 239}
238void AbstractMail::mvcpMailList(const QValueList<RecMailP>& t, 240void AbstractMail::mvcpMailList(const Q3ValueList<RecMailP>& t,
239 const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) 241 const QString&targetFolder,AbstractMail*targetWrapper,bool moveit)
240{ 242{
241 encodedString*st = 0; 243 encodedString*st = 0;
242 int iii = 0; 244 int iii = 0;
243 int count = t.count(); 245 int count = t.count();
244 if ( count == 0 ) 246 if ( count == 0 )
245 return; 247 return;
246 // wel, processevents is qite strange, we need a widget for getting 248 // wel, processevents is qite strange, we need a widget for getting
247 // Global::statusMessage(i18n("Copy2 message %1").arg(iii)); displaye 249 // Global::statusMessage(i18n("Copy2 message %1").arg(iii)); displaye
248 250
249 QProgressBar wid ( count ); 251 Q3ProgressBar wid ( count );
250 wid.setCaption( i18n("Copying...")); 252 wid.setCaption( i18n("Copying..."));
251 wid.show(); 253 wid.show();
252 while (iii < count ) { 254 while (iii < count ) {
253 Global::statusMessage(i18n("Copy message %1 of %2").arg(iii).arg(count)); 255 Global::statusMessage(i18n("Copy message %1 of %2").arg(iii).arg(count));
254 wid.setProgress( iii ); 256 wid.setProgress( iii );
255 wid.raise(); 257 wid.raise();
256 qApp->processEvents(); 258 qApp->processEvents();
257 RecMailP r = (*t.at( iii )); 259 RecMailP r = (*t.at( iii ));
258 st = fetchRawBody(r); 260 st = fetchRawBody(r);
259 if (st) { 261 if (st) {
260 targetWrapper->storeMessage(st->Content(),st->Length(),targetFolder); 262 targetWrapper->storeMessage(st->Content(),st->Length(),targetFolder);
261 delete st; 263 delete st;
262 } 264 }
263 ++iii; 265 ++iii;
264 } 266 }
265 if (moveit) { 267 if (moveit) {
266 deleteMailList( t ); 268 deleteMailList( t );
267 //deleteAllMail(fromFolder); 269 //deleteAllMail(fromFolder);
268 } 270 }
269} 271}
270 272
271void AbstractMail::mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) 273void AbstractMail::mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit)
272{ 274{
273 encodedString*st = 0; 275 encodedString*st = 0;
274 st = fetchRawBody(mail); 276 st = fetchRawBody(mail);
275 if (st) { 277 if (st) {
276 targetWrapper->storeMessage(st->Content(),st->Length(),targetFolder); 278 targetWrapper->storeMessage(st->Content(),st->Length(),targetFolder);
277 delete st; 279 delete st;
278 } 280 }
279 if (moveit) { 281 if (moveit) {
280 deleteMail(mail); 282 deleteMail(mail);
281 } 283 }
282} 284}
diff --git a/kmicromail/libmailwrapper/abstractmail.h b/kmicromail/libmailwrapper/abstractmail.h
index 2069ca1..f606b1f 100644
--- a/kmicromail/libmailwrapper/abstractmail.h
+++ b/kmicromail/libmailwrapper/abstractmail.h
@@ -1,81 +1,83 @@
1// CHANGED 2004-09-31 Lutz Rogowski 1// CHANGED 2004-09-31 Lutz Rogowski
2#ifndef __abstract_mail_ 2#ifndef __abstract_mail_
3#define __abstract_mail_ 3#define __abstract_mail_
4 4
5#include "maildefines.h" 5#include "maildefines.h"
6 6
7#include "settings.h" 7#include "settings.h"
8 8
9#include <qobject.h> 9#include <qobject.h>
10//Added by qt3to4:
11#include <Q3ValueList>
10#include <opie2/osmartpointer.h> 12#include <opie2/osmartpointer.h>
11#include "mailtypes.h" 13#include "mailtypes.h"
12 14
13 15
14#include "mailwrapper.h" 16#include "mailwrapper.h"
15 17
16class IMAPwrapper; 18class IMAPwrapper;
17class POP3wrapper; 19class POP3wrapper;
18class Folder; 20class Folder;
19class encodedString; 21class encodedString;
20struct folderStat; 22struct folderStat;
21 23
22class AbstractMail:public QObject 24class AbstractMail:public QObject
23{ 25{
24 Q_OBJECT 26 Q_OBJECT
25public: 27public:
26 AbstractMail(){}; 28 AbstractMail(){};
27 virtual ~AbstractMail(){} 29 virtual ~AbstractMail(){}
28 virtual QValueList<Opie::Core::OSmartPointer<Folder> >* listFolders()=0; 30 virtual Q3ValueList<Opie::Core::OSmartPointer<Folder> >* listFolders()=0;
29 virtual void listMessages(const QString & mailbox,QValueList<RecMailP>&target, int sizeInKb = 0 )=0; 31 virtual void listMessages(const QString & mailbox,Q3ValueList<RecMailP>&target, int sizeInKb = 0 )=0;
30 virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX")=0; 32 virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX")=0;
31 virtual RecBodyP fetchBody(const RecMailP&mail)=0; 33 virtual RecBodyP fetchBody(const RecMailP&mail)=0;
32 virtual QString fetchTextPart(const RecMailP&mail,const RecPartP&part)=0; 34 virtual QString fetchTextPart(const RecMailP&mail,const RecPartP&part)=0;
33 virtual encodedString* fetchDecodedPart(const RecMailP&mail,const RecPartP&part)=0; 35 virtual encodedString* fetchDecodedPart(const RecMailP&mail,const RecPartP&part)=0;
34 virtual encodedString* fetchRawPart(const RecMailP&mail,const RecPartP&part)=0; 36 virtual encodedString* fetchRawPart(const RecMailP&mail,const RecPartP&part)=0;
35 virtual encodedString* fetchRawBody(const RecMailP&mail)=0; 37 virtual encodedString* fetchRawBody(const RecMailP&mail)=0;
36 38
37 virtual void deleteMail(const RecMailP&mail)=0; 39 virtual void deleteMail(const RecMailP&mail)=0;
38 virtual void deleteMailList(const QValueList<RecMailP>&target); 40 virtual void deleteMailList(const Q3ValueList<RecMailP>&target);
39 virtual void answeredMail(const RecMailP&mail)=0; 41 virtual void answeredMail(const RecMailP&mail)=0;
40 virtual int deleteAllMail(const Opie::Core::OSmartPointer<Folder>&)=0; 42 virtual int deleteAllMail(const Opie::Core::OSmartPointer<Folder>&)=0;
41 virtual void deleteMails(const QString & FolderName,const QValueList<Opie::Core::OSmartPointer<RecMail> >&target); 43 virtual void deleteMails(const QString & FolderName,const Q3ValueList<Opie::Core::OSmartPointer<RecMail> >&target);
42 virtual int deleteMbox(const Opie::Core::OSmartPointer<Folder>&)=0; 44 virtual int deleteMbox(const Opie::Core::OSmartPointer<Folder>&)=0;
43 virtual void storeMessage(const char*msg,size_t length, const QString&folder)=0; 45 virtual void storeMessage(const char*msg,size_t length, const QString&folder)=0;
44 void downloadNewMails(const FolderP&fromFolder,AbstractMail*targetWrapper ); 46 void downloadNewMails(const FolderP&fromFolder,AbstractMail*targetWrapper );
45 virtual void mvcpAllMails(const Opie::Core::OSmartPointer<Folder>&fromFolder, 47 virtual void mvcpAllMails(const Opie::Core::OSmartPointer<Folder>&fromFolder,
46 const QString&targetFolder,AbstractMail*targetWrapper,bool moveit, int sizeInKb = 0); 48 const QString&targetFolder,AbstractMail*targetWrapper,bool moveit, int sizeInKb = 0);
47 virtual void mvcpMailList(const QValueList<RecMailP>& t, 49 virtual void mvcpMailList(const Q3ValueList<RecMailP>& t,
48 const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); 50 const QString&targetFolder,AbstractMail*targetWrapper,bool moveit);
49 virtual void mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); 51 virtual void mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit);
50 52
51 virtual void cleanMimeCache(){}; 53 virtual void cleanMimeCache(){};
52 /* mail box methods */ 54 /* mail box methods */
53 /* parameter is the box to create. 55 /* parameter is the box to create.
54 * if the implementing subclass has prefixes, 56 * if the implementing subclass has prefixes,
55 * them has to be appended automatic. 57 * them has to be appended automatic.
56 */ 58 */
57 virtual int createMbox(const QString&,const Opie::Core::OSmartPointer<Folder>&parentfolder=0, 59 virtual int createMbox(const QString&,const Opie::Core::OSmartPointer<Folder>&parentfolder=0,
58 const QString& delemiter="/",bool getsubfolder=false); 60 const QString& delemiter="/",bool getsubfolder=false);
59 virtual void logout()=0; 61 virtual void logout()=0;
60 62
61 virtual Account* getAccount() = 0; 63 virtual Account* getAccount() = 0;
62 64
63 static AbstractMail* getWrapper(IMAPaccount *a); 65 static AbstractMail* getWrapper(IMAPaccount *a);
64 static AbstractMail* getWrapper(POP3account *a); 66 static AbstractMail* getWrapper(POP3account *a);
65 static AbstractMail* getWrapper(NNTPaccount *a); 67 static AbstractMail* getWrapper(NNTPaccount *a);
66 /* mbox only! */ 68 /* mbox only! */
67 static AbstractMail* getWrapper(const QString&a,const QString&name="Local Folders"); 69 static AbstractMail* getWrapper(const QString&a,const QString&name="Local Folders");
68 static AbstractMail* getWrapper(Account*a); 70 static AbstractMail* getWrapper(Account*a);
69 71
70 static QString defaultLocalfolder(); 72 static QString defaultLocalfolder();
71 static QString draftFolder(); 73 static QString draftFolder();
72 74
73 virtual MAILLIB::ATYPE getType()const=0; 75 virtual MAILLIB::ATYPE getType()const=0;
74 virtual const QString&getName()const=0; 76 virtual const QString&getName()const=0;
75 77
76protected: 78protected:
77 static encodedString*decode_String(const encodedString*text,const QString&enc); 79 static encodedString*decode_String(const encodedString*text,const QString&enc);
78 static QString convert_String(const char*text); 80 static QString convert_String(const char*text);
79 static QString gen_attachment_id(); 81 static QString gen_attachment_id();
80}; 82};
81#endif 83#endif
diff --git a/kmicromail/libmailwrapper/generatemail.cpp b/kmicromail/libmailwrapper/generatemail.cpp
index 2d213fe..ddad21b 100644
--- a/kmicromail/libmailwrapper/generatemail.cpp
+++ b/kmicromail/libmailwrapper/generatemail.cpp
@@ -1,383 +1,385 @@
1#include "generatemail.h" 1#include "generatemail.h"
2#include "mailwrapper.h" 2#include "mailwrapper.h"
3 3
4#include <libetpan/libetpan.h> 4#include <libetpan/libetpan.h>
5 5
6//#include <qt.h> 6//#include <qt.h>
7 7
8#include <stdlib.h> 8#include <stdlib.h>
9#include <qfileinfo.h> 9#include <qfileinfo.h>
10//Added by qt3to4:
11#include <Q3CString>
10 12
11using namespace Opie::Core; 13using namespace Opie::Core;
12const char* Generatemail::USER_AGENT="KOpieMail 33 1/3"; 14const char* Generatemail::USER_AGENT="KOpieMail 33 1/3";
13 15
14Generatemail::Generatemail() 16Generatemail::Generatemail()
15{ 17{
16 mCharset = "iso-8859-1"; 18 mCharset = "iso-8859-1";
17} 19}
18 20
19Generatemail::~Generatemail() 21Generatemail::~Generatemail()
20{ 22{
21} 23}
22 24
23void Generatemail::addRcpts( clist *list, mailimf_address_list *addr_list ) { 25void Generatemail::addRcpts( clist *list, mailimf_address_list *addr_list ) {
24 clistiter *it, *it2; 26 clistiter *it, *it2;
25 27
26 for ( it = clist_begin( addr_list->ad_list ); it; it = it->next ) { 28 for ( it = clist_begin( addr_list->ad_list ); it; it = it->next ) {
27 mailimf_address *addr; 29 mailimf_address *addr;
28 addr = (mailimf_address *) it->data; 30 addr = (mailimf_address *) it->data;
29 31
30 if ( addr->ad_type == MAILIMF_ADDRESS_MAILBOX ) { 32 if ( addr->ad_type == MAILIMF_ADDRESS_MAILBOX ) {
31 esmtp_address_list_add( list, addr->ad_data.ad_mailbox->mb_addr_spec, 0, NULL ); 33 esmtp_address_list_add( list, addr->ad_data.ad_mailbox->mb_addr_spec, 0, NULL );
32 } else if ( addr->ad_type == MAILIMF_ADDRESS_GROUP ) { 34 } else if ( addr->ad_type == MAILIMF_ADDRESS_GROUP ) {
33 clist *l = addr->ad_data.ad_group->grp_mb_list->mb_list; 35 clist *l = addr->ad_data.ad_group->grp_mb_list->mb_list;
34 for ( it2 = clist_begin( l ); it2; it2 = it2->next ) { 36 for ( it2 = clist_begin( l ); it2; it2 = it2->next ) {
35 mailimf_mailbox *mbox; 37 mailimf_mailbox *mbox;
36 mbox = (mailimf_mailbox *) it2->data; 38 mbox = (mailimf_mailbox *) it2->data;
37 esmtp_address_list_add( list, mbox->mb_addr_spec, 0, NULL ); 39 esmtp_address_list_add( list, mbox->mb_addr_spec, 0, NULL );
38 } 40 }
39 } 41 }
40 } 42 }
41} 43}
42 44
43char *Generatemail::getFrom( mailimf_field *ffrom) { 45char *Generatemail::getFrom( mailimf_field *ffrom) {
44 char *from = NULL; 46 char *from = NULL;
45 if ( ffrom && (ffrom->fld_type == MAILIMF_FIELD_FROM) 47 if ( ffrom && (ffrom->fld_type == MAILIMF_FIELD_FROM)
46 && ffrom->fld_data.fld_from->frm_mb_list && ffrom->fld_data.fld_from->frm_mb_list->mb_list ) { 48 && ffrom->fld_data.fld_from->frm_mb_list && ffrom->fld_data.fld_from->frm_mb_list->mb_list ) {
47 clist *cl = ffrom->fld_data.fld_from->frm_mb_list->mb_list; 49 clist *cl = ffrom->fld_data.fld_from->frm_mb_list->mb_list;
48 clistiter *it; 50 clistiter *it;
49 for ( it = clist_begin( cl ); it; it = it->next ) { 51 for ( it = clist_begin( cl ); it; it = it->next ) {
50 mailimf_mailbox *mb = (mailimf_mailbox *) it->data; 52 mailimf_mailbox *mb = (mailimf_mailbox *) it->data;
51 from = strdup( mb->mb_addr_spec ); 53 from = strdup( mb->mb_addr_spec );
52 } 54 }
53 } 55 }
54 56
55 return from; 57 return from;
56} 58}
57 59
58char *Generatemail::getFrom( mailmime *mail ) { 60char *Generatemail::getFrom( mailmime *mail ) {
59 /* no need to delete - its just a pointer to structure content */ 61 /* no need to delete - its just a pointer to structure content */
60 mailimf_field *ffrom = 0; 62 mailimf_field *ffrom = 0;
61 ffrom = getField( mail->mm_data.mm_message.mm_fields, MAILIMF_FIELD_FROM ); 63 ffrom = getField( mail->mm_data.mm_message.mm_fields, MAILIMF_FIELD_FROM );
62 return getFrom(ffrom); 64 return getFrom(ffrom);
63} 65}
64 66
65mailimf_field *Generatemail::getField( mailimf_fields *fields, int type ) { 67mailimf_field *Generatemail::getField( mailimf_fields *fields, int type ) {
66 mailimf_field *field; 68 mailimf_field *field;
67 clistiter *it; 69 clistiter *it;
68 70
69 it = clist_begin( fields->fld_list ); 71 it = clist_begin( fields->fld_list );
70 while ( it ) { 72 while ( it ) {
71 field = (mailimf_field *) it->data; 73 field = (mailimf_field *) it->data;
72 if ( field->fld_type == type ) { 74 if ( field->fld_type == type ) {
73 return field; 75 return field;
74 } 76 }
75 it = it->next; 77 it = it->next;
76 } 78 }
77 79
78 return NULL; 80 return NULL;
79} 81}
80 82
81mailimf_address_list *Generatemail::parseAddresses(const QString&addr ) { 83mailimf_address_list *Generatemail::parseAddresses(const QString&addr ) {
82 mailimf_address_list *addresses; 84 mailimf_address_list *addresses;
83 85
84 if ( addr.isEmpty() ) 86 if ( addr.isEmpty() )
85 return NULL; 87 return NULL;
86 88
87 addresses = mailimf_address_list_new_empty(); 89 addresses = mailimf_address_list_new_empty();
88 90
89 bool literal_open = false; 91 bool literal_open = false;
90 unsigned int startpos = 0; 92 unsigned int startpos = 0;
91 QStringList list; 93 QStringList list;
92 QString s; 94 QString s;
93 unsigned int i = 0; 95 unsigned int i = 0;
94 for (; i < addr.length();++i) { 96 for (; i < addr.length();++i) {
95 switch (addr[i]) { 97 switch (addr[i]) {
96 case '\"': 98 case '\"':
97 literal_open = !literal_open; 99 literal_open = !literal_open;
98 break; 100 break;
99 case ',': 101 case ',':
100 if (!literal_open) { 102 if (!literal_open) {
101 s = addr.mid(startpos,i-startpos); 103 s = addr.mid(startpos,i-startpos);
102 if (!s.isEmpty()) { 104 if (!s.isEmpty()) {
103 list.append(s); 105 list.append(s);
104 } 106 }
105 // !!!! this is a MUST BE! 107 // !!!! this is a MUST BE!
106 startpos = ++i; 108 startpos = ++i;
107 } 109 }
108 break; 110 break;
109 default: 111 default:
110 break; 112 break;
111 } 113 }
112 } 114 }
113 s = addr.mid(startpos,i-startpos); 115 s = addr.mid(startpos,i-startpos);
114 if (!s.isEmpty()) { 116 if (!s.isEmpty()) {
115 list.append(s); 117 list.append(s);
116 } 118 }
117 QStringList::Iterator it; 119 QStringList::Iterator it;
118 for ( it = list.begin(); it != list.end(); it++ ) { 120 for ( it = list.begin(); it != list.end(); it++ ) {
119 int err = mailimf_address_list_add_parse( addresses, (char*)(*it).latin1() ); 121 int err = mailimf_address_list_add_parse( addresses, (char*)(*it).latin1() );
120 if ( err != MAILIMF_NO_ERROR ) { 122 if ( err != MAILIMF_NO_ERROR ) {
121 qDebug(" Error parsing"); // *it 123 qDebug(" Error parsing"); // *it
122 } else { 124 } else {
123 } 125 }
124 } 126 }
125 return addresses; 127 return addresses;
126} 128}
127 129
128mailmime *Generatemail::buildFilePart(const QString&filename,const QString&mimetype,const QString&TextContent ) { 130mailmime *Generatemail::buildFilePart(const QString&filename,const QString&mimetype,const QString&TextContent ) {
129 mailmime * filePart = 0; 131 mailmime * filePart = 0;
130 mailmime_fields * fields = 0; 132 mailmime_fields * fields = 0;
131 mailmime_content * content = 0; 133 mailmime_content * content = 0;
132 mailmime_parameter * param = 0; 134 mailmime_parameter * param = 0;
133 char*name = 0; 135 char*name = 0;
134 char*file = 0; 136 char*file = 0;
135 int err; 137 int err;
136 int pos = filename.findRev( '/' ); 138 int pos = filename.findRev( '/' );
137 139
138 if (filename.length()>0) { 140 if (filename.length()>0) {
139 QString tmp = filename.right( filename.length() - ( pos + 1 ) ); 141 QString tmp = filename.right( filename.length() - ( pos + 1 ) );
140 name = strdup( tmp.latin1() ); // just filename 142 name = strdup( tmp.latin1() ); // just filename
141 file = strdup( filename.latin1() ); // full name with path 143 file = strdup( filename.latin1() ); // full name with path
142 } 144 }
143 145
144 int disptype = MAILMIME_DISPOSITION_TYPE_ATTACHMENT; 146 int disptype = MAILMIME_DISPOSITION_TYPE_ATTACHMENT;
145 int mechanism = MAILMIME_MECHANISM_BASE64; 147 int mechanism = MAILMIME_MECHANISM_BASE64;
146 148
147 if ( mimetype.startsWith( "text/" ) ) { 149 if ( mimetype.startsWith( "text/" ) ) {
148 param = mailmime_parameter_new( strdup( "charset" ), 150 param = mailmime_parameter_new( strdup( "charset" ),
149 strdup( mCharset.latin1() ) ); 151 strdup( mCharset.latin1() ) );
150 mechanism = MAILMIME_MECHANISM_QUOTED_PRINTABLE; 152 mechanism = MAILMIME_MECHANISM_QUOTED_PRINTABLE;
151 } 153 }
152 154
153 fields = mailmime_fields_new_filename( 155 fields = mailmime_fields_new_filename(
154 disptype, name, 156 disptype, name,
155 mechanism ); 157 mechanism );
156 content = mailmime_content_new_with_str( (char*)mimetype.latin1() ); 158 content = mailmime_content_new_with_str( (char*)mimetype.latin1() );
157 if (content!=0 && fields != 0) { 159 if (content!=0 && fields != 0) {
158 if (param) { 160 if (param) {
159 clist_append(content->ct_parameters,param); 161 clist_append(content->ct_parameters,param);
160 param = 0; 162 param = 0;
161 } 163 }
162 if (filename.length()>0) { 164 if (filename.length()>0) {
163 QFileInfo f(filename); 165 QFileInfo f(filename);
164 param = mailmime_parameter_new(strdup("name"),strdup(f.fileName().latin1())); 166 param = mailmime_parameter_new(strdup("name"),strdup(f.fileName().latin1()));
165 clist_append(content->ct_parameters,param); 167 clist_append(content->ct_parameters,param);
166 param = 0; 168 param = 0;
167 } 169 }
168 filePart = mailmime_new_empty( content, fields ); 170 filePart = mailmime_new_empty( content, fields );
169 } 171 }
170 if (filePart) { 172 if (filePart) {
171 if (filename.length()>0) { 173 if (filename.length()>0) {
172 err = mailmime_set_body_file( filePart, file ); 174 err = mailmime_set_body_file( filePart, file );
173 } else { 175 } else {
174 err = mailmime_set_body_text(filePart,strdup( TextContent.utf8().data()),TextContent.utf8().length()); 176 err = mailmime_set_body_text(filePart,strdup( TextContent.utf8().data()),TextContent.utf8().length());
175 //err = mailmime_set_body_text(filePart,strdup( TextContent.latin1()),TextContent.length()); 177 //err = mailmime_set_body_text(filePart,strdup( TextContent.latin1()),TextContent.length());
176 } 178 }
177 if (err != MAILIMF_NO_ERROR) { 179 if (err != MAILIMF_NO_ERROR) {
178 qDebug("Error setting body with file "); 180 qDebug("Error setting body with file ");
179 mailmime_free( filePart ); 181 mailmime_free( filePart );
180 filePart = 0; 182 filePart = 0;
181 } 183 }
182 } 184 }
183 185
184 if (!filePart) { 186 if (!filePart) {
185 if ( param != NULL ) { 187 if ( param != NULL ) {
186 mailmime_parameter_free( param ); 188 mailmime_parameter_free( param );
187 } 189 }
188 if (content) { 190 if (content) {
189 mailmime_content_free( content ); 191 mailmime_content_free( content );
190 } 192 }
191 if (fields) { 193 if (fields) {
192 mailmime_fields_free( fields ); 194 mailmime_fields_free( fields );
193 } else { 195 } else {
194 if (name) { 196 if (name) {
195 free( name ); 197 free( name );
196 } 198 }
197 if (file) { 199 if (file) {
198 free( file ); 200 free( file );
199 } 201 }
200 } 202 }
201 } 203 }
202 return filePart; // Success :) 204 return filePart; // Success :)
203 205
204} 206}
205 207
206void Generatemail::addFileParts( mailmime *message,const QList<Attachment>&files ) { 208void Generatemail::addFileParts( mailmime *message,const QList<Attachment>&files ) {
207 const Attachment *it; 209 const Attachment *it;
208 unsigned int count = files.count(); 210 unsigned int count = files.count();
209 for ( unsigned int i = 0; i < count; ++i ) { 211 for ( unsigned int i = 0; i < count; ++i ) {
210 mailmime *filePart; 212 mailmime *filePart;
211 int err; 213 int err;
212 it = ((QList<Attachment>)files).at(i); 214 it = ((QList<Attachment>)files).at(i);
213 215
214 filePart = buildFilePart( it->getFileName(), it->getMimeType(),"" ); 216 filePart = buildFilePart( it->getFileName(), it->getMimeType(),"" );
215 if ( filePart == NULL ) { 217 if ( filePart == NULL ) {
216 continue; 218 continue;
217 } 219 }
218 err = mailmime_smart_add_part( message, filePart ); 220 err = mailmime_smart_add_part( message, filePart );
219 if ( err != MAILIMF_NO_ERROR ) { 221 if ( err != MAILIMF_NO_ERROR ) {
220 mailmime_free( filePart ); 222 mailmime_free( filePart );
221 } 223 }
222 } 224 }
223} 225}
224 226
225mailmime *Generatemail::buildTxtPart(const QString&str ) { 227mailmime *Generatemail::buildTxtPart(const QString&str ) {
226 mailmime *txtPart; 228 mailmime *txtPart;
227 mailmime_fields *fields; 229 mailmime_fields *fields;
228 mailmime_content *content; 230 mailmime_content *content;
229 mailmime_parameter *param; 231 mailmime_parameter *param;
230 int err; 232 int err;
231 QCString __str; 233 Q3CString __str;
232 //qDebug(" Generatemail::buildTxtPart %s", str.latin1()); 234 //qDebug(" Generatemail::buildTxtPart %s", str.latin1());
233 param = mailmime_parameter_new( strdup( "charset" ), 235 param = mailmime_parameter_new( strdup( "charset" ),
234 strdup( mCharset.latin1() ) ); 236 strdup( mCharset.latin1() ) );
235 if ( param == NULL ) 237 if ( param == NULL )
236 goto err_free; 238 goto err_free;
237 239
238 content = mailmime_content_new_with_str( "text/plain" ); 240 content = mailmime_content_new_with_str( "text/plain" );
239 if ( content == NULL ) 241 if ( content == NULL )
240 goto err_free_param; 242 goto err_free_param;
241 243
242 err = clist_append( content->ct_parameters, param ); 244 err = clist_append( content->ct_parameters, param );
243 if ( err != MAILIMF_NO_ERROR ) 245 if ( err != MAILIMF_NO_ERROR )
244 goto err_free_content; 246 goto err_free_content;
245 247
246 fields = mailmime_fields_new_encoding(MAILMIME_MECHANISM_8BIT); 248 fields = mailmime_fields_new_encoding(MAILMIME_MECHANISM_8BIT);
247 if ( fields == NULL ) 249 if ( fields == NULL )
248 goto err_free_content; 250 goto err_free_content;
249 251
250 txtPart = mailmime_new_empty( content, fields ); 252 txtPart = mailmime_new_empty( content, fields );
251 if ( txtPart == NULL ) 253 if ( txtPart == NULL )
252 goto err_free_fields; 254 goto err_free_fields;
253 { 255 {
254 //__str = str.utf8(); 256 //__str = str.utf8();
255 __str = QCString (str.latin1()); 257 __str = Q3CString (str.latin1());
256 err = mailmime_set_body_text( txtPart, strdup(__str.data()), __str.length() ); 258 err = mailmime_set_body_text( txtPart, strdup(__str.data()), __str.length() );
257 } 259 }
258 if ( err != MAILIMF_NO_ERROR ) 260 if ( err != MAILIMF_NO_ERROR )
259 goto err_free_txtPart; 261 goto err_free_txtPart;
260 262
261 return txtPart; // Success :) 263 return txtPart; // Success :)
262 264
263err_free_txtPart: 265err_free_txtPart:
264 mailmime_free( txtPart ); 266 mailmime_free( txtPart );
265err_free_fields: 267err_free_fields:
266 mailmime_fields_free( fields ); 268 mailmime_fields_free( fields );
267err_free_content: 269err_free_content:
268 mailmime_content_free( content ); 270 mailmime_content_free( content );
269err_free_param: 271err_free_param:
270 mailmime_parameter_free( param ); 272 mailmime_parameter_free( param );
271err_free: 273err_free:
272 ; 274 ;
273 275
274 return NULL; // Error :( 276 return NULL; // Error :(
275} 277}
276 278
277mailimf_mailbox *Generatemail::newMailbox(const QString&name, const QString&mail ) { 279mailimf_mailbox *Generatemail::newMailbox(const QString&name, const QString&mail ) {
278 return mailimf_mailbox_new( strdup( name.latin1() ), 280 return mailimf_mailbox_new( strdup( name.latin1() ),
279 strdup( mail.latin1() ) ); 281 strdup( mail.latin1() ) );
280} 282}
281 283
282mailimf_fields *Generatemail::createImfFields(const Opie::Core::OSmartPointer<Mail>&mail ) 284mailimf_fields *Generatemail::createImfFields(const Opie::Core::OSmartPointer<Mail>&mail )
283{ 285{
284 mailimf_fields *fields = NULL; 286 mailimf_fields *fields = NULL;
285 mailimf_field *xmailer = NULL; 287 mailimf_field *xmailer = NULL;
286 mailimf_mailbox *sender=0,*fromBox=0; 288 mailimf_mailbox *sender=0,*fromBox=0;
287 mailimf_mailbox_list *from=0; 289 mailimf_mailbox_list *from=0;
288 mailimf_address_list *to=0, *cc=0, *bcc=0, *reply=0; 290 mailimf_address_list *to=0, *cc=0, *bcc=0, *reply=0;
289 clist*in_reply_to = 0; 291 clist*in_reply_to = 0;
290 char *subject = strdup( mail->getSubject().latin1() ); 292 char *subject = strdup( mail->getSubject().latin1() );
291 int err; 293 int err;
292 int res = 1; 294 int res = 1;
293 295
294 sender = newMailbox( mail->getName(), mail->getMail() ); 296 sender = newMailbox( mail->getName(), mail->getMail() );
295 if ( sender == NULL ) { 297 if ( sender == NULL ) {
296 res = 0; 298 res = 0;
297 } 299 }
298 300
299 if (res) { 301 if (res) {
300 fromBox = newMailbox( mail->getName(), mail->getMail() ); 302 fromBox = newMailbox( mail->getName(), mail->getMail() );
301 } 303 }
302 if ( fromBox == NULL ) { 304 if ( fromBox == NULL ) {
303 res = 0; 305 res = 0;
304 } 306 }
305 307
306 if (res) { 308 if (res) {
307 from = mailimf_mailbox_list_new_empty(); 309 from = mailimf_mailbox_list_new_empty();
308 } 310 }
309 if ( from == NULL ) { 311 if ( from == NULL ) {
310 res = 0; 312 res = 0;
311 } 313 }
312 314
313 if (res && from) { 315 if (res && from) {
314 err = mailimf_mailbox_list_add( from, fromBox ); 316 err = mailimf_mailbox_list_add( from, fromBox );
315 if ( err != MAILIMF_NO_ERROR ) { 317 if ( err != MAILIMF_NO_ERROR ) {
316 res = 0; 318 res = 0;
317 } 319 }
318 } 320 }
319 321
320 if (res) to = parseAddresses( mail->getTo() ); 322 if (res) to = parseAddresses( mail->getTo() );
321 if (res) cc = parseAddresses( mail->getCC() ); 323 if (res) cc = parseAddresses( mail->getCC() );
322 if (res) bcc = parseAddresses( mail->getBCC() ); 324 if (res) bcc = parseAddresses( mail->getBCC() );
323 if (res) reply = parseAddresses( mail->getReply() ); 325 if (res) reply = parseAddresses( mail->getReply() );
324 326
325 if (res && mail->Inreply().count()>0) { 327 if (res && mail->Inreply().count()>0) {
326 in_reply_to = clist_new(); 328 in_reply_to = clist_new();
327 char*c_reply; 329 char*c_reply;
328 unsigned int nsize = 0; 330 unsigned int nsize = 0;
329 for (QStringList::ConstIterator it=mail->Inreply().begin(); 331 for (QStringList::ConstIterator it=mail->Inreply().begin();
330 it != mail->Inreply().end();++it) { 332 it != mail->Inreply().end();++it) {
331 if ((*it).isEmpty()) 333 if ((*it).isEmpty())
332 continue; 334 continue;
333 QString h((*it)); 335 QString h((*it));
334 while (h.length()>0 && h[0]=='<') { 336 while (h.length()>0 && h[0]=='<') {
335 h.remove(0,1); 337 h.remove(0,1);
336 } 338 }
337 while (h.length()>0 && h[h.length()-1]=='>') { 339 while (h.length()>0 && h[h.length()-1]=='>') {
338 h.remove(h.length()-1,1); 340 h.remove(h.length()-1,1);
339 } 341 }
340 if (h.isEmpty()) continue; 342 if (h.isEmpty()) continue;
341 nsize = strlen(h.latin1()); 343 nsize = strlen(h.latin1());
342 /* yes! must be malloc! */ 344 /* yes! must be malloc! */
343 c_reply = (char*)malloc( (nsize+1)*sizeof(char)); 345 c_reply = (char*)malloc( (nsize+1)*sizeof(char));
344 memset(c_reply,0,nsize+1); 346 memset(c_reply,0,nsize+1);
345 memcpy(c_reply,h.latin1(),nsize); 347 memcpy(c_reply,h.latin1(),nsize);
346 clist_append(in_reply_to,c_reply); 348 clist_append(in_reply_to,c_reply);
347 } 349 }
348 } 350 }
349 351
350 if (res) { 352 if (res) {
351 fields = mailimf_fields_new_with_data( from, sender, reply, to, cc, bcc, 353 fields = mailimf_fields_new_with_data( from, sender, reply, to, cc, bcc,
352 in_reply_to, NULL, subject ); 354 in_reply_to, NULL, subject );
353 if ( fields == NULL ) { 355 if ( fields == NULL ) {
354 res = 0; 356 res = 0;
355 } 357 }
356 } 358 }
357 if (res) xmailer = mailimf_field_new_custom( strdup( "User-Agent" ), 359 if (res) xmailer = mailimf_field_new_custom( strdup( "User-Agent" ),
358 strdup( USER_AGENT ) ); 360 strdup( USER_AGENT ) );
359 if ( xmailer == NULL ) { 361 if ( xmailer == NULL ) {
360 res = 0; 362 res = 0;
361 } else { 363 } else {
362 err = mailimf_fields_add( fields, xmailer ); 364 err = mailimf_fields_add( fields, xmailer );
363 if ( err != MAILIMF_NO_ERROR ) { 365 if ( err != MAILIMF_NO_ERROR ) {
364 res = 0; 366 res = 0;
365 } 367 }
366 } 368 }
367 if (!res ) { 369 if (!res ) {
368 if (xmailer) { 370 if (xmailer) {
369 mailimf_field_free( xmailer ); 371 mailimf_field_free( xmailer );
370 xmailer = NULL; 372 xmailer = NULL;
371 } 373 }
372 if (fields) { 374 if (fields) {
373 mailimf_fields_free( fields ); 375 mailimf_fields_free( fields );
374 fields = NULL; 376 fields = NULL;
375 } else { 377 } else {
376 if (reply) 378 if (reply)
377 mailimf_address_list_free( reply ); 379 mailimf_address_list_free( reply );
378 if (bcc) 380 if (bcc)
379 mailimf_address_list_free( bcc ); 381 mailimf_address_list_free( bcc );
380 if (cc) 382 if (cc)
381 mailimf_address_list_free( cc ); 383 mailimf_address_list_free( cc );
382 if (to) 384 if (to)
383 mailimf_address_list_free( to ); 385 mailimf_address_list_free( to );
diff --git a/kmicromail/libmailwrapper/genericwrapper.cpp b/kmicromail/libmailwrapper/genericwrapper.cpp
index 0b6adf7..633ab42 100644
--- a/kmicromail/libmailwrapper/genericwrapper.cpp
+++ b/kmicromail/libmailwrapper/genericwrapper.cpp
@@ -1,549 +1,551 @@
1// CHANGED 2004-09-31 Lutz Rogowski 1// CHANGED 2004-09-31 Lutz Rogowski
2#include "genericwrapper.h" 2#include "genericwrapper.h"
3#include <libetpan/libetpan.h> 3#include <libetpan/libetpan.h>
4#include "mailtypes.h" 4#include "mailtypes.h"
5 5
6#include <kconfig.h> 6#include <kconfig.h>
7#include <kglobal.h> 7#include <kglobal.h>
8#include <kstandarddirs.h> 8#include <kstandarddirs.h>
9//Added by qt3to4:
10#include <Q3ValueList>
9 11
10 12
11using namespace Opie::Core; 13using namespace Opie::Core;
12Genericwrapper::Genericwrapper() 14Genericwrapper::Genericwrapper()
13 : AbstractMail() 15 : AbstractMail()
14{ 16{
15 bodyCache.clear(); 17 bodyCache.clear();
16 m_storage = 0; 18 m_storage = 0;
17 m_folder = 0; 19 m_folder = 0;
18} 20}
19 21
20Genericwrapper::~Genericwrapper() 22Genericwrapper::~Genericwrapper()
21{ 23{
22 if (m_folder) { 24 if (m_folder) {
23 mailfolder_free(m_folder); 25 mailfolder_free(m_folder);
24 } 26 }
25 if (m_storage) { 27 if (m_storage) {
26 mailstorage_free(m_storage); 28 mailstorage_free(m_storage);
27 } 29 }
28 cleanMimeCache(); 30 cleanMimeCache();
29} 31}
30const QDateTime Genericwrapper::parseDateTime( mailimf_date_time *date ) 32const QDateTime Genericwrapper::parseDateTime( mailimf_date_time *date )
31{ 33{
32 34
33 QDate da (date->dt_year,date->dt_month, date->dt_day ); 35 QDate da (date->dt_year,date->dt_month, date->dt_day );
34 QTime ti ( date->dt_hour, date->dt_min, date->dt_sec ); 36 QTime ti ( date->dt_hour, date->dt_min, date->dt_sec );
35 QDateTime dt ( da ,ti ); 37 QDateTime dt ( da ,ti );
36 int addsec = -date->dt_zone*36; 38 int addsec = -date->dt_zone*36;
37 //qDebug("adsec1 %d ",addsec ); 39 //qDebug("adsec1 %d ",addsec );
38 dt = dt.addSecs( addsec ); 40 dt = dt.addSecs( addsec );
39 int off = KGlobal::locale()->localTimeOffset( dt ); 41 int off = KGlobal::locale()->localTimeOffset( dt );
40 //qDebug("adsec2 %d ",off*60 ); 42 //qDebug("adsec2 %d ",off*60 );
41 43
42 dt = dt.addSecs( off*60 ); 44 dt = dt.addSecs( off*60 );
43 return dt; 45 return dt;
44#if 0 46#if 0
45 QString ret; 47 QString ret;
46 if ( dt.date() == QDate::currentDate () ) 48 if ( dt.date() == QDate::currentDate () )
47 ret = KGlobal::locale()->formatTime( dt.time(),true); 49 ret = KGlobal::locale()->formatTime( dt.time(),true);
48 50
49 else { 51 else {
50 ret = KGlobal::locale()->formatDateTime( dt,true,true); 52 ret = KGlobal::locale()->formatDateTime( dt,true,true);
51 } 53 }
52#endif 54#endif
53#if 0 55#if 0
54 if ( off < 0 ) 56 if ( off < 0 )
55 ret += " -"; 57 ret += " -";
56 else 58 else
57 ret += " +"; 59 ret += " +";
58 ret += QString::number( off / 60 ); 60 ret += QString::number( off / 60 );
59 ret += "h"; 61 ret += "h";
60#endif 62#endif
61#if 0 63#if 0
62 char tmp[23]; 64 char tmp[23];
63 65
64 // snprintf( tmp, 23, "%02i.%02i.%04i %02i:%02i:%02i %+05i", 66 // snprintf( tmp, 23, "%02i.%02i.%04i %02i:%02i:%02i %+05i",
65 // date->dt_day, date->dt_month, date->dt_year, date->dt_hour, date->dt_min, date->dt_sec, date->dt_zone ); 67 // date->dt_day, date->dt_month, date->dt_year, date->dt_hour, date->dt_min, date->dt_sec, date->dt_zone );
66 snprintf( tmp, 23, "%04i-%02i-%02i %02i:%02i:%02i %+05i", 68 snprintf( tmp, 23, "%04i-%02i-%02i %02i:%02i:%02i %+05i",
67 date->dt_year,date->dt_month, date->dt_day, date->dt_hour, date->dt_min, date->dt_sec, date->dt_zone ); 69 date->dt_year,date->dt_month, date->dt_day, date->dt_hour, date->dt_min, date->dt_sec, date->dt_zone );
68 70
69 71
70 return QString( tmp ); 72 return QString( tmp );
71#endif 73#endif
72 //return ret; 74 //return ret;
73} 75}
74 76
75void Genericwrapper::fillSingleBody(RecPartP&target,mailmessage*,mailmime*mime) 77void Genericwrapper::fillSingleBody(RecPartP&target,mailmessage*,mailmime*mime)
76{ 78{
77 if (!mime) { 79 if (!mime) {
78 return; 80 return;
79 } 81 }
80 mailmime_field*field = 0; 82 mailmime_field*field = 0;
81 mailmime_single_fields fields; 83 mailmime_single_fields fields;
82 memset(&fields, 0, sizeof(struct mailmime_single_fields)); 84 memset(&fields, 0, sizeof(struct mailmime_single_fields));
83 if (mime->mm_mime_fields != NULL) { 85 if (mime->mm_mime_fields != NULL) {
84 mailmime_single_fields_init(&fields, mime->mm_mime_fields, 86 mailmime_single_fields_init(&fields, mime->mm_mime_fields,
85 mime->mm_content_type); 87 mime->mm_content_type);
86 } 88 }
87 89
88 mailmime_content*type = fields.fld_content; 90 mailmime_content*type = fields.fld_content;
89 clistcell*current; 91 clistcell*current;
90 if (!type) { 92 if (!type) {
91 target->setType("text"); 93 target->setType("text");
92 target->setSubtype("plain"); 94 target->setSubtype("plain");
93 } else { 95 } else {
94 target->setSubtype(type->ct_subtype); 96 target->setSubtype(type->ct_subtype);
95 switch(type->ct_type->tp_data.tp_discrete_type->dt_type) { 97 switch(type->ct_type->tp_data.tp_discrete_type->dt_type) {
96 case MAILMIME_DISCRETE_TYPE_TEXT: 98 case MAILMIME_DISCRETE_TYPE_TEXT:
97 target->setType("text"); 99 target->setType("text");
98 break; 100 break;
99 case MAILMIME_DISCRETE_TYPE_IMAGE: 101 case MAILMIME_DISCRETE_TYPE_IMAGE:
100 target->setType("image"); 102 target->setType("image");
101 break; 103 break;
102 case MAILMIME_DISCRETE_TYPE_AUDIO: 104 case MAILMIME_DISCRETE_TYPE_AUDIO:
103 target->setType("audio"); 105 target->setType("audio");
104 break; 106 break;
105 case MAILMIME_DISCRETE_TYPE_VIDEO: 107 case MAILMIME_DISCRETE_TYPE_VIDEO:
106 target->setType("video"); 108 target->setType("video");
107 break; 109 break;
108 case MAILMIME_DISCRETE_TYPE_APPLICATION: 110 case MAILMIME_DISCRETE_TYPE_APPLICATION:
109 target->setType("application"); 111 target->setType("application");
110 break; 112 break;
111 case MAILMIME_DISCRETE_TYPE_EXTENSION: 113 case MAILMIME_DISCRETE_TYPE_EXTENSION:
112 default: 114 default:
113 if (type->ct_type->tp_data.tp_discrete_type->dt_extension) { 115 if (type->ct_type->tp_data.tp_discrete_type->dt_extension) {
114 target->setType(type->ct_type->tp_data.tp_discrete_type->dt_extension); 116 target->setType(type->ct_type->tp_data.tp_discrete_type->dt_extension);
115 } 117 }
116 break; 118 break;
117 } 119 }
118 if (type->ct_parameters) { 120 if (type->ct_parameters) {
119 fillParameters(target,type->ct_parameters); 121 fillParameters(target,type->ct_parameters);
120 } 122 }
121 } 123 }
122 if (mime->mm_mime_fields && mime->mm_mime_fields->fld_list) { 124 if (mime->mm_mime_fields && mime->mm_mime_fields->fld_list) {
123 for (current=clist_begin(mime->mm_mime_fields->fld_list);current!=0;current=clist_next(current)) { 125 for (current=clist_begin(mime->mm_mime_fields->fld_list);current!=0;current=clist_next(current)) {
124 field = (mailmime_field*)current->data; 126 field = (mailmime_field*)current->data;
125 switch(field->fld_type) { 127 switch(field->fld_type) {
126 case MAILMIME_FIELD_TRANSFER_ENCODING: 128 case MAILMIME_FIELD_TRANSFER_ENCODING:
127 target->setEncoding(getencoding(field->fld_data.fld_encoding)); 129 target->setEncoding(getencoding(field->fld_data.fld_encoding));
128 break; 130 break;
129 case MAILMIME_FIELD_ID: 131 case MAILMIME_FIELD_ID:
130 target->setIdentifier(field->fld_data.fld_id); 132 target->setIdentifier(field->fld_data.fld_id);
131 break; 133 break;
132 case MAILMIME_FIELD_DESCRIPTION: 134 case MAILMIME_FIELD_DESCRIPTION:
133 target->setDescription(field->fld_data.fld_description); 135 target->setDescription(field->fld_data.fld_description);
134 break; 136 break;
135 default: 137 default:
136 break; 138 break;
137 } 139 }
138 } 140 }
139 } 141 }
140} 142}
141 143
142void Genericwrapper::fillParameters(RecPartP&target,clist*parameters) 144void Genericwrapper::fillParameters(RecPartP&target,clist*parameters)
143{ 145{
144 if (!parameters) {return;} 146 if (!parameters) {return;}
145 clistcell*current=0; 147 clistcell*current=0;
146 mailmime_parameter*param; 148 mailmime_parameter*param;
147 for (current=clist_begin(parameters);current!=0;current=clist_next(current)) { 149 for (current=clist_begin(parameters);current!=0;current=clist_next(current)) {
148 param = (mailmime_parameter*)current->data; 150 param = (mailmime_parameter*)current->data;
149 if (param) { 151 if (param) {
150 target->addParameter(QString(param->pa_name).lower(),QString(param->pa_value)); 152 target->addParameter(QString(param->pa_name).lower(),QString(param->pa_value));
151 } 153 }
152 } 154 }
153} 155}
154 156
155QString Genericwrapper::getencoding(mailmime_mechanism*aEnc) 157QString Genericwrapper::getencoding(mailmime_mechanism*aEnc)
156{ 158{
157 QString enc="7bit"; 159 QString enc="7bit";
158 if (!aEnc) return enc; 160 if (!aEnc) return enc;
159 switch(aEnc->enc_type) { 161 switch(aEnc->enc_type) {
160 case MAILMIME_MECHANISM_7BIT: 162 case MAILMIME_MECHANISM_7BIT:
161 enc = "7bit"; 163 enc = "7bit";
162 break; 164 break;
163 case MAILMIME_MECHANISM_8BIT: 165 case MAILMIME_MECHANISM_8BIT:
164 enc = "8bit"; 166 enc = "8bit";
165 break; 167 break;
166 case MAILMIME_MECHANISM_BINARY: 168 case MAILMIME_MECHANISM_BINARY:
167 enc = "binary"; 169 enc = "binary";
168 break; 170 break;
169 case MAILMIME_MECHANISM_QUOTED_PRINTABLE: 171 case MAILMIME_MECHANISM_QUOTED_PRINTABLE:
170 enc = "quoted-printable"; 172 enc = "quoted-printable";
171 break; 173 break;
172 case MAILMIME_MECHANISM_BASE64: 174 case MAILMIME_MECHANISM_BASE64:
173 enc = "base64"; 175 enc = "base64";
174 break; 176 break;
175 case MAILMIME_MECHANISM_TOKEN: 177 case MAILMIME_MECHANISM_TOKEN:
176 default: 178 default:
177 if (aEnc->enc_token) { 179 if (aEnc->enc_token) {
178 enc = QString(aEnc->enc_token); 180 enc = QString(aEnc->enc_token);
179 } 181 }
180 break; 182 break;
181 } 183 }
182 return enc; 184 return enc;
183} 185}
184 186
185void Genericwrapper::traverseBody(RecBodyP&target,mailmessage*message,mailmime*mime,QValueList<int>recList,unsigned int current_rec,int current_count) 187void Genericwrapper::traverseBody(RecBodyP&target,mailmessage*message,mailmime*mime,Q3ValueList<int>recList,unsigned int current_rec,int current_count)
186{ 188{
187 if (current_rec >= 10) { 189 if (current_rec >= 10) {
188 ; // odebug << "too deep recursion!" << oendl; 190 ; // odebug << "too deep recursion!" << oendl;
189 } 191 }
190 if (!message || !mime) { 192 if (!message || !mime) {
191 return; 193 return;
192 } 194 }
193 int r; 195 int r;
194 char*data = 0; 196 char*data = 0;
195 size_t len; 197 size_t len;
196 clistiter * cur = 0; 198 clistiter * cur = 0;
197 QString b; 199 QString b;
198 RecPartP part = new RecPart(); 200 RecPartP part = new RecPart();
199 201
200 switch (mime->mm_type) { 202 switch (mime->mm_type) {
201 case MAILMIME_SINGLE: 203 case MAILMIME_SINGLE:
202 { 204 {
203 QValueList<int>countlist = recList; 205 Q3ValueList<int>countlist = recList;
204 countlist.append(current_count); 206 countlist.append(current_count);
205 r = mailmessage_fetch_section(message,mime,&data,&len); 207 r = mailmessage_fetch_section(message,mime,&data,&len);
206 part->setSize(len); 208 part->setSize(len);
207 part->setPositionlist(countlist); 209 part->setPositionlist(countlist);
208 b = gen_attachment_id(); 210 b = gen_attachment_id();
209 part->setIdentifier(b); 211 part->setIdentifier(b);
210 fillSingleBody(part,message,mime); 212 fillSingleBody(part,message,mime);
211 if (part->Type()=="text" && target->Bodytext().isNull()) { 213 if (part->Type()=="text" && target->Bodytext().isNull()) {
212 encodedString*rs = new encodedString(); 214 encodedString*rs = new encodedString();
213 rs->setContent(data,len); 215 rs->setContent(data,len);
214 encodedString*res = decode_String(rs,part->Encoding()); 216 encodedString*res = decode_String(rs,part->Encoding());
215 if (countlist.count()>2) { 217 if (countlist.count()>2) {
216 bodyCache[b]=rs; 218 bodyCache[b]=rs;
217 target->addPart(part); 219 target->addPart(part);
218 } else { 220 } else {
219 delete rs; 221 delete rs;
220 } 222 }
221 b = QString(res->Content()); 223 b = QString(res->Content());
222 delete res; 224 delete res;
223 size_t index = 0; 225 size_t index = 0;
224 char*resu = 0; 226 char*resu = 0;
225 int err = MAILIMF_NO_ERROR; 227 int err = MAILIMF_NO_ERROR;
226 QString charset = part->searchParamter( "charset"); 228 QString charset = part->searchParamter( "charset");
227 qDebug("CHARSET %s ",charset.latin1() ); 229 qDebug("CHARSET %s ",charset.latin1() );
228#if 0 230#if 0
229 if (false ) { 231 if (false ) {
230 //if ( !charset.isEmpty() ) { 232 //if ( !charset.isEmpty() ) {
231 target->setCharset( charset ); 233 target->setCharset( charset );
232 err = mailmime_encoded_phrase_parse(charset.latin1(), 234 err = mailmime_encoded_phrase_parse(charset.latin1(),
233 b.latin1(), b.length(),&index, "utf-8",&resu); 235 b.latin1(), b.length(),&index, "utf-8",&resu);
234 if (err == MAILIMF_NO_ERROR && resu && strlen(resu)) { 236 if (err == MAILIMF_NO_ERROR && resu && strlen(resu)) {
235 //qDebug("res %d %s ", index, resu); 237 //qDebug("res %d %s ", index, resu);
236 b = QString::fromUtf8(resu); 238 b = QString::fromUtf8(resu);
237 } 239 }
238 if (resu) free(resu); 240 if (resu) free(resu);
239 } 241 }
240#endif 242#endif
241 target->setBodytext(b); 243 target->setBodytext(b);
242 target->setDescription(part); 244 target->setDescription(part);
243 } else { 245 } else {
244 bodyCache[b]=new encodedString(data,len); 246 bodyCache[b]=new encodedString(data,len);
245 target->addPart(part); 247 target->addPart(part);
246 } 248 }
247 } 249 }
248 break; 250 break;
249 case MAILMIME_MULTIPLE: 251 case MAILMIME_MULTIPLE:
250 { 252 {
251 unsigned int ccount = 1; 253 unsigned int ccount = 1;
252 mailmime*cbody=0; 254 mailmime*cbody=0;
253 QValueList<int>countlist = recList; 255 Q3ValueList<int>countlist = recList;
254 for (cur = clist_begin(mime->mm_data.mm_multipart.mm_mp_list) ; cur != NULL ; cur = clist_next(cur)) { 256 for (cur = clist_begin(mime->mm_data.mm_multipart.mm_mp_list) ; cur != NULL ; cur = clist_next(cur)) {
255 cbody = (mailmime*)clist_content(cur); 257 cbody = (mailmime*)clist_content(cur);
256 if (cbody->mm_type==MAILMIME_MULTIPLE) { 258 if (cbody->mm_type==MAILMIME_MULTIPLE) {
257 RecPartP targetPart = new RecPart(); 259 RecPartP targetPart = new RecPart();
258 targetPart->setType("multipart"); 260 targetPart->setType("multipart");
259 countlist.append(current_count); 261 countlist.append(current_count);
260 targetPart->setPositionlist(countlist); 262 targetPart->setPositionlist(countlist);
261 target->addPart(targetPart); 263 target->addPart(targetPart);
262 } 264 }
263 traverseBody(target,message, cbody,countlist,current_rec+1,ccount); 265 traverseBody(target,message, cbody,countlist,current_rec+1,ccount);
264 if (cbody->mm_type==MAILMIME_MULTIPLE) { 266 if (cbody->mm_type==MAILMIME_MULTIPLE) {
265 countlist = recList; 267 countlist = recList;
266 } 268 }
267 ++ccount; 269 ++ccount;
268 } 270 }
269 } 271 }
270 break; 272 break;
271 case MAILMIME_MESSAGE: 273 case MAILMIME_MESSAGE:
272 { 274 {
273 QValueList<int>countlist = recList; 275 Q3ValueList<int>countlist = recList;
274 countlist.append(current_count); 276 countlist.append(current_count);
275 /* the own header is always at recursion 0 - we don't need that */ 277 /* the own header is always at recursion 0 - we don't need that */
276 if (current_rec > 0) { 278 if (current_rec > 0) {
277 part->setPositionlist(countlist); 279 part->setPositionlist(countlist);
278 r = mailmessage_fetch_section(message,mime,&data,&len); 280 r = mailmessage_fetch_section(message,mime,&data,&len);
279 part->setSize(len); 281 part->setSize(len);
280 part->setPositionlist(countlist); 282 part->setPositionlist(countlist);
281 b = gen_attachment_id(); 283 b = gen_attachment_id();
282 part->setIdentifier(b); 284 part->setIdentifier(b);
283 part->setType("message"); 285 part->setType("message");
284 part->setSubtype("rfc822"); 286 part->setSubtype("rfc822");
285 bodyCache[b]=new encodedString(data,len); 287 bodyCache[b]=new encodedString(data,len);
286 target->addPart(part); 288 target->addPart(part);
287 } 289 }
288 if (mime->mm_data.mm_message.mm_msg_mime != NULL) { 290 if (mime->mm_data.mm_message.mm_msg_mime != NULL) {
289 traverseBody(target,message,mime->mm_data.mm_message.mm_msg_mime,countlist,current_rec+1); 291 traverseBody(target,message,mime->mm_data.mm_message.mm_msg_mime,countlist,current_rec+1);
290 } 292 }
291 } 293 }
292 break; 294 break;
293 } 295 }
294} 296}
295 297
296RecBodyP Genericwrapper::parseMail( mailmessage * msg ) 298RecBodyP Genericwrapper::parseMail( mailmessage * msg )
297{ 299{
298 int err = MAILIMF_NO_ERROR; 300 int err = MAILIMF_NO_ERROR;
299 //mailmime_single_fields fields; 301 //mailmime_single_fields fields;
300 /* is bound to msg and will be freed there */ 302 /* is bound to msg and will be freed there */
301 mailmime * mime=0; 303 mailmime * mime=0;
302 RecBodyP body = new RecBody(); 304 RecBodyP body = new RecBody();
303 //memset(&fields, 0, sizeof(struct mailmime_single_fields)); 305 //memset(&fields, 0, sizeof(struct mailmime_single_fields));
304 err = mailmessage_get_bodystructure(msg,&mime); 306 err = mailmessage_get_bodystructure(msg,&mime);
305 QValueList<int>recList; 307 Q3ValueList<int>recList;
306 traverseBody(body,msg,mime,recList); 308 traverseBody(body,msg,mime,recList);
307 return body; 309 return body;
308} 310}
309 311
310 312
311QString Genericwrapper::parseAddressList( mailimf_address_list *list ) 313QString Genericwrapper::parseAddressList( mailimf_address_list *list )
312{ 314{
313 QString result( "" ); 315 QString result( "" );
314 316
315 bool first = true; 317 bool first = true;
316 if (list == 0) return result; 318 if (list == 0) return result;
317 for ( clistiter *current = clist_begin( list->ad_list ); current != NULL; current = current->next ) { 319 for ( clistiter *current = clist_begin( list->ad_list ); current != NULL; current = current->next ) {
318 mailimf_address *addr = (mailimf_address *) current->data; 320 mailimf_address *addr = (mailimf_address *) current->data;
319 321
320 if ( !first ) { 322 if ( !first ) {
321 result.append( "," ); 323 result.append( "," );
322 } else { 324 } else {
323 first = false; 325 first = false;
324 } 326 }
325 327
326 switch ( addr->ad_type ) { 328 switch ( addr->ad_type ) {
327 case MAILIMF_ADDRESS_MAILBOX: 329 case MAILIMF_ADDRESS_MAILBOX:
328 result.append( parseMailbox( addr->ad_data.ad_mailbox ) ); 330 result.append( parseMailbox( addr->ad_data.ad_mailbox ) );
329 break; 331 break;
330 case MAILIMF_ADDRESS_GROUP: 332 case MAILIMF_ADDRESS_GROUP:
331 result.append( parseGroup( addr->ad_data.ad_group ) ); 333 result.append( parseGroup( addr->ad_data.ad_group ) );
332 break; 334 break;
333 default: 335 default:
334 ; // odebug << "Generic: unkown mailimf address type" << oendl; 336 ; // odebug << "Generic: unkown mailimf address type" << oendl;
335 break; 337 break;
336 } 338 }
337 } 339 }
338 340
339 return result; 341 return result;
340} 342}
341 343
342QString Genericwrapper::parseGroup( mailimf_group *group ) 344QString Genericwrapper::parseGroup( mailimf_group *group )
343{ 345{
344 QString result( "" ); 346 QString result( "" );
345 347
346 result.append( group->grp_display_name ); 348 result.append( group->grp_display_name );
347 result.append( ": " ); 349 result.append( ": " );
348 350
349 if ( group->grp_mb_list != NULL ) { 351 if ( group->grp_mb_list != NULL ) {
350 result.append( parseMailboxList( group->grp_mb_list ) ); 352 result.append( parseMailboxList( group->grp_mb_list ) );
351 } 353 }
352 354
353 result.append( ";" ); 355 result.append( ";" );
354 356
355 return result; 357 return result;
356} 358}
357 359
358QString Genericwrapper::parseMailbox( mailimf_mailbox *box ) 360QString Genericwrapper::parseMailbox( mailimf_mailbox *box )
359{ 361{
360 QString result( "" ); 362 QString result( "" );
361 363
362 if ( box->mb_display_name == NULL ) { 364 if ( box->mb_display_name == NULL ) {
363 result.append( convert_String(box->mb_addr_spec) ); 365 result.append( convert_String(box->mb_addr_spec) );
364 } else { 366 } else {
365 result.append( convert_String(box->mb_display_name) ); 367 result.append( convert_String(box->mb_display_name) );
366 result.append( " <" ); 368 result.append( " <" );
367 result.append( convert_String( box->mb_addr_spec) ); 369 result.append( convert_String( box->mb_addr_spec) );
368 result.append( ">" ); 370 result.append( ">" );
369 } 371 }
370 372
371 return result; 373 return result;
372} 374}
373 375
374QString Genericwrapper::parseMailboxList( mailimf_mailbox_list *list ) 376QString Genericwrapper::parseMailboxList( mailimf_mailbox_list *list )
375{ 377{
376 QString result( "" ); 378 QString result( "" );
377 379
378 bool first = true; 380 bool first = true;
379 for ( clistiter *current = clist_begin( list->mb_list ); current != NULL; current = current->next ) { 381 for ( clistiter *current = clist_begin( list->mb_list ); current != NULL; current = current->next ) {
380 mailimf_mailbox *box = (mailimf_mailbox *) current->data; 382 mailimf_mailbox *box = (mailimf_mailbox *) current->data;
381 383
382 if ( !first ) { 384 if ( !first ) {
383 result.append( "," ); 385 result.append( "," );
384 } else { 386 } else {
385 first = false; 387 first = false;
386 } 388 }
387 389
388 result.append( parseMailbox( box ) ); 390 result.append( parseMailbox( box ) );
389 } 391 }
390 392
391 return result; 393 return result;
392} 394}
393 395
394encodedString* Genericwrapper::fetchDecodedPart(const RecMailP&,const RecPartP&part) 396encodedString* Genericwrapper::fetchDecodedPart(const RecMailP&,const RecPartP&part)
395{ 397{
396 QMap<QString,encodedString*>::ConstIterator it = bodyCache.find(part->Identifier()); 398 QMap<QString,encodedString*>::ConstIterator it = bodyCache.find(part->Identifier());
397 if (it==bodyCache.end()) return new encodedString(); 399 if (it==bodyCache.end()) return new encodedString();
398 encodedString*t = decode_String(it.data(),part->Encoding()); 400 encodedString*t = decode_String(it.data(),part->Encoding());
399 return t; 401 return t;
400} 402}
401 403
402encodedString* Genericwrapper::fetchRawPart(const RecMailP&,const RecPartP&part) 404encodedString* Genericwrapper::fetchRawPart(const RecMailP&,const RecPartP&part)
403{ 405{
404 QMap<QString,encodedString*>::ConstIterator it = bodyCache.find(part->Identifier()); 406 QMap<QString,encodedString*>::ConstIterator it = bodyCache.find(part->Identifier());
405 if (it==bodyCache.end()) return new encodedString(); 407 if (it==bodyCache.end()) return new encodedString();
406 encodedString*t = it.data(); 408 encodedString*t = it.data();
407 return t; 409 return t;
408} 410}
409 411
410QString Genericwrapper::fetchTextPart(const RecMailP&mail,const RecPartP&part) 412QString Genericwrapper::fetchTextPart(const RecMailP&mail,const RecPartP&part)
411{ 413{
412 encodedString*t = fetchDecodedPart(mail,part); 414 encodedString*t = fetchDecodedPart(mail,part);
413 QString text=t->Content(); 415 QString text=t->Content();
414 delete t; 416 delete t;
415 return text; 417 return text;
416} 418}
417 419
418void Genericwrapper::cleanMimeCache() 420void Genericwrapper::cleanMimeCache()
419{ 421{
420 QMap<QString,encodedString*>::Iterator it = bodyCache.begin(); 422 QMap<QString,encodedString*>::Iterator it = bodyCache.begin();
421 for (;it!=bodyCache.end();++it) { 423 for (;it!=bodyCache.end();++it) {
422 encodedString*t = it.data(); 424 encodedString*t = it.data();
423 //it.setValue(0); 425 //it.setValue(0);
424 if (t) delete t; 426 if (t) delete t;
425 } 427 }
426 bodyCache.clear(); 428 bodyCache.clear();
427 ; // odebug << "Genericwrapper: cache cleaned" << oendl; 429 ; // odebug << "Genericwrapper: cache cleaned" << oendl;
428} 430}
429 431
430QStringList Genericwrapper::parseInreplies(mailimf_in_reply_to * in_replies) 432QStringList Genericwrapper::parseInreplies(mailimf_in_reply_to * in_replies)
431{ 433{
432 QStringList res; 434 QStringList res;
433 if (!in_replies || !in_replies->mid_list) return res; 435 if (!in_replies || !in_replies->mid_list) return res;
434 clistiter * current = 0; 436 clistiter * current = 0;
435 for ( current = clist_begin( in_replies->mid_list ); current != NULL; current = current->next ) { 437 for ( current = clist_begin( in_replies->mid_list ); current != NULL; current = current->next ) {
436 QString h((char*)current->data); 438 QString h((char*)current->data);
437 while (h.length()>0 && h[0]=='<') { 439 while (h.length()>0 && h[0]=='<') {
438 h.remove(0,1); 440 h.remove(0,1);
439 } 441 }
440 while (h.length()>0 && h[h.length()-1]=='>') { 442 while (h.length()>0 && h[h.length()-1]=='>') {
441 h.remove(h.length()-1,1); 443 h.remove(h.length()-1,1);
442 } 444 }
443 if (h.length()>0) { 445 if (h.length()>0) {
444 res.append(h); 446 res.append(h);
445 } 447 }
446 } 448 }
447 return res; 449 return res;
448} 450}
449 451
450void Genericwrapper::parseList(QValueList<Opie::Core::OSmartPointer<RecMail> > &target,mailsession*session,const QString&mailbox,bool mbox_as_to, int maxSizeInKb) 452void Genericwrapper::parseList(Q3ValueList<Opie::Core::OSmartPointer<RecMail> > &target,mailsession*session,const QString&mailbox,bool mbox_as_to, int maxSizeInKb)
451{ 453{
452 int r; 454 int r;
453 mailmessage_list * env_list = 0; 455 mailmessage_list * env_list = 0;
454 r = mailsession_get_messages_list(session,&env_list); 456 r = mailsession_get_messages_list(session,&env_list);
455 if (r != MAIL_NO_ERROR) { 457 if (r != MAIL_NO_ERROR) {
456 ; // odebug << "Error message list" << oendl; 458 ; // odebug << "Error message list" << oendl;
457 return; 459 return;
458 } 460 }
459 r = mailsession_get_envelopes_list(session, env_list); 461 r = mailsession_get_envelopes_list(session, env_list);
460 if (r != MAIL_NO_ERROR) { 462 if (r != MAIL_NO_ERROR) {
461 ; // odebug << "Error filling message list" << oendl; 463 ; // odebug << "Error filling message list" << oendl;
462 if (env_list) { 464 if (env_list) {
463 mailmessage_list_free(env_list); 465 mailmessage_list_free(env_list);
464 } 466 }
465 return; 467 return;
466 } 468 }
467 mailimf_references * refs = 0; 469 mailimf_references * refs = 0;
468 mailimf_in_reply_to * in_replies = 0; 470 mailimf_in_reply_to * in_replies = 0;
469 uint32_t i = 0; 471 uint32_t i = 0;
470 for(; i < carray_count(env_list->msg_tab) ; ++i) { 472 for(; i < carray_count(env_list->msg_tab) ; ++i) {
471 mailmessage * msg; 473 mailmessage * msg;
472 QBitArray mFlags(7); 474 QBitArray mFlags(7);
473 msg = (mailmessage*)carray_get(env_list->msg_tab, i); 475 msg = (mailmessage*)carray_get(env_list->msg_tab, i);
474 if (msg->msg_fields == NULL) { 476 if (msg->msg_fields == NULL) {
475 //; // odebug << "could not fetch envelope of message " << i << "" << oendl; 477 //; // odebug << "could not fetch envelope of message " << i << "" << oendl;
476 continue; 478 continue;
477 } 479 }
478 RecMailP mail = new RecMail(); 480 RecMailP mail = new RecMail();
479 mail->setWrapper(this); 481 mail->setWrapper(this);
480 mail_flags * flag_result = 0; 482 mail_flags * flag_result = 0;
481 r = mailmessage_get_flags(msg,&flag_result); 483 r = mailmessage_get_flags(msg,&flag_result);
482 if (r == MAIL_ERROR_NOT_IMPLEMENTED) { 484 if (r == MAIL_ERROR_NOT_IMPLEMENTED) {
483 mFlags.setBit(FLAG_SEEN); 485 mFlags.setBit(FLAG_SEEN);
484 } 486 }
485 mailimf_single_fields single_fields; 487 mailimf_single_fields single_fields;
486 mailimf_single_fields_init(&single_fields, msg->msg_fields); 488 mailimf_single_fields_init(&single_fields, msg->msg_fields);
487 mail->setMsgsize(msg->msg_size); 489 mail->setMsgsize(msg->msg_size);
488 mail->setFlags(mFlags); 490 mail->setFlags(mFlags);
489 mail->setMbox(mailbox); 491 mail->setMbox(mailbox);
490 mail->setNumber(msg->msg_index); 492 mail->setNumber(msg->msg_index);
491 if (single_fields.fld_subject) 493 if (single_fields.fld_subject)
492 mail->setSubject( convert_String(single_fields.fld_subject->sbj_value)); 494 mail->setSubject( convert_String(single_fields.fld_subject->sbj_value));
493 if (single_fields.fld_from) { 495 if (single_fields.fld_from) {
494 mail->setFrom(parseMailboxList(single_fields.fld_from->frm_mb_list)); 496 mail->setFrom(parseMailboxList(single_fields.fld_from->frm_mb_list));
495 } 497 }
496 if (!mbox_as_to) { 498 if (!mbox_as_to) {
497 if (single_fields.fld_to) 499 if (single_fields.fld_to)
498 mail->setTo( parseAddressList( single_fields.fld_to->to_addr_list ) ); 500 mail->setTo( parseAddressList( single_fields.fld_to->to_addr_list ) );
499 } else { 501 } else {
500 mail->setTo(mailbox); 502 mail->setTo(mailbox);
501 } 503 }
502 if (single_fields.fld_cc) 504 if (single_fields.fld_cc)
503 mail->setCC( parseAddressList( single_fields.fld_cc->cc_addr_list ) ); 505 mail->setCC( parseAddressList( single_fields.fld_cc->cc_addr_list ) );
504 if (single_fields.fld_bcc) 506 if (single_fields.fld_bcc)
505 mail->setBcc( parseAddressList( single_fields.fld_bcc->bcc_addr_list ) ); 507 mail->setBcc( parseAddressList( single_fields.fld_bcc->bcc_addr_list ) );
506 if (single_fields.fld_orig_date) { 508 if (single_fields.fld_orig_date) {
507 QDateTime dt = Genericwrapper::parseDateTime( single_fields.fld_orig_date->dt_date_time ); 509 QDateTime dt = Genericwrapper::parseDateTime( single_fields.fld_orig_date->dt_date_time );
508 QString ret; 510 QString ret;
509 if ( dt.date() == QDate::currentDate () ) 511 if ( dt.date() == QDate::currentDate () )
510 ret = KGlobal::locale()->formatTime( dt.time(),true); 512 ret = KGlobal::locale()->formatTime( dt.time(),true);
511 else { 513 else {
512 ret = KGlobal::locale()->formatDateTime( dt,true,true); 514 ret = KGlobal::locale()->formatDateTime( dt,true,true);
513 } 515 }
514 mail->setDate( ret ); 516 mail->setDate( ret );
515 char tmp[20]; 517 char tmp[20];
516 snprintf( tmp, 20, "%04i-%02i-%02i %02i:%02i:%02i", 518 snprintf( tmp, 20, "%04i-%02i-%02i %02i:%02i:%02i",
517 dt.date().year(),dt.date().month(), dt.date().day(), dt.time().hour(), dt.time().minute(), dt.time().second() ); 519 dt.date().year(),dt.date().month(), dt.date().day(), dt.time().hour(), dt.time().minute(), dt.time().second() );
518 //qDebug(" iso %s ", tmp); 520 //qDebug(" iso %s ", tmp);
519 mail->setIsoDate( QString( tmp ) ); 521 mail->setIsoDate( QString( tmp ) );
520 } 522 }
521 // crashes when accessing pop3 account? 523 // crashes when accessing pop3 account?
522 if (single_fields.fld_message_id) { 524 if (single_fields.fld_message_id) {
523 mail->setMsgid(QString(single_fields.fld_message_id->mid_value)); 525 mail->setMsgid(QString(single_fields.fld_message_id->mid_value));
524 ; // odebug << "Msgid == " << mail->Msgid().latin1() << "" << oendl; 526 ; // odebug << "Msgid == " << mail->Msgid().latin1() << "" << oendl;
525 } 527 }
526 if (single_fields.fld_reply_to) { 528 if (single_fields.fld_reply_to) {
527 QStringList t = parseAddressList(single_fields.fld_reply_to->rt_addr_list); 529 QStringList t = parseAddressList(single_fields.fld_reply_to->rt_addr_list);
528 if (t.count()>0) { 530 if (t.count()>0) {
529 mail->setReplyto(t[0]); 531 mail->setReplyto(t[0]);
530 } 532 }
531 } 533 }
532#if 0 534#if 0
533 refs = single_fields.fld_references; 535 refs = single_fields.fld_references;
534 if (refs && refs->mid_list && clist_count(refs->mid_list)) { 536 if (refs && refs->mid_list && clist_count(refs->mid_list)) {
535 char * text = (char*)refs->mid_list->first->data; 537 char * text = (char*)refs->mid_list->first->data;
536 mail->setReplyto(QString(text)); 538 mail->setReplyto(QString(text));
537 } 539 }
538#endif 540#endif
539 if (single_fields.fld_in_reply_to && single_fields.fld_in_reply_to->mid_list && 541 if (single_fields.fld_in_reply_to && single_fields.fld_in_reply_to->mid_list &&
540 clist_count(single_fields.fld_in_reply_to->mid_list)) { 542 clist_count(single_fields.fld_in_reply_to->mid_list)) {
541 mail->setInreply(parseInreplies(single_fields.fld_in_reply_to)); 543 mail->setInreply(parseInreplies(single_fields.fld_in_reply_to));
542 } 544 }
543 if ( maxSizeInKb == 0 || mail->Msgsize()<=maxSizeInKb*1024 ) 545 if ( maxSizeInKb == 0 || mail->Msgsize()<=maxSizeInKb*1024 )
544 target.append(mail); 546 target.append(mail);
545 } 547 }
546 if (env_list) { 548 if (env_list) {
547 mailmessage_list_free(env_list); 549 mailmessage_list_free(env_list);
548 } 550 }
549} 551}
diff --git a/kmicromail/libmailwrapper/genericwrapper.h b/kmicromail/libmailwrapper/genericwrapper.h
index c35a6da..a50161d 100644
--- a/kmicromail/libmailwrapper/genericwrapper.h
+++ b/kmicromail/libmailwrapper/genericwrapper.h
@@ -1,68 +1,70 @@
1// CHANGED 2004-09-31 Lutz Rogowski 1// CHANGED 2004-09-31 Lutz Rogowski
2#ifndef __GENERIC_WRAPPER_H 2#ifndef __GENERIC_WRAPPER_H
3#define __GENERIC_WRAPPER_H 3#define __GENERIC_WRAPPER_H
4 4
5#include "abstractmail.h" 5#include "abstractmail.h"
6#include <qmap.h> 6#include <qmap.h>
7#include <qstring.h> 7#include <qstring.h>
8//Added by qt3to4:
9#include <Q3ValueList>
8#include <libetpan/clist.h> 10#include <libetpan/clist.h>
9 11
10class RecMail; 12class RecMail;
11class RecBody; 13class RecBody;
12class encodedString; 14class encodedString;
13struct mailpop3; 15struct mailpop3;
14struct mailmessage; 16struct mailmessage;
15struct mailmime; 17struct mailmime;
16struct mailmime_mechanism; 18struct mailmime_mechanism;
17struct mailimf_mailbox_list; 19struct mailimf_mailbox_list;
18struct mailimf_mailbox; 20struct mailimf_mailbox;
19struct mailimf_date_time; 21struct mailimf_date_time;
20struct mailimf_group; 22struct mailimf_group;
21struct mailimf_address_list; 23struct mailimf_address_list;
22struct mailsession; 24struct mailsession;
23struct mailstorage; 25struct mailstorage;
24struct mailfolder; 26struct mailfolder;
25struct mailimf_in_reply_to; 27struct mailimf_in_reply_to;
26 28
27/* this class hold just the funs shared between 29/* this class hold just the funs shared between
28 * mbox and pop3 (later mh, too) mail access. 30 * mbox and pop3 (later mh, too) mail access.
29 * it is not desigend to make a instance of it! 31 * it is not desigend to make a instance of it!
30 */ 32 */
31class Genericwrapper : public AbstractMail 33class Genericwrapper : public AbstractMail
32{ 34{
33 Q_OBJECT 35 Q_OBJECT
34public: 36public:
35 Genericwrapper(); 37 Genericwrapper();
36 virtual ~Genericwrapper(); 38 virtual ~Genericwrapper();
37 39
38 virtual encodedString* fetchDecodedPart(const RecMailP&mail,const RecPartP&part); 40 virtual encodedString* fetchDecodedPart(const RecMailP&mail,const RecPartP&part);
39 virtual encodedString* fetchRawPart(const RecMailP&mail,const RecPartP&part); 41 virtual encodedString* fetchRawPart(const RecMailP&mail,const RecPartP&part);
40 virtual QString fetchTextPart(const RecMailP&mail,const RecPartP&part); 42 virtual QString fetchTextPart(const RecMailP&mail,const RecPartP&part);
41 virtual void cleanMimeCache(); 43 virtual void cleanMimeCache();
42 virtual int deleteMbox(const Opie::Core::OSmartPointer<Folder>&){return 1;} 44 virtual int deleteMbox(const Opie::Core::OSmartPointer<Folder>&){return 1;}
43 virtual void logout(){}; 45 virtual void logout(){};
44 virtual void storeMessage(const char*msg,size_t length, const QString&folder){}; 46 virtual void storeMessage(const char*msg,size_t length, const QString&folder){};
45 static const QDateTime parseDateTime( mailimf_date_time *date ); 47 static const QDateTime parseDateTime( mailimf_date_time *date );
46 48
47protected: 49protected:
48 RecBodyP parseMail( mailmessage * msg ); 50 RecBodyP parseMail( mailmessage * msg );
49 QString parseMailboxList( mailimf_mailbox_list *list ); 51 QString parseMailboxList( mailimf_mailbox_list *list );
50 QString parseMailbox( mailimf_mailbox *box ); 52 QString parseMailbox( mailimf_mailbox *box );
51 QString parseGroup( mailimf_group *group ); 53 QString parseGroup( mailimf_group *group );
52 QString parseAddressList( mailimf_address_list *list ); 54 QString parseAddressList( mailimf_address_list *list );
53 55
54 void traverseBody(RecBodyP&target,mailmessage*message,mailmime*mime,QValueList<int>recList,unsigned int current_rek=0,int current_count=1); 56 void traverseBody(RecBodyP&target,mailmessage*message,mailmime*mime,Q3ValueList<int>recList,unsigned int current_rek=0,int current_count=1);
55 static void fillSingleBody(RecPartP&target,mailmessage*message,mailmime*mime); 57 static void fillSingleBody(RecPartP&target,mailmessage*message,mailmime*mime);
56 static void fillParameters(RecPartP&target,clist*parameters); 58 static void fillParameters(RecPartP&target,clist*parameters);
57 static QString getencoding(mailmime_mechanism*aEnc); 59 static QString getencoding(mailmime_mechanism*aEnc);
58 virtual void parseList(QValueList<Opie::Core::OSmartPointer<RecMail> > &target,mailsession*session,const QString&mailbox,bool mbox_as_to=false, int maxSizeInKb = 0); 60 virtual void parseList(Q3ValueList<Opie::Core::OSmartPointer<RecMail> > &target,mailsession*session,const QString&mailbox,bool mbox_as_to=false, int maxSizeInKb = 0);
59 QStringList parseInreplies(mailimf_in_reply_to * in_replies); 61 QStringList parseInreplies(mailimf_in_reply_to * in_replies);
60 62
61 QString msgTempName; 63 QString msgTempName;
62 unsigned int last_msg_id; 64 unsigned int last_msg_id;
63 QMap<QString,encodedString*> bodyCache; 65 QMap<QString,encodedString*> bodyCache;
64 mailstorage * m_storage; 66 mailstorage * m_storage;
65 mailfolder*m_folder; 67 mailfolder*m_folder;
66}; 68};
67 69
68#endif 70#endif
diff --git a/kmicromail/libmailwrapper/imapwrapper.cpp b/kmicromail/libmailwrapper/imapwrapper.cpp
index 4f0c849..f73f4cc 100644
--- a/kmicromail/libmailwrapper/imapwrapper.cpp
+++ b/kmicromail/libmailwrapper/imapwrapper.cpp
@@ -1,460 +1,462 @@
1// CHANGED 2004-09-31 Lutz Rogowski 1// CHANGED 2004-09-31 Lutz Rogowski
2#include <stdlib.h> 2#include <stdlib.h>
3#include <libetpan/libetpan.h> 3#include <libetpan/libetpan.h>
4#include <qpe/global.h> 4#include <qpe/global.h>
5#include <qapplication.h> 5#include <qapplication.h>
6//Added by qt3to4:
7#include <Q3ValueList>
6#include "imapwrapper.h" 8#include "imapwrapper.h"
7#include "mailtypes.h" 9#include "mailtypes.h"
8#include "logindialog.h" 10#include "logindialog.h"
9#include <qprogressbar.h> 11#include <q3progressbar.h>
10#include "genericwrapper.h" 12#include "genericwrapper.h"
11#include <kglobal.h> 13#include <kglobal.h>
12 14
13using namespace Opie::Core; 15using namespace Opie::Core;
14int IMAPwrapper::mMax = 0; 16int IMAPwrapper::mMax = 0;
15int IMAPwrapper::mCurrent = 0; 17int IMAPwrapper::mCurrent = 0;
16 18
17IMAPwrapper::IMAPwrapper( IMAPaccount *a ) 19IMAPwrapper::IMAPwrapper( IMAPaccount *a )
18 : AbstractMail() 20 : AbstractMail()
19{ 21{
20 account = a; 22 account = a;
21 m_imap = 0; 23 m_imap = 0;
22 m_Lastmbox = ""; 24 m_Lastmbox = "";
23 mCurrent = 0; 25 mCurrent = 0;
24 mMax = 0; 26 mMax = 0;
25} 27}
26 28
27IMAPwrapper::~IMAPwrapper() 29IMAPwrapper::~IMAPwrapper()
28{ 30{
29 logout(); 31 logout();
30} 32}
31 33
32/* to avoid to often select statements in loops etc. 34/* to avoid to often select statements in loops etc.
33 we trust that we are logged in and connection is established!*/ 35 we trust that we are logged in and connection is established!*/
34int IMAPwrapper::selectMbox(const QString&mbox) 36int IMAPwrapper::selectMbox(const QString&mbox)
35{ 37{
36 if (mbox == m_Lastmbox) { 38 if (mbox == m_Lastmbox) {
37 return MAILIMAP_NO_ERROR; 39 return MAILIMAP_NO_ERROR;
38 } 40 }
39 int err = mailimap_select( m_imap, (char*)mbox.latin1()); 41 int err = mailimap_select( m_imap, (char*)mbox.latin1());
40 if ( err != MAILIMAP_NO_ERROR ) { 42 if ( err != MAILIMAP_NO_ERROR ) {
41 m_Lastmbox = ""; 43 m_Lastmbox = "";
42 return err; 44 return err;
43 } 45 }
44 m_Lastmbox = mbox; 46 m_Lastmbox = mbox;
45 return err; 47 return err;
46} 48}
47 49
48void IMAPwrapper::imap_progress( size_t current, size_t maximum ) 50void IMAPwrapper::imap_progress( size_t current, size_t maximum )
49{ 51{
50 return; 52 return;
51 //qDebug("imap progress %d of %d ",current,maximum ); 53 //qDebug("imap progress %d of %d ",current,maximum );
52 //Global::statusMessage(i18n("Downloading message %1 of %2").arg( current).arg(maximum)); 54 //Global::statusMessage(i18n("Downloading message %1 of %2").arg( current).arg(maximum));
53 //qApp->processEvents() 55 //qApp->processEvents()
54 static unsigned int last = 0; 56 static unsigned int last = 0;
55 if ( last != current ) 57 if ( last != current )
56 IMAPwrapper::progress(); 58 IMAPwrapper::progress();
57 last = current; 59 last = current;
58} 60}
59void IMAPwrapper::progress( QString m ) 61void IMAPwrapper::progress( QString m )
60{ 62{
61 static QString mProgrMess; 63 static QString mProgrMess;
62 if ( m != QString::null ) { 64 if ( m != QString::null ) {
63 mProgrMess = m; 65 mProgrMess = m;
64 mCurrent = 1; 66 mCurrent = 1;
65 return; 67 return;
66 } 68 }
67 QString mess; 69 QString mess;
68 //qDebug("progress "); 70 //qDebug("progress ");
69 if ( mMax ) mess = mProgrMess +i18n(" message %1 of %2").arg( mCurrent++).arg(mMax); 71 if ( mMax ) mess = mProgrMess +i18n(" message %1 of %2").arg( mCurrent++).arg(mMax);
70 else mess = mProgrMess +i18n(" message %1").arg( mCurrent++); 72 else mess = mProgrMess +i18n(" message %1").arg( mCurrent++);
71 Global::statusMessage(mess); 73 Global::statusMessage(mess);
72 //qDebug("Progress %s %s", mess.latin1(), m.latin1()); 74 //qDebug("Progress %s %s", mess.latin1(), m.latin1());
73 qApp->processEvents(); 75 qApp->processEvents();
74} 76}
75bool IMAPwrapper::start_tls(bool force_tls) 77bool IMAPwrapper::start_tls(bool force_tls)
76{ 78{
77 int err; 79 int err;
78 bool try_tls = force_tls; 80 bool try_tls = force_tls;
79 mailimap_capability_data * cap_data = 0; 81 mailimap_capability_data * cap_data = 0;
80 82
81 err = mailimap_capability(m_imap,&cap_data); 83 err = mailimap_capability(m_imap,&cap_data);
82 if (err != MAILIMAP_NO_ERROR) { 84 if (err != MAILIMAP_NO_ERROR) {
83 Global::statusMessage("error getting capabilities!"); 85 Global::statusMessage("error getting capabilities!");
84 return false; 86 return false;
85 } 87 }
86 clistiter * cur; 88 clistiter * cur;
87 for(cur = clist_begin(cap_data->cap_list) ; cur != NULL;cur = clist_next(cur)) { 89 for(cur = clist_begin(cap_data->cap_list) ; cur != NULL;cur = clist_next(cur)) {
88 struct mailimap_capability * cap; 90 struct mailimap_capability * cap;
89 cap = (struct mailimap_capability *)clist_content(cur); 91 cap = (struct mailimap_capability *)clist_content(cur);
90 if (cap->cap_type == MAILIMAP_CAPABILITY_NAME) { 92 if (cap->cap_type == MAILIMAP_CAPABILITY_NAME) {
91 if (strcasecmp(cap->cap_data.cap_name, "STARTTLS") == 0) { 93 if (strcasecmp(cap->cap_data.cap_name, "STARTTLS") == 0) {
92 try_tls = true; 94 try_tls = true;
93 break; 95 break;
94 } 96 }
95 } 97 }
96 } 98 }
97 if (cap_data) { 99 if (cap_data) {
98 mailimap_capability_data_free(cap_data); 100 mailimap_capability_data_free(cap_data);
99 } 101 }
100 if (try_tls) { 102 if (try_tls) {
101 err = mailimap_starttls(m_imap); 103 err = mailimap_starttls(m_imap);
102 if (err != MAILIMAP_NO_ERROR && force_tls) { 104 if (err != MAILIMAP_NO_ERROR && force_tls) {
103 Global::statusMessage(i18n("Server has no TLS support!")); 105 Global::statusMessage(i18n("Server has no TLS support!"));
104 try_tls = false; 106 try_tls = false;
105 } else { 107 } else {
106 mailstream_low * low; 108 mailstream_low * low;
107 mailstream_low * new_low; 109 mailstream_low * new_low;
108 low = mailstream_get_low(m_imap->imap_stream); 110 low = mailstream_get_low(m_imap->imap_stream);
109 if (!low) { 111 if (!low) {
110 try_tls = false; 112 try_tls = false;
111 } else { 113 } else {
112 int fd = mailstream_low_get_fd(low); 114 int fd = mailstream_low_get_fd(low);
113 if (fd > -1 && (new_low = mailstream_low_ssl_open(fd))!=0) { 115 if (fd > -1 && (new_low = mailstream_low_ssl_open(fd))!=0) {
114 mailstream_low_free(low); 116 mailstream_low_free(low);
115 mailstream_set_low(m_imap->imap_stream, new_low); 117 mailstream_set_low(m_imap->imap_stream, new_low);
116 } else { 118 } else {
117 try_tls = false; 119 try_tls = false;
118 } 120 }
119 } 121 }
120 } 122 }
121 } 123 }
122 return try_tls; 124 return try_tls;
123} 125}
124 126
125void IMAPwrapper::login(bool tryTLS) // = true) 127void IMAPwrapper::login(bool tryTLS) // = true)
126{ 128{
127 QString server, user, pass; 129 QString server, user, pass;
128 uint16_t port; 130 uint16_t port;
129 int err = MAILIMAP_NO_ERROR; 131 int err = MAILIMAP_NO_ERROR;
130 132
131 if (account->getOffline()) return; 133 if (account->getOffline()) return;
132 /* we are connected this moment */ 134 /* we are connected this moment */
133 /* TODO: setup a timer holding the line or if connection closed - delete the value */ 135 /* TODO: setup a timer holding the line or if connection closed - delete the value */
134 if (m_imap) { 136 if (m_imap) {
135 err = mailimap_noop(m_imap); 137 err = mailimap_noop(m_imap);
136 if (err!=MAILIMAP_NO_ERROR) { 138 if (err!=MAILIMAP_NO_ERROR) {
137 logout(); 139 logout();
138 } else { 140 } else {
139 mailstream_flush(m_imap->imap_stream); 141 mailstream_flush(m_imap->imap_stream);
140 return; 142 return;
141 } 143 }
142 } 144 }
143 server = account->getServer(); 145 server = account->getServer();
144 port = account->getPort().toUInt(); 146 port = account->getPort().toUInt();
145 if ( account->getUser().isEmpty() || account->getPassword().isEmpty() ) { 147 if ( account->getUser().isEmpty() || account->getPassword().isEmpty() ) {
146 LoginDialog login( account->getUser(), account->getPassword(), NULL, 0, true ); 148 LoginDialog login( account->getUser(), account->getPassword(), NULL, 0, true );
147 login.show(); 149 login.show();
148 if ( QDialog::Accepted == login.exec() ) { 150 if ( QDialog::Accepted == login.exec() ) {
149 // ok 151 // ok
150 user = login.getUser(); 152 user = login.getUser();
151 pass = login.getPassword(); 153 pass = login.getPassword();
152 } else { 154 } else {
153 // cancel 155 // cancel
154 return; 156 return;
155 } 157 }
156 } else { 158 } else {
157 user = account->getUser(); 159 user = account->getUser();
158 pass = account->getPassword(); 160 pass = account->getPassword();
159 } 161 }
160 m_imap = mailimap_new( 20, &imap_progress ); 162 m_imap = mailimap_new( 20, &imap_progress );
161 163
162 /* connect */ 164 /* connect */
163 bool ssl = false; 165 bool ssl = false;
164 bool try_tls = false; 166 bool try_tls = false;
165 bool force_tls = false; 167 bool force_tls = false;
166 168
167 if ( account->ConnectionType() == 2 ) { 169 if ( account->ConnectionType() == 2 ) {
168 ssl = true; 170 ssl = true;
169 } 171 }
170 if (account->ConnectionType()==1) { 172 if (account->ConnectionType()==1) {
171 force_tls = true; 173 force_tls = true;
172 } 174 }
173 175
174 if ( ssl ) { 176 if ( ssl ) {
175 //qDebug("using ssl "); 177 //qDebug("using ssl ");
176 err = mailimap_ssl_connect( m_imap, (char*)server.latin1(), port ); 178 err = mailimap_ssl_connect( m_imap, (char*)server.latin1(), port );
177 //qDebug("back "); 179 //qDebug("back ");
178 } else { 180 } else {
179 err = mailimap_socket_connect( m_imap, (char*)server.latin1(), port ); 181 err = mailimap_socket_connect( m_imap, (char*)server.latin1(), port );
180 } 182 }
181 183
182 if ( err != MAILIMAP_NO_ERROR && 184 if ( err != MAILIMAP_NO_ERROR &&
183 err != MAILIMAP_NO_ERROR_AUTHENTICATED && 185 err != MAILIMAP_NO_ERROR_AUTHENTICATED &&
184 err != MAILIMAP_NO_ERROR_NON_AUTHENTICATED ) { 186 err != MAILIMAP_NO_ERROR_NON_AUTHENTICATED ) {
185 QString failure = ""; 187 QString failure = "";
186 if (err == MAILIMAP_ERROR_CONNECTION_REFUSED) { 188 if (err == MAILIMAP_ERROR_CONNECTION_REFUSED) {
187 failure="Connection refused"; 189 failure="Connection refused";
188 } else { 190 } else {
189 failure="Unknown failure"; 191 failure="Unknown failure";
190 } 192 }
191 Global::statusMessage(i18n("error connecting imap server: %1").arg(failure)); 193 Global::statusMessage(i18n("error connecting imap server: %1").arg(failure));
192 mailimap_free( m_imap ); 194 mailimap_free( m_imap );
193 m_imap = 0; 195 m_imap = 0;
194 return; 196 return;
195 } 197 }
196 if ( tryTLS ) { 198 if ( tryTLS ) {
197 if (!ssl) { 199 if (!ssl) {
198 try_tls = start_tls(force_tls); 200 try_tls = start_tls(force_tls);
199 } 201 }
200 } 202 }
201 bool ok = true; 203 bool ok = true;
202 if (force_tls && !try_tls) { 204 if (force_tls && !try_tls) {
203 Global::statusMessage(i18n("Server has no TLS support!")); 205 Global::statusMessage(i18n("Server has no TLS support!"));
204 ok = false; 206 ok = false;
205 } 207 }
206 208
207 209
208 /* login */ 210 /* login */
209 211
210 if (ok) { 212 if (ok) {
211 err = mailimap_login_simple( m_imap, (char*)user.latin1(), (char*)pass.latin1() ); 213 err = mailimap_login_simple( m_imap, (char*)user.latin1(), (char*)pass.latin1() );
212 if ( err != MAILIMAP_NO_ERROR ) { 214 if ( err != MAILIMAP_NO_ERROR ) {
213 if ( tryTLS && !force_tls && !try_tls ) { 215 if ( tryTLS && !force_tls && !try_tls ) {
214 err = mailimap_close( m_imap ); 216 err = mailimap_close( m_imap );
215 mailimap_free( m_imap ); 217 mailimap_free( m_imap );
216 m_imap = 0; 218 m_imap = 0;
217 login( false ); 219 login( false );
218 return; 220 return;
219 } 221 }
220 Global::statusMessage(i18n("error logging in imap server: %1").arg(m_imap->imap_response)); 222 Global::statusMessage(i18n("error logging in imap server: %1").arg(m_imap->imap_response));
221 ok = false; 223 ok = false;
222 } 224 }
223 } 225 }
224 if (!ok) { 226 if (!ok) {
225 err = mailimap_close( m_imap ); 227 err = mailimap_close( m_imap );
226 mailimap_free( m_imap ); 228 mailimap_free( m_imap );
227 m_imap = 0; 229 m_imap = 0;
228 } 230 }
229} 231}
230 232
231void IMAPwrapper::logout() 233void IMAPwrapper::logout()
232{ 234{
233 int err = MAILIMAP_NO_ERROR; 235 int err = MAILIMAP_NO_ERROR;
234 if (!m_imap) return; 236 if (!m_imap) return;
235 err = mailimap_logout( m_imap ); 237 err = mailimap_logout( m_imap );
236 err = mailimap_close( m_imap ); 238 err = mailimap_close( m_imap );
237 mailimap_free( m_imap ); 239 mailimap_free( m_imap );
238 m_imap = 0; 240 m_imap = 0;
239 m_Lastmbox = ""; 241 m_Lastmbox = "";
240} 242}
241 243
242void IMAPwrapper::listMessages(const QString&mailbox,QValueList<Opie::Core::OSmartPointer<RecMail> > &target , int maxSizeInKb) 244void IMAPwrapper::listMessages(const QString&mailbox,Q3ValueList<Opie::Core::OSmartPointer<RecMail> > &target , int maxSizeInKb)
243{ 245{
244 246
245 int tryAgain = 1; 247 int tryAgain = 1;
246 while ( tryAgain >= 0 ) { 248 while ( tryAgain >= 0 ) {
247 int err = MAILIMAP_NO_ERROR; 249 int err = MAILIMAP_NO_ERROR;
248 clist *result = 0; 250 clist *result = 0;
249 clistcell *current; 251 clistcell *current;
250 mailimap_fetch_type *fetchType = 0; 252 mailimap_fetch_type *fetchType = 0;
251 mailimap_set *set = 0; 253 mailimap_set *set = 0;
252 254
253 login(); 255 login();
254 if (!m_imap) { 256 if (!m_imap) {
255 return; 257 return;
256 } 258 }
257 /* select mailbox READONLY for operations */ 259 /* select mailbox READONLY for operations */
258 err = selectMbox(mailbox); 260 err = selectMbox(mailbox);
259 if ( err != MAILIMAP_NO_ERROR ) { 261 if ( err != MAILIMAP_NO_ERROR ) {
260 return; 262 return;
261 } 263 }
262 264
263 int last = m_imap->imap_selection_info->sel_exists; 265 int last = m_imap->imap_selection_info->sel_exists;
264 266
265 if (last == 0) { 267 if (last == 0) {
266 Global::statusMessage(i18n("Mailbox has no mails")); 268 Global::statusMessage(i18n("Mailbox has no mails"));
267 return; 269 return;
268 } else { 270 } else {
269 } 271 }
270 progress( i18n("Fetch ")); 272 progress( i18n("Fetch "));
271 mMax = last; 273 mMax = last;
272 //qDebug("last %d ", last); 274 //qDebug("last %d ", last);
273 Global::statusMessage(i18n("Fetching header list")); 275 Global::statusMessage(i18n("Fetching header list"));
274 qApp->processEvents(); 276 qApp->processEvents();
275 /* the range has to start at 1!!! not with 0!!!! */ 277 /* the range has to start at 1!!! not with 0!!!! */
276 //LR the access to web.de imap server is no working with value 1 278 //LR the access to web.de imap server is no working with value 1
277 //qDebug("interval %d - %d ", tryAgain, last-1+tryAgain ); 279 //qDebug("interval %d - %d ", tryAgain, last-1+tryAgain );
278 set = mailimap_set_new_interval( tryAgain, last ); 280 set = mailimap_set_new_interval( tryAgain, last );
279 fetchType = mailimap_fetch_type_new_fetch_att_list_empty(); 281 fetchType = mailimap_fetch_type_new_fetch_att_list_empty();
280 mailimap_fetch_type_new_fetch_att_list_add(fetchType,mailimap_fetch_att_new_envelope()); 282 mailimap_fetch_type_new_fetch_att_list_add(fetchType,mailimap_fetch_att_new_envelope());
281 mailimap_fetch_type_new_fetch_att_list_add(fetchType,mailimap_fetch_att_new_flags()); 283 mailimap_fetch_type_new_fetch_att_list_add(fetchType,mailimap_fetch_att_new_flags());
282 mailimap_fetch_type_new_fetch_att_list_add(fetchType,mailimap_fetch_att_new_internaldate()); 284 mailimap_fetch_type_new_fetch_att_list_add(fetchType,mailimap_fetch_att_new_internaldate());
283 mailimap_fetch_type_new_fetch_att_list_add(fetchType,mailimap_fetch_att_new_rfc822_size()); 285 mailimap_fetch_type_new_fetch_att_list_add(fetchType,mailimap_fetch_att_new_rfc822_size());
284 286
285 err = mailimap_fetch( m_imap, set, fetchType, &result ); 287 err = mailimap_fetch( m_imap, set, fetchType, &result );
286 mailimap_set_free( set ); 288 mailimap_set_free( set );
287 mailimap_fetch_type_free( fetchType ); 289 mailimap_fetch_type_free( fetchType );
288 290
289 QString date,subject,from; 291 QString date,subject,from;
290 292
291 if ( err == MAILIMAP_NO_ERROR ) { 293 if ( err == MAILIMAP_NO_ERROR ) {
292 tryAgain = -1; 294 tryAgain = -1;
293 mailimap_msg_att * msg_att; 295 mailimap_msg_att * msg_att;
294 int i = 0; 296 int i = 0;
295 for (current = clist_begin(result); current != 0; current=clist_next(current)) { 297 for (current = clist_begin(result); current != 0; current=clist_next(current)) {
296 ++i; 298 ++i;
297 //qDebug("iii %d ",i); 299 //qDebug("iii %d ",i);
298 msg_att = (mailimap_msg_att*)current->data; 300 msg_att = (mailimap_msg_att*)current->data;
299 RecMail*m = parse_list_result(msg_att); 301 RecMail*m = parse_list_result(msg_att);
300 if (m) { 302 if (m) {
301 if ( maxSizeInKb == 0 || m->Msgsize()<=(unsigned int ) maxSizeInKb*1024 ) { 303 if ( maxSizeInKb == 0 || m->Msgsize()<=(unsigned int ) maxSizeInKb*1024 ) {
302 m->setNumber(i); 304 m->setNumber(i);
303 m->setMbox(mailbox); 305 m->setMbox(mailbox);
304 m->setWrapper(this); 306 m->setWrapper(this);
305 target.append(m); 307 target.append(m);
306 } 308 }
307 } 309 }
308 } 310 }
309 Global::statusMessage(i18n("Mailbox has %1 mails").arg(target.count())); 311 Global::statusMessage(i18n("Mailbox has %1 mails").arg(target.count()));
310 } else { 312 } else {
311 --tryAgain; 313 --tryAgain;
312 --tryAgain;//disabled tryagain by adding this line 314 --tryAgain;//disabled tryagain by adding this line
313 if ( tryAgain < 0 ) 315 if ( tryAgain < 0 )
314 Global::statusMessage(i18n("Error fetching headers: %1").arg(m_imap->imap_response)); 316 Global::statusMessage(i18n("Error fetching headers: %1").arg(m_imap->imap_response));
315 else 317 else
316 qDebug("try again... "); 318 qDebug("try again... ");
317 } 319 }
318 320
319 if (result) mailimap_fetch_list_free(result); 321 if (result) mailimap_fetch_list_free(result);
320 } 322 }
321} 323}
322 324
323QValueList<Opie::Core::OSmartPointer<Folder> >* IMAPwrapper::listFolders() 325Q3ValueList<Opie::Core::OSmartPointer<Folder> >* IMAPwrapper::listFolders()
324{ 326{
325 const char *path, *mask; 327 const char *path, *mask;
326 int err = MAILIMAP_NO_ERROR; 328 int err = MAILIMAP_NO_ERROR;
327 clist *result = 0; 329 clist *result = 0;
328 clistcell *current = 0; 330 clistcell *current = 0;
329 clistcell*cur_flag = 0; 331 clistcell*cur_flag = 0;
330 mailimap_mbx_list_flags*bflags = 0; 332 mailimap_mbx_list_flags*bflags = 0;
331 333
332 QValueList<FolderP>* folders = new QValueList<FolderP>(); 334 Q3ValueList<FolderP>* folders = new Q3ValueList<FolderP>();
333 login(); 335 login();
334 if (!m_imap) { 336 if (!m_imap) {
335 return folders; 337 return folders;
336 } 338 }
337 339
338/* 340/*
339 * First we have to check for INBOX 'cause it sometimes it's not inside the path. 341 * First we have to check for INBOX 'cause it sometimes it's not inside the path.
340 * We must not forget to filter them out in next loop! 342 * We must not forget to filter them out in next loop!
341 * it seems like ugly code. and yes - it is ugly code. but the best way. 343 * it seems like ugly code. and yes - it is ugly code. but the best way.
342 */ 344 */
343 Global::statusMessage(i18n("Fetching folder list")); 345 Global::statusMessage(i18n("Fetching folder list"));
344 qApp->processEvents(); 346 qApp->processEvents();
345 QString temp; 347 QString temp;
346 mask = "INBOX" ; 348 mask = "INBOX" ;
347 mailimap_mailbox_list *list; 349 mailimap_mailbox_list *list;
348 err = mailimap_list( m_imap, (char*)"", (char*)mask, &result ); 350 err = mailimap_list( m_imap, (char*)"", (char*)mask, &result );
349 QString del; 351 QString del;
350 bool selectable = true; 352 bool selectable = true;
351 bool no_inferiors = false; 353 bool no_inferiors = false;
352 if ( err == MAILIMAP_NO_ERROR ) { 354 if ( err == MAILIMAP_NO_ERROR ) {
353 current = result->first; 355 current = result->first;
354 for ( int i = result->count; i > 0; i-- ) { 356 for ( int i = result->count; i > 0; i-- ) {
355 list = (mailimap_mailbox_list *) current->data; 357 list = (mailimap_mailbox_list *) current->data;
356 // it is better use the deep copy mechanism of qt itself 358 // it is better use the deep copy mechanism of qt itself
357 // instead of using strdup! 359 // instead of using strdup!
358 temp = list->mb_name; 360 temp = list->mb_name;
359 del = list->mb_delimiter; 361 del = list->mb_delimiter;
360 current = current->next; 362 current = current->next;
361 if ( (bflags = list->mb_flag) ) { 363 if ( (bflags = list->mb_flag) ) {
362 selectable = !(bflags->mbf_type==MAILIMAP_MBX_LIST_FLAGS_SFLAG&& 364 selectable = !(bflags->mbf_type==MAILIMAP_MBX_LIST_FLAGS_SFLAG&&
363 bflags->mbf_sflag==MAILIMAP_MBX_LIST_SFLAG_NOSELECT); 365 bflags->mbf_sflag==MAILIMAP_MBX_LIST_SFLAG_NOSELECT);
364 for(cur_flag=clist_begin(bflags->mbf_oflags);cur_flag;cur_flag=clist_next(cur_flag)) { 366 for(cur_flag=clist_begin(bflags->mbf_oflags);cur_flag;cur_flag=clist_next(cur_flag)) {
365 if ( ((mailimap_mbx_list_oflag*)cur_flag->data)->of_type==MAILIMAP_MBX_LIST_OFLAG_NOINFERIORS) { 367 if ( ((mailimap_mbx_list_oflag*)cur_flag->data)->of_type==MAILIMAP_MBX_LIST_OFLAG_NOINFERIORS) {
366 no_inferiors = true; 368 no_inferiors = true;
367 } 369 }
368 } 370 }
369 } 371 }
370 folders->append( new IMAPFolder(temp,del,selectable,no_inferiors,account->getPrefix())); 372 folders->append( new IMAPFolder(temp,del,selectable,no_inferiors,account->getPrefix()));
371 } 373 }
372 } else { 374 } else {
373 qDebug("error fetching folders: "); 375 qDebug("error fetching folders: ");
374 376
375 } 377 }
376 mailimap_list_result_free( result ); 378 mailimap_list_result_free( result );
377 379
378/* 380/*
379 * second stage - get the other then inbox folders 381 * second stage - get the other then inbox folders
380 */ 382 */
381 mask = "*" ; 383 mask = "*" ;
382 path = account->getPrefix().latin1(); 384 path = account->getPrefix().latin1();
383 if (!path) path = ""; 385 if (!path) path = "";
384 err = mailimap_list( m_imap, (char*)path, (char*)mask, &result ); 386 err = mailimap_list( m_imap, (char*)path, (char*)mask, &result );
385 if ( err == MAILIMAP_NO_ERROR ) { 387 if ( err == MAILIMAP_NO_ERROR ) {
386 current = result->first; 388 current = result->first;
387 for ( current=clist_begin(result);current!=NULL;current=clist_next(current)) { 389 for ( current=clist_begin(result);current!=NULL;current=clist_next(current)) {
388 no_inferiors = false; 390 no_inferiors = false;
389 list = (mailimap_mailbox_list *) current->data; 391 list = (mailimap_mailbox_list *) current->data;
390 // it is better use the deep copy mechanism of qt itself 392 // it is better use the deep copy mechanism of qt itself
391 // instead of using strdup! 393 // instead of using strdup!
392 temp = list->mb_name; 394 temp = list->mb_name;
393 if (temp.lower()=="inbox") 395 if (temp.lower()=="inbox")
394 continue; 396 continue;
395 if (temp.lower()==account->getPrefix().lower()) 397 if (temp.lower()==account->getPrefix().lower())
396 continue; 398 continue;
397 if ( (bflags = list->mb_flag) ) { 399 if ( (bflags = list->mb_flag) ) {
398 selectable = !(bflags->mbf_type==MAILIMAP_MBX_LIST_FLAGS_SFLAG&& 400 selectable = !(bflags->mbf_type==MAILIMAP_MBX_LIST_FLAGS_SFLAG&&
399 bflags->mbf_sflag==MAILIMAP_MBX_LIST_SFLAG_NOSELECT); 401 bflags->mbf_sflag==MAILIMAP_MBX_LIST_SFLAG_NOSELECT);
400 for(cur_flag=clist_begin(bflags->mbf_oflags);cur_flag;cur_flag=clist_next(cur_flag)) { 402 for(cur_flag=clist_begin(bflags->mbf_oflags);cur_flag;cur_flag=clist_next(cur_flag)) {
401 if ( ((mailimap_mbx_list_oflag*)cur_flag->data)->of_type==MAILIMAP_MBX_LIST_OFLAG_NOINFERIORS) { 403 if ( ((mailimap_mbx_list_oflag*)cur_flag->data)->of_type==MAILIMAP_MBX_LIST_OFLAG_NOINFERIORS) {
402 no_inferiors = true; 404 no_inferiors = true;
403 } 405 }
404 } 406 }
405 } 407 }
406 del = list->mb_delimiter; 408 del = list->mb_delimiter;
407 folders->append(new IMAPFolder(temp,del,selectable,no_inferiors,account->getPrefix())); 409 folders->append(new IMAPFolder(temp,del,selectable,no_inferiors,account->getPrefix()));
408 } 410 }
409 } else { 411 } else {
410 qDebug("error fetching folders "); 412 qDebug("error fetching folders ");
411 413
412 } 414 }
413 if (result) mailimap_list_result_free( result ); 415 if (result) mailimap_list_result_free( result );
414 return folders; 416 return folders;
415} 417}
416 418
417RecMail*IMAPwrapper::parse_list_result(mailimap_msg_att* m_att) 419RecMail*IMAPwrapper::parse_list_result(mailimap_msg_att* m_att)
418{ 420{
419 RecMail * m = 0; 421 RecMail * m = 0;
420 mailimap_msg_att_item *item=0; 422 mailimap_msg_att_item *item=0;
421 clistcell *current,*c,*cf; 423 clistcell *current,*c,*cf;
422 mailimap_msg_att_dynamic*flist; 424 mailimap_msg_att_dynamic*flist;
423 mailimap_flag_fetch*cflag; 425 mailimap_flag_fetch*cflag;
424 int size = 0; 426 int size = 0;
425 QBitArray mFlags(7); 427 QBitArray mFlags(7);
426 QStringList addresslist; 428 QStringList addresslist;
427 429
428 if (!m_att) { 430 if (!m_att) {
429 return m; 431 return m;
430 } 432 }
431 m = new RecMail(); 433 m = new RecMail();
432 for (c = clist_begin(m_att->att_list); c!=NULL;c=clist_next(c) ) { 434 for (c = clist_begin(m_att->att_list); c!=NULL;c=clist_next(c) ) {
433 current = c; 435 current = c;
434 size = 0; 436 size = 0;
435 item = (mailimap_msg_att_item*)current->data; 437 item = (mailimap_msg_att_item*)current->data;
436 if ( !item ) 438 if ( !item )
437 continue; 439 continue;
438 if (item->att_type!=MAILIMAP_MSG_ATT_ITEM_STATIC) { 440 if (item->att_type!=MAILIMAP_MSG_ATT_ITEM_STATIC) {
439 flist = (mailimap_msg_att_dynamic*)item->att_data.att_dyn; 441 flist = (mailimap_msg_att_dynamic*)item->att_data.att_dyn;
440 if (!flist || !flist->att_list) { 442 if (!flist || !flist->att_list) {
441 continue; 443 continue;
442 } 444 }
443 cf = flist->att_list->first; 445 cf = flist->att_list->first;
444 if( cf ) { 446 if( cf ) {
445 for (cf = clist_begin(flist->att_list); cf!=NULL; cf = clist_next(cf)) { 447 for (cf = clist_begin(flist->att_list); cf!=NULL; cf = clist_next(cf)) {
446 cflag = (mailimap_flag_fetch*)cf->data; 448 cflag = (mailimap_flag_fetch*)cf->data;
447 if( ! cflag ) 449 if( ! cflag )
448 qDebug("imap:NO cflag "); 450 qDebug("imap:NO cflag ");
449 else { 451 else {
450 if (cflag->fl_type==MAILIMAP_FLAG_FETCH_OTHER && cflag->fl_flag!=0) { 452 if (cflag->fl_type==MAILIMAP_FLAG_FETCH_OTHER && cflag->fl_flag!=0) {
451 switch (cflag->fl_flag->fl_type) { 453 switch (cflag->fl_flag->fl_type) {
452 case MAILIMAP_FLAG_ANSWERED: /* \Answered flag */ 454 case MAILIMAP_FLAG_ANSWERED: /* \Answered flag */
453 mFlags.setBit(FLAG_ANSWERED); 455 mFlags.setBit(FLAG_ANSWERED);
454 break; 456 break;
455 case MAILIMAP_FLAG_FLAGGED: /* \Flagged flag */ 457 case MAILIMAP_FLAG_FLAGGED: /* \Flagged flag */
456 mFlags.setBit(FLAG_FLAGGED); 458 mFlags.setBit(FLAG_FLAGGED);
457 break; 459 break;
458 case MAILIMAP_FLAG_DELETED: /* \Deleted flag */ 460 case MAILIMAP_FLAG_DELETED: /* \Deleted flag */
459 mFlags.setBit(FLAG_DELETED); 461 mFlags.setBit(FLAG_DELETED);
460 break; 462 break;
@@ -488,883 +490,883 @@ RecMail*IMAPwrapper::parse_list_result(mailimap_msg_att* m_att)
488 continue; 490 continue;
489 if ( head->env_date != NULL ) { 491 if ( head->env_date != NULL ) {
490 m->setDate(head->env_date); 492 m->setDate(head->env_date);
491 //struct mailimf_date_time result; 493 //struct mailimf_date_time result;
492 struct mailimf_date_time* date;// = &result; 494 struct mailimf_date_time* date;// = &result;
493 struct mailimf_date_time **re = &date; 495 struct mailimf_date_time **re = &date;
494 size_t length = m->getDate().length(); 496 size_t length = m->getDate().length();
495 size_t index = 0; 497 size_t index = 0;
496 if ( mailimf_date_time_parse(head->env_date, length,&index, re ) == MAILIMF_NO_ERROR ) { 498 if ( mailimf_date_time_parse(head->env_date, length,&index, re ) == MAILIMF_NO_ERROR ) {
497 //qDebug("parseDateTime "); 499 //qDebug("parseDateTime ");
498 QDateTime dt = Genericwrapper::parseDateTime( date ); 500 QDateTime dt = Genericwrapper::parseDateTime( date );
499 QString ret; 501 QString ret;
500 if ( dt.date() == QDate::currentDate () ) 502 if ( dt.date() == QDate::currentDate () )
501 ret = KGlobal::locale()->formatTime( dt.time(),true); 503 ret = KGlobal::locale()->formatTime( dt.time(),true);
502 else { 504 else {
503 ret = KGlobal::locale()->formatDateTime( dt,true,true); 505 ret = KGlobal::locale()->formatDateTime( dt,true,true);
504 } 506 }
505 m->setDate( ret ); 507 m->setDate( ret );
506 char tmp[20]; 508 char tmp[20];
507 snprintf( tmp, 20, "%04i-%02i-%02i %02i:%02i:%02i", 509 snprintf( tmp, 20, "%04i-%02i-%02i %02i:%02i:%02i",
508 dt.date().year(),dt.date().month(), dt.date().day(), dt.time().hour(), dt.time().minute(), dt.time().second() ); 510 dt.date().year(),dt.date().month(), dt.date().day(), dt.time().hour(), dt.time().minute(), dt.time().second() );
509 //qDebug("%d iso %s %s ", date->dt_zone, tmp, head->env_date); 511 //qDebug("%d iso %s %s ", date->dt_zone, tmp, head->env_date);
510 m->setIsoDate( QString( tmp ) ); 512 m->setIsoDate( QString( tmp ) );
511 mailimf_date_time_free ( date ); 513 mailimf_date_time_free ( date );
512 } else { 514 } else {
513 m->setIsoDate(head->env_date); 515 m->setIsoDate(head->env_date);
514 } 516 }
515 } 517 }
516 if ( head->env_subject != NULL ) 518 if ( head->env_subject != NULL )
517 m->setSubject(convert_String((const char*)head->env_subject)); 519 m->setSubject(convert_String((const char*)head->env_subject));
518 //m->setSubject(head->env_subject); 520 //m->setSubject(head->env_subject);
519 if (head->env_from!=NULL) { 521 if (head->env_from!=NULL) {
520 addresslist = address_list_to_stringlist(head->env_from->frm_list); 522 addresslist = address_list_to_stringlist(head->env_from->frm_list);
521 if (addresslist.count()) { 523 if (addresslist.count()) {
522 m->setFrom(addresslist.first()); 524 m->setFrom(addresslist.first());
523 } 525 }
524 } 526 }
525 if (head->env_to!=NULL) { 527 if (head->env_to!=NULL) {
526 addresslist = address_list_to_stringlist(head->env_to->to_list); 528 addresslist = address_list_to_stringlist(head->env_to->to_list);
527 m->setTo(addresslist); 529 m->setTo(addresslist);
528 } 530 }
529 if (head->env_cc!=NULL) { 531 if (head->env_cc!=NULL) {
530 addresslist = address_list_to_stringlist(head->env_cc->cc_list); 532 addresslist = address_list_to_stringlist(head->env_cc->cc_list);
531 m->setCC(addresslist); 533 m->setCC(addresslist);
532 } 534 }
533 if (head->env_bcc!=NULL) { 535 if (head->env_bcc!=NULL) {
534 addresslist = address_list_to_stringlist(head->env_bcc->bcc_list); 536 addresslist = address_list_to_stringlist(head->env_bcc->bcc_list);
535 m->setBcc(addresslist); 537 m->setBcc(addresslist);
536 } 538 }
537 /* reply to address, eg. email. */ 539 /* reply to address, eg. email. */
538 if (head->env_reply_to!=NULL) { 540 if (head->env_reply_to!=NULL) {
539 addresslist = address_list_to_stringlist(head->env_reply_to->rt_list); 541 addresslist = address_list_to_stringlist(head->env_reply_to->rt_list);
540 if (addresslist.count()) { 542 if (addresslist.count()) {
541 m->setReplyto(addresslist.first()); 543 m->setReplyto(addresslist.first());
542 } 544 }
543 } 545 }
544 if (head->env_in_reply_to!=NULL) { 546 if (head->env_in_reply_to!=NULL) {
545 QString h(head->env_in_reply_to); 547 QString h(head->env_in_reply_to);
546 while (h.length()>0 && h[0]=='<') { 548 while (h.length()>0 && h[0]=='<') {
547 h.remove(0,1); 549 h.remove(0,1);
548 } 550 }
549 while (h.length()>0 && h[h.length()-1]=='>') { 551 while (h.length()>0 && h[h.length()-1]=='>') {
550 h.remove(h.length()-1,1); 552 h.remove(h.length()-1,1);
551 } 553 }
552 if (h.length()>0) { 554 if (h.length()>0) {
553 m->setInreply(QStringList(h)); 555 m->setInreply(QStringList(h));
554 } 556 }
555 } 557 }
556 if (head->env_message_id != NULL) { 558 if (head->env_message_id != NULL) {
557 m->setMsgid(QString(head->env_message_id)); 559 m->setMsgid(QString(head->env_message_id));
558 } 560 }
559 } else if (item->att_data.att_static->att_type==MAILIMAP_MSG_ATT_INTERNALDATE) { 561 } else if (item->att_data.att_static->att_type==MAILIMAP_MSG_ATT_INTERNALDATE) {
560#if 0 562#if 0
561 mailimap_date_time*d = item->att_data.att_static->att_data.att_internal_date; 563 mailimap_date_time*d = item->att_data.att_static->att_data.att_internal_date;
562 QDateTime da(QDate(d->dt_year,d->dt_month,d->dt_day),QTime(d->dt_hour,d->dt_min,d->dt_sec)); 564 QDateTime da(QDate(d->dt_year,d->dt_month,d->dt_day),QTime(d->dt_hour,d->dt_min,d->dt_sec));
563 qDebug("time %s ",da.toString().latin1() ); 565 qDebug("time %s ",da.toString().latin1() );
564#endif 566#endif
565 } else if (item->att_data.att_static->att_type==MAILIMAP_MSG_ATT_RFC822_SIZE) { 567 } else if (item->att_data.att_static->att_type==MAILIMAP_MSG_ATT_RFC822_SIZE) {
566 size = item->att_data.att_static->att_data.att_rfc822_size; 568 size = item->att_data.att_static->att_data.att_rfc822_size;
567 } 569 }
568 } 570 }
569 /* msg is already deleted */ 571 /* msg is already deleted */
570 if (mFlags.testBit(FLAG_DELETED) && m) { 572 if (mFlags.testBit(FLAG_DELETED) && m) {
571 delete m; 573 delete m;
572 m = 0; 574 m = 0;
573 } 575 }
574 if (m) { 576 if (m) {
575 m->setFlags(mFlags); 577 m->setFlags(mFlags);
576 m->setMsgsize(size); 578 m->setMsgsize(size);
577 } 579 }
578 return m; 580 return m;
579} 581}
580 582
581RecBodyP IMAPwrapper::fetchBody(const RecMailP&mail) 583RecBodyP IMAPwrapper::fetchBody(const RecMailP&mail)
582{ 584{
583 RecBodyP body = new RecBody(); 585 RecBodyP body = new RecBody();
584 const char *mb; 586 const char *mb;
585 int err = MAILIMAP_NO_ERROR; 587 int err = MAILIMAP_NO_ERROR;
586 clist *result = 0; 588 clist *result = 0;
587 clistcell *current; 589 clistcell *current;
588 mailimap_fetch_att *fetchAtt = 0; 590 mailimap_fetch_att *fetchAtt = 0;
589 mailimap_fetch_type *fetchType = 0; 591 mailimap_fetch_type *fetchType = 0;
590 mailimap_set *set = 0; 592 mailimap_set *set = 0;
591 mailimap_body*body_desc = 0; 593 mailimap_body*body_desc = 0;
592 594
593 mb = mail->getMbox().latin1(); 595 mb = mail->getMbox().latin1();
594 596
595 login(); 597 login();
596 if (!m_imap) { 598 if (!m_imap) {
597 return body; 599 return body;
598 } 600 }
599 err = selectMbox(mail->getMbox()); 601 err = selectMbox(mail->getMbox());
600 if ( err != MAILIMAP_NO_ERROR ) { 602 if ( err != MAILIMAP_NO_ERROR ) {
601 return body; 603 return body;
602 } 604 }
603 605
604 /* the range has to start at 1!!! not with 0!!!! */ 606 /* the range has to start at 1!!! not with 0!!!! */
605 set = mailimap_set_new_interval( mail->getNumber(),mail->getNumber() ); 607 set = mailimap_set_new_interval( mail->getNumber(),mail->getNumber() );
606 fetchAtt = mailimap_fetch_att_new_bodystructure(); 608 fetchAtt = mailimap_fetch_att_new_bodystructure();
607 fetchType = mailimap_fetch_type_new_fetch_att(fetchAtt); 609 fetchType = mailimap_fetch_type_new_fetch_att(fetchAtt);
608 err = mailimap_fetch( m_imap, set, fetchType, &result ); 610 err = mailimap_fetch( m_imap, set, fetchType, &result );
609 mailimap_set_free( set ); 611 mailimap_set_free( set );
610 mailimap_fetch_type_free( fetchType ); 612 mailimap_fetch_type_free( fetchType );
611 613
612 if (err == MAILIMAP_NO_ERROR && (current=clist_begin(result)) ) { 614 if (err == MAILIMAP_NO_ERROR && (current=clist_begin(result)) ) {
613 mailimap_msg_att * msg_att; 615 mailimap_msg_att * msg_att;
614 msg_att = (mailimap_msg_att*)current->data; 616 msg_att = (mailimap_msg_att*)current->data;
615 mailimap_msg_att_item*item = (mailimap_msg_att_item*)msg_att->att_list->first->data; 617 mailimap_msg_att_item*item = (mailimap_msg_att_item*)msg_att->att_list->first->data;
616 QValueList<int> path; 618 Q3ValueList<int> path;
617 body_desc = item->att_data.att_static->att_data.att_body; 619 body_desc = item->att_data.att_static->att_data.att_body;
618 traverseBody(mail,body_desc,body,0,path); 620 traverseBody(mail,body_desc,body,0,path);
619 } else { 621 } else {
620 qDebug("error fetching body %d (%d): %s", err, MAILIMAP_NO_ERROR, m_imap->imap_response ); 622 qDebug("error fetching body %d (%d): %s", err, MAILIMAP_NO_ERROR, m_imap->imap_response );
621 } 623 }
622 if (result) mailimap_fetch_list_free(result); 624 if (result) mailimap_fetch_list_free(result);
623 return body; 625 return body;
624} 626}
625 627
626QStringList IMAPwrapper::address_list_to_stringlist(clist*list) 628QStringList IMAPwrapper::address_list_to_stringlist(clist*list)
627{ 629{
628 QStringList l; 630 QStringList l;
629 QString from; 631 QString from;
630 bool named_from; 632 bool named_from;
631 clistcell *current = NULL; 633 clistcell *current = NULL;
632 mailimap_address * current_address=NULL; 634 mailimap_address * current_address=NULL;
633 if (!list) { 635 if (!list) {
634 return l; 636 return l;
635 } 637 }
636 unsigned int count = 0; 638 unsigned int count = 0;
637 for (current=clist_begin(list);current!= NULL;current=clist_next(current)) { 639 for (current=clist_begin(list);current!= NULL;current=clist_next(current)) {
638 from = ""; 640 from = "";
639 named_from = false; 641 named_from = false;
640 current_address=(mailimap_address*)current->data; 642 current_address=(mailimap_address*)current->data;
641 if (current_address->ad_personal_name){ 643 if (current_address->ad_personal_name){
642 from+=convert_String((const char*)current_address->ad_personal_name); 644 from+=convert_String((const char*)current_address->ad_personal_name);
643 from+=" "; 645 from+=" ";
644 named_from = true; 646 named_from = true;
645 } 647 }
646 if (named_from && (current_address->ad_mailbox_name || current_address->ad_host_name)) { 648 if (named_from && (current_address->ad_mailbox_name || current_address->ad_host_name)) {
647 from+="<"; 649 from+="<";
648 } 650 }
649 if (current_address->ad_mailbox_name) { 651 if (current_address->ad_mailbox_name) {
650 from+=QString(current_address->ad_mailbox_name); 652 from+=QString(current_address->ad_mailbox_name);
651 from+="@"; 653 from+="@";
652 } 654 }
653 if (current_address->ad_host_name) { 655 if (current_address->ad_host_name) {
654 from+=QString(current_address->ad_host_name); 656 from+=QString(current_address->ad_host_name);
655 } 657 }
656 if (named_from && (current_address->ad_mailbox_name || current_address->ad_host_name)) { 658 if (named_from && (current_address->ad_mailbox_name || current_address->ad_host_name)) {
657 from+=">"; 659 from+=">";
658 } 660 }
659 l.append(QString(from)); 661 l.append(QString(from));
660 if (++count > 99) { 662 if (++count > 99) {
661 break; 663 break;
662 } 664 }
663 } 665 }
664 return l; 666 return l;
665} 667}
666 668
667encodedString*IMAPwrapper::fetchRawPart(const RecMailP&mail,const QValueList<int>&path,bool internal_call) 669encodedString*IMAPwrapper::fetchRawPart(const RecMailP&mail,const Q3ValueList<int>&path,bool internal_call)
668{ 670{
669 encodedString*res=new encodedString; 671 encodedString*res=new encodedString;
670 int err; 672 int err;
671 mailimap_fetch_type *fetchType; 673 mailimap_fetch_type *fetchType;
672 mailimap_set *set; 674 mailimap_set *set;
673 clistcell*current,*cur; 675 clistcell*current,*cur;
674 mailimap_section_part * section_part = 0; 676 mailimap_section_part * section_part = 0;
675 mailimap_section_spec * section_spec = 0; 677 mailimap_section_spec * section_spec = 0;
676 mailimap_section * section = 0; 678 mailimap_section * section = 0;
677 mailimap_fetch_att * fetch_att = 0; 679 mailimap_fetch_att * fetch_att = 0;
678 680
679 login(); 681 login();
680 if (!m_imap) { 682 if (!m_imap) {
681 return res; 683 return res;
682 } 684 }
683 if (!internal_call) { 685 if (!internal_call) {
684 err = selectMbox(mail->getMbox()); 686 err = selectMbox(mail->getMbox());
685 if ( err != MAILIMAP_NO_ERROR ) { 687 if ( err != MAILIMAP_NO_ERROR ) {
686 return res; 688 return res;
687 } 689 }
688 } 690 }
689 set = mailimap_set_new_single(mail->getNumber()); 691 set = mailimap_set_new_single(mail->getNumber());
690 692
691 clist*id_list = 0; 693 clist*id_list = 0;
692 694
693 /* if path == empty then its a request for the whole rfc822 mail and generates 695 /* if path == empty then its a request for the whole rfc822 mail and generates
694 a "fetch <id> (body[])" statement on imap server */ 696 a "fetch <id> (body[])" statement on imap server */
695 if (path.count()>0 ) { 697 if (path.count()>0 ) {
696 id_list = clist_new(); 698 id_list = clist_new();
697 for (unsigned j=0; j < path.count();++j) { 699 for (unsigned j=0; j < path.count();++j) {
698 uint32_t * p_id = (uint32_t *)malloc(sizeof(*p_id)); 700 uint32_t * p_id = (uint32_t *)malloc(sizeof(*p_id));
699 *p_id = path[j]; 701 *p_id = path[j];
700 clist_append(id_list,p_id); 702 clist_append(id_list,p_id);
701 } 703 }
702 section_part = mailimap_section_part_new(id_list); 704 section_part = mailimap_section_part_new(id_list);
703 section_spec = mailimap_section_spec_new(MAILIMAP_SECTION_SPEC_SECTION_PART, NULL, section_part, NULL); 705 section_spec = mailimap_section_spec_new(MAILIMAP_SECTION_SPEC_SECTION_PART, NULL, section_part, NULL);
704 } 706 }
705 707
706 section = mailimap_section_new(section_spec); 708 section = mailimap_section_new(section_spec);
707 fetch_att = mailimap_fetch_att_new_body_section(section); 709 fetch_att = mailimap_fetch_att_new_body_section(section);
708 fetchType = mailimap_fetch_type_new_fetch_att(fetch_att); 710 fetchType = mailimap_fetch_type_new_fetch_att(fetch_att);
709 711
710 clist*result = 0; 712 clist*result = 0;
711 713
712 err = mailimap_fetch( m_imap, set, fetchType, &result ); 714 err = mailimap_fetch( m_imap, set, fetchType, &result );
713 mailimap_set_free( set ); 715 mailimap_set_free( set );
714 mailimap_fetch_type_free( fetchType ); 716 mailimap_fetch_type_free( fetchType );
715 717
716 if (err == MAILIMAP_NO_ERROR && (current=clist_begin(result)) ) { 718 if (err == MAILIMAP_NO_ERROR && (current=clist_begin(result)) ) {
717 mailimap_msg_att * msg_att; 719 mailimap_msg_att * msg_att;
718 msg_att = (mailimap_msg_att*)current->data; 720 msg_att = (mailimap_msg_att*)current->data;
719 mailimap_msg_att_item*msg_att_item; 721 mailimap_msg_att_item*msg_att_item;
720 for(cur = clist_begin(msg_att->att_list) ; cur != NULL ; cur = clist_next(cur)) { 722 for(cur = clist_begin(msg_att->att_list) ; cur != NULL ; cur = clist_next(cur)) {
721 msg_att_item = (mailimap_msg_att_item*)clist_content(cur); 723 msg_att_item = (mailimap_msg_att_item*)clist_content(cur);
722 if (msg_att_item->att_type == MAILIMAP_MSG_ATT_ITEM_STATIC) { 724 if (msg_att_item->att_type == MAILIMAP_MSG_ATT_ITEM_STATIC) {
723 if (msg_att_item->att_data.att_static->att_type == MAILIMAP_MSG_ATT_BODY_SECTION) { 725 if (msg_att_item->att_data.att_static->att_type == MAILIMAP_MSG_ATT_BODY_SECTION) {
724 char*text = msg_att_item->att_data.att_static->att_data.att_body_section->sec_body_part; 726 char*text = msg_att_item->att_data.att_static->att_data.att_body_section->sec_body_part;
725 /* detach - we take over the content */ 727 /* detach - we take over the content */
726 msg_att_item->att_data.att_static->att_data.att_body_section->sec_body_part = 0L; 728 msg_att_item->att_data.att_static->att_data.att_body_section->sec_body_part = 0L;
727 res->setContent(text,msg_att_item->att_data.att_static->att_data.att_body_section->sec_length); 729 res->setContent(text,msg_att_item->att_data.att_static->att_data.att_body_section->sec_length);
728 } 730 }
729 } 731 }
730 } 732 }
731 } else { 733 } else {
732 ;//odebug << "error fetching text: " << m_imap->imap_response << "" << oendl; 734 ;//odebug << "error fetching text: " << m_imap->imap_response << "" << oendl;
733 } 735 }
734 if (result) mailimap_fetch_list_free(result); 736 if (result) mailimap_fetch_list_free(result);
735 return res; 737 return res;
736} 738}
737 739
738/* current_recursion is for recursive calls. 740/* current_recursion is for recursive calls.
739 current_count means the position inside the internal loop! */ 741 current_count means the position inside the internal loop! */
740void IMAPwrapper::traverseBody(const RecMailP&mail,mailimap_body*body,RecBodyP&target_body, 742void IMAPwrapper::traverseBody(const RecMailP&mail,mailimap_body*body,RecBodyP&target_body,
741 int current_recursion,QValueList<int>recList,int current_count) 743 int current_recursion,Q3ValueList<int>recList,int current_count)
742{ 744{
743 if (!body || current_recursion>=10) { 745 if (!body || current_recursion>=10) {
744 return; 746 return;
745 } 747 }
746 switch (body->bd_type) { 748 switch (body->bd_type) {
747 case MAILIMAP_BODY_1PART: 749 case MAILIMAP_BODY_1PART:
748 { 750 {
749 QValueList<int>countlist = recList; 751 Q3ValueList<int>countlist = recList;
750 countlist.append(current_count); 752 countlist.append(current_count);
751 RecPartP currentPart = new RecPart(); 753 RecPartP currentPart = new RecPart();
752 mailimap_body_type_1part*part1 = body->bd_data.bd_body_1part; 754 mailimap_body_type_1part*part1 = body->bd_data.bd_body_1part;
753 QString id(""); 755 QString id("");
754 currentPart->setPositionlist(countlist); 756 currentPart->setPositionlist(countlist);
755 for (unsigned int j = 0; j < countlist.count();++j) { 757 for (unsigned int j = 0; j < countlist.count();++j) {
756 id+=(j>0?" ":""); 758 id+=(j>0?" ":"");
757 id+=QString("%1").arg(countlist[j]); 759 id+=QString("%1").arg(countlist[j]);
758 } 760 }
759 //odebug << "ID = " << id.latin1() << "" << oendl; 761 //odebug << "ID = " << id.latin1() << "" << oendl;
760 currentPart->setIdentifier(id); 762 currentPart->setIdentifier(id);
761 fillSinglePart(currentPart,part1); 763 fillSinglePart(currentPart,part1);
762 /* important: Check for is NULL 'cause a body can be empty! 764 /* important: Check for is NULL 'cause a body can be empty!
763 And we put it only into the mail if it is the FIRST part */ 765 And we put it only into the mail if it is the FIRST part */
764 if (part1->bd_type==MAILIMAP_BODY_TYPE_1PART_TEXT && target_body->Bodytext().isNull() && countlist[0]==1) { 766 if (part1->bd_type==MAILIMAP_BODY_TYPE_1PART_TEXT && target_body->Bodytext().isNull() && countlist[0]==1) {
765 QString body_text = fetchTextPart(mail,countlist,true,currentPart->Encoding()); 767 QString body_text = fetchTextPart(mail,countlist,true,currentPart->Encoding());
766 768
767 size_t index = 0; 769 size_t index = 0;
768 char*res = 0; 770 char*res = 0;
769 int err = MAILIMF_NO_ERROR; 771 int err = MAILIMF_NO_ERROR;
770 772
771 QString charset = currentPart->searchParamter( "charset"); 773 QString charset = currentPart->searchParamter( "charset");
772 qDebug("CHARSET %s ",charset.latin1() ); 774 qDebug("CHARSET %s ",charset.latin1() );
773 if ( false ) { 775 if ( false ) {
774 //if ( !charset.isEmpty() ) { 776 //if ( !charset.isEmpty() ) {
775 target_body->setCharset( charset ); 777 target_body->setCharset( charset );
776 //err = mailmime_encoded_phrase_parse("iso-8859-1", 778 //err = mailmime_encoded_phrase_parse("iso-8859-1",
777 // text, strlen(text),&index, "iso-8859-1",&res); 779 // text, strlen(text),&index, "iso-8859-1",&res);
778 err = mailmime_encoded_phrase_parse(charset.latin1(), 780 err = mailmime_encoded_phrase_parse(charset.latin1(),
779 body_text.latin1(), body_text.length(),&index, "utf-8",&res); 781 body_text.latin1(), body_text.length(),&index, "utf-8",&res);
780 if (err == MAILIMF_NO_ERROR && res && strlen(res)) { 782 if (err == MAILIMF_NO_ERROR && res && strlen(res)) {
781 //qDebug("res %d %s ", index, res); 783 //qDebug("res %d %s ", index, res);
782 body_text = QString::fromUtf8(res); 784 body_text = QString::fromUtf8(res);
783 } 785 }
784 if (res) free(res); 786 if (res) free(res);
785 } 787 }
786 //qDebug("encoding %d text %s ",currentPart->Encoding().latin1(), body_text.latin1() ); 788 //qDebug("encoding %d text %s ",currentPart->Encoding().latin1(), body_text.latin1() );
787 target_body->setDescription(currentPart); 789 target_body->setDescription(currentPart);
788 target_body->setBodytext(body_text); 790 target_body->setBodytext(body_text);
789 if (countlist.count()>1) { 791 if (countlist.count()>1) {
790 target_body->addPart(currentPart); 792 target_body->addPart(currentPart);
791 } 793 }
792 } else { 794 } else {
793 target_body->addPart(currentPart); 795 target_body->addPart(currentPart);
794 } 796 }
795 if (part1->bd_type==MAILIMAP_BODY_TYPE_1PART_MSG) { 797 if (part1->bd_type==MAILIMAP_BODY_TYPE_1PART_MSG) {
796 traverseBody(mail,part1->bd_data.bd_type_msg->bd_body,target_body,current_recursion+1,countlist); 798 traverseBody(mail,part1->bd_data.bd_type_msg->bd_body,target_body,current_recursion+1,countlist);
797 } 799 }
798 } 800 }
799 break; 801 break;
800 case MAILIMAP_BODY_MPART: 802 case MAILIMAP_BODY_MPART:
801 { 803 {
802 QValueList<int>countlist = recList; 804 Q3ValueList<int>countlist = recList;
803 clistcell*current=0; 805 clistcell*current=0;
804 mailimap_body*current_body=0; 806 mailimap_body*current_body=0;
805 unsigned int ccount = 1; 807 unsigned int ccount = 1;
806 mailimap_body_type_mpart*mailDescription = body->bd_data.bd_body_mpart; 808 mailimap_body_type_mpart*mailDescription = body->bd_data.bd_body_mpart;
807 for (current=clist_begin(mailDescription->bd_list);current!=0;current=clist_next(current)) { 809 for (current=clist_begin(mailDescription->bd_list);current!=0;current=clist_next(current)) {
808 current_body = (mailimap_body*)current->data; 810 current_body = (mailimap_body*)current->data;
809 if (current_body->bd_type==MAILIMAP_BODY_MPART) { 811 if (current_body->bd_type==MAILIMAP_BODY_MPART) {
810 RecPartP targetPart = new RecPart(); 812 RecPartP targetPart = new RecPart();
811 targetPart->setType("multipart"); 813 targetPart->setType("multipart");
812 fillMultiPart(targetPart,mailDescription); 814 fillMultiPart(targetPart,mailDescription);
813 countlist.append(current_count); 815 countlist.append(current_count);
814 targetPart->setPositionlist(countlist); 816 targetPart->setPositionlist(countlist);
815 target_body->addPart(targetPart); 817 target_body->addPart(targetPart);
816 QString id(""); 818 QString id("");
817 for (unsigned int j = 0; j < countlist.count();++j) { 819 for (unsigned int j = 0; j < countlist.count();++j) {
818 id+=(j>0?" ":""); 820 id+=(j>0?" ":"");
819 id+=QString("%1").arg(countlist[j]); 821 id+=QString("%1").arg(countlist[j]);
820 } 822 }
821 // odebug << "ID(mpart) = " << id.latin1() << "" << oendl; 823 // odebug << "ID(mpart) = " << id.latin1() << "" << oendl;
822 } 824 }
823 traverseBody(mail,current_body,target_body,current_recursion+1,countlist,ccount); 825 traverseBody(mail,current_body,target_body,current_recursion+1,countlist,ccount);
824 if (current_body->bd_type==MAILIMAP_BODY_MPART) { 826 if (current_body->bd_type==MAILIMAP_BODY_MPART) {
825 countlist = recList; 827 countlist = recList;
826 } 828 }
827 ++ccount; 829 ++ccount;
828 } 830 }
829 } 831 }
830 break; 832 break;
831 default: 833 default:
832 break; 834 break;
833 } 835 }
834} 836}
835 837
836void IMAPwrapper::fillSinglePart(RecPartP&target_part,mailimap_body_type_1part*Description) 838void IMAPwrapper::fillSinglePart(RecPartP&target_part,mailimap_body_type_1part*Description)
837{ 839{
838 if (!Description) { 840 if (!Description) {
839 return; 841 return;
840 } 842 }
841 switch (Description->bd_type) { 843 switch (Description->bd_type) {
842 case MAILIMAP_BODY_TYPE_1PART_TEXT: 844 case MAILIMAP_BODY_TYPE_1PART_TEXT:
843 target_part->setType("text"); 845 target_part->setType("text");
844 fillSingleTextPart(target_part,Description->bd_data.bd_type_text); 846 fillSingleTextPart(target_part,Description->bd_data.bd_type_text);
845 break; 847 break;
846 case MAILIMAP_BODY_TYPE_1PART_BASIC: 848 case MAILIMAP_BODY_TYPE_1PART_BASIC:
847 fillSingleBasicPart(target_part,Description->bd_data.bd_type_basic); 849 fillSingleBasicPart(target_part,Description->bd_data.bd_type_basic);
848 break; 850 break;
849 case MAILIMAP_BODY_TYPE_1PART_MSG: 851 case MAILIMAP_BODY_TYPE_1PART_MSG:
850 target_part->setType("message"); 852 target_part->setType("message");
851 fillSingleMsgPart(target_part,Description->bd_data.bd_type_msg); 853 fillSingleMsgPart(target_part,Description->bd_data.bd_type_msg);
852 break; 854 break;
853 default: 855 default:
854 break; 856 break;
855 } 857 }
856} 858}
857 859
858void IMAPwrapper::fillSingleTextPart(RecPartP&target_part,mailimap_body_type_text*which) 860void IMAPwrapper::fillSingleTextPart(RecPartP&target_part,mailimap_body_type_text*which)
859{ 861{
860 if (!which) { 862 if (!which) {
861 return; 863 return;
862 } 864 }
863 QString sub; 865 QString sub;
864 sub = which->bd_media_text; 866 sub = which->bd_media_text;
865 //odebug << "Type= text/" << which->bd_media_text << "" << oendl; 867 //odebug << "Type= text/" << which->bd_media_text << "" << oendl;
866 target_part->setSubtype(sub.lower()); 868 target_part->setSubtype(sub.lower());
867 target_part->setLines(which->bd_lines); 869 target_part->setLines(which->bd_lines);
868 fillBodyFields(target_part,which->bd_fields); 870 fillBodyFields(target_part,which->bd_fields);
869} 871}
870 872
871void IMAPwrapper::fillSingleMsgPart(RecPartP&target_part,mailimap_body_type_msg*which) 873void IMAPwrapper::fillSingleMsgPart(RecPartP&target_part,mailimap_body_type_msg*which)
872{ 874{
873 if (!which) { 875 if (!which) {
874 return; 876 return;
875 } 877 }
876 target_part->setSubtype("rfc822"); 878 target_part->setSubtype("rfc822");
877 //odebug << "Message part" << oendl; 879 //odebug << "Message part" << oendl;
878 /* we set this type to text/plain */ 880 /* we set this type to text/plain */
879 target_part->setLines(which->bd_lines); 881 target_part->setLines(which->bd_lines);
880 fillBodyFields(target_part,which->bd_fields); 882 fillBodyFields(target_part,which->bd_fields);
881} 883}
882 884
883void IMAPwrapper::fillMultiPart(RecPartP&target_part,mailimap_body_type_mpart*which) 885void IMAPwrapper::fillMultiPart(RecPartP&target_part,mailimap_body_type_mpart*which)
884{ 886{
885 if (!which) return; 887 if (!which) return;
886 QString sub = which->bd_media_subtype; 888 QString sub = which->bd_media_subtype;
887 target_part->setSubtype(sub.lower()); 889 target_part->setSubtype(sub.lower());
888 if (which->bd_ext_mpart && which->bd_ext_mpart->bd_parameter && which->bd_ext_mpart->bd_parameter->pa_list) { 890 if (which->bd_ext_mpart && which->bd_ext_mpart->bd_parameter && which->bd_ext_mpart->bd_parameter->pa_list) {
889 clistcell*cur = 0; 891 clistcell*cur = 0;
890 mailimap_single_body_fld_param*param=0; 892 mailimap_single_body_fld_param*param=0;
891 for (cur = clist_begin(which->bd_ext_mpart->bd_parameter->pa_list);cur!=NULL;cur=clist_next(cur)) { 893 for (cur = clist_begin(which->bd_ext_mpart->bd_parameter->pa_list);cur!=NULL;cur=clist_next(cur)) {
892 param = (mailimap_single_body_fld_param*)cur->data; 894 param = (mailimap_single_body_fld_param*)cur->data;
893 if (param) { 895 if (param) {
894 target_part->addParameter(QString(param->pa_name).lower(),QString(param->pa_value)); 896 target_part->addParameter(QString(param->pa_name).lower(),QString(param->pa_value));
895 } 897 }
896 } 898 }
897 } 899 }
898} 900}
899 901
900void IMAPwrapper::fillSingleBasicPart(RecPartP&target_part,mailimap_body_type_basic*which) 902void IMAPwrapper::fillSingleBasicPart(RecPartP&target_part,mailimap_body_type_basic*which)
901{ 903{
902 if (!which) { 904 if (!which) {
903 return; 905 return;
904 } 906 }
905 QString type,sub; 907 QString type,sub;
906 switch (which->bd_media_basic->med_type) { 908 switch (which->bd_media_basic->med_type) {
907 case MAILIMAP_MEDIA_BASIC_APPLICATION: 909 case MAILIMAP_MEDIA_BASIC_APPLICATION:
908 type = "application"; 910 type = "application";
909 break; 911 break;
910 case MAILIMAP_MEDIA_BASIC_AUDIO: 912 case MAILIMAP_MEDIA_BASIC_AUDIO:
911 type = "audio"; 913 type = "audio";
912 break; 914 break;
913 case MAILIMAP_MEDIA_BASIC_IMAGE: 915 case MAILIMAP_MEDIA_BASIC_IMAGE:
914 type = "image"; 916 type = "image";
915 break; 917 break;
916 case MAILIMAP_MEDIA_BASIC_MESSAGE: 918 case MAILIMAP_MEDIA_BASIC_MESSAGE:
917 type = "message"; 919 type = "message";
918 break; 920 break;
919 case MAILIMAP_MEDIA_BASIC_VIDEO: 921 case MAILIMAP_MEDIA_BASIC_VIDEO:
920 type = "video"; 922 type = "video";
921 break; 923 break;
922 case MAILIMAP_MEDIA_BASIC_OTHER: 924 case MAILIMAP_MEDIA_BASIC_OTHER:
923 default: 925 default:
924 if (which->bd_media_basic->med_basic_type) { 926 if (which->bd_media_basic->med_basic_type) {
925 type = which->bd_media_basic->med_basic_type; 927 type = which->bd_media_basic->med_basic_type;
926 } else { 928 } else {
927 type = ""; 929 type = "";
928 } 930 }
929 break; 931 break;
930 } 932 }
931 if (which->bd_media_basic->med_subtype) { 933 if (which->bd_media_basic->med_subtype) {
932 sub = which->bd_media_basic->med_subtype; 934 sub = which->bd_media_basic->med_subtype;
933 } else { 935 } else {
934 sub = ""; 936 sub = "";
935 } 937 }
936 // odebug << "Type = " << type.latin1() << "/" << sub.latin1() << "" << oendl; 938 // odebug << "Type = " << type.latin1() << "/" << sub.latin1() << "" << oendl;
937 target_part->setType(type.lower()); 939 target_part->setType(type.lower());
938 target_part->setSubtype(sub.lower()); 940 target_part->setSubtype(sub.lower());
939 fillBodyFields(target_part,which->bd_fields); 941 fillBodyFields(target_part,which->bd_fields);
940} 942}
941 943
942void IMAPwrapper::fillBodyFields(RecPartP&target_part,mailimap_body_fields*which) 944void IMAPwrapper::fillBodyFields(RecPartP&target_part,mailimap_body_fields*which)
943{ 945{
944 if (!which) return; 946 if (!which) return;
945 if (which->bd_parameter && which->bd_parameter->pa_list && which->bd_parameter->pa_list->count>0) { 947 if (which->bd_parameter && which->bd_parameter->pa_list && which->bd_parameter->pa_list->count>0) {
946 clistcell*cur; 948 clistcell*cur;
947 mailimap_single_body_fld_param*param=0; 949 mailimap_single_body_fld_param*param=0;
948 for (cur = clist_begin(which->bd_parameter->pa_list);cur!=NULL;cur=clist_next(cur)) { 950 for (cur = clist_begin(which->bd_parameter->pa_list);cur!=NULL;cur=clist_next(cur)) {
949 param = (mailimap_single_body_fld_param*)cur->data; 951 param = (mailimap_single_body_fld_param*)cur->data;
950 if (param) { 952 if (param) {
951 target_part->addParameter(QString(param->pa_name).lower(),QString(param->pa_value)); 953 target_part->addParameter(QString(param->pa_name).lower(),QString(param->pa_value));
952 } 954 }
953 } 955 }
954 } 956 }
955 mailimap_body_fld_enc*enc = which->bd_encoding; 957 mailimap_body_fld_enc*enc = which->bd_encoding;
956 QString encoding(""); 958 QString encoding("");
957 switch (enc->enc_type) { 959 switch (enc->enc_type) {
958 case MAILIMAP_BODY_FLD_ENC_7BIT: 960 case MAILIMAP_BODY_FLD_ENC_7BIT:
959 encoding = "7bit"; 961 encoding = "7bit";
960 break; 962 break;
961 case MAILIMAP_BODY_FLD_ENC_8BIT: 963 case MAILIMAP_BODY_FLD_ENC_8BIT:
962 encoding = "8bit"; 964 encoding = "8bit";
963 break; 965 break;
964 case MAILIMAP_BODY_FLD_ENC_BINARY: 966 case MAILIMAP_BODY_FLD_ENC_BINARY:
965 encoding="binary"; 967 encoding="binary";
966 break; 968 break;
967 case MAILIMAP_BODY_FLD_ENC_BASE64: 969 case MAILIMAP_BODY_FLD_ENC_BASE64:
968 encoding="base64"; 970 encoding="base64";
969 break; 971 break;
970 case MAILIMAP_BODY_FLD_ENC_QUOTED_PRINTABLE: 972 case MAILIMAP_BODY_FLD_ENC_QUOTED_PRINTABLE:
971 encoding="quoted-printable"; 973 encoding="quoted-printable";
972 break; 974 break;
973 case MAILIMAP_BODY_FLD_ENC_OTHER: 975 case MAILIMAP_BODY_FLD_ENC_OTHER:
974 default: 976 default:
975 if (enc->enc_value) { 977 if (enc->enc_value) {
976 char*t=enc->enc_value; 978 char*t=enc->enc_value;
977 encoding=QString(enc->enc_value); 979 encoding=QString(enc->enc_value);
978 enc->enc_value=0L; 980 enc->enc_value=0L;
979 free(t); 981 free(t);
980 } 982 }
981 } 983 }
982 if (which->bd_description) { 984 if (which->bd_description) {
983 target_part->setDescription(QString(which->bd_description)); 985 target_part->setDescription(QString(which->bd_description));
984 } 986 }
985 target_part->setEncoding(encoding); 987 target_part->setEncoding(encoding);
986 target_part->setSize(which->bd_size); 988 target_part->setSize(which->bd_size);
987} 989}
988void IMAPwrapper::deleteMailList(const QValueList<RecMailP>&target) 990void IMAPwrapper::deleteMailList(const Q3ValueList<RecMailP>&target)
989{ 991{
990 //#if 0 992 //#if 0
991 mailimap_flag_list*flist; 993 mailimap_flag_list*flist;
992 mailimap_set *set; 994 mailimap_set *set;
993 mailimap_store_att_flags * store_flags; 995 mailimap_store_att_flags * store_flags;
994 int err; 996 int err;
995 login(); 997 login();
996 //#endif 998 //#endif
997 if (!m_imap) { 999 if (!m_imap) {
998 return; 1000 return;
999 } 1001 }
1000 int iii = 0; 1002 int iii = 0;
1001 int count = target.count(); 1003 int count = target.count();
1002 // qDebug("imap remove count %d ", count); 1004 // qDebug("imap remove count %d ", count);
1003 1005
1004 1006
1005 mMax = count; 1007 mMax = count;
1006 progress( i18n("Delete")); 1008 progress( i18n("Delete"));
1007 1009
1008 QProgressBar wid ( count ); 1010 Q3ProgressBar wid ( count );
1009 wid.setCaption( i18n("Deleting ...")); 1011 wid.setCaption( i18n("Deleting ..."));
1010 wid.show(); 1012 wid.show();
1011 while (iii < count ) { 1013 while (iii < count ) {
1012 Global::statusMessage(i18n("Delete message %1 of %2").arg(iii).arg(count)); 1014 Global::statusMessage(i18n("Delete message %1 of %2").arg(iii).arg(count));
1013 wid.setProgress( iii ); 1015 wid.setProgress( iii );
1014 wid.raise(); 1016 wid.raise();
1015 qApp->processEvents(); 1017 qApp->processEvents();
1016 RecMailP mail = (*target.at( iii )); 1018 RecMailP mail = (*target.at( iii ));
1017 //#if 0 1019 //#if 0
1018 //qDebug("IMAP remove %d %d ", iii, mail->getNumber() ); 1020 //qDebug("IMAP remove %d %d ", iii, mail->getNumber() );
1019 err = selectMbox(mail->getMbox()); 1021 err = selectMbox(mail->getMbox());
1020 if ( err != MAILIMAP_NO_ERROR ) { 1022 if ( err != MAILIMAP_NO_ERROR ) {
1021 return; 1023 return;
1022 } 1024 }
1023 flist = mailimap_flag_list_new_empty(); 1025 flist = mailimap_flag_list_new_empty();
1024 mailimap_flag_list_add(flist,mailimap_flag_new_deleted()); 1026 mailimap_flag_list_add(flist,mailimap_flag_new_deleted());
1025 store_flags = mailimap_store_att_flags_new_set_flags(flist); 1027 store_flags = mailimap_store_att_flags_new_set_flags(flist);
1026 set = mailimap_set_new_single(mail->getNumber()); 1028 set = mailimap_set_new_single(mail->getNumber());
1027 err = mailimap_store(m_imap,set,store_flags); 1029 err = mailimap_store(m_imap,set,store_flags);
1028 mailimap_set_free( set ); 1030 mailimap_set_free( set );
1029 mailimap_store_att_flags_free(store_flags); 1031 mailimap_store_att_flags_free(store_flags);
1030 1032
1031 if (err != MAILIMAP_NO_ERROR) { 1033 if (err != MAILIMAP_NO_ERROR) {
1032 // odebug << "error deleting mail: " << m_imap->imap_response << "" << oendl; 1034 // odebug << "error deleting mail: " << m_imap->imap_response << "" << oendl;
1033 return; 1035 return;
1034 } 1036 }
1035 // odebug << "deleting mail: " << m_imap->imap_response << "" << oendl; 1037 // odebug << "deleting mail: " << m_imap->imap_response << "" << oendl;
1036 /* should we realy do that at this moment? */ 1038 /* should we realy do that at this moment? */
1037 1039
1038 // err = mailimap_expunge(m_imap); 1040 // err = mailimap_expunge(m_imap);
1039 //if (err != MAILIMAP_NO_ERROR) { 1041 //if (err != MAILIMAP_NO_ERROR) {
1040 // Global::statusMessage(i18n("Error deleting mails: %s").arg(m_imap->imap_response)); 1042 // Global::statusMessage(i18n("Error deleting mails: %s").arg(m_imap->imap_response));
1041 // } 1043 // }
1042 //#endif 1044 //#endif
1043 //deleteMail( mail); 1045 //deleteMail( mail);
1044 ++iii; 1046 ++iii;
1045 } 1047 }
1046 //qDebug("Deleting imap mails... "); 1048 //qDebug("Deleting imap mails... ");
1047 err = mailimap_expunge(m_imap); 1049 err = mailimap_expunge(m_imap);
1048 if (err != MAILIMAP_NO_ERROR) { 1050 if (err != MAILIMAP_NO_ERROR) {
1049 Global::statusMessage(i18n("Error deleting mails: %s").arg(m_imap->imap_response)); 1051 Global::statusMessage(i18n("Error deleting mails: %s").arg(m_imap->imap_response));
1050 } 1052 }
1051} 1053}
1052void IMAPwrapper::deleteMail(const RecMailP&mail) 1054void IMAPwrapper::deleteMail(const RecMailP&mail)
1053{ 1055{
1054 mailimap_flag_list*flist; 1056 mailimap_flag_list*flist;
1055 mailimap_set *set; 1057 mailimap_set *set;
1056 mailimap_store_att_flags * store_flags; 1058 mailimap_store_att_flags * store_flags;
1057 int err; 1059 int err;
1058 login(); 1060 login();
1059 if (!m_imap) { 1061 if (!m_imap) {
1060 return; 1062 return;
1061 } 1063 }
1062 err = selectMbox(mail->getMbox()); 1064 err = selectMbox(mail->getMbox());
1063 if ( err != MAILIMAP_NO_ERROR ) { 1065 if ( err != MAILIMAP_NO_ERROR ) {
1064 return; 1066 return;
1065 } 1067 }
1066 flist = mailimap_flag_list_new_empty(); 1068 flist = mailimap_flag_list_new_empty();
1067 mailimap_flag_list_add(flist,mailimap_flag_new_deleted()); 1069 mailimap_flag_list_add(flist,mailimap_flag_new_deleted());
1068 store_flags = mailimap_store_att_flags_new_set_flags(flist); 1070 store_flags = mailimap_store_att_flags_new_set_flags(flist);
1069 set = mailimap_set_new_single(mail->getNumber()); 1071 set = mailimap_set_new_single(mail->getNumber());
1070 err = mailimap_store(m_imap,set,store_flags); 1072 err = mailimap_store(m_imap,set,store_flags);
1071 mailimap_set_free( set ); 1073 mailimap_set_free( set );
1072 mailimap_store_att_flags_free(store_flags); 1074 mailimap_store_att_flags_free(store_flags);
1073 1075
1074 if (err != MAILIMAP_NO_ERROR) { 1076 if (err != MAILIMAP_NO_ERROR) {
1075 // odebug << "error deleting mail: " << m_imap->imap_response << "" << oendl; 1077 // odebug << "error deleting mail: " << m_imap->imap_response << "" << oendl;
1076 return; 1078 return;
1077 } 1079 }
1078 // odebug << "deleting mail: " << m_imap->imap_response << "" << oendl; 1080 // odebug << "deleting mail: " << m_imap->imap_response << "" << oendl;
1079 /* should we realy do that at this moment? */ 1081 /* should we realy do that at this moment? */
1080 1082
1081 err = mailimap_expunge(m_imap); 1083 err = mailimap_expunge(m_imap);
1082 if (err != MAILIMAP_NO_ERROR) { 1084 if (err != MAILIMAP_NO_ERROR) {
1083 Global::statusMessage(i18n("error deleting mail: %s").arg(m_imap->imap_response)); 1085 Global::statusMessage(i18n("error deleting mail: %s").arg(m_imap->imap_response));
1084 } 1086 }
1085 //qDebug("IMAPwrapper::deleteMail 2"); 1087 //qDebug("IMAPwrapper::deleteMail 2");
1086 1088
1087} 1089}
1088 1090
1089void IMAPwrapper::answeredMail(const RecMailP&mail) 1091void IMAPwrapper::answeredMail(const RecMailP&mail)
1090{ 1092{
1091 mailimap_flag_list*flist; 1093 mailimap_flag_list*flist;
1092 mailimap_set *set; 1094 mailimap_set *set;
1093 mailimap_store_att_flags * store_flags; 1095 mailimap_store_att_flags * store_flags;
1094 int err; 1096 int err;
1095 login(); 1097 login();
1096 if (!m_imap) { 1098 if (!m_imap) {
1097 return; 1099 return;
1098 } 1100 }
1099 err = selectMbox(mail->getMbox()); 1101 err = selectMbox(mail->getMbox());
1100 if ( err != MAILIMAP_NO_ERROR ) { 1102 if ( err != MAILIMAP_NO_ERROR ) {
1101 return; 1103 return;
1102 } 1104 }
1103 flist = mailimap_flag_list_new_empty(); 1105 flist = mailimap_flag_list_new_empty();
1104 mailimap_flag_list_add(flist,mailimap_flag_new_answered()); 1106 mailimap_flag_list_add(flist,mailimap_flag_new_answered());
1105 store_flags = mailimap_store_att_flags_new_add_flags(flist); 1107 store_flags = mailimap_store_att_flags_new_add_flags(flist);
1106 set = mailimap_set_new_single(mail->getNumber()); 1108 set = mailimap_set_new_single(mail->getNumber());
1107 err = mailimap_store(m_imap,set,store_flags); 1109 err = mailimap_store(m_imap,set,store_flags);
1108 mailimap_set_free( set ); 1110 mailimap_set_free( set );
1109 mailimap_store_att_flags_free(store_flags); 1111 mailimap_store_att_flags_free(store_flags);
1110 1112
1111 if (err != MAILIMAP_NO_ERROR) { 1113 if (err != MAILIMAP_NO_ERROR) {
1112 // odebug << "error marking mail: " << m_imap->imap_response << "" << oendl; 1114 // odebug << "error marking mail: " << m_imap->imap_response << "" << oendl;
1113 return; 1115 return;
1114 } 1116 }
1115} 1117}
1116 1118
1117QString IMAPwrapper::fetchTextPart(const RecMailP&mail,const QValueList<int>&path,bool internal_call,const QString&enc) 1119QString IMAPwrapper::fetchTextPart(const RecMailP&mail,const Q3ValueList<int>&path,bool internal_call,const QString&enc)
1118{ 1120{
1119 QString body(""); 1121 QString body("");
1120 encodedString*res = fetchRawPart(mail,path,internal_call); 1122 encodedString*res = fetchRawPart(mail,path,internal_call);
1121 encodedString*r = decode_String(res,enc); 1123 encodedString*r = decode_String(res,enc);
1122 delete res; 1124 delete res;
1123 if (r) { 1125 if (r) {
1124 if (r->Length()>0) { 1126 if (r->Length()>0) {
1125 body = r->Content(); 1127 body = r->Content();
1126 } 1128 }
1127 delete r; 1129 delete r;
1128 } 1130 }
1129 return body; 1131 return body;
1130} 1132}
1131 1133
1132QString IMAPwrapper::fetchTextPart(const RecMailP&mail,const RecPartP&part) 1134QString IMAPwrapper::fetchTextPart(const RecMailP&mail,const RecPartP&part)
1133{ 1135{
1134 return fetchTextPart(mail,part->Positionlist(),false,part->Encoding()); 1136 return fetchTextPart(mail,part->Positionlist(),false,part->Encoding());
1135} 1137}
1136 1138
1137encodedString* IMAPwrapper::fetchDecodedPart(const RecMailP&mail,const RecPartP&part) 1139encodedString* IMAPwrapper::fetchDecodedPart(const RecMailP&mail,const RecPartP&part)
1138{ 1140{
1139 encodedString*res = fetchRawPart(mail,part->Positionlist(),false); 1141 encodedString*res = fetchRawPart(mail,part->Positionlist(),false);
1140 encodedString*r = decode_String(res,part->Encoding()); 1142 encodedString*r = decode_String(res,part->Encoding());
1141 delete res; 1143 delete res;
1142 return r; 1144 return r;
1143} 1145}
1144 1146
1145encodedString* IMAPwrapper::fetchRawPart(const RecMailP&mail,const RecPartP&part) 1147encodedString* IMAPwrapper::fetchRawPart(const RecMailP&mail,const RecPartP&part)
1146{ 1148{
1147 return fetchRawPart(mail,part->Positionlist(),false); 1149 return fetchRawPart(mail,part->Positionlist(),false);
1148} 1150}
1149 1151
1150int IMAPwrapper::deleteAllMail(const FolderP&folder) 1152int IMAPwrapper::deleteAllMail(const FolderP&folder)
1151{ 1153{
1152 login(); 1154 login();
1153 if (!m_imap) { 1155 if (!m_imap) {
1154 return 0; 1156 return 0;
1155 } 1157 }
1156 mailimap_flag_list*flist; 1158 mailimap_flag_list*flist;
1157 mailimap_set *set; 1159 mailimap_set *set;
1158 mailimap_store_att_flags * store_flags; 1160 mailimap_store_att_flags * store_flags;
1159 int err = selectMbox(folder->getName()); 1161 int err = selectMbox(folder->getName());
1160 if ( err != MAILIMAP_NO_ERROR ) { 1162 if ( err != MAILIMAP_NO_ERROR ) {
1161 return 0; 1163 return 0;
1162 } 1164 }
1163 1165
1164 int last = m_imap->imap_selection_info->sel_exists; 1166 int last = m_imap->imap_selection_info->sel_exists;
1165 if (last == 0) { 1167 if (last == 0) {
1166 Global::statusMessage(i18n("Mailbox has no mails!")); 1168 Global::statusMessage(i18n("Mailbox has no mails!"));
1167 return 0; 1169 return 0;
1168 } 1170 }
1169 flist = mailimap_flag_list_new_empty(); 1171 flist = mailimap_flag_list_new_empty();
1170 mailimap_flag_list_add(flist,mailimap_flag_new_deleted()); 1172 mailimap_flag_list_add(flist,mailimap_flag_new_deleted());
1171 store_flags = mailimap_store_att_flags_new_set_flags(flist); 1173 store_flags = mailimap_store_att_flags_new_set_flags(flist);
1172 set = mailimap_set_new_interval( 1, last ); 1174 set = mailimap_set_new_interval( 1, last );
1173 err = mailimap_store(m_imap,set,store_flags); 1175 err = mailimap_store(m_imap,set,store_flags);
1174 mailimap_set_free( set ); 1176 mailimap_set_free( set );
1175 mailimap_store_att_flags_free(store_flags); 1177 mailimap_store_att_flags_free(store_flags);
1176 if (err != MAILIMAP_NO_ERROR) { 1178 if (err != MAILIMAP_NO_ERROR) {
1177 Global::statusMessage(i18n("error deleting mail: %s").arg(m_imap->imap_response)); 1179 Global::statusMessage(i18n("error deleting mail: %s").arg(m_imap->imap_response));
1178 return 0; 1180 return 0;
1179 } 1181 }
1180 // odebug << "deleting mail: " << m_imap->imap_response << "" << oendl; 1182 // odebug << "deleting mail: " << m_imap->imap_response << "" << oendl;
1181 /* should we realy do that at this moment? */ 1183 /* should we realy do that at this moment? */
1182 err = mailimap_expunge(m_imap); 1184 err = mailimap_expunge(m_imap);
1183 if (err != MAILIMAP_NO_ERROR) { 1185 if (err != MAILIMAP_NO_ERROR) {
1184 Global::statusMessage(i18n("error deleting mail: %s").arg(m_imap->imap_response)); 1186 Global::statusMessage(i18n("error deleting mail: %s").arg(m_imap->imap_response));
1185 return 0; 1187 return 0;
1186 } 1188 }
1187 // odebug << "Delete successfull " << m_imap->imap_response << "" << oendl; 1189 // odebug << "Delete successfull " << m_imap->imap_response << "" << oendl;
1188 return 1; 1190 return 1;
1189} 1191}
1190 1192
1191int IMAPwrapper::createMbox(const QString&folder,const FolderP&parentfolder,const QString& delemiter,bool getsubfolder) 1193int IMAPwrapper::createMbox(const QString&folder,const FolderP&parentfolder,const QString& delemiter,bool getsubfolder)
1192{ 1194{
1193 if (folder.length()==0) return 0; 1195 if (folder.length()==0) return 0;
1194 login(); 1196 login();
1195 if (!m_imap) {return 0;} 1197 if (!m_imap) {return 0;}
1196 QString pre = account->getPrefix(); 1198 QString pre = account->getPrefix();
1197 if (delemiter.length()>0 && pre.findRev(delemiter)!=((int)pre.length())-1) { 1199 if (delemiter.length()>0 && pre.findRev(delemiter)!=((int)pre.length())-1) {
1198 pre+=delemiter; 1200 pre+=delemiter;
1199 } 1201 }
1200 if (parentfolder) { 1202 if (parentfolder) {
1201 pre += parentfolder->getDisplayName()+delemiter; 1203 pre += parentfolder->getDisplayName()+delemiter;
1202 } 1204 }
1203 pre+=folder; 1205 pre+=folder;
1204 if (getsubfolder) { 1206 if (getsubfolder) {
1205 if (delemiter.length()>0) { 1207 if (delemiter.length()>0) {
1206 pre+=delemiter; 1208 pre+=delemiter;
1207 } else { 1209 } else {
1208 Global::statusMessage(i18n("Cannot create folder %1 for holding subfolders").arg(pre)); 1210 Global::statusMessage(i18n("Cannot create folder %1 for holding subfolders").arg(pre));
1209 return 0; 1211 return 0;
1210 } 1212 }
1211 } 1213 }
1212 // odebug << "Creating " << pre.latin1() << "" << oendl; 1214 // odebug << "Creating " << pre.latin1() << "" << oendl;
1213 int res = mailimap_create(m_imap,pre.latin1()); 1215 int res = mailimap_create(m_imap,pre.latin1());
1214 if (res != MAILIMAP_NO_ERROR) { 1216 if (res != MAILIMAP_NO_ERROR) {
1215 Global::statusMessage(i18n("%1").arg(m_imap->imap_response)); 1217 Global::statusMessage(i18n("%1").arg(m_imap->imap_response));
1216 return 0; 1218 return 0;
1217 } 1219 }
1218 return 1; 1220 return 1;
1219} 1221}
1220 1222
1221int IMAPwrapper::deleteMbox(const FolderP&folder) 1223int IMAPwrapper::deleteMbox(const FolderP&folder)
1222{ 1224{
1223 if (!folder) return 0; 1225 if (!folder) return 0;
1224 login(); 1226 login();
1225 if (!m_imap) {return 0;} 1227 if (!m_imap) {return 0;}
1226 int res = mailimap_delete(m_imap,folder->getName()); 1228 int res = mailimap_delete(m_imap,folder->getName());
1227 if (res != MAILIMAP_NO_ERROR) { 1229 if (res != MAILIMAP_NO_ERROR) {
1228 Global::statusMessage(i18n("%1").arg(m_imap->imap_response)); 1230 Global::statusMessage(i18n("%1").arg(m_imap->imap_response));
1229 return 0; 1231 return 0;
1230 } 1232 }
1231 return 1; 1233 return 1;
1232} 1234}
1233 1235
1234void IMAPwrapper::statusFolder(folderStat&target_stat,const QString & mailbox) 1236void IMAPwrapper::statusFolder(folderStat&target_stat,const QString & mailbox)
1235{ 1237{
1236 mailimap_status_att_list * att_list =0; 1238 mailimap_status_att_list * att_list =0;
1237 mailimap_mailbox_data_status * status=0; 1239 mailimap_mailbox_data_status * status=0;
1238 clistiter * cur = 0; 1240 clistiter * cur = 0;
1239 int r = 0; 1241 int r = 0;
1240 target_stat.message_count = 0; 1242 target_stat.message_count = 0;
1241 target_stat.message_unseen = 0; 1243 target_stat.message_unseen = 0;
1242 target_stat.message_recent = 0; 1244 target_stat.message_recent = 0;
1243 login(); 1245 login();
1244 if (!m_imap) { 1246 if (!m_imap) {
1245 return; 1247 return;
1246 } 1248 }
1247 att_list = mailimap_status_att_list_new_empty(); 1249 att_list = mailimap_status_att_list_new_empty();
1248 if (!att_list) return; 1250 if (!att_list) return;
1249 r = mailimap_status_att_list_add(att_list, MAILIMAP_STATUS_ATT_MESSAGES); 1251 r = mailimap_status_att_list_add(att_list, MAILIMAP_STATUS_ATT_MESSAGES);
1250 r = mailimap_status_att_list_add(att_list, MAILIMAP_STATUS_ATT_RECENT); 1252 r = mailimap_status_att_list_add(att_list, MAILIMAP_STATUS_ATT_RECENT);
1251 r = mailimap_status_att_list_add(att_list, MAILIMAP_STATUS_ATT_UNSEEN); 1253 r = mailimap_status_att_list_add(att_list, MAILIMAP_STATUS_ATT_UNSEEN);
1252 r = mailimap_status(m_imap, mailbox.latin1(), att_list, &status); 1254 r = mailimap_status(m_imap, mailbox.latin1(), att_list, &status);
1253 if (r==MAILIMAP_NO_ERROR&&status->st_info_list!=0) { 1255 if (r==MAILIMAP_NO_ERROR&&status->st_info_list!=0) {
1254 for (cur = clist_begin(status->st_info_list); 1256 for (cur = clist_begin(status->st_info_list);
1255 cur != NULL ; cur = clist_next(cur)) { 1257 cur != NULL ; cur = clist_next(cur)) {
1256 mailimap_status_info * status_info; 1258 mailimap_status_info * status_info;
1257 status_info = (mailimap_status_info *)clist_content(cur); 1259 status_info = (mailimap_status_info *)clist_content(cur);
1258 switch (status_info->st_att) { 1260 switch (status_info->st_att) {
1259 case MAILIMAP_STATUS_ATT_MESSAGES: 1261 case MAILIMAP_STATUS_ATT_MESSAGES:
1260 target_stat.message_count = status_info->st_value; 1262 target_stat.message_count = status_info->st_value;
1261 break; 1263 break;
1262 case MAILIMAP_STATUS_ATT_RECENT: 1264 case MAILIMAP_STATUS_ATT_RECENT:
1263 target_stat.message_recent = status_info->st_value; 1265 target_stat.message_recent = status_info->st_value;
1264 break; 1266 break;
1265 case MAILIMAP_STATUS_ATT_UNSEEN: 1267 case MAILIMAP_STATUS_ATT_UNSEEN:
1266 target_stat.message_unseen = status_info->st_value; 1268 target_stat.message_unseen = status_info->st_value;
1267 break; 1269 break;
1268 } 1270 }
1269 } 1271 }
1270 } else { 1272 } else {
1271 // odebug << "Error retrieving status" << oendl; 1273 // odebug << "Error retrieving status" << oendl;
1272 } 1274 }
1273 if (status) mailimap_mailbox_data_status_free(status); 1275 if (status) mailimap_mailbox_data_status_free(status);
1274 if (att_list) mailimap_status_att_list_free(att_list); 1276 if (att_list) mailimap_status_att_list_free(att_list);
1275} 1277}
1276 1278
1277void IMAPwrapper::storeMessage(const char*msg,size_t length, const QString&folder) 1279void IMAPwrapper::storeMessage(const char*msg,size_t length, const QString&folder)
1278{ 1280{
1279 login(); 1281 login();
1280 if (!m_imap) return; 1282 if (!m_imap) return;
1281 if (!msg) return; 1283 if (!msg) return;
1282 int r = mailimap_append(m_imap,(char*)folder.latin1(),0,0,msg,length); 1284 int r = mailimap_append(m_imap,(char*)folder.latin1(),0,0,msg,length);
1283 if (r != MAILIMAP_NO_ERROR) { 1285 if (r != MAILIMAP_NO_ERROR) {
1284 Global::statusMessage("Error storing mail!"); 1286 Global::statusMessage("Error storing mail!");
1285 } 1287 }
1286} 1288}
1287 1289
1288MAILLIB::ATYPE IMAPwrapper::getType()const 1290MAILLIB::ATYPE IMAPwrapper::getType()const
1289{ 1291{
1290 return account->getType(); 1292 return account->getType();
1291} 1293}
1292 1294
1293const QString&IMAPwrapper::getName()const 1295const QString&IMAPwrapper::getName()const
1294{ 1296{
1295 // odebug << "Get name: " << account->getAccountName().latin1() << "" << oendl; 1297 // odebug << "Get name: " << account->getAccountName().latin1() << "" << oendl;
1296 return account->getAccountName(); 1298 return account->getAccountName();
1297} 1299}
1298 1300
1299encodedString* IMAPwrapper::fetchRawBody(const RecMailP&mail) 1301encodedString* IMAPwrapper::fetchRawBody(const RecMailP&mail)
1300{ 1302{
1301 // dummy 1303 // dummy
1302 QValueList<int> path; 1304 Q3ValueList<int> path;
1303 return fetchRawPart(mail,path,false); 1305 return fetchRawPart(mail,path,false);
1304} 1306}
1305 1307
1306void IMAPwrapper::mvcpAllMails(const FolderP&fromFolder, 1308void IMAPwrapper::mvcpAllMails(const FolderP&fromFolder,
1307 const QString&targetFolder,AbstractMail*targetWrapper,bool moveit, int maxSizeInKb) 1309 const QString&targetFolder,AbstractMail*targetWrapper,bool moveit, int maxSizeInKb)
1308{ 1310{
1309 if (targetWrapper != this || maxSizeInKb > 0 ) { 1311 if (targetWrapper != this || maxSizeInKb > 0 ) {
1310 mMax = 0; 1312 mMax = 0;
1311 progress( i18n("Copy")); 1313 progress( i18n("Copy"));
1312 AbstractMail::mvcpAllMails(fromFolder,targetFolder,targetWrapper,moveit, maxSizeInKb); 1314 AbstractMail::mvcpAllMails(fromFolder,targetFolder,targetWrapper,moveit, maxSizeInKb);
1313 //qDebug("IMAPwrapper::mvcpAllMails::Using generic"); 1315 //qDebug("IMAPwrapper::mvcpAllMails::Using generic");
1314 // odebug << "Using generic" << oendl; 1316 // odebug << "Using generic" << oendl;
1315 return; 1317 return;
1316 } 1318 }
1317 mailimap_set *set = 0; 1319 mailimap_set *set = 0;
1318 login(); 1320 login();
1319 if (!m_imap) { 1321 if (!m_imap) {
1320 return; 1322 return;
1321 } 1323 }
1322 int err = selectMbox(fromFolder->getName()); 1324 int err = selectMbox(fromFolder->getName());
1323 if ( err != MAILIMAP_NO_ERROR ) { 1325 if ( err != MAILIMAP_NO_ERROR ) {
1324 return; 1326 return;
1325 } 1327 }
1326 Global::statusMessage( i18n("Copying mails on server...") ); 1328 Global::statusMessage( i18n("Copying mails on server...") );
1327 int last = m_imap->imap_selection_info->sel_exists; 1329 int last = m_imap->imap_selection_info->sel_exists;
1328 set = mailimap_set_new_interval( 1, last ); 1330 set = mailimap_set_new_interval( 1, last );
1329 err = mailimap_copy(m_imap,set,targetFolder.latin1()); 1331 err = mailimap_copy(m_imap,set,targetFolder.latin1());
1330 mailimap_set_free( set ); 1332 mailimap_set_free( set );
1331 if ( err != MAILIMAP_NO_ERROR ) { 1333 if ( err != MAILIMAP_NO_ERROR ) {
1332 QString error_msg = i18n("Error copy mails: %1").arg(m_imap->imap_response); 1334 QString error_msg = i18n("Error copy mails: %1").arg(m_imap->imap_response);
1333 Global::statusMessage(error_msg); 1335 Global::statusMessage(error_msg);
1334 // odebug << error_msg << oendl; 1336 // odebug << error_msg << oendl;
1335 return; 1337 return;
1336 } 1338 }
1337 if (moveit) { 1339 if (moveit) {
1338 deleteAllMail(fromFolder); 1340 deleteAllMail(fromFolder);
1339 } 1341 }
1340} 1342}
1341 1343
1342void IMAPwrapper::mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) 1344void IMAPwrapper::mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit)
1343{ 1345{
1344 if (targetWrapper != this) { 1346 if (targetWrapper != this) {
1345 // odebug << "Using generic" << oendl; 1347 // odebug << "Using generic" << oendl;
1346 AbstractMail::mvcpMail(mail,targetFolder,targetWrapper,moveit); 1348 AbstractMail::mvcpMail(mail,targetFolder,targetWrapper,moveit);
1347 return; 1349 return;
1348 } 1350 }
1349 mailimap_set *set = 0; 1351 mailimap_set *set = 0;
1350 login(); 1352 login();
1351 if (!m_imap) { 1353 if (!m_imap) {
1352 return; 1354 return;
1353 } 1355 }
1354 int err = selectMbox(mail->getMbox()); 1356 int err = selectMbox(mail->getMbox());
1355 if ( err != MAILIMAP_NO_ERROR ) { 1357 if ( err != MAILIMAP_NO_ERROR ) {
1356 return; 1358 return;
1357 } 1359 }
1358 set = mailimap_set_new_single(mail->getNumber()); 1360 set = mailimap_set_new_single(mail->getNumber());
1359 err = mailimap_copy(m_imap,set,targetFolder.latin1()); 1361 err = mailimap_copy(m_imap,set,targetFolder.latin1());
1360 mailimap_set_free( set ); 1362 mailimap_set_free( set );
1361 if ( err != MAILIMAP_NO_ERROR ) { 1363 if ( err != MAILIMAP_NO_ERROR ) {
1362 QString error_msg = i18n("error copy mail: %1").arg(m_imap->imap_response); 1364 QString error_msg = i18n("error copy mail: %1").arg(m_imap->imap_response);
1363 Global::statusMessage(error_msg); 1365 Global::statusMessage(error_msg);
1364 // odebug << error_msg << oendl; 1366 // odebug << error_msg << oendl;
1365 return; 1367 return;
1366 } 1368 }
1367 if (moveit) { 1369 if (moveit) {
1368 deleteMail(mail); 1370 deleteMail(mail);
1369 } 1371 }
1370} 1372}
diff --git a/kmicromail/libmailwrapper/imapwrapper.h b/kmicromail/libmailwrapper/imapwrapper.h
index 31c60a8..d3d3ecd 100644
--- a/kmicromail/libmailwrapper/imapwrapper.h
+++ b/kmicromail/libmailwrapper/imapwrapper.h
@@ -1,85 +1,87 @@
1// CHANGED 2004-09-31 Lutz Rogowski 1// CHANGED 2004-09-31 Lutz Rogowski
2#ifndef __IMAPWRAPPER 2#ifndef __IMAPWRAPPER
3#define __IMAPWRAPPER 3#define __IMAPWRAPPER
4 4
5#include <qlist.h> 5#include <qlist.h>
6//Added by qt3to4:
7#include <Q3ValueList>
6#include "mailwrapper.h" 8#include "mailwrapper.h"
7#include "abstractmail.h" 9#include "abstractmail.h"
8#include <libetpan/clist.h> 10#include <libetpan/clist.h>
9 11
10struct mailimap; 12struct mailimap;
11struct mailimap_body; 13struct mailimap_body;
12struct mailimap_body_type_1part; 14struct mailimap_body_type_1part;
13struct mailimap_body_type_text; 15struct mailimap_body_type_text;
14struct mailimap_body_type_basic; 16struct mailimap_body_type_basic;
15struct mailimap_body_type_msg; 17struct mailimap_body_type_msg;
16struct mailimap_body_type_mpart; 18struct mailimap_body_type_mpart;
17struct mailimap_body_fields; 19struct mailimap_body_fields;
18struct mailimap_msg_att; 20struct mailimap_msg_att;
19class encodedString; 21class encodedString;
20 22
21class IMAPwrapper : public AbstractMail 23class IMAPwrapper : public AbstractMail
22{ 24{
23 Q_OBJECT 25 Q_OBJECT
24public: 26public:
25 IMAPwrapper( IMAPaccount *a ); 27 IMAPwrapper( IMAPaccount *a );
26 virtual ~IMAPwrapper(); 28 virtual ~IMAPwrapper();
27 virtual QValueList<Opie::Core::OSmartPointer<Folder> >* listFolders(); 29 virtual Q3ValueList<Opie::Core::OSmartPointer<Folder> >* listFolders();
28 virtual void listMessages(const QString & mailbox,QValueList<Opie::Core::OSmartPointer<RecMail> >&target , int sizeInKb = 0); 30 virtual void listMessages(const QString & mailbox,Q3ValueList<Opie::Core::OSmartPointer<RecMail> >&target , int sizeInKb = 0);
29 virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX"); 31 virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX");
30 32
31 virtual void deleteMail(const RecMailP&mail); 33 virtual void deleteMail(const RecMailP&mail);
32 void deleteMailList(const QValueList<RecMailP>&target); 34 void deleteMailList(const Q3ValueList<RecMailP>&target);
33 virtual void answeredMail(const RecMailP&mail); 35 virtual void answeredMail(const RecMailP&mail);
34 virtual int deleteAllMail(const Opie::Core::OSmartPointer<Folder>&folder); 36 virtual int deleteAllMail(const Opie::Core::OSmartPointer<Folder>&folder);
35 virtual void storeMessage(const char*msg,size_t length, const QString&folder); 37 virtual void storeMessage(const char*msg,size_t length, const QString&folder);
36 virtual void mvcpAllMails(const Opie::Core::OSmartPointer<Folder>&fromFolder, 38 virtual void mvcpAllMails(const Opie::Core::OSmartPointer<Folder>&fromFolder,
37 const QString&targetFolder,AbstractMail*targetWrapper,bool moveit,int sizeInKb = 0); 39 const QString&targetFolder,AbstractMail*targetWrapper,bool moveit,int sizeInKb = 0);
38 virtual void mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); 40 virtual void mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit);
39 41
40 virtual RecBodyP fetchBody(const RecMailP&mail); 42 virtual RecBodyP fetchBody(const RecMailP&mail);
41 virtual QString fetchTextPart(const RecMailP&mail,const RecPartP&part); 43 virtual QString fetchTextPart(const RecMailP&mail,const RecPartP&part);
42 virtual encodedString* fetchDecodedPart(const RecMailP&mail,const RecPartP&part); 44 virtual encodedString* fetchDecodedPart(const RecMailP&mail,const RecPartP&part);
43 virtual encodedString* fetchRawPart(const RecMailP&mail,const RecPartP&part); 45 virtual encodedString* fetchRawPart(const RecMailP&mail,const RecPartP&part);
44 virtual encodedString* fetchRawBody(const RecMailP&mail); 46 virtual encodedString* fetchRawBody(const RecMailP&mail);
45 47
46 virtual int createMbox(const QString&,const Opie::Core::OSmartPointer<Folder>&parentfolder=0, 48 virtual int createMbox(const QString&,const Opie::Core::OSmartPointer<Folder>&parentfolder=0,
47 const QString& delemiter="/",bool getsubfolder=false); 49 const QString& delemiter="/",bool getsubfolder=false);
48 virtual int deleteMbox(const Opie::Core::OSmartPointer<Folder>&folder); 50 virtual int deleteMbox(const Opie::Core::OSmartPointer<Folder>&folder);
49 51
50 static void imap_progress( size_t current, size_t maximum ); 52 static void imap_progress( size_t current, size_t maximum );
51 53
52 virtual void logout(); 54 virtual void logout();
53 virtual MAILLIB::ATYPE getType()const; 55 virtual MAILLIB::ATYPE getType()const;
54 virtual const QString&getName()const; 56 virtual const QString&getName()const;
55 virtual Account* getAccount() { return account; }; 57 virtual Account* getAccount() { return account; };
56 58
57protected: 59protected:
58 RecMail*parse_list_result(mailimap_msg_att*); 60 RecMail*parse_list_result(mailimap_msg_att*);
59 void login(bool tryTLS = true); 61 void login(bool tryTLS = true);
60 bool start_tls(bool force=true); 62 bool start_tls(bool force=true);
61 63
62 virtual QString fetchTextPart(const RecMailP&mail,const QValueList<int>&path,bool internal_call=false,const QString&enc=""); 64 virtual QString fetchTextPart(const RecMailP&mail,const Q3ValueList<int>&path,bool internal_call=false,const QString&enc="");
63 virtual encodedString*fetchRawPart(const RecMailP&mail,const QValueList<int>&path,bool internal_call); 65 virtual encodedString*fetchRawPart(const RecMailP&mail,const Q3ValueList<int>&path,bool internal_call);
64 int selectMbox(const QString&mbox); 66 int selectMbox(const QString&mbox);
65 67
66 void fillSinglePart(RecPartP&target_part,mailimap_body_type_1part*Description); 68 void fillSinglePart(RecPartP&target_part,mailimap_body_type_1part*Description);
67 void fillSingleTextPart(RecPartP&target_part,mailimap_body_type_text*which); 69 void fillSingleTextPart(RecPartP&target_part,mailimap_body_type_text*which);
68 void fillSingleBasicPart(RecPartP&target_part,mailimap_body_type_basic*which); 70 void fillSingleBasicPart(RecPartP&target_part,mailimap_body_type_basic*which);
69 void fillSingleMsgPart(RecPartP&target_part,mailimap_body_type_msg*which); 71 void fillSingleMsgPart(RecPartP&target_part,mailimap_body_type_msg*which);
70 void fillMultiPart(RecPartP&target_part,mailimap_body_type_mpart*which); 72 void fillMultiPart(RecPartP&target_part,mailimap_body_type_mpart*which);
71 void traverseBody(const RecMailP&mail,mailimap_body*body,RecBodyP&target_body,int current_recursion,QValueList<int>recList,int current_count=1); 73 void traverseBody(const RecMailP&mail,mailimap_body*body,RecBodyP&target_body,int current_recursion,Q3ValueList<int>recList,int current_count=1);
72 74
73 /* just helpers */ 75 /* just helpers */
74 static void fillBodyFields(RecPartP&target_part,mailimap_body_fields*which); 76 static void fillBodyFields(RecPartP&target_part,mailimap_body_fields*which);
75 static QStringList address_list_to_stringlist(clist*list); 77 static QStringList address_list_to_stringlist(clist*list);
76 78
77 static void progress(QString mess = QString::null); 79 static void progress(QString mess = QString::null);
78 static int mCurrent; 80 static int mCurrent;
79 static int mMax; 81 static int mMax;
80 IMAPaccount *account; 82 IMAPaccount *account;
81 mailimap *m_imap; 83 mailimap *m_imap;
82 QString m_Lastmbox; 84 QString m_Lastmbox;
83}; 85};
84 86
85#endif 87#endif
diff --git a/kmicromail/libmailwrapper/libmailwrapper.pro b/kmicromail/libmailwrapper/libmailwrapper.pro
index 646630b..6b595ab 100644
--- a/kmicromail/libmailwrapper/libmailwrapper.pro
+++ b/kmicromail/libmailwrapper/libmailwrapper.pro
@@ -1,65 +1,71 @@
1TEMPLATE = lib 1TEMPLATE = lib
2CONFIG += qt warn_on 2CONFIG += qt warn_on
3 3
4HEADERS = mailwrapper.h \ 4HEADERS = mailwrapper.h \
5 imapwrapper.h \ 5 imapwrapper.h \
6 mailtypes.h \ 6 mailtypes.h \
7 pop3wrapper.h \ 7 pop3wrapper.h \
8 abstractmail.h \ 8 abstractmail.h \
9 smtpwrapper.h \ 9 smtpwrapper.h \
10 genericwrapper.h \ 10 genericwrapper.h \
11 mboxwrapper.h \ 11 mboxwrapper.h \
12 settings.h \ 12 settings.h \
13 logindialog.h \ 13 logindialog.h \
14 sendmailprogress.h \ 14 sendmailprogress.h \
15 statusmail.h \ 15 statusmail.h \
16 mhwrapper.h \ 16 mhwrapper.h \
17 nntpwrapper.h \ 17 nntpwrapper.h \
18 generatemail.h \ 18 generatemail.h \
19 storemail.h \ 19 storemail.h \
20 ../qpe/global.h 20 ../qpe/global.h
21 21
22SOURCES = imapwrapper.cpp \ 22SOURCES = imapwrapper.cpp \
23 mailwrapper.cpp \ 23 mailwrapper.cpp \
24 mailtypes.cpp \ 24 mailtypes.cpp \
25 pop3wrapper.cpp \ 25 pop3wrapper.cpp \
26 abstractmail.cpp \ 26 abstractmail.cpp \
27 smtpwrapper.cpp \ 27 smtpwrapper.cpp \
28 genericwrapper.cpp \ 28 genericwrapper.cpp \
29 mboxwrapper.cpp \ 29 mboxwrapper.cpp \
30 settings.cpp \ 30 settings.cpp \
31 logindialog.cpp \ 31 logindialog.cpp \
32 sendmailprogress.cpp \ 32 sendmailprogress.cpp \
33 statusmail.cpp \ 33 statusmail.cpp \
34 mhwrapper.cpp \ 34 mhwrapper.cpp \
35 nntpwrapper.cpp \ 35 nntpwrapper.cpp \
36 generatemail.cpp \ 36 generatemail.cpp \
37 storemail.cpp \ 37 storemail.cpp \
38 ../qpe/qdialog_hacked.cpp \ 38 ../qpe/qdialog_hacked.cpp \
39 ../qpe/global.cpp 39 ../qpe/global.cpp
40 40
41INTERFACES = logindialogui.ui \ 41#The following line was changed from INTERFACES to FORMS3 by qt3to4
42FORMS3 = logindialogui.ui \
42 sendmailprogressui.ui 43 sendmailprogressui.ui
43 44
44INCLUDEPATH += ../qpe .. ../../microkde ../../microkde/kdecore ../../libetpan/include 45INCLUDEPATH += ../qpe .. ../../microkde ../../microkde/kdecore ../../libetpan/include
45LIBS += -lssl -lcrypto 46LIBS += -lssl -lcrypto
46 47
47#-lqpe -letpan 48#-lqpe -letpan
48 49
49DESTDIR = ../../bin 50DESTDIR = ../../bin
50TARGET = micromailwrapper 51TARGET = micromailwrapper
51 52
52DEFINES += DESKTOP_VERSION 53DEFINES += DESKTOP_VERSION
53unix : { 54unix : {
54OBJECTS_DIR = obj/unix 55OBJECTS_DIR = obj/unix
55MOC_DIR = moc/unix 56MOC_DIR = moc/unix
56} 57}
57win32: { 58win32: {
58DEFINES += _WIN32_ 59DEFINES += _WIN32_
59LIBS += mfc71u.lib 60LIBS += mfc71u.lib
60QMAKE_LINK += /NODEFAULTLIB:LIBC 61QMAKE_LINK += /NODEFAULTLIB:LIBC
61#QMAKE_LINK += /NODEFAULTLIB:MSVCRT 62#QMAKE_LINK += /NODEFAULTLIB:MSVCRT
62#QMAKE_LINK += /NODEFAULTLIB:uafxcw.lib 63#QMAKE_LINK += /NODEFAULTLIB:uafxcw.lib
63OBJECTS_DIR = obj/win 64OBJECTS_DIR = obj/win
64MOC_DIR = moc/win 65MOC_DIR = moc/win
65} 66}
67#The following line was inserted by qt3to4
68QT += xml qt3support
69#The following line was inserted by qt3to4
70CONFIG += uic3
71
diff --git a/kmicromail/libmailwrapper/logindialog.cpp b/kmicromail/libmailwrapper/logindialog.cpp
index 31b75d0..d1f4b5d 100644
--- a/kmicromail/libmailwrapper/logindialog.cpp
+++ b/kmicromail/libmailwrapper/logindialog.cpp
@@ -1,33 +1,33 @@
1#include <qlineedit.h> 1#include <qlineedit.h>
2 2
3#include "logindialog.h" 3#include "logindialog.h"
4 4
5 5
6 6
7//using namespace Opie::Core; 7//using namespace Opie::Core;
8 8
9LoginDialog::LoginDialog(const QString&user,const QString&pass, QWidget *parent, const char *name, bool modal, WFlags flags ) 9LoginDialog::LoginDialog(const QString&user,const QString&pass, QWidget *parent, const char *name, bool modal, Qt::WFlags flags )
10 : LoginDialogUI( parent, name, modal, flags ) 10 : LoginDialogUI( parent, name, modal, flags )
11{ 11{
12 userLine->setText( (user.isEmpty()?QString(""):user) ); 12 userLine->setText( (user.isEmpty()?QString(""):user) );
13 passLine->setText( (pass.isEmpty()?QString(""):pass) ); 13 passLine->setText( (pass.isEmpty()?QString(""):pass) );
14 _user = user; 14 _user = user;
15 _pass = pass; 15 _pass = pass;
16 16
17 if ( user.isEmpty() ) { 17 if ( user.isEmpty() ) {
18 userLine->setFocus(); 18 userLine->setFocus();
19 } else { 19 } else {
20 passLine->setFocus(); 20 passLine->setFocus();
21 } 21 }
22} 22}
23 23
24void LoginDialog::accept() 24void LoginDialog::accept()
25{ 25{
26 //_user.replace( 0, _user.length(), userLine->text() ); 26 //_user.replace( 0, _user.length(), userLine->text() );
27 //_pass.replace( 0, _pass.length(), passLine->text() ); 27 //_pass.replace( 0, _pass.length(), passLine->text() );
28 _user = userLine->text(); 28 _user = userLine->text();
29 _pass = passLine->text(); 29 _pass = passLine->text();
30 30
31 //odebug << "User im accept: |" << _user.latin1() << "|" << oendl; 31 //odebug << "User im accept: |" << _user.latin1() << "|" << oendl;
32 QDialog::accept(); 32 QDialog::accept();
33} 33}
diff --git a/kmicromail/libmailwrapper/logindialog.h b/kmicromail/libmailwrapper/logindialog.h
index f406f2c..a18daa5 100644
--- a/kmicromail/libmailwrapper/logindialog.h
+++ b/kmicromail/libmailwrapper/logindialog.h
@@ -1,23 +1,23 @@
1#ifndef LOGINDIALOG_H 1#ifndef LOGINDIALOG_H
2#define LOGINDIALOG_H 2#define LOGINDIALOG_H
3 3
4#include "logindialogui.h" 4#include "logindialogui.h"
5 5
6class LoginDialog : public LoginDialogUI 6class LoginDialog : public LoginDialogUI
7{ 7{
8 Q_OBJECT 8 Q_OBJECT
9 9
10public: 10public:
11 LoginDialog(const QString&user,const QString&pass, QWidget *parent = 0, const char *name = 0, bool modal = false, WFlags flags = 0 ); 11 LoginDialog(const QString&user,const QString&pass, QWidget *parent = 0, const char *name = 0, bool modal = false, Qt::WFlags flags = 0 );
12 QString getUser() { return _user; } 12 QString getUser() { return _user; }
13 QString getPassword() { return _pass; } 13 QString getPassword() { return _pass; }
14 14
15protected slots: 15protected slots:
16 void accept(); 16 void accept();
17 17
18private: 18private:
19 QString _user, _pass; 19 QString _user, _pass;
20 20
21}; 21};
22 22
23#endif 23#endif
diff --git a/kmicromail/libmailwrapper/mailtypes.cpp b/kmicromail/libmailwrapper/mailtypes.cpp
index 70a0ab5..84ccf9f 100644
--- a/kmicromail/libmailwrapper/mailtypes.cpp
+++ b/kmicromail/libmailwrapper/mailtypes.cpp
@@ -1,133 +1,135 @@
1#include "mailtypes.h" 1#include "mailtypes.h"
2 2
3//#include <opie2/odebug.h> 3//#include <opie2/odebug.h>
4 4
5#include <stdlib.h> 5#include <stdlib.h>
6//Added by qt3to4:
7#include <Q3ValueList>
6 8
7using namespace Opie::Core; 9using namespace Opie::Core;
8RecMail::RecMail() 10RecMail::RecMail()
9 :Opie::Core::ORefCount(),subject(""),date(""),from(""),mbox(""),msg_id(""),msg_number(0),msg_size(0),msg_flags(7) 11 :Opie::Core::ORefCount(),subject(""),date(""),from(""),mbox(""),msg_id(""),msg_number(0),msg_size(0),msg_flags(7)
10{ 12{
11 init(); 13 init();
12} 14}
13 15
14RecMail::RecMail(const RecMail&old) 16RecMail::RecMail(const RecMail&old)
15 :Opie::Core::ORefCount(),subject(""),date(""),from(""),mbox(""),msg_id(""),msg_number(0),msg_flags(7) 17 :Opie::Core::ORefCount(),subject(""),date(""),from(""),mbox(""),msg_id(""),msg_number(0),msg_flags(7)
16{ 18{
17 init(); 19 init();
18 copy_old(old); 20 copy_old(old);
19 // odebug << "Copy constructor RecMail" << oendl; 21 // odebug << "Copy constructor RecMail" << oendl;
20} 22}
21 23
22RecMail::~RecMail() 24RecMail::~RecMail()
23{ 25{
24 wrapper = 0; 26 wrapper = 0;
25} 27}
26static bool stringCompareRec( const QString& s1, const QString& s2 ) 28static bool stringCompareRec( const QString& s1, const QString& s2 )
27{ 29{
28 if ( s1.isEmpty() && s2.isEmpty() ) 30 if ( s1.isEmpty() && s2.isEmpty() )
29 return true; 31 return true;
30 return s1 == s2; 32 return s1 == s2;
31} 33}
32#if 0 34#if 0
33QString RecMail::MsgsizeString() const 35QString RecMail::MsgsizeString() const
34{ 36{
35 37
36 double s = msg_size; 38 double s = msg_size;
37 int w = 0; 39 int w = 0;
38 s/=1024; 40 s/=1024;
39 if (s>999.0) { 41 if (s>999.0) {
40 s/=1024.0; 42 s/=1024.0;
41 ++w; 43 ++w;
42 } 44 }
43 QString fsize = QString::number( s, 'f', 2 ); 45 QString fsize = QString::number( s, 'f', 2 );
44 if ( w == 0 ) { 46 if ( w == 0 ) {
45 fsize += "kB" ; 47 fsize += "kB" ;
46 } else 48 } else
47 fsize += "MB" ; 49 fsize += "MB" ;
48 return fsize; 50 return fsize;
49} 51}
50#endif 52#endif
51bool RecMail::isEqual( RecMail* r1 ) 53bool RecMail::isEqual( RecMail* r1 )
52{ 54{
53 if ( !stringCompareRec( isodate, r1->isodate ) ) { 55 if ( !stringCompareRec( isodate, r1->isodate ) ) {
54 //qDebug("date *%s* *%s* ", isodate.latin1(), r1->isodate.latin1()); 56 //qDebug("date *%s* *%s* ", isodate.latin1(), r1->isodate.latin1());
55 return false; 57 return false;
56 } 58 }
57 if ( !stringCompareRec( subject.left(40), r1->subject.left(40) ) ) { 59 if ( !stringCompareRec( subject.left(40), r1->subject.left(40) ) ) {
58 //qDebug("sub *%s* *%s*", subject.latin1(), r1->subject.latin1()); 60 //qDebug("sub *%s* *%s*", subject.latin1(), r1->subject.latin1());
59 return false; 61 return false;
60 } 62 }
61 63
62 //qDebug("date *%s* *%s* ", isodate.latin1(), r1->isodate.latin1()); 64 //qDebug("date *%s* *%s* ", isodate.latin1(), r1->isodate.latin1());
63 if ( !stringCompareRec( from.left(40), r1->from.left(40)) ) { 65 if ( !stringCompareRec( from.left(40), r1->from.left(40)) ) {
64 if ( r1->from.find ( from ) < 0 ) { 66 if ( r1->from.find ( from ) < 0 ) {
65 if ( !stringCompareRec( from.simplifyWhiteSpace ().left(40), r1->from.simplifyWhiteSpace ().left(40)) ) { 67 if ( !stringCompareRec( from.simplifyWhiteSpace ().left(40), r1->from.simplifyWhiteSpace ().left(40)) ) {
66 //qDebug("from *%s* *%s* ", from.left(40).latin1(), r1->from.left(20).latin1()); 68 //qDebug("from *%s* *%s* ", from.left(40).latin1(), r1->from.left(20).latin1());
67 return false; 69 return false;
68 } 70 }
69 } 71 }
70 } 72 }
71 73
72 return true; 74 return true;
73} 75}
74void RecMail::copy_old(const RecMail&old) 76void RecMail::copy_old(const RecMail&old)
75{ 77{
76 subject = old.subject; 78 subject = old.subject;
77 date = old.date; 79 date = old.date;
78 mbox = old.mbox; 80 mbox = old.mbox;
79 msg_id = old.msg_id; 81 msg_id = old.msg_id;
80 msg_size = old.msg_size; 82 msg_size = old.msg_size;
81 msg_number = old.msg_number; 83 msg_number = old.msg_number;
82 from = old.from; 84 from = old.from;
83 msg_flags = old.msg_flags; 85 msg_flags = old.msg_flags;
84 to = old.to; 86 to = old.to;
85 cc = old.cc; 87 cc = old.cc;
86 bcc = old.bcc; 88 bcc = old.bcc;
87 wrapper = old.wrapper; 89 wrapper = old.wrapper;
88 in_reply_to = old.in_reply_to; 90 in_reply_to = old.in_reply_to;
89 references = old.references; 91 references = old.references;
90 replyto = old.replyto; 92 replyto = old.replyto;
91} 93}
92 94
93void RecMail::init() 95void RecMail::init()
94{ 96{
95 to.clear(); 97 to.clear();
96 cc.clear(); 98 cc.clear();
97 bcc.clear(); 99 bcc.clear();
98 in_reply_to.clear(); 100 in_reply_to.clear();
99 references.clear(); 101 references.clear();
100 wrapper = 0; 102 wrapper = 0;
101} 103}
102 104
103void RecMail::setWrapper(AbstractMail*awrapper) 105void RecMail::setWrapper(AbstractMail*awrapper)
104{ 106{
105 wrapper = awrapper; 107 wrapper = awrapper;
106} 108}
107 109
108AbstractMail* RecMail::Wrapper() 110AbstractMail* RecMail::Wrapper()
109{ 111{
110 return wrapper; 112 return wrapper;
111} 113}
112 114
113void RecMail::setTo(const QStringList&list) 115void RecMail::setTo(const QStringList&list)
114{ 116{
115 to = list; 117 to = list;
116} 118}
117 119
118const QStringList&RecMail::To()const 120const QStringList&RecMail::To()const
119{ 121{
120 return to; 122 return to;
121} 123}
122 124
123void RecMail::setCC(const QStringList&list) 125void RecMail::setCC(const QStringList&list)
124{ 126{
125 cc = list; 127 cc = list;
126} 128}
127 129
128const QStringList&RecMail::CC()const 130const QStringList&RecMail::CC()const
129{ 131{
130 return cc; 132 return cc;
131} 133}
132 134
133void RecMail::setBcc(const QStringList&list) 135void RecMail::setBcc(const QStringList&list)
@@ -158,300 +160,300 @@ void RecMail::setReferences(const QStringList&list)
158const QStringList& RecMail::References()const 160const QStringList& RecMail::References()const
159{ 161{
160 return references; 162 return references;
161} 163}
162 164
163RecPart::RecPart() 165RecPart::RecPart()
164 : Opie::Core::ORefCount(), 166 : Opie::Core::ORefCount(),
165 m_type(""),m_subtype(""),m_identifier(""),m_encoding(""),m_description(""),m_lines(0),m_size(0) 167 m_type(""),m_subtype(""),m_identifier(""),m_encoding(""),m_description(""),m_lines(0),m_size(0)
166{ 168{
167 m_Parameters.clear(); 169 m_Parameters.clear();
168 m_poslist.clear(); 170 m_poslist.clear();
169} 171}
170 172
171RecPart::RecPart(const RecPart&old) 173RecPart::RecPart(const RecPart&old)
172 : Opie::Core::ORefCount(), 174 : Opie::Core::ORefCount(),
173 m_type(""),m_subtype(""),m_identifier(""),m_encoding(""),m_description(""),m_lines(0),m_size(0) 175 m_type(""),m_subtype(""),m_identifier(""),m_encoding(""),m_description(""),m_lines(0),m_size(0)
174{ 176{
175 m_type = old.m_type; 177 m_type = old.m_type;
176 m_subtype = old.m_subtype; 178 m_subtype = old.m_subtype;
177 m_identifier = old.m_identifier; 179 m_identifier = old.m_identifier;
178 m_encoding = old.m_encoding; 180 m_encoding = old.m_encoding;
179 m_description = old.m_description; 181 m_description = old.m_description;
180 m_lines = old.m_lines; 182 m_lines = old.m_lines;
181 m_size = old.m_size; 183 m_size = old.m_size;
182 m_Parameters = old.m_Parameters; 184 m_Parameters = old.m_Parameters;
183 m_poslist = old.m_poslist; 185 m_poslist = old.m_poslist;
184 // odebug << "RecPart copy constructor" << oendl; 186 // odebug << "RecPart copy constructor" << oendl;
185} 187}
186 188
187RecPart::~RecPart() 189RecPart::~RecPart()
188{ 190{
189} 191}
190 192
191void RecPart::setSize(unsigned int size) 193void RecPart::setSize(unsigned int size)
192{ 194{
193 m_size = size; 195 m_size = size;
194} 196}
195 197
196const unsigned int RecPart::Size()const 198const unsigned int RecPart::Size()const
197{ 199{
198 return m_size; 200 return m_size;
199} 201}
200 202
201void RecPart::setLines(unsigned int lines) 203void RecPart::setLines(unsigned int lines)
202{ 204{
203 m_lines = lines; 205 m_lines = lines;
204} 206}
205 207
206const unsigned int RecPart::Lines()const 208const unsigned int RecPart::Lines()const
207{ 209{
208 return m_lines; 210 return m_lines;
209} 211}
210 212
211const QString& RecPart::Type()const 213const QString& RecPart::Type()const
212{ 214{
213 return m_type; 215 return m_type;
214} 216}
215 217
216void RecPart::setType(const QString&type) 218void RecPart::setType(const QString&type)
217{ 219{
218 m_type = type; 220 m_type = type;
219} 221}
220 222
221const QString& RecPart::Subtype()const 223const QString& RecPart::Subtype()const
222{ 224{
223 return m_subtype; 225 return m_subtype;
224} 226}
225 227
226void RecPart::setSubtype(const QString&subtype) 228void RecPart::setSubtype(const QString&subtype)
227{ 229{
228 m_subtype = subtype; 230 m_subtype = subtype;
229} 231}
230 232
231const QString& RecPart::Identifier()const 233const QString& RecPart::Identifier()const
232{ 234{
233 return m_identifier; 235 return m_identifier;
234} 236}
235 237
236void RecPart::setIdentifier(const QString&identifier) 238void RecPart::setIdentifier(const QString&identifier)
237{ 239{
238 m_identifier = identifier; 240 m_identifier = identifier;
239} 241}
240 242
241const QString& RecPart::Encoding()const 243const QString& RecPart::Encoding()const
242{ 244{
243 return m_encoding; 245 return m_encoding;
244} 246}
245 247
246void RecPart::setEncoding(const QString&encoding) 248void RecPart::setEncoding(const QString&encoding)
247{ 249{
248 m_encoding = encoding; 250 m_encoding = encoding;
249} 251}
250 252
251const QString& RecPart::Description()const 253const QString& RecPart::Description()const
252{ 254{
253 return m_description; 255 return m_description;
254} 256}
255 257
256void RecPart::setDescription(const QString&desc) 258void RecPart::setDescription(const QString&desc)
257{ 259{
258 m_description = desc; 260 m_description = desc;
259} 261}
260 262
261void RecPart::setParameters(const part_plist_t&list) 263void RecPart::setParameters(const part_plist_t&list)
262{ 264{
263 m_Parameters = list; 265 m_Parameters = list;
264} 266}
265 267
266const part_plist_t& RecPart::Parameters()const 268const part_plist_t& RecPart::Parameters()const
267{ 269{
268 return m_Parameters; 270 return m_Parameters;
269} 271}
270 272
271void RecPart::addParameter(const QString&key,const QString&value) 273void RecPart::addParameter(const QString&key,const QString&value)
272{ 274{
273 m_Parameters[key]=value; 275 m_Parameters[key]=value;
274} 276}
275 277
276const QString RecPart::searchParamter(const QString&key)const 278const QString RecPart::searchParamter(const QString&key)const
277{ 279{
278 QString value(""); 280 QString value("");
279 part_plist_t::ConstIterator it = m_Parameters.find(key); 281 part_plist_t::ConstIterator it = m_Parameters.find(key);
280 if (it != m_Parameters.end()) { 282 if (it != m_Parameters.end()) {
281 value = it.data(); 283 value = it.data();
282 } 284 }
283 return value; 285 return value;
284} 286}
285 287
286void RecPart::setPositionlist(const QValueList<int>&poslist) 288void RecPart::setPositionlist(const Q3ValueList<int>&poslist)
287{ 289{
288 m_poslist = poslist; 290 m_poslist = poslist;
289} 291}
290 292
291const QValueList<int>& RecPart::Positionlist()const 293const Q3ValueList<int>& RecPart::Positionlist()const
292{ 294{
293 return m_poslist; 295 return m_poslist;
294} 296}
295 297
296RecBody::RecBody() 298RecBody::RecBody()
297 : Opie::Core::ORefCount(),m_BodyText(),m_description(new RecPart()) 299 : Opie::Core::ORefCount(),m_BodyText(),m_description(new RecPart())
298{ 300{
299 m_PartsList.clear(); 301 m_PartsList.clear();
300} 302}
301 303
302RecBody::RecBody(const RecBody&old) 304RecBody::RecBody(const RecBody&old)
303 :Opie::Core::ORefCount(),m_BodyText(),m_PartsList(),m_description(new RecPart()) 305 :Opie::Core::ORefCount(),m_BodyText(),m_PartsList(),m_description(new RecPart())
304{ 306{
305 m_BodyText = old.m_BodyText; 307 m_BodyText = old.m_BodyText;
306 m_PartsList = old.m_PartsList; 308 m_PartsList = old.m_PartsList;
307 m_description = old.m_description; 309 m_description = old.m_description;
308 mCharset = old.mCharset; 310 mCharset = old.mCharset;
309 // odebug << "Recbody copy constructor" << oendl; 311 // odebug << "Recbody copy constructor" << oendl;
310} 312}
311 313
312RecBody::~RecBody() 314RecBody::~RecBody()
313{ 315{
314} 316}
315 317
316void RecBody::setBodytext(const QString&bodyText) 318void RecBody::setBodytext(const QString&bodyText)
317{ 319{
318 m_BodyText = bodyText; 320 m_BodyText = bodyText;
319} 321}
320 322
321const QString& RecBody::Bodytext()const 323const QString& RecBody::Bodytext()const
322{ 324{
323 return m_BodyText; 325 return m_BodyText;
324} 326}
325 327
326void RecBody::setParts(const QValueList<RecPartP>&parts) 328void RecBody::setParts(const Q3ValueList<RecPartP>&parts)
327{ 329{
328 m_PartsList.clear(); 330 m_PartsList.clear();
329 m_PartsList = parts; 331 m_PartsList = parts;
330} 332}
331 333
332const QValueList<RecPartP>& RecBody::Parts()const 334const Q3ValueList<RecPartP>& RecBody::Parts()const
333{ 335{
334 return m_PartsList; 336 return m_PartsList;
335} 337}
336 338
337void RecBody::addPart(const RecPartP& part) 339void RecBody::addPart(const RecPartP& part)
338{ 340{
339 m_PartsList.append(part); 341 m_PartsList.append(part);
340} 342}
341 343
342void RecBody::setDescription(const RecPartP&des) 344void RecBody::setDescription(const RecPartP&des)
343{ 345{
344 m_description = des; 346 m_description = des;
345} 347}
346 348
347const RecPartP& RecBody::Description()const 349const RecPartP& RecBody::Description()const
348{ 350{
349 return m_description; 351 return m_description;
350} 352}
351 353
352void RecBody::setCharset(const QString& str) 354void RecBody::setCharset(const QString& str)
353{ 355{
354 mCharset = str; 356 mCharset = str;
355} 357}
356 358
357QString RecBody::getCharset()const 359QString RecBody::getCharset()const
358{ 360{
359 return mCharset; 361 return mCharset;
360} 362}
361 363
362/* handling encoded content */ 364/* handling encoded content */
363encodedString::encodedString() 365encodedString::encodedString()
364{ 366{
365 init(); 367 init();
366} 368}
367 369
368encodedString::encodedString(const char*nContent,unsigned int nSize) 370encodedString::encodedString(const char*nContent,unsigned int nSize)
369{ 371{
370 init(); 372 init();
371 setContent(nContent,nSize); 373 setContent(nContent,nSize);
372} 374}
373 375
374encodedString::encodedString(char*nContent,unsigned int nSize) 376encodedString::encodedString(char*nContent,unsigned int nSize)
375{ 377{
376 init(); 378 init();
377 setContent(nContent,nSize); 379 setContent(nContent,nSize);
378} 380}
379 381
380encodedString::encodedString(const encodedString&old) 382encodedString::encodedString(const encodedString&old)
381{ 383{
382 init(); 384 init();
383 copy_old(old); 385 copy_old(old);
384 // odebug << "encodedeString: copy constructor!" << oendl; 386 // odebug << "encodedeString: copy constructor!" << oendl;
385} 387}
386 388
387encodedString& encodedString::operator=(const encodedString&old) 389encodedString& encodedString::operator=(const encodedString&old)
388{ 390{
389 init(); 391 init();
390 copy_old(old); 392 copy_old(old);
391 // odebug << "encodedString: assign operator!" << oendl; 393 // odebug << "encodedString: assign operator!" << oendl;
392 return *this; 394 return *this;
393} 395}
394 396
395encodedString::~encodedString() 397encodedString::~encodedString()
396{ 398{
397 clean(); 399 clean();
398} 400}
399 401
400void encodedString::init() 402void encodedString::init()
401{ 403{
402 content = 0; 404 content = 0;
403 size = 0; 405 size = 0;
404} 406}
405 407
406void encodedString::clean() 408void encodedString::clean()
407{ 409{
408 if (content) { 410 if (content) {
409 free(content); 411 free(content);
410 } 412 }
411 content = 0; 413 content = 0;
412 size = 0; 414 size = 0;
413} 415}
414 416
415void encodedString::copy_old(const encodedString&old) 417void encodedString::copy_old(const encodedString&old)
416{ 418{
417 clean(); 419 clean();
418 if (old.size>0 && old.content) { 420 if (old.size>0 && old.content) {
419 content = (char*)malloc(old.size*sizeof(char)); 421 content = (char*)malloc(old.size*sizeof(char));
420 memcpy(content,old.content,size); 422 memcpy(content,old.content,size);
421 size = old.size; 423 size = old.size;
422 } 424 }
423} 425}
424 426
425const char*encodedString::Content()const 427const char*encodedString::Content()const
426{ 428{
427 return content; 429 return content;
428} 430}
429 431
430const int encodedString::Length()const 432const int encodedString::Length()const
431{ 433{
432 return size; 434 return size;
433} 435}
434 436
435void encodedString::setContent(const char*nContent,int nSize) 437void encodedString::setContent(const char*nContent,int nSize)
436{ 438{
437 if (nSize>0 && nContent) { 439 if (nSize>0 && nContent) {
438 content = (char*)malloc(nSize*sizeof(char)); 440 content = (char*)malloc(nSize*sizeof(char));
439 memcpy(content,nContent,nSize); 441 memcpy(content,nContent,nSize);
440 size = nSize; 442 size = nSize;
441 } 443 }
442} 444}
443 445
444void encodedString::setContent(char*nContent,int nSize) 446void encodedString::setContent(char*nContent,int nSize)
445{ 447{
446 content = nContent; 448 content = nContent;
447 size = nSize; 449 size = nSize;
448} 450}
449 451
450folderStat&folderStat::operator=(const folderStat&old) 452folderStat&folderStat::operator=(const folderStat&old)
451{ 453{
452 message_count = old.message_count; 454 message_count = old.message_count;
453 message_unseen = old.message_unseen; 455 message_unseen = old.message_unseen;
454 message_recent = old.message_recent; 456 message_recent = old.message_recent;
455 return *this; 457 return *this;
456} 458}
457 459
diff --git a/kmicromail/libmailwrapper/mailtypes.h b/kmicromail/libmailwrapper/mailtypes.h
index 97f10d7..ac7f8da 100644
--- a/kmicromail/libmailwrapper/mailtypes.h
+++ b/kmicromail/libmailwrapper/mailtypes.h
@@ -1,227 +1,227 @@
1#ifndef __MAIL_TYPES_H 1#ifndef __MAIL_TYPES_H
2#define __MAIL_TYPES_H 2#define __MAIL_TYPES_H
3 3
4#define FLAG_ANSWERED 0 4#define FLAG_ANSWERED 0
5#define FLAG_FLAGGED 1 5#define FLAG_FLAGGED 1
6#define FLAG_DELETED 2 6#define FLAG_DELETED 2
7#define FLAG_SEEN 3 7#define FLAG_SEEN 3
8#define FLAG_DRAFT 4 8#define FLAG_DRAFT 4
9#define FLAG_RECENT 5 9#define FLAG_RECENT 5
10 10
11#include <opie2/osmartpointer.h> 11#include <opie2/osmartpointer.h>
12 12
13#include <qbitarray.h> 13#include <qbitarray.h>
14#include <qstring.h> 14#include <qstring.h>
15#include <qstringlist.h> 15#include <qstringlist.h>
16#include <qmap.h> 16#include <qmap.h>
17#include <qvaluelist.h> 17#include <q3valuelist.h>
18 18
19class AbstractMail; 19class AbstractMail;
20/* a class to describe mails in a mailbox */ 20/* a class to describe mails in a mailbox */
21/* Attention! 21/* Attention!
22 From programmers point of view it would make sense to 22 From programmers point of view it would make sense to
23 store the mail body into this class, too. 23 store the mail body into this class, too.
24 But: not from the point of view of the device. 24 But: not from the point of view of the device.
25 Mailbodies can be real large. So we request them when 25 Mailbodies can be real large. So we request them when
26 needed from the mail-wrapper class direct from the server itself 26 needed from the mail-wrapper class direct from the server itself
27 (imap) or from a file-based cache (pop3?) 27 (imap) or from a file-based cache (pop3?)
28 So there is no interface "const QString&body()" but you should 28 So there is no interface "const QString&body()" but you should
29 make a request to the mailwrapper with this class as parameter to 29 make a request to the mailwrapper with this class as parameter to
30 get the body. Same words for the attachments. 30 get the body. Same words for the attachments.
31*/ 31*/
32class RecMail:public Opie::Core::ORefCount 32class RecMail:public Opie::Core::ORefCount
33{ 33{
34public: 34public:
35 RecMail(); 35 RecMail();
36 RecMail(const RecMail&old); 36 RecMail(const RecMail&old);
37 virtual ~RecMail(); 37 virtual ~RecMail();
38 bool isEqual( RecMail* r1 ); 38 bool isEqual( RecMail* r1 );
39 39
40 const unsigned int getNumber()const{return msg_number;} 40 const unsigned int getNumber()const{return msg_number;}
41 void setNumber(unsigned int number){msg_number=number;} 41 void setNumber(unsigned int number){msg_number=number;}
42 const QString&getDate()const{ return date; } 42 const QString&getDate()const{ return date; }
43 void setDate( const QString&a ) { date = a; } 43 void setDate( const QString&a ) { date = a; }
44 const QString&getIsoDate()const{ return isodate; } 44 const QString&getIsoDate()const{ return isodate; }
45 void setIsoDate( const QString&a ) { isodate = a; } 45 void setIsoDate( const QString&a ) { isodate = a; }
46 const QString&getFrom()const{ return from; } 46 const QString&getFrom()const{ return from; }
47 void setFrom( const QString&a ) { from = a; } 47 void setFrom( const QString&a ) { from = a; }
48 const QString&getSubject()const { return subject; } 48 const QString&getSubject()const { return subject; }
49 void setSubject( const QString&s ) { subject = s; } 49 void setSubject( const QString&s ) { subject = s; }
50 const QString&getMbox()const{return mbox;} 50 const QString&getMbox()const{return mbox;}
51 void setMbox(const QString&box){mbox = box;} 51 void setMbox(const QString&box){mbox = box;}
52 void setMsgid(const QString&id){msg_id=id;} 52 void setMsgid(const QString&id){msg_id=id;}
53 const QString&Msgid()const{return msg_id;} 53 const QString&Msgid()const{return msg_id;}
54 void setReplyto(const QString&reply){replyto=reply;} 54 void setReplyto(const QString&reply){replyto=reply;}
55 const QString&Replyto()const{return replyto;} 55 const QString&Replyto()const{return replyto;}
56 void setMsgsize(unsigned int size){msg_size = size;} 56 void setMsgsize(unsigned int size){msg_size = size;}
57 const unsigned int Msgsize()const{return msg_size;} 57 const unsigned int Msgsize()const{return msg_size;}
58 const QString MsgsizeString()const { 58 const QString MsgsizeString()const {
59 double s = msg_size; 59 double s = msg_size;
60 int w = 0; 60 int w = 0;
61 s/=1024; 61 s/=1024;
62 if (s>999.0) { 62 if (s>999.0) {
63 s/=1024.0; 63 s/=1024.0;
64 ++w; 64 ++w;
65 } 65 }
66 QString fsize = QString::number( s, 'f', 2 ); 66 QString fsize = QString::number( s, 'f', 2 );
67 if ( w == 0 ) { 67 if ( w == 0 ) {
68 fsize += "kB" ; 68 fsize += "kB" ;
69 } else 69 } else
70 fsize += "MB" ; 70 fsize += "MB" ;
71 return fsize; 71 return fsize;
72 }; 72 };
73 void setTo(const QStringList&list); 73 void setTo(const QStringList&list);
74 const QStringList&To()const; 74 const QStringList&To()const;
75 void setCC(const QStringList&list); 75 void setCC(const QStringList&list);
76 const QStringList&CC()const; 76 const QStringList&CC()const;
77 void setBcc(const QStringList&list); 77 void setBcc(const QStringList&list);
78 const QStringList&Bcc()const; 78 const QStringList&Bcc()const;
79 void setInreply(const QStringList&list); 79 void setInreply(const QStringList&list);
80 const QStringList&Inreply()const; 80 const QStringList&Inreply()const;
81 void setReferences(const QStringList&list); 81 void setReferences(const QStringList&list);
82 const QStringList&References()const; 82 const QStringList&References()const;
83 83
84 const QBitArray&getFlags()const{return msg_flags;} 84 const QBitArray&getFlags()const{return msg_flags;}
85 void setFlags(const QBitArray&flags){msg_flags = flags;} 85 void setFlags(const QBitArray&flags){msg_flags = flags;}
86 86
87 void setWrapper(AbstractMail*wrapper); 87 void setWrapper(AbstractMail*wrapper);
88 AbstractMail* Wrapper(); 88 AbstractMail* Wrapper();
89 // public for debugging 89 // public for debugging
90 QString subject,date,isodate,from,mbox,msg_id,replyto; 90 QString subject,date,isodate,from,mbox,msg_id,replyto;
91 91
92protected: 92protected:
93 //QString subject,date,isodate,from,mbox,msg_id,replyto; 93 //QString subject,date,isodate,from,mbox,msg_id,replyto;
94 unsigned int msg_number,msg_size; 94 unsigned int msg_number,msg_size;
95 QBitArray msg_flags; 95 QBitArray msg_flags;
96 QStringList to,cc,bcc,in_reply_to,references; 96 QStringList to,cc,bcc,in_reply_to,references;
97 AbstractMail*wrapper; 97 AbstractMail*wrapper;
98 void init(); 98 void init();
99 void copy_old(const RecMail&old); 99 void copy_old(const RecMail&old);
100}; 100};
101 101
102typedef Opie::Core::OSmartPointer<RecMail> RecMailP; 102typedef Opie::Core::OSmartPointer<RecMail> RecMailP;
103typedef QMap<QString,QString> part_plist_t; 103typedef QMap<QString,QString> part_plist_t;
104 104
105class RecPart:public Opie::Core::ORefCount 105class RecPart:public Opie::Core::ORefCount
106{ 106{
107protected: 107protected:
108 QString m_type,m_subtype,m_identifier,m_encoding,m_description; 108 QString m_type,m_subtype,m_identifier,m_encoding,m_description;
109 unsigned int m_lines,m_size; 109 unsigned int m_lines,m_size;
110 part_plist_t m_Parameters; 110 part_plist_t m_Parameters;
111 /* describes the position in the mail */ 111 /* describes the position in the mail */
112 QValueList<int> m_poslist; 112 Q3ValueList<int> m_poslist;
113 113
114public: 114public:
115 RecPart(); 115 RecPart();
116 RecPart(const RecPart&); 116 RecPart(const RecPart&);
117 virtual ~RecPart(); 117 virtual ~RecPart();
118 118
119 const QString&Type()const; 119 const QString&Type()const;
120 void setType(const QString&type); 120 void setType(const QString&type);
121 const QString&Subtype()const; 121 const QString&Subtype()const;
122 void setSubtype(const QString&subtype); 122 void setSubtype(const QString&subtype);
123 const QString&Identifier()const; 123 const QString&Identifier()const;
124 void setIdentifier(const QString&identifier); 124 void setIdentifier(const QString&identifier);
125 const QString&Encoding()const; 125 const QString&Encoding()const;
126 void setEncoding(const QString&encoding); 126 void setEncoding(const QString&encoding);
127 const QString&Description()const; 127 const QString&Description()const;
128 void setDescription(const QString&desc); 128 void setDescription(const QString&desc);
129 void setLines(unsigned int lines); 129 void setLines(unsigned int lines);
130 const unsigned int Lines()const; 130 const unsigned int Lines()const;
131 void setSize(unsigned int size); 131 void setSize(unsigned int size);
132 const unsigned int Size()const; 132 const unsigned int Size()const;
133 133
134 134
135 void setParameters(const part_plist_t&list); 135 void setParameters(const part_plist_t&list);
136 const part_plist_t&Parameters()const; 136 const part_plist_t&Parameters()const;
137 void addParameter(const QString&key,const QString&value); 137 void addParameter(const QString&key,const QString&value);
138 const QString searchParamter(const QString&key)const; 138 const QString searchParamter(const QString&key)const;
139 void setPositionlist(const QValueList<int>&poslist); 139 void setPositionlist(const Q3ValueList<int>&poslist);
140 const QValueList<int>& Positionlist()const; 140 const Q3ValueList<int>& Positionlist()const;
141}; 141};
142 142
143typedef Opie::Core::OSmartPointer<RecPart> RecPartP; 143typedef Opie::Core::OSmartPointer<RecPart> RecPartP;
144 144
145class RecBody:public Opie::Core::ORefCount 145class RecBody:public Opie::Core::ORefCount
146{ 146{
147protected: 147protected:
148 QString m_BodyText; 148 QString m_BodyText;
149 QString mCharset; 149 QString mCharset;
150 QValueList<RecPartP> m_PartsList; 150 Q3ValueList<RecPartP> m_PartsList;
151 RecPartP m_description; 151 RecPartP m_description;
152 152
153public: 153public:
154 RecBody(); 154 RecBody();
155 RecBody(const RecBody&old); 155 RecBody(const RecBody&old);
156 virtual ~RecBody(); 156 virtual ~RecBody();
157 void setBodytext(const QString&); 157 void setBodytext(const QString&);
158 const QString& Bodytext()const; 158 const QString& Bodytext()const;
159 void setCharset(const QString&); 159 void setCharset(const QString&);
160 QString getCharset()const; 160 QString getCharset()const;
161 161
162 void setDescription(const RecPartP&des); 162 void setDescription(const RecPartP&des);
163 const RecPartP& Description()const; 163 const RecPartP& Description()const;
164 164
165 void setParts(const QValueList<RecPartP>&parts); 165 void setParts(const Q3ValueList<RecPartP>&parts);
166 const QValueList<RecPartP>& Parts()const; 166 const Q3ValueList<RecPartP>& Parts()const;
167 void addPart(const RecPartP&part); 167 void addPart(const RecPartP&part);
168}; 168};
169 169
170typedef Opie::Core::OSmartPointer<RecBody> RecBodyP; 170typedef Opie::Core::OSmartPointer<RecBody> RecBodyP;
171 171
172class encodedString 172class encodedString
173{ 173{
174public: 174public:
175 encodedString(); 175 encodedString();
176 /* 176 /*
177 creates an new content string. 177 creates an new content string.
178 it makes a deep copy of it! 178 it makes a deep copy of it!
179 */ 179 */
180 encodedString(const char*nContent,unsigned int length); 180 encodedString(const char*nContent,unsigned int length);
181 /* 181 /*
182 Take over the nContent. Means: it will just copy the pointer, not the content. 182 Take over the nContent. Means: it will just copy the pointer, not the content.
183 so make sure: No one else frees the string, the string has allocated with 183 so make sure: No one else frees the string, the string has allocated with
184 malloc for compatibility with c-based libs 184 malloc for compatibility with c-based libs
185 */ 185 */
186 encodedString(char*nContent,unsigned int nSize); 186 encodedString(char*nContent,unsigned int nSize);
187 /* copy construkor - makes ALWAYS a deep copy!!!! */ 187 /* copy construkor - makes ALWAYS a deep copy!!!! */
188 encodedString(const encodedString&old); 188 encodedString(const encodedString&old);
189 /* assign operator - makes ALWAYS a deep copy!!!! */ 189 /* assign operator - makes ALWAYS a deep copy!!!! */
190 encodedString& operator=(const encodedString&old); 190 encodedString& operator=(const encodedString&old);
191 /* destructor - cleans the content */ 191 /* destructor - cleans the content */
192 virtual ~encodedString(); 192 virtual ~encodedString();
193 193
194 /* returns a pointer to the content - do not delete yoursel! */ 194 /* returns a pointer to the content - do not delete yoursel! */
195 const char*Content()const; 195 const char*Content()const;
196 /* returns the lengths of the content 'cause it must not be a null-terminated string! */ 196 /* returns the lengths of the content 'cause it must not be a null-terminated string! */
197 const int Length()const; 197 const int Length()const;
198 198
199 /* 199 /*
200 makes a deep copy of nContent! 200 makes a deep copy of nContent!
201 */ 201 */
202 void setContent(const char*nContent,int nSize); 202 void setContent(const char*nContent,int nSize);
203 /* 203 /*
204 Take over the nContent. Means: it will just copy the pointer, not the content. 204 Take over the nContent. Means: it will just copy the pointer, not the content.
205 so make sure: No one else frees the string, the string has allocated with 205 so make sure: No one else frees the string, the string has allocated with
206 malloc for compatibility with c-based libs 206 malloc for compatibility with c-based libs
207 */ 207 */
208 void setContent(char*nContent,int nSize); 208 void setContent(char*nContent,int nSize);
209 209
210protected: 210protected:
211 char * content; 211 char * content;
212 unsigned int size; 212 unsigned int size;
213 213
214 void init(); 214 void init();
215 void copy_old(const encodedString&old); 215 void copy_old(const encodedString&old);
216 void clean(); 216 void clean();
217}; 217};
218 218
219struct folderStat 219struct folderStat
220{ 220{
221 unsigned int message_count; 221 unsigned int message_count;
222 unsigned int message_unseen; 222 unsigned int message_unseen;
223 unsigned int message_recent; 223 unsigned int message_recent;
224 folderStat&operator=(const folderStat&old); 224 folderStat&operator=(const folderStat&old);
225}; 225};
226 226
227#endif 227#endif
diff --git a/kmicromail/libmailwrapper/mailwrapper.cpp b/kmicromail/libmailwrapper/mailwrapper.cpp
index 2ee1ab3..9c299e8 100644
--- a/kmicromail/libmailwrapper/mailwrapper.cpp
+++ b/kmicromail/libmailwrapper/mailwrapper.cpp
@@ -1,181 +1,183 @@
1#include <stdlib.h> 1#include <stdlib.h>
2#include <sys/stat.h> 2#include <sys/stat.h>
3#include <sys/types.h> 3#include <sys/types.h>
4#include <unistd.h> 4#include <unistd.h>
5#include <fcntl.h> 5#include <fcntl.h>
6#include <string.h> 6#include <string.h>
7#include <qdir.h> 7#include <qdir.h>
8//Added by qt3to4:
9#include <Q3CString>
8 10
9#include "mailwrapper.h" 11#include "mailwrapper.h"
10//#include "logindialog.h" 12//#include "logindialog.h"
11//#include "defines.h" 13//#include "defines.h"
12 14
13#define UNDEFINED 64 15#define UNDEFINED 64
14#define MAXLINE 76 16#define MAXLINE 76
15#define UTF16MASK 0x03FFUL 17#define UTF16MASK 0x03FFUL
16#define UTF16SHIFT 10 18#define UTF16SHIFT 10
17#define UTF16BASE 0x10000UL 19#define UTF16BASE 0x10000UL
18#define UTF16HIGHSTART 0xD800UL 20#define UTF16HIGHSTART 0xD800UL
19#define UTF16HIGHEND 0xDBFFUL 21#define UTF16HIGHEND 0xDBFFUL
20#define UTF16LOSTART 0xDC00UL 22#define UTF16LOSTART 0xDC00UL
21#define UTF16LOEND 0xDFFFUL 23#define UTF16LOEND 0xDFFFUL
22 24
23 25
24using namespace Opie::Core; 26using namespace Opie::Core;
25Attachment::Attachment( QString lnk ) 27Attachment::Attachment( QString lnk )
26{ 28{
27 doc = lnk; 29 doc = lnk;
28 size = QFileInfo( doc ).size(); 30 size = QFileInfo( doc ).size();
29 mPix = SmallIcon( "files" ); 31 mPix = SmallIcon( "files" );
30} 32}
31 33
32Folder::Folder(const QString&tmp_name, const QString&sep ) 34Folder::Folder(const QString&tmp_name, const QString&sep )
33{ 35{
34 name = tmp_name; 36 name = tmp_name;
35 nameDisplay = name; 37 nameDisplay = name;
36 separator = sep; 38 separator = sep;
37 prefix = ""; 39 prefix = "";
38} 40}
39 41
40Folder::~Folder() 42Folder::~Folder()
41{ 43{
42} 44}
43 45
44const QString& Folder::Separator()const 46const QString& Folder::Separator()const
45{ 47{
46 return separator; 48 return separator;
47} 49}
48 50
49IMAPFolder::IMAPFolder(const QString&t_name,const QString&sep, bool select,bool no_inf, const QString&aprefix ) 51IMAPFolder::IMAPFolder(const QString&t_name,const QString&sep, bool select,bool no_inf, const QString&aprefix )
50 : Folder( t_name,sep ),m_MaySelect(select),m_NoInferior(no_inf) 52 : Folder( t_name,sep ),m_MaySelect(select),m_NoInferior(no_inf)
51{ 53{
52 // Decode IMAP foldername 54 // Decode IMAP foldername
53 nameDisplay = IMAPFolder::decodeFolderName( t_name ); 55 nameDisplay = IMAPFolder::decodeFolderName( t_name );
54 name = nameDisplay ; 56 name = nameDisplay ;
55 /* 57 /*
56 odebug << "folder " + name + " - displayed as " + nameDisplay << oendl; 58 odebug << "folder " + name + " - displayed as " + nameDisplay << oendl;
57 */ 59 */
58 prefix = aprefix; 60 prefix = aprefix;
59 61
60 if (prefix.length()>0) { 62 if (prefix.length()>0) {
61 if (nameDisplay.startsWith(prefix) && nameDisplay.length()>prefix.length()) { 63 if (nameDisplay.startsWith(prefix) && nameDisplay.length()>prefix.length()) {
62 nameDisplay=nameDisplay.right(nameDisplay.length()-prefix.length()); 64 nameDisplay=nameDisplay.right(nameDisplay.length()-prefix.length());
63 } 65 }
64 } 66 }
65} 67}
66 68
67IMAPFolder::~IMAPFolder() 69IMAPFolder::~IMAPFolder()
68{ 70{
69} 71}
70 72
71static unsigned char base64chars[] = 73static unsigned char base64chars[] =
72 "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+,"; 74 "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+,";
73 75
74/** 76/**
75 * Decodes base64 encoded parts of the imapfolder name 77 * Decodes base64 encoded parts of the imapfolder name
76 * Code taken from kde cvs: kdebase/kioslave/imap4/rfcdecoder.cc 78 * Code taken from kde cvs: kdebase/kioslave/imap4/rfcdecoder.cc
77 */ 79 */
78QString IMAPFolder::decodeFolderName( const QString &name ) 80QString IMAPFolder::decodeFolderName( const QString &name )
79{ 81{
80 unsigned char c, i, bitcount; 82 unsigned char c, i, bitcount;
81 unsigned long ucs4, utf16, bitbuf; 83 unsigned long ucs4, utf16, bitbuf;
82 unsigned char base64[256], utf8[6]; 84 unsigned char base64[256], utf8[6];
83 unsigned long srcPtr = 0; 85 unsigned long srcPtr = 0;
84 QCString dst = ""; 86 Q3CString dst = "";
85 QCString src = name.ascii(); 87 Q3CString src = name.ascii();
86 88
87 /* initialize modified base64 decoding table */ 89 /* initialize modified base64 decoding table */
88 memset(base64, UNDEFINED, sizeof(base64)); 90 memset(base64, UNDEFINED, sizeof(base64));
89 for (i = 0; i < sizeof(base64chars); ++i) { 91 for (i = 0; i < sizeof(base64chars); ++i) {
90 base64[(int)base64chars[i]] = i; 92 base64[(int)base64chars[i]] = i;
91 } 93 }
92 94
93 /* loop until end of string */ 95 /* loop until end of string */
94 while (srcPtr < src.length ()) { 96 while (srcPtr < src.length ()) {
95 c = src[srcPtr++]; 97 c = src.at(srcPtr++);
96 /* deal with literal characters and &- */ 98 /* deal with literal characters and &- */
97 if (c != '&' || src[srcPtr] == '-') { 99 if (c != '&' || src.at(srcPtr) == '-') {
98 /* encode literally */ 100 /* encode literally */
99 dst += c; 101 dst += c;
100 /* skip over the '-' if this is an &- sequence */ 102 /* skip over the '-' if this is an &- sequence */
101 if (c == '&') 103 if (c == '&')
102 srcPtr++; 104 srcPtr++;
103 } else { 105 } else {
104 /* convert modified UTF-7 -> UTF-16 -> UCS-4 -> UTF-8 -> HEX */ 106 /* convert modified UTF-7 -> UTF-16 -> UCS-4 -> UTF-8 -> HEX */
105 bitbuf = 0; 107 bitbuf = 0;
106 bitcount = 0; 108 bitcount = 0;
107 ucs4 = 0; 109 ucs4 = 0;
108 while ((c = base64[(unsigned char) src[srcPtr]]) != UNDEFINED) { 110 while ((c = base64[(unsigned char) src.at(srcPtr)]) != UNDEFINED) {
109 ++srcPtr; 111 ++srcPtr;
110 bitbuf = (bitbuf << 6) | c; 112 bitbuf = (bitbuf << 6) | c;
111 bitcount += 6; 113 bitcount += 6;
112 /* enough bits for a UTF-16 character? */ 114 /* enough bits for a UTF-16 character? */
113 if (bitcount >= 16) { 115 if (bitcount >= 16) {
114 bitcount -= 16; 116 bitcount -= 16;
115 utf16 = (bitcount ? bitbuf >> bitcount : bitbuf) & 0xffff; 117 utf16 = (bitcount ? bitbuf >> bitcount : bitbuf) & 0xffff;
116 /* convert UTF16 to UCS4 */ 118 /* convert UTF16 to UCS4 */
117 if (utf16 >= UTF16HIGHSTART && utf16 <= UTF16HIGHEND) { 119 if (utf16 >= UTF16HIGHSTART && utf16 <= UTF16HIGHEND) {
118 ucs4 = (utf16 - UTF16HIGHSTART) << UTF16SHIFT; 120 ucs4 = (utf16 - UTF16HIGHSTART) << UTF16SHIFT;
119 continue; 121 continue;
120 } else if (utf16 >= UTF16LOSTART && utf16 <= UTF16LOEND) { 122 } else if (utf16 >= UTF16LOSTART && utf16 <= UTF16LOEND) {
121 ucs4 += utf16 - UTF16LOSTART + UTF16BASE; 123 ucs4 += utf16 - UTF16LOSTART + UTF16BASE;
122 } else { 124 } else {
123 ucs4 = utf16; 125 ucs4 = utf16;
124 } 126 }
125 /* convert UTF-16 range of UCS4 to UTF-8 */ 127 /* convert UTF-16 range of UCS4 to UTF-8 */
126 if (ucs4 <= 0x7fUL) { 128 if (ucs4 <= 0x7fUL) {
127 utf8[0] = ucs4; 129 utf8[0] = ucs4;
128 i = 1; 130 i = 1;
129 } else if (ucs4 <= 0x7ffUL) { 131 } else if (ucs4 <= 0x7ffUL) {
130 utf8[0] = 0xc0 | (ucs4 >> 6); 132 utf8[0] = 0xc0 | (ucs4 >> 6);
131 utf8[1] = 0x80 | (ucs4 & 0x3f); 133 utf8[1] = 0x80 | (ucs4 & 0x3f);
132 i = 2; 134 i = 2;
133 } else if (ucs4 <= 0xffffUL) { 135 } else if (ucs4 <= 0xffffUL) {
134 utf8[0] = 0xe0 | (ucs4 >> 12); 136 utf8[0] = 0xe0 | (ucs4 >> 12);
135 utf8[1] = 0x80 | ((ucs4 >> 6) & 0x3f); 137 utf8[1] = 0x80 | ((ucs4 >> 6) & 0x3f);
136 utf8[2] = 0x80 | (ucs4 & 0x3f); 138 utf8[2] = 0x80 | (ucs4 & 0x3f);
137 i = 3; 139 i = 3;
138 } else { 140 } else {
139 utf8[0] = 0xf0 | (ucs4 >> 18); 141 utf8[0] = 0xf0 | (ucs4 >> 18);
140 utf8[1] = 0x80 | ((ucs4 >> 12) & 0x3f); 142 utf8[1] = 0x80 | ((ucs4 >> 12) & 0x3f);
141 utf8[2] = 0x80 | ((ucs4 >> 6) & 0x3f); 143 utf8[2] = 0x80 | ((ucs4 >> 6) & 0x3f);
142 utf8[3] = 0x80 | (ucs4 & 0x3f); 144 utf8[3] = 0x80 | (ucs4 & 0x3f);
143 i = 4; 145 i = 4;
144 } 146 }
145 /* copy it */ 147 /* copy it */
146 for (c = 0; c < i; ++c) { 148 for (c = 0; c < i; ++c) {
147 dst += utf8[c]; 149 dst += utf8[c];
148 } 150 }
149 } 151 }
150 } 152 }
151 /* skip over trailing '-' in modified UTF-7 encoding */ 153 /* skip over trailing '-' in modified UTF-7 encoding */
152 if (src[srcPtr] == '-') 154 if (src.at(srcPtr) == '-')
153 ++srcPtr; 155 ++srcPtr;
154 } 156 }
155 } 157 }
156 158
157 return QString::fromUtf8( dst.data() ); 159 return QString::fromUtf8( dst.data() );
158} 160}
159 161
160Mail::Mail() 162Mail::Mail()
161 :Opie::Core::ORefCount(),name(""), mail(""), to(""), cc(""), bcc(""), reply(""), subject(""), message("") 163 :Opie::Core::ORefCount(),name(""), mail(""), to(""), cc(""), bcc(""), reply(""), subject(""), message("")
162{ 164{
163} 165}
164 166
165MHFolder::MHFolder(const QString&disp_name,const QString&mbox) 167MHFolder::MHFolder(const QString&disp_name,const QString&mbox)
166 : Folder( disp_name,"/" ) 168 : Folder( disp_name,"/" )
167{ 169{
168 separator = "/"; 170 separator = "/";
169 name = mbox; 171 name = mbox;
170 if (!disp_name.startsWith("/") && disp_name.length()>0) 172 if (!disp_name.startsWith("/") && disp_name.length()>0)
171 name+="/"; 173 name+="/";
172 name+=disp_name; 174 name+=disp_name;
173 if (disp_name.length()==0) { 175 if (disp_name.length()==0) {
174 nameDisplay = separator; 176 nameDisplay = separator;
175 } 177 }
176 prefix = mbox; 178 prefix = mbox;
177} 179}
178 180
179MHFolder::~MHFolder() 181MHFolder::~MHFolder()
180{ 182{
181} 183}
diff --git a/kmicromail/libmailwrapper/mailwrapper.h b/kmicromail/libmailwrapper/mailwrapper.h
index 3e8b51f..bebabf4 100644
--- a/kmicromail/libmailwrapper/mailwrapper.h
+++ b/kmicromail/libmailwrapper/mailwrapper.h
@@ -1,131 +1,133 @@
1#ifndef MAILWRAPPER_H 1#ifndef MAILWRAPPER_H
2#define MAILWRAPPER_H 2#define MAILWRAPPER_H
3 3
4//#include <qpe/applnk.h> 4//#include <qpe/applnk.h>
5 5
6#include <qbitarray.h> 6#include <qbitarray.h>
7#include <qdatetime.h> 7#include <qdatetime.h>
8#include <qfileinfo.h> 8#include <qfileinfo.h>
9//Added by qt3to4:
10#include <QPixmap>
9#include <kiconloader.h> 11#include <kiconloader.h>
10 12
11#include "settings.h" 13#include "settings.h"
12 14
13#include <opie2/osmartpointer.h> 15#include <opie2/osmartpointer.h>
14/* 16/*
15class Attachment 17class Attachment
16{ 18{
17public: 19public:
18 Attachment( DocLnk lnk ); 20 Attachment( DocLnk lnk );
19 virtual ~Attachment(){} 21 virtual ~Attachment(){}
20 const QString getFileName()const{ return doc.file(); } 22 const QString getFileName()const{ return doc.file(); }
21 const QString getName()const{ return doc.name(); } 23 const QString getName()const{ return doc.name(); }
22 const QString getMimeType()const{ return doc.type(); } 24 const QString getMimeType()const{ return doc.type(); }
23 const QPixmap getPixmap()const{ return doc.pixmap(); } 25 const QPixmap getPixmap()const{ return doc.pixmap(); }
24 const int getSize()const { return size; } 26 const int getSize()const { return size; }
25 DocLnk getDocLnk() { return doc; } 27 DocLnk getDocLnk() { return doc; }
26 28
27protected: 29protected:
28 DocLnk doc; 30 DocLnk doc;
29 int size; 31 int size;
30 32
31}; 33};
32*/ 34*/
33 35
34class Attachment 36class Attachment
35{ 37{
36public: 38public:
37 Attachment( QString lnk ); 39 Attachment( QString lnk );
38 virtual ~Attachment(){} 40 virtual ~Attachment(){}
39 const QString getFileName()const{ return doc; } 41 const QString getFileName()const{ return doc; }
40 const QString getName()const{ return QFileInfo( doc ).baseName (); } 42 const QString getName()const{ return QFileInfo( doc ).baseName (); }
41 const QString getMimeType()const{ return QFileInfo( doc ).extension(false); } 43 const QString getMimeType()const{ return QFileInfo( doc ).extension(false); }
42 const QPixmap getPixmap()const{ return mPix; } 44 const QPixmap getPixmap()const{ return mPix; }
43 const int getSize()const { return size; } 45 const int getSize()const { return size; }
44 QString getDocLnk() { return doc; } 46 QString getDocLnk() { return doc; }
45 47
46protected: 48protected:
47 QPixmap mPix; 49 QPixmap mPix;
48 QString doc; 50 QString doc;
49 int size; 51 int size;
50 52
51}; 53};
52 54
53class Mail:public Opie::Core::ORefCount 55class Mail:public Opie::Core::ORefCount
54{ 56{
55public: 57public:
56 Mail(); 58 Mail();
57 /* Possible that this destructor must not be declared virtual 59 /* Possible that this destructor must not be declared virtual
58 * 'cause it seems that it will never have some child classes. 60 * 'cause it seems that it will never have some child classes.
59 * in this case this object will not get a virtual table -> memory and 61 * in this case this object will not get a virtual table -> memory and
60 * speed will be a little bit better? 62 * speed will be a little bit better?
61 */ 63 */
62 virtual ~Mail(){} 64 virtual ~Mail(){}
63 void addAttachment( Attachment *att ) { attList.append( att ); } 65 void addAttachment( Attachment *att ) { attList.append( att ); }
64 const QList<Attachment>& getAttachments()const { return attList; } 66 const QList<Attachment*>& getAttachments()const { return attList; }
65 void removeAttachment( Attachment *att ) { attList.remove( att ); } 67 void removeAttachment( Attachment *att ) { attList.remove( att ); }
66 const QString&getName()const { return name; } 68 const QString&getName()const { return name; }
67 void setName( QString s ) { name = s; } 69 void setName( QString s ) { name = s; }
68 const QString&getMail()const{ return mail; } 70 const QString&getMail()const{ return mail; }
69 void setMail( const QString&s ) { mail = s; } 71 void setMail( const QString&s ) { mail = s; }
70 const QString&getTo()const{ return to; } 72 const QString&getTo()const{ return to; }
71 void setTo( const QString&s ) { to = s; } 73 void setTo( const QString&s ) { to = s; }
72 const QString&getCC()const{ return cc; } 74 const QString&getCC()const{ return cc; }
73 void setCC( const QString&s ) { cc = s; } 75 void setCC( const QString&s ) { cc = s; }
74 const QString&getBCC()const { return bcc; } 76 const QString&getBCC()const { return bcc; }
75 void setBCC( const QString&s ) { bcc = s; } 77 void setBCC( const QString&s ) { bcc = s; }
76 const QString&getMessage()const { return message; } 78 const QString&getMessage()const { return message; }
77 void setMessage( const QString&s ) { message = s; } 79 void setMessage( const QString&s ) { message = s; }
78 const QString&getSubject()const { return subject; } 80 const QString&getSubject()const { return subject; }
79 void setSubject( const QString&s ) { subject = s; } 81 void setSubject( const QString&s ) { subject = s; }
80 const QString&getReply()const{ return reply; } 82 const QString&getReply()const{ return reply; }
81 void setReply( const QString&a ) { reply = a; } 83 void setReply( const QString&a ) { reply = a; }
82 void setInreply(const QStringList&list){m_in_reply_to = list;} 84 void setInreply(const QStringList&list){m_in_reply_to = list;}
83 const QStringList&Inreply()const{return m_in_reply_to;} 85 const QStringList&Inreply()const{return m_in_reply_to;}
84 86
85 void setCharset( const QString&a ) { charset= a; } 87 void setCharset( const QString&a ) { charset= a; }
86 const QString& getCharset() const { return charset; } 88 const QString& getCharset() const { return charset; }
87 89
88private: 90private:
89 QList<Attachment> attList; 91 QList<Attachment*> attList;
90 QString name, mail, to, cc, bcc, reply, subject, message, charset; 92 QString name, mail, to, cc, bcc, reply, subject, message, charset;
91 QStringList m_in_reply_to; 93 QStringList m_in_reply_to;
92}; 94};
93 95
94class Folder:public Opie::Core::ORefCount 96class Folder:public Opie::Core::ORefCount
95{ 97{
96public: 98public:
97 Folder( const QString&init_name,const QString&sep ); 99 Folder( const QString&init_name,const QString&sep );
98 virtual ~Folder(); 100 virtual ~Folder();
99 const QString&getDisplayName()const { return nameDisplay; } 101 const QString&getDisplayName()const { return nameDisplay; }
100 const QString&getName()const { return name; } 102 const QString&getName()const { return name; }
101 const QString&getPrefix()const{return prefix; } 103 const QString&getPrefix()const{return prefix; }
102 virtual bool may_select()const{return true;} 104 virtual bool may_select()const{return true;}
103 virtual bool no_inferior()const{return true;} 105 virtual bool no_inferior()const{return true;}
104 const QString&Separator()const; 106 const QString&Separator()const;
105 107
106protected: 108protected:
107 QString nameDisplay, name, separator,prefix; 109 QString nameDisplay, name, separator,prefix;
108}; 110};
109 111
110typedef Opie::Core::OSmartPointer<Folder> FolderP; 112typedef Opie::Core::OSmartPointer<Folder> FolderP;
111 113
112class MHFolder : public Folder 114class MHFolder : public Folder
113{ 115{
114public: 116public:
115 MHFolder(const QString&disp_name,const QString&mbox); 117 MHFolder(const QString&disp_name,const QString&mbox);
116 virtual ~MHFolder(); 118 virtual ~MHFolder();
117}; 119};
118 120
119class IMAPFolder : public Folder 121class IMAPFolder : public Folder
120{ 122{
121 public: 123 public:
122 IMAPFolder(const QString&name, const QString&sep, bool select=true,bool noinf=false,const QString&prefix="" ); 124 IMAPFolder(const QString&name, const QString&sep, bool select=true,bool noinf=false,const QString&prefix="" );
123 virtual ~IMAPFolder(); 125 virtual ~IMAPFolder();
124 virtual bool may_select()const{return m_MaySelect;} 126 virtual bool may_select()const{return m_MaySelect;}
125 virtual bool no_inferior()const{return m_NoInferior;} 127 virtual bool no_inferior()const{return m_NoInferior;}
126 static QString decodeFolderName( const QString &name ); 128 static QString decodeFolderName( const QString &name );
127 private: 129 private:
128 bool m_MaySelect,m_NoInferior; 130 bool m_MaySelect,m_NoInferior;
129}; 131};
130 132
131#endif 133#endif
diff --git a/kmicromail/libmailwrapper/mboxwrapper.cpp b/kmicromail/libmailwrapper/mboxwrapper.cpp
index 87f8c8a..888cae2 100644
--- a/kmicromail/libmailwrapper/mboxwrapper.cpp
+++ b/kmicromail/libmailwrapper/mboxwrapper.cpp
@@ -1,340 +1,342 @@
1#include "mboxwrapper.h" 1#include "mboxwrapper.h"
2#include "mailtypes.h" 2#include "mailtypes.h"
3#include "mailwrapper.h" 3#include "mailwrapper.h"
4#include <libetpan/libetpan.h> 4#include <libetpan/libetpan.h>
5#include <qdir.h> 5#include <qdir.h>
6//Added by qt3to4:
7#include <Q3ValueList>
6#include <stdlib.h> 8#include <stdlib.h>
7#include <klocale.h> 9#include <klocale.h>
8 10
9 11
10#include <qpe/global.h> 12#include <qpe/global.h>
11 13
12using namespace Opie::Core; 14using namespace Opie::Core;
13MBOXwrapper::MBOXwrapper(const QString & mbox_dir,const QString&mbox_name) 15MBOXwrapper::MBOXwrapper(const QString & mbox_dir,const QString&mbox_name)
14 : Genericwrapper(),MBOXPath(mbox_dir),MBOXName(mbox_name) 16 : Genericwrapper(),MBOXPath(mbox_dir),MBOXName(mbox_name)
15{ 17{
16 QDir dir(MBOXPath); 18 QDir dir(MBOXPath);
17 if (!dir.exists()) { 19 if (!dir.exists()) {
18 dir.mkdir(MBOXPath); 20 dir.mkdir(MBOXPath);
19 } 21 }
20} 22}
21 23
22MBOXwrapper::~MBOXwrapper() 24MBOXwrapper::~MBOXwrapper()
23{ 25{
24} 26}
25 27
26void MBOXwrapper::listMessages(const QString & mailbox, QValueList<RecMailP> &target ) 28void MBOXwrapper::listMessages(const QString & mailbox, Q3ValueList<RecMailP> &target )
27{ 29{
28 mailstorage*storage = mailstorage_new(NULL); 30 mailstorage*storage = mailstorage_new(NULL);
29 QString p = MBOXPath+"/"; 31 QString p = MBOXPath+"/";
30 p+=mailbox; 32 p+=mailbox;
31 33
32 int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0); 34 int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0);
33 mailfolder*folder; 35 mailfolder*folder;
34 folder = mailfolder_new( storage,(char*)p.latin1(),NULL); 36 folder = mailfolder_new( storage,(char*)p.latin1(),NULL);
35 r = mailfolder_connect(folder); 37 r = mailfolder_connect(folder);
36 if (r != MAIL_NO_ERROR) { 38 if (r != MAIL_NO_ERROR) {
37 //odebug << "Error initializing mbox" << oendl; 39 //odebug << "Error initializing mbox" << oendl;
38 mailfolder_free(folder); 40 mailfolder_free(folder);
39 mailstorage_free(storage); 41 mailstorage_free(storage);
40 return; 42 return;
41 } 43 }
42 44
43 parseList(target,folder->fld_session,mailbox); 45 parseList(target,folder->fld_session,mailbox);
44 46
45 mailfolder_disconnect(folder); 47 mailfolder_disconnect(folder);
46 mailfolder_free(folder); 48 mailfolder_free(folder);
47 mailstorage_free(storage); 49 mailstorage_free(storage);
48 Global::statusMessage(i18n("Mailbox has %1 mail(s)").arg(target.count())); 50 Global::statusMessage(i18n("Mailbox has %1 mail(s)").arg(target.count()));
49} 51}
50 52
51QValueList<Opie::Core::OSmartPointer<Folder> >* MBOXwrapper::listFolders() 53Q3ValueList<Opie::Core::OSmartPointer<Folder> >* MBOXwrapper::listFolders()
52{ 54{
53 QValueList<Opie::Core::OSmartPointer<Folder> >* folders = new QValueList<Opie::Core::OSmartPointer<Folder> >(); 55 Q3ValueList<Opie::Core::OSmartPointer<Folder> >* folders = new Q3ValueList<Opie::Core::OSmartPointer<Folder> >();
54 QDir dir(MBOXPath); 56 QDir dir(MBOXPath);
55 if (!dir.exists()) return folders; 57 if (!dir.exists()) return folders;
56 dir.setFilter(QDir::Files|QDir::Writable|QDir::Readable); 58 dir.setFilter(QDir::Files|QDir::Writable|QDir::Readable);
57 QStringList entries = dir.entryList(); 59 QStringList entries = dir.entryList();
58 QStringList::ConstIterator it = entries.begin(); 60 QStringList::ConstIterator it = entries.begin();
59 for (;it!=entries.end();++it) { 61 for (;it!=entries.end();++it) {
60 FolderP inb=new Folder(*it,"/"); 62 FolderP inb=new Folder(*it,"/");
61 folders->append(inb); 63 folders->append(inb);
62 } 64 }
63 return folders; 65 return folders;
64} 66}
65 67
66void MBOXwrapper::deleteMail(const RecMailP & mail) 68void MBOXwrapper::deleteMail(const RecMailP & mail)
67{ 69{
68 mailstorage*storage = mailstorage_new(NULL); 70 mailstorage*storage = mailstorage_new(NULL);
69 QString p = MBOXPath+"/"; 71 QString p = MBOXPath+"/";
70 p+=mail->getMbox(); 72 p+=mail->getMbox();
71 int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0); 73 int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0);
72 mailfolder*folder; 74 mailfolder*folder;
73 folder = mailfolder_new( storage,(char*)p.latin1(),NULL); 75 folder = mailfolder_new( storage,(char*)p.latin1(),NULL);
74 r = mailfolder_connect(folder); 76 r = mailfolder_connect(folder);
75 if (r != MAIL_NO_ERROR) { 77 if (r != MAIL_NO_ERROR) {
76 ; // << "Error initializing mbox" << oendl; 78 ; // << "Error initializing mbox" << oendl;
77 mailfolder_free(folder); 79 mailfolder_free(folder);
78 mailstorage_free(storage); 80 mailstorage_free(storage);
79 return; 81 return;
80 } 82 }
81 r = mailsession_remove_message(folder->fld_session,mail->getNumber()); 83 r = mailsession_remove_message(folder->fld_session,mail->getNumber());
82 if (r != MAIL_NO_ERROR) { 84 if (r != MAIL_NO_ERROR) {
83 ; // << "error deleting mail" << oendl; 85 ; // << "error deleting mail" << oendl;
84 } 86 }
85 mailfolder_free(folder); 87 mailfolder_free(folder);
86 mailstorage_free(storage); 88 mailstorage_free(storage);
87} 89}
88 90
89void MBOXwrapper::answeredMail(const RecMailP&) 91void MBOXwrapper::answeredMail(const RecMailP&)
90{ 92{
91} 93}
92 94
93RecBodyP MBOXwrapper::fetchBody( const RecMailP &mail ) 95RecBodyP MBOXwrapper::fetchBody( const RecMailP &mail )
94{ 96{
95 RecBodyP body = new RecBody(); 97 RecBodyP body = new RecBody();
96 mailstorage*storage = mailstorage_new(NULL); 98 mailstorage*storage = mailstorage_new(NULL);
97 QString p = MBOXPath+"/"; 99 QString p = MBOXPath+"/";
98 p+=mail->getMbox(); 100 p+=mail->getMbox();
99 mailmessage * msg; 101 mailmessage * msg;
100 char*data=0; 102 char*data=0;
101 size_t size; 103 size_t size;
102 104
103 int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0); 105 int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0);
104 mailfolder*folder; 106 mailfolder*folder;
105 folder = mailfolder_new( storage,(char*)p.latin1(),NULL); 107 folder = mailfolder_new( storage,(char*)p.latin1(),NULL);
106 r = mailfolder_connect(folder); 108 r = mailfolder_connect(folder);
107 if (r != MAIL_NO_ERROR) { 109 if (r != MAIL_NO_ERROR) {
108 ; // << "Error initializing mbox" << oendl; 110 ; // << "Error initializing mbox" << oendl;
109 mailfolder_free(folder); 111 mailfolder_free(folder);
110 mailstorage_free(storage); 112 mailstorage_free(storage);
111 return body; 113 return body;
112 } 114 }
113 r = mailsession_get_message(folder->fld_session, mail->getNumber(), &msg); 115 r = mailsession_get_message(folder->fld_session, mail->getNumber(), &msg);
114 if (r != MAIL_NO_ERROR) { 116 if (r != MAIL_NO_ERROR) {
115 ; // << "Error fetching mail " << mail->getNumber() << "" << oendl; 117 ; // << "Error fetching mail " << mail->getNumber() << "" << oendl;
116 mailfolder_free(folder); 118 mailfolder_free(folder);
117 mailstorage_free(storage); 119 mailstorage_free(storage);
118 return body; 120 return body;
119 } 121 }
120 r = mailmessage_fetch(msg,&data,&size); 122 r = mailmessage_fetch(msg,&data,&size);
121 if (r != MAIL_NO_ERROR) { 123 if (r != MAIL_NO_ERROR) {
122 ; // << "Error fetching mail " << mail->getNumber() << "" << oendl; 124 ; // << "Error fetching mail " << mail->getNumber() << "" << oendl;
123 mailfolder_free(folder); 125 mailfolder_free(folder);
124 mailstorage_free(storage); 126 mailstorage_free(storage);
125 mailmessage_free(msg); 127 mailmessage_free(msg);
126 return body; 128 return body;
127 } 129 }
128 qDebug("MBOXwrapper::fetchBody "); 130 qDebug("MBOXwrapper::fetchBody ");
129 body = parseMail(msg); 131 body = parseMail(msg);
130 mailmessage_fetch_result_free(msg,data); 132 mailmessage_fetch_result_free(msg,data);
131 mailfolder_free(folder); 133 mailfolder_free(folder);
132 mailstorage_free(storage); 134 mailstorage_free(storage);
133 135
134 return body; 136 return body;
135} 137}
136 138
137void MBOXwrapper::mbox_progress( size_t current, size_t maximum ) 139void MBOXwrapper::mbox_progress( size_t current, size_t maximum )
138{ 140{
139 ; // << "MBOX " << current << " von " << maximum << "" << oendl; 141 ; // << "MBOX " << current << " von " << maximum << "" << oendl;
140} 142}
141 143
142int MBOXwrapper::createMbox(const QString&folder,const FolderP&,const QString&,bool ) 144int MBOXwrapper::createMbox(const QString&folder,const FolderP&,const QString&,bool )
143{ 145{
144 QString p = MBOXPath+"/"; 146 QString p = MBOXPath+"/";
145 p+=folder; 147 p+=folder;
146 QFileInfo fi(p); 148 QFileInfo fi(p);
147 if (fi.exists()) { 149 if (fi.exists()) {
148 Global::statusMessage(i18n("Mailbox exists.")); 150 Global::statusMessage(i18n("Mailbox exists."));
149 return 0; 151 return 0;
150 } 152 }
151 mailmbox_folder*f = 0; 153 mailmbox_folder*f = 0;
152 if (mailmbox_init(p.latin1(),0,1,0,&f) != MAIL_NO_ERROR) { 154 if (mailmbox_init(p.latin1(),0,1,0,&f) != MAIL_NO_ERROR) {
153 Global::statusMessage(i18n("Error init folder")); 155 Global::statusMessage(i18n("Error init folder"));
154 return 0; 156 return 0;
155 } 157 }
156 if (f) mailmbox_done(f); 158 if (f) mailmbox_done(f);
157 return 1; 159 return 1;
158} 160}
159 161
160void MBOXwrapper::storeMessage(const char*msg,size_t length, const QString&folder) 162void MBOXwrapper::storeMessage(const char*msg,size_t length, const QString&folder)
161{ 163{
162 QString p = MBOXPath+"/"; 164 QString p = MBOXPath+"/";
163 p+=folder; 165 p+=folder;
164 mailmbox_folder*f = 0; 166 mailmbox_folder*f = 0;
165 int r = mailmbox_init(p.latin1(),0,1,0,&f); 167 int r = mailmbox_init(p.latin1(),0,1,0,&f);
166 if (r != MAIL_NO_ERROR) { 168 if (r != MAIL_NO_ERROR) {
167 Global::statusMessage(i18n("Error init folder")); 169 Global::statusMessage(i18n("Error init folder"));
168 return; 170 return;
169 } 171 }
170 r = mailmbox_append_message(f,msg,length); 172 r = mailmbox_append_message(f,msg,length);
171 if (r != MAIL_NO_ERROR) { 173 if (r != MAIL_NO_ERROR) {
172 Global::statusMessage(i18n("Error writing to message folder")); 174 Global::statusMessage(i18n("Error writing to message folder"));
173 } 175 }
174 mailmbox_done(f); 176 mailmbox_done(f);
175} 177}
176 178
177encodedString* MBOXwrapper::fetchRawBody(const RecMailP&mail) 179encodedString* MBOXwrapper::fetchRawBody(const RecMailP&mail)
178{ 180{
179 RecBody body; 181 RecBody body;
180 mailstorage*storage = mailstorage_new(NULL); 182 mailstorage*storage = mailstorage_new(NULL);
181 QString p = MBOXPath+"/"; 183 QString p = MBOXPath+"/";
182 p+=mail->getMbox(); 184 p+=mail->getMbox();
183 mailmessage * msg; 185 mailmessage * msg;
184 char*data=0; 186 char*data=0;
185 size_t size; 187 size_t size;
186 188
187 int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0); 189 int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0);
188 mailfolder*folder; 190 mailfolder*folder;
189 folder = mailfolder_new( storage,(char*)p.latin1(),NULL); 191 folder = mailfolder_new( storage,(char*)p.latin1(),NULL);
190 r = mailfolder_connect(folder); 192 r = mailfolder_connect(folder);
191 if (r != MAIL_NO_ERROR) { 193 if (r != MAIL_NO_ERROR) {
192 Global::statusMessage(i18n("Error initializing mbox")); 194 Global::statusMessage(i18n("Error initializing mbox"));
193 mailfolder_free(folder); 195 mailfolder_free(folder);
194 mailstorage_free(storage); 196 mailstorage_free(storage);
195 return 0; 197 return 0;
196 } 198 }
197 r = mailsession_get_message(folder->fld_session, mail->getNumber(), &msg); 199 r = mailsession_get_message(folder->fld_session, mail->getNumber(), &msg);
198 if (r != MAIL_NO_ERROR) { 200 if (r != MAIL_NO_ERROR) {
199 Global::statusMessage(i18n("Error fetching mail %i").arg(mail->getNumber())); 201 Global::statusMessage(i18n("Error fetching mail %i").arg(mail->getNumber()));
200 mailfolder_free(folder); 202 mailfolder_free(folder);
201 mailstorage_free(storage); 203 mailstorage_free(storage);
202 return 0; 204 return 0;
203 } 205 }
204 r = mailmessage_fetch(msg,&data,&size); 206 r = mailmessage_fetch(msg,&data,&size);
205 if (r != MAIL_NO_ERROR) { 207 if (r != MAIL_NO_ERROR) {
206 Global::statusMessage(i18n("Error fetching mail %i").arg(mail->getNumber())); 208 Global::statusMessage(i18n("Error fetching mail %i").arg(mail->getNumber()));
207 mailfolder_free(folder); 209 mailfolder_free(folder);
208 mailstorage_free(storage); 210 mailstorage_free(storage);
209 mailmessage_free(msg); 211 mailmessage_free(msg);
210 return 0; 212 return 0;
211 } 213 }
212 encodedString*result = new encodedString(data,size); 214 encodedString*result = new encodedString(data,size);
213 215
214 mailfolder_free(folder); 216 mailfolder_free(folder);
215 mailstorage_free(storage); 217 mailstorage_free(storage);
216 mailmessage_free(msg); 218 mailmessage_free(msg);
217 return result; 219 return result;
218} 220}
219 221
220void MBOXwrapper::deleteMails(const QString & mailbox,const QValueList<RecMailP> &target) 222void MBOXwrapper::deleteMails(const QString & mailbox,const Q3ValueList<RecMailP> &target)
221{ 223{
222 QString p = MBOXPath+"/"; 224 QString p = MBOXPath+"/";
223 p+=mailbox; 225 p+=mailbox;
224 mailmbox_folder*f = 0; 226 mailmbox_folder*f = 0;
225 int r = mailmbox_init(p.latin1(),0,1,0,&f); 227 int r = mailmbox_init(p.latin1(),0,1,0,&f);
226 if (r != MAIL_NO_ERROR) { 228 if (r != MAIL_NO_ERROR) {
227 ; // << "Error init folder" << oendl; 229 ; // << "Error init folder" << oendl;
228 return; 230 return;
229 } 231 }
230 deleteMails(f,target); 232 deleteMails(f,target);
231 mailmbox_done(f); 233 mailmbox_done(f);
232} 234}
233 235
234void MBOXwrapper::deleteMails(mailmbox_folder*f,const QValueList<RecMailP> &target) 236void MBOXwrapper::deleteMails(mailmbox_folder*f,const Q3ValueList<RecMailP> &target)
235{ 237{
236 if (!f) return; 238 if (!f) return;
237 int r; 239 int r;
238 QValueList<RecMailP>::ConstIterator it; 240 Q3ValueList<RecMailP>::ConstIterator it;
239 for (it=target.begin(); it != target.end();++it) { 241 for (it=target.begin(); it != target.end();++it) {
240 r = mailmbox_delete_msg(f,(*it)->getNumber()); 242 r = mailmbox_delete_msg(f,(*it)->getNumber());
241 if (r!=MAILMBOX_NO_ERROR) { 243 if (r!=MAILMBOX_NO_ERROR) {
242 ; // << "error delete mail" << oendl; 244 ; // << "error delete mail" << oendl;
243 } 245 }
244 } 246 }
245 r = mailmbox_expunge(f); 247 r = mailmbox_expunge(f);
246 if (r != MAILMBOX_NO_ERROR) { 248 if (r != MAILMBOX_NO_ERROR) {
247 ; // << "error expunge mailbox" << oendl; 249 ; // << "error expunge mailbox" << oendl;
248 } 250 }
249} 251}
250 252
251int MBOXwrapper::deleteAllMail(const FolderP&tfolder) 253int MBOXwrapper::deleteAllMail(const FolderP&tfolder)
252{ 254{
253 if (!tfolder) return 0; 255 if (!tfolder) return 0;
254 QString p = MBOXPath+"/"+tfolder->getDisplayName(); 256 QString p = MBOXPath+"/"+tfolder->getDisplayName();
255 int res = 1; 257 int res = 1;
256 258
257 mailfolder*folder = 0; 259 mailfolder*folder = 0;
258 mailmessage_list*l=0; 260 mailmessage_list*l=0;
259 mailstorage*storage = mailstorage_new(NULL); 261 mailstorage*storage = mailstorage_new(NULL);
260 int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0); 262 int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0);
261 if (r != MAIL_NO_ERROR) { 263 if (r != MAIL_NO_ERROR) {
262 Global::statusMessage(i18n("Error initializing mbox")); 264 Global::statusMessage(i18n("Error initializing mbox"));
263 res = 0; 265 res = 0;
264 } 266 }
265 if (res) { 267 if (res) {
266 folder = mailfolder_new( storage,(char*)p.latin1(),NULL); 268 folder = mailfolder_new( storage,(char*)p.latin1(),NULL);
267 r = mailfolder_connect(folder); 269 r = mailfolder_connect(folder);
268 if (r != MAIL_NO_ERROR) { 270 if (r != MAIL_NO_ERROR) {
269 Global::statusMessage(i18n("Error initializing mbox")); 271 Global::statusMessage(i18n("Error initializing mbox"));
270 res = 0; 272 res = 0;
271 } 273 }
272 } 274 }
273 if (res) { 275 if (res) {
274 r = mailsession_get_messages_list(folder->fld_session,&l); 276 r = mailsession_get_messages_list(folder->fld_session,&l);
275 if (r != MAIL_NO_ERROR) { 277 if (r != MAIL_NO_ERROR) {
276 ; // << "Error message list" << oendl; 278 ; // << "Error message list" << oendl;
277 res=0; 279 res=0;
278 } 280 }
279 } 281 }
280 for(unsigned int i = 0 ; l!= 0 && res==1 && i < carray_count(l->msg_tab) ; ++i) { 282 for(unsigned int i = 0 ; l!= 0 && res==1 && i < carray_count(l->msg_tab) ; ++i) {
281 r = mailsession_remove_message(folder->fld_session,i+1); 283 r = mailsession_remove_message(folder->fld_session,i+1);
282 if (r != MAIL_NO_ERROR) { 284 if (r != MAIL_NO_ERROR) {
283 Global::statusMessage(i18n("Error deleting mail %1").arg(i+1)); 285 Global::statusMessage(i18n("Error deleting mail %1").arg(i+1));
284 res = 0; 286 res = 0;
285 break; 287 break;
286 } 288 }
287 } 289 }
288 if (l) mailmessage_list_free(l); 290 if (l) mailmessage_list_free(l);
289 if (folder) mailfolder_free(folder); 291 if (folder) mailfolder_free(folder);
290 if (storage) mailstorage_free(storage); 292 if (storage) mailstorage_free(storage);
291 return res; 293 return res;
292} 294}
293 295
294int MBOXwrapper::deleteMbox(const FolderP&tfolder) 296int MBOXwrapper::deleteMbox(const FolderP&tfolder)
295{ 297{
296 if (!tfolder) return 0; 298 if (!tfolder) return 0;
297 QString p = MBOXPath+"/"+tfolder->getDisplayName(); 299 QString p = MBOXPath+"/"+tfolder->getDisplayName();
298 QFile fi(p); 300 QFile fi(p);
299 if (!fi.exists()) { 301 if (!fi.exists()) {
300 Global::statusMessage(i18n("Mailbox doesn't exist.")); 302 Global::statusMessage(i18n("Mailbox doesn't exist."));
301 return 0; 303 return 0;
302 } 304 }
303 if (!fi.remove()) { 305 if (!fi.remove()) {
304 Global::statusMessage(i18n("Error deleting Mailbox.")); 306 Global::statusMessage(i18n("Error deleting Mailbox."));
305 return 0; 307 return 0;
306 } 308 }
307 return 1; 309 return 1;
308} 310}
309 311
310void MBOXwrapper::statusFolder(folderStat&target_stat,const QString & mailbox) 312void MBOXwrapper::statusFolder(folderStat&target_stat,const QString & mailbox)
311{ 313{
312 mailfolder*folder = 0; 314 mailfolder*folder = 0;
313 mailstorage*storage = mailstorage_new(NULL); 315 mailstorage*storage = mailstorage_new(NULL);
314 target_stat.message_count = 0; 316 target_stat.message_count = 0;
315 target_stat.message_unseen = 0; 317 target_stat.message_unseen = 0;
316 target_stat.message_recent = 0; 318 target_stat.message_recent = 0;
317 QString p = MBOXPath+"/"+mailbox; 319 QString p = MBOXPath+"/"+mailbox;
318 QFile fi(p); 320 QFile fi(p);
319 if (!fi.exists()) { 321 if (!fi.exists()) {
320 Global::statusMessage(i18n("Mailbox doesn't exist.")); 322 Global::statusMessage(i18n("Mailbox doesn't exist."));
321 return; 323 return;
322 } 324 }
323 int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0); 325 int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0);
324 folder = mailfolder_new( storage,(char*)p.latin1(),NULL); 326 folder = mailfolder_new( storage,(char*)p.latin1(),NULL);
325 r = mailfolder_connect(folder); 327 r = mailfolder_connect(folder);
326 r = mailsession_status_folder(folder->fld_session,(char*)mailbox.latin1(),&target_stat.message_count, 328 r = mailsession_status_folder(folder->fld_session,(char*)mailbox.latin1(),&target_stat.message_count,
327 &target_stat.message_recent,&target_stat.message_unseen); 329 &target_stat.message_recent,&target_stat.message_unseen);
328 if (folder) mailfolder_free(folder); 330 if (folder) mailfolder_free(folder);
329 if (storage) mailstorage_free(storage); 331 if (storage) mailstorage_free(storage);
330} 332}
331 333
332MAILLIB::ATYPE MBOXwrapper::getType()const 334MAILLIB::ATYPE MBOXwrapper::getType()const
333{ 335{
334 return MAILLIB::A_MBOX; 336 return MAILLIB::A_MBOX;
335} 337}
336 338
337const QString&MBOXwrapper::getName()const 339const QString&MBOXwrapper::getName()const
338{ 340{
339 return MBOXName; 341 return MBOXName;
340} 342}
diff --git a/kmicromail/libmailwrapper/mboxwrapper.h b/kmicromail/libmailwrapper/mboxwrapper.h
index d03940f..e658a71 100644
--- a/kmicromail/libmailwrapper/mboxwrapper.h
+++ b/kmicromail/libmailwrapper/mboxwrapper.h
@@ -1,47 +1,49 @@
1#ifndef __MBOX_WRAPPER_H 1#ifndef __MBOX_WRAPPER_H
2#define __MBOX_WRAPPER_H 2#define __MBOX_WRAPPER_H
3 3
4#include "genericwrapper.h" 4#include "genericwrapper.h"
5#include <qstring.h> 5#include <qstring.h>
6//Added by qt3to4:
7#include <Q3ValueList>
6 8
7class encodedString; 9class encodedString;
8struct mailmbox_folder; 10struct mailmbox_folder;
9 11
10class MBOXwrapper : public Genericwrapper 12class MBOXwrapper : public Genericwrapper
11{ 13{
12 Q_OBJECT 14 Q_OBJECT
13 15
14public: 16public:
15 MBOXwrapper(const QString & dir,const QString&name); 17 MBOXwrapper(const QString & dir,const QString&name);
16 virtual ~MBOXwrapper(); 18 virtual ~MBOXwrapper();
17 19
18 virtual void listMessages(const QString & mailbox, QValueList<RecMailP>&target ); 20 virtual void listMessages(const QString & mailbox, Q3ValueList<RecMailP>&target );
19 virtual QValueList<Opie::Core::OSmartPointer<Folder> >* listFolders(); 21 virtual Q3ValueList<Opie::Core::OSmartPointer<Folder> >* listFolders();
20 virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX"); 22 virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX");
21 23
22 virtual void deleteMail(const RecMailP&mail); 24 virtual void deleteMail(const RecMailP&mail);
23 virtual void answeredMail(const RecMailP&mail); 25 virtual void answeredMail(const RecMailP&mail);
24 26
25 virtual int createMbox(const QString&folder,const Opie::Core::OSmartPointer<Folder>&f=0, 27 virtual int createMbox(const QString&folder,const Opie::Core::OSmartPointer<Folder>&f=0,
26 const QString&d="",bool s=false); 28 const QString&d="",bool s=false);
27 virtual int deleteMbox(const Opie::Core::OSmartPointer<Folder>&); 29 virtual int deleteMbox(const Opie::Core::OSmartPointer<Folder>&);
28 30
29 virtual void storeMessage(const char*msg,size_t length, const QString&folder); 31 virtual void storeMessage(const char*msg,size_t length, const QString&folder);
30 32
31 virtual RecBodyP fetchBody( const RecMailP &mail ); 33 virtual RecBodyP fetchBody( const RecMailP &mail );
32 static void mbox_progress( size_t current, size_t maximum ); 34 static void mbox_progress( size_t current, size_t maximum );
33 35
34 virtual encodedString* fetchRawBody(const RecMailP&mail); 36 virtual encodedString* fetchRawBody(const RecMailP&mail);
35 virtual void deleteMails(const QString & FolderName,const QValueList<RecMailP> &target); 37 virtual void deleteMails(const QString & FolderName,const Q3ValueList<RecMailP> &target);
36 virtual int deleteAllMail(const Opie::Core::OSmartPointer<Folder>&); 38 virtual int deleteAllMail(const Opie::Core::OSmartPointer<Folder>&);
37 virtual MAILLIB::ATYPE getType()const; 39 virtual MAILLIB::ATYPE getType()const;
38 virtual const QString&getName()const; 40 virtual const QString&getName()const;
39 virtual Account* getAccount() { return 0; }; 41 virtual Account* getAccount() { return 0; };
40 42
41protected: 43protected:
42 static void deleteMails(mailmbox_folder*f,const QValueList<RecMailP> &target); 44 static void deleteMails(mailmbox_folder*f,const Q3ValueList<RecMailP> &target);
43 QString MBOXPath; 45 QString MBOXPath;
44 QString MBOXName; 46 QString MBOXName;
45}; 47};
46 48
47#endif 49#endif
diff --git a/kmicromail/libmailwrapper/mhwrapper.cpp b/kmicromail/libmailwrapper/mhwrapper.cpp
index 787e85d..4cd7a94 100644
--- a/kmicromail/libmailwrapper/mhwrapper.cpp
+++ b/kmicromail/libmailwrapper/mhwrapper.cpp
@@ -1,394 +1,396 @@
1// CHANGED 2004-09-31 Lutz Rogowski 1// CHANGED 2004-09-31 Lutz Rogowski
2#include "mhwrapper.h" 2#include "mhwrapper.h"
3#include "mailtypes.h" 3#include "mailtypes.h"
4#include "mailwrapper.h" 4#include "mailwrapper.h"
5#include <libetpan/libetpan.h> 5#include <libetpan/libetpan.h>
6#include <qdir.h> 6#include <qdir.h>
7#include <qmessagebox.h> 7#include <qmessagebox.h>
8//Added by qt3to4:
9#include <Q3ValueList>
8#include <stdlib.h> 10#include <stdlib.h>
9#include <qpe/global.h> 11#include <qpe/global.h>
10#include <klocale.h> 12#include <klocale.h>
11#include <kglobal.h> 13#include <kglobal.h>
12//#include <opie2/odebug.h> 14//#include <opie2/odebug.h>
13 15
14using namespace Opie::Core; 16using namespace Opie::Core;
15MHwrapper::MHwrapper(const QString & mbox_dir,const QString&mbox_name) 17MHwrapper::MHwrapper(const QString & mbox_dir,const QString&mbox_name)
16 : Genericwrapper(),MHPath(mbox_dir),MHName(mbox_name) 18 : Genericwrapper(),MHPath(mbox_dir),MHName(mbox_name)
17{ 19{
18 if (MHPath.length()>0) { 20 if (MHPath.length()>0) {
19 if (MHPath[MHPath.length()-1]=='/') { 21 if (MHPath[MHPath.length()-1]=='/') {
20 MHPath=MHPath.left(MHPath.length()-1); 22 MHPath=MHPath.left(MHPath.length()-1);
21 } 23 }
22 //odebug << MHPath << oendl; 24 //odebug << MHPath << oendl;
23 QDir dir(MHPath); 25 QDir dir(MHPath);
24 if (!dir.exists()) { 26 if (!dir.exists()) {
25 dir.mkdir(MHPath); 27 dir.mkdir(MHPath);
26 } 28 }
27 init_storage(); 29 init_storage();
28 } 30 }
29} 31}
30 32
31void MHwrapper::init_storage() 33void MHwrapper::init_storage()
32{ 34{
33 int r; 35 int r;
34 QString pre = MHPath; 36 QString pre = MHPath;
35 if (!m_storage) { 37 if (!m_storage) {
36 m_storage = mailstorage_new(NULL); 38 m_storage = mailstorage_new(NULL);
37 r = mh_mailstorage_init(m_storage,(char*)pre.latin1(),0,0,0); 39 r = mh_mailstorage_init(m_storage,(char*)pre.latin1(),0,0,0);
38 if (r != MAIL_NO_ERROR) { 40 if (r != MAIL_NO_ERROR) {
39 qDebug(" error init storage "); 41 qDebug(" error init storage ");
40 mailstorage_free(m_storage); 42 mailstorage_free(m_storage);
41 m_storage = 0; 43 m_storage = 0;
42 return; 44 return;
43 } 45 }
44 } 46 }
45 r = mailstorage_connect(m_storage); 47 r = mailstorage_connect(m_storage);
46 if (r!=MAIL_NO_ERROR) { 48 if (r!=MAIL_NO_ERROR) {
47 qDebug("error connecting storage "); 49 qDebug("error connecting storage ");
48 mailstorage_free(m_storage); 50 mailstorage_free(m_storage);
49 m_storage = 0; 51 m_storage = 0;
50 } 52 }
51} 53}
52 54
53void MHwrapper::clean_storage() 55void MHwrapper::clean_storage()
54{ 56{
55 if (m_storage) { 57 if (m_storage) {
56 mailstorage_disconnect(m_storage); 58 mailstorage_disconnect(m_storage);
57 mailstorage_free(m_storage); 59 mailstorage_free(m_storage);
58 m_storage = 0; 60 m_storage = 0;
59 } 61 }
60} 62}
61 63
62MHwrapper::~MHwrapper() 64MHwrapper::~MHwrapper()
63{ 65{
64 clean_storage(); 66 clean_storage();
65} 67}
66 68
67void MHwrapper::listMessages(const QString & mailbox, QValueList<Opie::Core::OSmartPointer<RecMail> > &target, int maxSizeInKb ) 69void MHwrapper::listMessages(const QString & mailbox, Q3ValueList<Opie::Core::OSmartPointer<RecMail> > &target, int maxSizeInKb )
68{ 70{
69 init_storage(); 71 init_storage();
70 if (!m_storage) { 72 if (!m_storage) {
71 return; 73 return;
72 } 74 }
73 QString f = buildPath(mailbox); 75 QString f = buildPath(mailbox);
74 int r = mailsession_select_folder(m_storage->sto_session,(char*)f.latin1()); 76 int r = mailsession_select_folder(m_storage->sto_session,(char*)f.latin1());
75 if (r!=MAIL_NO_ERROR) { 77 if (r!=MAIL_NO_ERROR) {
76 qDebug("listMessages: error selecting folder! "); 78 qDebug("listMessages: error selecting folder! ");
77 return; 79 return;
78 } 80 }
79 parseList(target,m_storage->sto_session,f, false, maxSizeInKb ); 81 parseList(target,m_storage->sto_session,f, false, maxSizeInKb );
80 Global::statusMessage(i18n("Mailbox has %1 mail(s)").arg(target.count())); 82 Global::statusMessage(i18n("Mailbox has %1 mail(s)").arg(target.count()));
81} 83}
82 84
83QValueList<Opie::Core::OSmartPointer<Folder> >* MHwrapper::listFolders() 85Q3ValueList<Opie::Core::OSmartPointer<Folder> >* MHwrapper::listFolders()
84{ 86{
85 QValueList<Opie::Core::OSmartPointer<Folder> >* folders = new QValueList<Opie::Core::OSmartPointer<Folder> >(); 87 Q3ValueList<Opie::Core::OSmartPointer<Folder> >* folders = new Q3ValueList<Opie::Core::OSmartPointer<Folder> >();
86 /* this is needed! */ 88 /* this is needed! */
87 if (m_storage) mailstorage_disconnect(m_storage); 89 if (m_storage) mailstorage_disconnect(m_storage);
88 init_storage(); 90 init_storage();
89 if (!m_storage) { 91 if (!m_storage) {
90 return folders; 92 return folders;
91 } 93 }
92 mail_list*flist = 0; 94 mail_list*flist = 0;
93 clistcell*current=0; 95 clistcell*current=0;
94 int r = mailsession_list_folders(m_storage->sto_session,NULL,&flist); 96 int r = mailsession_list_folders(m_storage->sto_session,NULL,&flist);
95 if (r != MAIL_NO_ERROR || !flist) { 97 if (r != MAIL_NO_ERROR || !flist) {
96 qDebug("error getting folder list "); 98 qDebug("error getting folder list ");
97 return folders; 99 return folders;
98 } 100 }
99 for (current=clist_begin(flist->mb_list);current!=0;current=clist_next(current)) { 101 for (current=clist_begin(flist->mb_list);current!=0;current=clist_next(current)) {
100 QString t = (char*)current->data; 102 QString t = (char*)current->data;
101 t.replace(0,MHPath.length(),""); 103 t.replace(0,MHPath.length(),"");
102 folders->append(new MHFolder(t,MHPath)); 104 folders->append(new MHFolder(t,MHPath));
103 } 105 }
104 mail_list_free(flist); 106 mail_list_free(flist);
105 return folders; 107 return folders;
106} 108}
107 109
108void MHwrapper::deleteMail(const RecMailP&mail) 110void MHwrapper::deleteMail(const RecMailP&mail)
109{ 111{
110 init_storage(); 112 init_storage();
111 if (!m_storage) { 113 if (!m_storage) {
112 return; 114 return;
113 } 115 }
114 int r = mailsession_select_folder(m_storage->sto_session,(char*)mail->getMbox().latin1()); 116 int r = mailsession_select_folder(m_storage->sto_session,(char*)mail->getMbox().latin1());
115 if (r!=MAIL_NO_ERROR) { 117 if (r!=MAIL_NO_ERROR) {
116 qDebug("error selecting folder! "); 118 qDebug("error selecting folder! ");
117 return; 119 return;
118 } 120 }
119 r = mailsession_remove_message(m_storage->sto_session,mail->getNumber()); 121 r = mailsession_remove_message(m_storage->sto_session,mail->getNumber());
120 if (r != MAIL_NO_ERROR) { 122 if (r != MAIL_NO_ERROR) {
121 qDebug("error deleting mail "); 123 qDebug("error deleting mail ");
122 } 124 }
123} 125}
124 126
125void MHwrapper::answeredMail(const RecMailP&) 127void MHwrapper::answeredMail(const RecMailP&)
126{ 128{
127} 129}
128 130
129RecBodyP MHwrapper::fetchBody( const RecMailP &mail ) 131RecBodyP MHwrapper::fetchBody( const RecMailP &mail )
130{ 132{
131 qDebug("MHwrapper::fetchBody "); 133 qDebug("MHwrapper::fetchBody ");
132 RecBodyP body = new RecBody(); 134 RecBodyP body = new RecBody();
133 init_storage(); 135 init_storage();
134 if (!m_storage) { 136 if (!m_storage) {
135 return body; 137 return body;
136 } 138 }
137 mailmessage * msg; 139 mailmessage * msg;
138 char*data=0; 140 char*data=0;
139 141
140 /* mail should hold the complete path! */ 142 /* mail should hold the complete path! */
141 int r = mailsession_select_folder(m_storage->sto_session,(char*)mail->getMbox().latin1()); 143 int r = mailsession_select_folder(m_storage->sto_session,(char*)mail->getMbox().latin1());
142 if (r != MAIL_NO_ERROR) { 144 if (r != MAIL_NO_ERROR) {
143 return body; 145 return body;
144 } 146 }
145 r = mailsession_get_message(m_storage->sto_session, mail->getNumber(), &msg); 147 r = mailsession_get_message(m_storage->sto_session, mail->getNumber(), &msg);
146 if (r != MAIL_NO_ERROR) { 148 if (r != MAIL_NO_ERROR) {
147 qDebug("Error fetching mail "); 149 qDebug("Error fetching mail ");
148 150
149 return body; 151 return body;
150 } 152 }
151 body = parseMail(msg); 153 body = parseMail(msg);
152 mailmessage_fetch_result_free(msg,data); 154 mailmessage_fetch_result_free(msg,data);
153 return body; 155 return body;
154} 156}
155 157
156void MHwrapper::mbox_progress( size_t current, size_t maximum ) 158void MHwrapper::mbox_progress( size_t current, size_t maximum )
157{ 159{
158 qDebug("MBox Progress %d of %d",current,maximum ); 160 qDebug("MBox Progress %d of %d",current,maximum );
159 //odebug << "MH " << current << " von " << maximum << "" << oendl; 161 //odebug << "MH " << current << " von " << maximum << "" << oendl;
160} 162}
161 163
162QString MHwrapper::buildPath(const QString&p) 164QString MHwrapper::buildPath(const QString&p)
163{ 165{
164 QString f=""; 166 QString f="";
165 if (p.length()==0||p=="/") 167 if (p.length()==0||p=="/")
166 return MHPath; 168 return MHPath;
167 if (!p.startsWith(MHPath)) { 169 if (!p.startsWith(MHPath)) {
168 f+=MHPath; 170 f+=MHPath;
169 } 171 }
170 if (!p.startsWith("/")) { 172 if (!p.startsWith("/")) {
171 f+="/"; 173 f+="/";
172 } 174 }
173 f+=p; 175 f+=p;
174 return f; 176 return f;
175} 177}
176 178
177int MHwrapper::createMbox(const QString&folder,const FolderP&pfolder,const QString&,bool ) 179int MHwrapper::createMbox(const QString&folder,const FolderP&pfolder,const QString&,bool )
178{ 180{
179 181
180 QString f; 182 QString f;
181 if (!pfolder) { 183 if (!pfolder) {
182 // toplevel folder 184 // toplevel folder
183 f = buildPath(folder); 185 f = buildPath(folder);
184 } else { 186 } else {
185 f = pfolder->getName(); 187 f = pfolder->getName();
186 f+="/"; 188 f+="/";
187 f+=folder; 189 f+=folder;
188 } 190 }
189 QFileInfo fi ( f ); 191 QFileInfo fi ( f );
190 if ( fi. exists () ) { 192 if ( fi. exists () ) {
191 qDebug("folder exists "); 193 qDebug("folder exists ");
192 return 1; 194 return 1;
193 } 195 }
194 qDebug("creating folder ---%s--- ",f.latin1() ); 196 qDebug("creating folder ---%s--- ",f.latin1() );
195 init_storage(); 197 init_storage();
196 if (!m_storage) { 198 if (!m_storage) {
197 return 0; 199 return 0;
198 } 200 }
199 int r = mailsession_create_folder(m_storage->sto_session,(char*)f.latin1()); 201 int r = mailsession_create_folder(m_storage->sto_session,(char*)f.latin1());
200 if (r != MAIL_NO_ERROR) { 202 if (r != MAIL_NO_ERROR) {
201 qDebug("error %d creating folder %s", r, f.latin1()); 203 qDebug("error %d creating folder %s", r, f.latin1());
202 return 0; 204 return 0;
203 } 205 }
204 return 1; 206 return 1;
205} 207}
206 208
207void MHwrapper::storeMessage(const char*msg,size_t length, const QString&Folder) 209void MHwrapper::storeMessage(const char*msg,size_t length, const QString&Folder)
208{ 210{
209 init_storage(); 211 init_storage();
210 if (!m_storage) { 212 if (!m_storage) {
211 return; 213 return;
212 } 214 }
213 QString f = buildPath(Folder); 215 QString f = buildPath(Folder);
214 int r = mailsession_select_folder(m_storage->sto_session,(char*)f.latin1()); 216 int r = mailsession_select_folder(m_storage->sto_session,(char*)f.latin1());
215 if (r!=MAIL_NO_ERROR) { 217 if (r!=MAIL_NO_ERROR) {
216 qDebug("error selecting folder %d", r); 218 qDebug("error selecting folder %d", r);
217 return; 219 return;
218 } 220 }
219 r = mailsession_append_message(m_storage->sto_session,(char*)msg,length); 221 r = mailsession_append_message(m_storage->sto_session,(char*)msg,length);
220 if (r!=MAIL_NO_ERROR) { 222 if (r!=MAIL_NO_ERROR) {
221 if ( r != MAIL_ERROR_APPEND ) 223 if ( r != MAIL_ERROR_APPEND )
222 qDebug("error storing mail %d", r); 224 qDebug("error storing mail %d", r);
223 } 225 }
224 return; 226 return;
225} 227}
226 228
227encodedString* MHwrapper::fetchRawBody(const RecMailP&mail) 229encodedString* MHwrapper::fetchRawBody(const RecMailP&mail)
228{ 230{
229 encodedString*result = 0; 231 encodedString*result = 0;
230 init_storage(); 232 init_storage();
231 if (!m_storage) { 233 if (!m_storage) {
232 return result; 234 return result;
233 } 235 }
234 mailmessage * msg = 0; 236 mailmessage * msg = 0;
235 char*data=0; 237 char*data=0;
236 size_t size; 238 size_t size;
237 int r = mailsession_select_folder(m_storage->sto_session,(char*)mail->getMbox().latin1()); 239 int r = mailsession_select_folder(m_storage->sto_session,(char*)mail->getMbox().latin1());
238 if (r!=MAIL_NO_ERROR) { 240 if (r!=MAIL_NO_ERROR) {
239 qDebug("error selecting folder! "); 241 qDebug("error selecting folder! ");
240 return result; 242 return result;
241 } 243 }
242 r = mailsession_get_message(m_storage->sto_session, mail->getNumber(), &msg); 244 r = mailsession_get_message(m_storage->sto_session, mail->getNumber(), &msg);
243 if (r != MAIL_NO_ERROR) { 245 if (r != MAIL_NO_ERROR) {
244 Global::statusMessage(i18n("Error fetching mail %i").arg(mail->getNumber())); 246 Global::statusMessage(i18n("Error fetching mail %i").arg(mail->getNumber()));
245 return 0; 247 return 0;
246 } 248 }
247 r = mailmessage_fetch(msg,&data,&size); 249 r = mailmessage_fetch(msg,&data,&size);
248 if (r != MAIL_NO_ERROR) { 250 if (r != MAIL_NO_ERROR) {
249 Global::statusMessage(i18n("Error fetching mail %i").arg(mail->getNumber())); 251 Global::statusMessage(i18n("Error fetching mail %i").arg(mail->getNumber()));
250 if (msg) mailmessage_free(msg); 252 if (msg) mailmessage_free(msg);
251 return 0; 253 return 0;
252 } 254 }
253 result = new encodedString(data,size); 255 result = new encodedString(data,size);
254 if (msg) mailmessage_free(msg); 256 if (msg) mailmessage_free(msg);
255 return result; 257 return result;
256} 258}
257 259
258void MHwrapper::deleteMails(const QString & mailbox,const QValueList<RecMailP> &target) 260void MHwrapper::deleteMails(const QString & mailbox,const Q3ValueList<RecMailP> &target)
259{ 261{
260 QString f = buildPath(mailbox); 262 QString f = buildPath(mailbox);
261 int r = mailsession_select_folder(m_storage->sto_session,(char*)f.latin1()); 263 int r = mailsession_select_folder(m_storage->sto_session,(char*)f.latin1());
262 if (r!=MAIL_NO_ERROR) { 264 if (r!=MAIL_NO_ERROR) {
263 qDebug("deleteMails: error selecting folder! "); 265 qDebug("deleteMails: error selecting folder! ");
264 return; 266 return;
265 } 267 }
266 QValueList<RecMailP>::ConstIterator it; 268 Q3ValueList<RecMailP>::ConstIterator it;
267 for (it=target.begin(); it!=target.end();++it) { 269 for (it=target.begin(); it!=target.end();++it) {
268 r = mailsession_remove_message(m_storage->sto_session,(*it)->getNumber()); 270 r = mailsession_remove_message(m_storage->sto_session,(*it)->getNumber());
269 if (r != MAIL_NO_ERROR) { 271 if (r != MAIL_NO_ERROR) {
270 qDebug("error deleting mail "); 272 qDebug("error deleting mail ");
271 break; 273 break;
272 } 274 }
273 } 275 }
274} 276}
275 277
276int MHwrapper::deleteAllMail(const FolderP&tfolder) 278int MHwrapper::deleteAllMail(const FolderP&tfolder)
277{ 279{
278 init_storage(); 280 init_storage();
279 if (!m_storage) { 281 if (!m_storage) {
280 return 0; 282 return 0;
281 } 283 }
282 int res = 1; 284 int res = 1;
283 if (!tfolder) return 0; 285 if (!tfolder) return 0;
284 int r = mailsession_select_folder(m_storage->sto_session,(char*)tfolder->getName().latin1()); 286 int r = mailsession_select_folder(m_storage->sto_session,(char*)tfolder->getName().latin1());
285 if (r!=MAIL_NO_ERROR) { 287 if (r!=MAIL_NO_ERROR) {
286 qDebug("error selecting folder! "); 288 qDebug("error selecting folder! ");
287 return 0; 289 return 0;
288 } 290 }
289 mailmessage_list*l=0; 291 mailmessage_list*l=0;
290 r = mailsession_get_messages_list(m_storage->sto_session,&l); 292 r = mailsession_get_messages_list(m_storage->sto_session,&l);
291 if (r != MAIL_NO_ERROR) { 293 if (r != MAIL_NO_ERROR) {
292 qDebug("Error message list "); 294 qDebug("Error message list ");
293 res = 0; 295 res = 0;
294 } 296 }
295 unsigned j = 0; 297 unsigned j = 0;
296 for(unsigned int i = 0 ; l!= 0 && res==1 && i < carray_count(l->msg_tab) ; ++i) { 298 for(unsigned int i = 0 ; l!= 0 && res==1 && i < carray_count(l->msg_tab) ; ++i) {
297 mailmessage * msg; 299 mailmessage * msg;
298 msg = (mailmessage*)carray_get(l->msg_tab, i); 300 msg = (mailmessage*)carray_get(l->msg_tab, i);
299 j = msg->msg_index; 301 j = msg->msg_index;
300 r = mailsession_remove_message(m_storage->sto_session,j); 302 r = mailsession_remove_message(m_storage->sto_session,j);
301 if (r != MAIL_NO_ERROR) { 303 if (r != MAIL_NO_ERROR) {
302 Global::statusMessage(i18n("Error deleting mail %1").arg(i+1)); 304 Global::statusMessage(i18n("Error deleting mail %1").arg(i+1));
303 res = 0; 305 res = 0;
304 break; 306 break;
305 } 307 }
306 } 308 }
307 if (l) mailmessage_list_free(l); 309 if (l) mailmessage_list_free(l);
308 return res; 310 return res;
309} 311}
310bool MHwrapper::rmDir(QString folder) // absolute path! 312bool MHwrapper::rmDir(QString folder) // absolute path!
311{ 313{
312 QDir dir ( folder ); 314 QDir dir ( folder );
313 if ( !dir.exists() ) 315 if ( !dir.exists() )
314 return false; 316 return false;
315 int i; 317 int i;
316 // qDebug("rmdir %s ",folder.latin1()); 318 // qDebug("rmdir %s ",folder.latin1());
317 QStringList list = dir.entryList(QDir::Dirs|QDir::Files|QDir::NoSymLinks|QDir::Hidden ); 319 QStringList list = dir.entryList(QDir::Dirs|QDir::Files|QDir::NoSymLinks|QDir::Hidden );
318 for (i=0; i<list.count(); i++ ) { 320 for (i=0; i<list.count(); i++ ) {
319 bool result = true; 321 bool result = true;
320 QString entry = folder+"/"+ list[i] ; 322 QString entry = folder+"/"+ list[i] ;
321 //qDebug("entry %s ",entry.latin1() ); 323 //qDebug("entry %s ",entry.latin1() );
322 324
323 QFileInfo fi ( entry ); 325 QFileInfo fi ( entry );
324 if ( fi.isFile() ) { 326 if ( fi.isFile() ) {
325 //qDebug("file %s ",entry.latin1() ); 327 //qDebug("file %s ",entry.latin1() );
326 result = QFile::remove ( entry ) ; 328 result = QFile::remove ( entry ) ;
327 } else { 329 } else {
328 //qDebug("dir %s ",entry.latin1()); 330 //qDebug("dir %s ",entry.latin1());
329 if ( list[i] != "." && list[i] != ".." ) 331 if ( list[i] != "." && list[i] != ".." )
330 result = rmDir( entry ); 332 result = rmDir( entry );
331 } 333 }
332 if ( ! result ) 334 if ( ! result )
333 return false; 335 return false;
334 } 336 }
335 //qDebug("removing... "); 337 //qDebug("removing... ");
336 return QDir::root().rmdir ( folder, true ); 338 return QDir::root().rmdir ( folder, true );
337} 339}
338int MHwrapper::deleteMbox(const FolderP&tfolder) 340int MHwrapper::deleteMbox(const FolderP&tfolder)
339{ 341{
340 init_storage(); 342 init_storage();
341 if (!m_storage) { 343 if (!m_storage) {
342 return 0; 344 return 0;
343 } 345 }
344 if (!tfolder) return 0; 346 if (!tfolder) return 0;
345 if (tfolder->getName()=="/" || tfolder->getName().isEmpty()) return 0; 347 if (tfolder->getName()=="/" || tfolder->getName().isEmpty()) return 0;
346 348
347 int r = mailsession_delete_folder(m_storage->sto_session,(char*)tfolder->getName().latin1()); 349 int r = mailsession_delete_folder(m_storage->sto_session,(char*)tfolder->getName().latin1());
348 350
349 if (r != MAIL_NO_ERROR) { 351 if (r != MAIL_NO_ERROR) {
350 qDebug("error deleting mail box "); 352 qDebug("error deleting mail box ");
351 return 0; 353 return 0;
352 } 354 }
353 //qDebug("*****************\ndel %s %s ", delDir.latin1(),tfolder->getName().latin1() ); 355 //qDebug("*****************\ndel %s %s ", delDir.latin1(),tfolder->getName().latin1() );
354 if ( !rmDir( tfolder->getName() )) { 356 if ( !rmDir( tfolder->getName() )) {
355 qDebug("error deleteing folder %s ",tfolder->getName().latin1()); 357 qDebug("error deleteing folder %s ",tfolder->getName().latin1());
356 } 358 }
357 else 359 else
358 qDebug("mail box deleted %s ", tfolder->getName().latin1()); 360 qDebug("mail box deleted %s ", tfolder->getName().latin1());
359 return 1; 361 return 1;
360} 362}
361 363
362 364
363void MHwrapper::statusFolder(folderStat&target_stat,const QString & mailbox) 365void MHwrapper::statusFolder(folderStat&target_stat,const QString & mailbox)
364{ 366{
365 init_storage(); 367 init_storage();
366 if (!m_storage) { 368 if (!m_storage) {
367 return; 369 return;
368 } 370 }
369 target_stat.message_count = 0; 371 target_stat.message_count = 0;
370 target_stat.message_unseen = 0; 372 target_stat.message_unseen = 0;
371 target_stat.message_recent = 0; 373 target_stat.message_recent = 0;
372 QString f = buildPath(mailbox); 374 QString f = buildPath(mailbox);
373 int r = mailsession_status_folder(m_storage->sto_session,(char*)f.latin1(),&target_stat.message_count, 375 int r = mailsession_status_folder(m_storage->sto_session,(char*)f.latin1(),&target_stat.message_count,
374 &target_stat.message_recent,&target_stat.message_unseen); 376 &target_stat.message_recent,&target_stat.message_unseen);
375 if (r != MAIL_NO_ERROR) { 377 if (r != MAIL_NO_ERROR) {
376 Global::statusMessage(i18n("Error retrieving status")); 378 Global::statusMessage(i18n("Error retrieving status"));
377 } 379 }
378} 380}
379 381
380MAILLIB::ATYPE MHwrapper::getType()const 382MAILLIB::ATYPE MHwrapper::getType()const
381{ 383{
382 return MAILLIB::A_MH; 384 return MAILLIB::A_MH;
383} 385}
384 386
385const QString&MHwrapper::getName()const 387const QString&MHwrapper::getName()const
386{ 388{
387 return MHName; 389 return MHName;
388} 390}
389void MHwrapper::mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) 391void MHwrapper::mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit)
390{ 392{
391 init_storage(); 393 init_storage();
392 if (!m_storage) { 394 if (!m_storage) {
393 return; 395 return;
394 } 396 }
diff --git a/kmicromail/libmailwrapper/mhwrapper.h b/kmicromail/libmailwrapper/mhwrapper.h
index 36a443a..6151ff1 100644
--- a/kmicromail/libmailwrapper/mhwrapper.h
+++ b/kmicromail/libmailwrapper/mhwrapper.h
@@ -1,59 +1,61 @@
1// CHANGED 2004-09-31 Lutz Rogowski 1// CHANGED 2004-09-31 Lutz Rogowski
2#ifndef __MH_WRAPPER_H 2#ifndef __MH_WRAPPER_H
3#define __MH_WRAPPER_H 3#define __MH_WRAPPER_H
4 4
5#include "maildefines.h" 5#include "maildefines.h"
6 6
7#include "genericwrapper.h" 7#include "genericwrapper.h"
8#include <qstring.h> 8#include <qstring.h>
9//Added by qt3to4:
10#include <Q3ValueList>
9 11
10class encodedString; 12class encodedString;
11struct mailmbox_folder; 13struct mailmbox_folder;
12class MHwrapper : public Genericwrapper 14class MHwrapper : public Genericwrapper
13{ 15{
14 Q_OBJECT 16 Q_OBJECT
15public: 17public:
16 MHwrapper(const QString & dir,const QString&name); 18 MHwrapper(const QString & dir,const QString&name);
17 virtual ~MHwrapper(); 19 virtual ~MHwrapper();
18 20
19 virtual void listMessages(const QString & mailbox, QValueList<Opie::Core::OSmartPointer<RecMail> > &target, int maxSizeInKb = 0 ); 21 virtual void listMessages(const QString & mailbox, Q3ValueList<Opie::Core::OSmartPointer<RecMail> > &target, int maxSizeInKb = 0 );
20 virtual QValueList<Opie::Core::OSmartPointer<Folder> >* listFolders(); 22 virtual Q3ValueList<Opie::Core::OSmartPointer<Folder> >* listFolders();
21 virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX"); 23 virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX");
22 24
23 virtual void deleteMail(const RecMailP&mail); 25 virtual void deleteMail(const RecMailP&mail);
24 virtual void answeredMail(const RecMailP&mail); 26 virtual void answeredMail(const RecMailP&mail);
25 virtual void mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); 27 virtual void mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit);
26 virtual void mvcpAllMails(const Opie::Core::OSmartPointer<Folder>&fromFolder, 28 virtual void mvcpAllMails(const Opie::Core::OSmartPointer<Folder>&fromFolder,
27 const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); 29 const QString&targetFolder,AbstractMail*targetWrapper,bool moveit);
28 30
29 virtual int createMbox(const QString&folder,const Opie::Core::OSmartPointer<Folder>&f=0, 31 virtual int createMbox(const QString&folder,const Opie::Core::OSmartPointer<Folder>&f=0,
30 const QString&d="",bool s=false); 32 const QString&d="",bool s=false);
31 virtual int deleteMbox(const Opie::Core::OSmartPointer<Folder>&); 33 virtual int deleteMbox(const Opie::Core::OSmartPointer<Folder>&);
32 34
33 virtual void storeMessage(const char*msg,size_t length, const QString&folder); 35 virtual void storeMessage(const char*msg,size_t length, const QString&folder);
34 36
35 virtual RecBodyP fetchBody( const RecMailP &mail ); 37 virtual RecBodyP fetchBody( const RecMailP &mail );
36 static void mbox_progress( size_t current, size_t maximum ); 38 static void mbox_progress( size_t current, size_t maximum );
37 39
38 virtual encodedString* fetchRawBody(const RecMailP&mail); 40 virtual encodedString* fetchRawBody(const RecMailP&mail);
39 virtual void deleteMails(const QString & FolderName,const QValueList<Opie::Core::OSmartPointer<RecMail> > &target); 41 virtual void deleteMails(const QString & FolderName,const Q3ValueList<Opie::Core::OSmartPointer<RecMail> > &target);
40 virtual int deleteAllMail(const Opie::Core::OSmartPointer<Folder>&); 42 virtual int deleteAllMail(const Opie::Core::OSmartPointer<Folder>&);
41 virtual MAILLIB::ATYPE getType()const; 43 virtual MAILLIB::ATYPE getType()const;
42 virtual const QString&getName()const; 44 virtual const QString&getName()const;
43 virtual Account* getAccount() { return 0; }; 45 virtual Account* getAccount() { return 0; };
44 46
45public slots: 47public slots:
46 48
47protected: 49protected:
48 QString buildPath(const QString&p); 50 QString buildPath(const QString&p);
49 QString MHPath; 51 QString MHPath;
50 QString MHName; 52 QString MHName;
51 53
52 void init_storage(); 54 void init_storage();
53 void clean_storage(); 55 void clean_storage();
54 bool rmDir(QString folderabspath); 56 bool rmDir(QString folderabspath);
55 57
56 bool removeMboxfailed; 58 bool removeMboxfailed;
57}; 59};
58 60
59#endif 61#endif
diff --git a/kmicromail/libmailwrapper/nntpwrapper.cpp b/kmicromail/libmailwrapper/nntpwrapper.cpp
index 93cd2b5..b328ecd 100644
--- a/kmicromail/libmailwrapper/nntpwrapper.cpp
+++ b/kmicromail/libmailwrapper/nntpwrapper.cpp
@@ -1,281 +1,283 @@
1// CHANGED 2004-09-31 Lutz Rogowski 1// CHANGED 2004-09-31 Lutz Rogowski
2#include "nntpwrapper.h" 2#include "nntpwrapper.h"
3#include "logindialog.h" 3#include "logindialog.h"
4#include "mailtypes.h" 4#include "mailtypes.h"
5 5
6#include <qfile.h> 6#include <qfile.h>
7//Added by qt3to4:
8#include <Q3ValueList>
7 9
8#include <stdlib.h> 10#include <stdlib.h>
9 11
10#include <libetpan/libetpan.h> 12#include <libetpan/libetpan.h>
11 13
12 14
13 15
14#define HARD_MSG_SIZE_LIMIT 5242880 16#define HARD_MSG_SIZE_LIMIT 5242880
15 17
16using namespace Opie::Core; 18using namespace Opie::Core;
17NNTPwrapper::NNTPwrapper( NNTPaccount *a ) 19NNTPwrapper::NNTPwrapper( NNTPaccount *a )
18: Genericwrapper() { 20: Genericwrapper() {
19 account = a; 21 account = a;
20 m_nntp = NULL; 22 m_nntp = NULL;
21 msgTempName = a->getFileName()+"_msg_cache"; 23 msgTempName = a->getFileName()+"_msg_cache";
22 last_msg_id = 0; 24 last_msg_id = 0;
23} 25}
24 26
25NNTPwrapper::~NNTPwrapper() { 27NNTPwrapper::~NNTPwrapper() {
26 logout(); 28 logout();
27 QFile msg_cache(msgTempName); 29 QFile msg_cache(msgTempName);
28 if (msg_cache.exists()) { 30 if (msg_cache.exists()) {
29 msg_cache.remove(); 31 msg_cache.remove();
30 } 32 }
31} 33}
32 34
33void NNTPwrapper::nntp_progress( size_t current, size_t maximum ) { 35void NNTPwrapper::nntp_progress( size_t current, size_t maximum ) {
34 ; // << "NNTP: " << current << " of " << maximum << "" << oendl; 36 ; // << "NNTP: " << current << " of " << maximum << "" << oendl;
35} 37}
36 38
37 39
38RecBodyP NNTPwrapper::fetchBody( const RecMailP &mail ) { 40RecBodyP NNTPwrapper::fetchBody( const RecMailP &mail ) {
39 int err = NEWSNNTP_NO_ERROR; 41 int err = NEWSNNTP_NO_ERROR;
40 char *message = 0; 42 char *message = 0;
41 size_t length = 0; 43 size_t length = 0;
42 44
43 RecBodyP body = new RecBody(); 45 RecBodyP body = new RecBody();
44 login(); 46 login();
45 if ( !m_nntp ) { 47 if ( !m_nntp ) {
46 return body; 48 return body;
47 } 49 }
48 50
49 mailmessage * mailmsg; 51 mailmessage * mailmsg;
50 if (mail->Msgsize()>HARD_MSG_SIZE_LIMIT) { 52 if (mail->Msgsize()>HARD_MSG_SIZE_LIMIT) {
51 ; // << "Message to large: " << mail->Msgsize() << "" << oendl; 53 ; // << "Message to large: " << mail->Msgsize() << "" << oendl;
52 return body; 54 return body;
53 } 55 }
54 56
55 QFile msg_cache(msgTempName); 57 QFile msg_cache(msgTempName);
56 58
57 cleanMimeCache(); 59 cleanMimeCache();
58 60
59 if (mail->getNumber()!=last_msg_id) { 61 if (mail->getNumber()!=last_msg_id) {
60 if (msg_cache.exists()) { 62 if (msg_cache.exists()) {
61 msg_cache.remove(); 63 msg_cache.remove();
62 } 64 }
63 msg_cache.open(IO_ReadWrite|IO_Truncate); 65 msg_cache.open(QIODevice::ReadWrite|QIODevice::Truncate);
64 last_msg_id = mail->getNumber(); 66 last_msg_id = mail->getNumber();
65 err = mailsession_get_message(m_nntp->sto_session, mail->getNumber(), &mailmsg); 67 err = mailsession_get_message(m_nntp->sto_session, mail->getNumber(), &mailmsg);
66 err = mailmessage_fetch(mailmsg,&message,&length); 68 err = mailmessage_fetch(mailmsg,&message,&length);
67 msg_cache.writeBlock(message,length); 69 msg_cache.writeBlock(message,length);
68 } else { 70 } else {
69 QString msg=""; 71 QString msg="";
70 msg_cache.open(IO_ReadOnly); 72 msg_cache.open(QIODevice::ReadOnly);
71 message = new char[4096]; 73 message = new char[4096];
72 memset(message,0,4096); 74 memset(message,0,4096);
73 while (msg_cache.readBlock(message,4095)>0) { 75 while (msg_cache.readBlock(message,4095)>0) {
74 msg+=message; 76 msg+=message;
75 memset(message,0,4096); 77 memset(message,0,4096);
76 } 78 }
77 delete message; 79 delete message;
78 message = (char*)malloc(msg.length()+1*sizeof(char)); 80 message = (char*)malloc(msg.length()+1*sizeof(char));
79 memset(message,0,msg.length()+1); 81 memset(message,0,msg.length()+1);
80 memcpy(message,msg.latin1(),msg.length()); 82 memcpy(message,msg.latin1(),msg.length());
81 /* transform to libetpan stuff */ 83 /* transform to libetpan stuff */
82 mailmsg = mailmessage_new(); 84 mailmsg = mailmessage_new();
83 mailmessage_init(mailmsg, NULL, data_message_driver, 0, strlen(message)); 85 mailmessage_init(mailmsg, NULL, data_message_driver, 0, strlen(message));
84 generic_message_t * msg_data; 86 generic_message_t * msg_data;
85 msg_data = (generic_message_t *)mailmsg->msg_data; 87 msg_data = (generic_message_t *)mailmsg->msg_data;
86 msg_data->msg_fetched = 1; 88 msg_data->msg_fetched = 1;
87 msg_data->msg_message = message; 89 msg_data->msg_message = message;
88 msg_data->msg_length = strlen(message); 90 msg_data->msg_length = strlen(message);
89 } 91 }
90 body = parseMail(mailmsg); 92 body = parseMail(mailmsg);
91 93
92 /* clean up */ 94 /* clean up */
93 if (mailmsg) 95 if (mailmsg)
94 mailmessage_free(mailmsg); 96 mailmessage_free(mailmsg);
95 if (message) 97 if (message)
96 free(message); 98 free(message);
97 99
98 return body; 100 return body;
99} 101}
100 102
101 103
102void NNTPwrapper::listMessages(const QString & which, QValueList<Opie::Core::OSmartPointer<RecMail> > &target, int maxSizeInKb) 104void NNTPwrapper::listMessages(const QString & which, Q3ValueList<Opie::Core::OSmartPointer<RecMail> > &target, int maxSizeInKb)
103{ 105{
104 login(); 106 login();
105 if (!m_nntp) 107 if (!m_nntp)
106 return; 108 return;
107 uint32_t res_messages,res_recent,res_unseen; 109 uint32_t res_messages,res_recent,res_unseen;
108 mailsession_status_folder(m_nntp->sto_session,(char*)which.latin1(),&res_messages,&res_recent,&res_unseen); 110 mailsession_status_folder(m_nntp->sto_session,(char*)which.latin1(),&res_messages,&res_recent,&res_unseen);
109 parseList(target,m_nntp->sto_session,which,true, maxSizeInKb); 111 parseList(target,m_nntp->sto_session,which,true, maxSizeInKb);
110} 112}
111 113
112void NNTPwrapper::login() 114void NNTPwrapper::login()
113{ 115{
114 if (account->getOffline()) 116 if (account->getOffline())
115 return; 117 return;
116 /* we'll hold the line */ 118 /* we'll hold the line */
117 if ( m_nntp != NULL ) 119 if ( m_nntp != NULL )
118 return; 120 return;
119 121
120 QString server; 122 QString server;
121 QString User,Pass; 123 QString User,Pass;
122 uint16_t port; 124 uint16_t port;
123 int err = NEWSNNTP_NO_ERROR; 125 int err = NEWSNNTP_NO_ERROR;
124 126
125 server = account->getServer(); 127 server = account->getServer();
126 port = account->getPort().toUInt(); 128 port = account->getPort().toUInt();
127 129
128 if ( ( account->getUser().isEmpty() || account->getPassword().isEmpty() ) && account->getLogin() ) { 130 if ( ( account->getUser().isEmpty() || account->getPassword().isEmpty() ) && account->getLogin() ) {
129 LoginDialog login( account->getUser(), account->getPassword(), NULL, 0, true ); 131 LoginDialog login( account->getUser(), account->getPassword(), NULL, 0, true );
130 login.show(); 132 login.show();
131 if ( QDialog::Accepted == login.exec() ) { 133 if ( QDialog::Accepted == login.exec() ) {
132 // ok 134 // ok
133 User = login.getUser(); 135 User = login.getUser();
134 Pass = login.getPassword(); 136 Pass = login.getPassword();
135 } else { 137 } else {
136 // cancel 138 // cancel
137 ; // << "NNTP: Login canceled" << oendl; 139 ; // << "NNTP: Login canceled" << oendl;
138 return; 140 return;
139 } 141 }
140 } else { 142 } else {
141 User = account->getUser(); 143 User = account->getUser();
142 Pass = account->getPassword(); 144 Pass = account->getPassword();
143 } 145 }
144 146
145 // bool ssl = account->getSSL(); 147 // bool ssl = account->getSSL();
146 148
147 m_nntp=mailstorage_new(NULL); 149 m_nntp=mailstorage_new(NULL);
148 150
149 int conntypeset = account->ConnectionType(); 151 int conntypeset = account->ConnectionType();
150 int conntype = 0; 152 int conntype = 0;
151 if ( conntypeset == 3 ) { 153 if ( conntypeset == 3 ) {
152 conntype = CONNECTION_TYPE_COMMAND; 154 conntype = CONNECTION_TYPE_COMMAND;
153 } else if ( conntypeset == 2 ) { 155 } else if ( conntypeset == 2 ) {
154 conntype = CONNECTION_TYPE_TLS; 156 conntype = CONNECTION_TYPE_TLS;
155 } else if ( conntypeset == 1 ) { 157 } else if ( conntypeset == 1 ) {
156 conntype = CONNECTION_TYPE_STARTTLS; 158 conntype = CONNECTION_TYPE_STARTTLS;
157 } else if ( conntypeset == 0 ) { 159 } else if ( conntypeset == 0 ) {
158 conntype = CONNECTION_TYPE_TRY_STARTTLS; 160 conntype = CONNECTION_TYPE_TRY_STARTTLS;
159 } 161 }
160 162
161 nntp_mailstorage_init(m_nntp,(char*)server.latin1(), port, NULL, CONNECTION_TYPE_PLAIN, NNTP_AUTH_TYPE_PLAIN, 163 nntp_mailstorage_init(m_nntp,(char*)server.latin1(), port, NULL, CONNECTION_TYPE_PLAIN, NNTP_AUTH_TYPE_PLAIN,
162 (char*)User.latin1(),(char*)Pass.latin1(),0,0,0); 164 (char*)User.latin1(),(char*)Pass.latin1(),0,0,0);
163 165
164 err = mailstorage_connect( m_nntp ); 166 err = mailstorage_connect( m_nntp );
165 167
166 if (err != NEWSNNTP_NO_ERROR) { 168 if (err != NEWSNNTP_NO_ERROR) {
167 ; // << QString( "FEHLERNUMMER %1" ).arg( err ) << oendl; 169 ; // << QString( "FEHLERNUMMER %1" ).arg( err ) << oendl;
168 // Global::statusMessage(tr("Error initializing folder")); 170 // Global::statusMessage(tr("Error initializing folder"));
169 mailstorage_free(m_nntp); 171 mailstorage_free(m_nntp);
170 m_nntp = 0; 172 m_nntp = 0;
171 173
172 } else { 174 } else {
173 mailsession * session = m_nntp->sto_session; 175 mailsession * session = m_nntp->sto_session;
174 newsnntp * news = ( ( nntp_session_state_data * )session->sess_data )->nntp_session; 176 newsnntp * news = ( ( nntp_session_state_data * )session->sess_data )->nntp_session;
175 news->nntp_progr_fun = &nntp_progress; 177 news->nntp_progr_fun = &nntp_progress;
176 } 178 }
177 179
178} 180}
179 181
180void NNTPwrapper::logout() 182void NNTPwrapper::logout()
181{ 183{
182 int err = NEWSNNTP_NO_ERROR; 184 int err = NEWSNNTP_NO_ERROR;
183 if ( m_nntp == NULL ) 185 if ( m_nntp == NULL )
184 return; 186 return;
185 mailstorage_free(m_nntp); 187 mailstorage_free(m_nntp);
186 m_nntp = 0; 188 m_nntp = 0;
187} 189}
188 190
189QValueList<Opie::Core::OSmartPointer<Folder> >* NNTPwrapper::listFolders() { 191Q3ValueList<Opie::Core::OSmartPointer<Folder> >* NNTPwrapper::listFolders() {
190 192
191 QValueList<Opie::Core::OSmartPointer<Folder> >* folders = new QValueList<Opie::Core::OSmartPointer<Folder> >(); 193 Q3ValueList<Opie::Core::OSmartPointer<Folder> >* folders = new Q3ValueList<Opie::Core::OSmartPointer<Folder> >();
192 QStringList groups; 194 QStringList groups;
193 if (account) { 195 if (account) {
194 groups = account->getGroups(); 196 groups = account->getGroups();
195 } 197 }
196 for ( QStringList::Iterator it = groups.begin(); it != groups.end(); ++it ) { 198 for ( QStringList::Iterator it = groups.begin(); it != groups.end(); ++it ) {
197 folders->append(new Folder((*it),".")); 199 folders->append(new Folder((*it),"."));
198 } 200 }
199 return folders; 201 return folders;
200} 202}
201 203
202/* we made this method in raw nntp access of etpan and not via generic interface 204/* we made this method in raw nntp access of etpan and not via generic interface
203 * 'cause in that case there will be doubled copy operations. eg. the etpan would 205 * 'cause in that case there will be doubled copy operations. eg. the etpan would
204 * copy that stuff into its own structures and we must copy it into useable c++ 206 * copy that stuff into its own structures and we must copy it into useable c++
205 * structures for our frontend. this would not make sense, so it is better to reimplement 207 * structures for our frontend. this would not make sense, so it is better to reimplement
206 * the stuff from generic interface of etpan but copy it direct to qt classes. 208 * the stuff from generic interface of etpan but copy it direct to qt classes.
207 */ 209 */
208QStringList NNTPwrapper::listAllNewsgroups(const QString&mask) { 210QStringList NNTPwrapper::listAllNewsgroups(const QString&mask) {
209 login(); 211 login();
210 QStringList res; 212 QStringList res;
211 clist *result = 0; 213 clist *result = 0;
212 clistcell *current = 0; 214 clistcell *current = 0;
213 newsnntp_group_description *group; 215 newsnntp_group_description *group;
214 216
215 if ( m_nntp ) { 217 if ( m_nntp ) {
216 mailsession * session = m_nntp->sto_session; 218 mailsession * session = m_nntp->sto_session;
217 newsnntp * news = ( ( nntp_session_state_data * )session->sess_data )->nntp_session; 219 newsnntp * news = ( ( nntp_session_state_data * )session->sess_data )->nntp_session;
218 int err = NEWSNNTP_NO_ERROR; 220 int err = NEWSNNTP_NO_ERROR;
219 if (mask.isEmpty()) { 221 if (mask.isEmpty()) {
220 err = newsnntp_list(news, &result); 222 err = newsnntp_list(news, &result);
221 } else { 223 } else {
222 /* taken from generic wrapper of etpan */ 224 /* taken from generic wrapper of etpan */
223 QString nmask = mask+".*"; 225 QString nmask = mask+".*";
224 err = newsnntp_list_active(news, nmask.latin1(), &result); 226 err = newsnntp_list_active(news, nmask.latin1(), &result);
225 } 227 }
226 if ( err == NEWSNNTP_NO_ERROR && result) { 228 if ( err == NEWSNNTP_NO_ERROR && result) {
227 for ( current=clist_begin(result);current!=NULL;current=clist_next(current) ) { 229 for ( current=clist_begin(result);current!=NULL;current=clist_next(current) ) {
228 group = ( newsnntp_group_description* ) current->data; 230 group = ( newsnntp_group_description* ) current->data;
229 if (!group||!group->grp_name||strlen(group->grp_name)==0) continue; 231 if (!group||!group->grp_name||strlen(group->grp_name)==0) continue;
230 res.append(group->grp_name); 232 res.append(group->grp_name);
231 } 233 }
232 } 234 }
233 } 235 }
234 if (result) { 236 if (result) {
235 newsnntp_list_free(result); 237 newsnntp_list_free(result);
236 } 238 }
237 return res; 239 return res;
238} 240}
239 241
240void NNTPwrapper::answeredMail(const RecMailP&) {} 242void NNTPwrapper::answeredMail(const RecMailP&) {}
241 243
242void NNTPwrapper::statusFolder(folderStat&target_stat,const QString&) { 244void NNTPwrapper::statusFolder(folderStat&target_stat,const QString&) {
243 login(); 245 login();
244 target_stat.message_count = 0; 246 target_stat.message_count = 0;
245 target_stat.message_unseen = 0; 247 target_stat.message_unseen = 0;
246 target_stat.message_recent = 0; 248 target_stat.message_recent = 0;
247 if (!m_nntp) 249 if (!m_nntp)
248 return; 250 return;
249 int r = mailsession_status_folder(m_nntp->sto_session,0,&target_stat.message_count, 251 int r = mailsession_status_folder(m_nntp->sto_session,0,&target_stat.message_count,
250 &target_stat.message_recent,&target_stat.message_unseen); 252 &target_stat.message_recent,&target_stat.message_unseen);
251} 253}
252 254
253 255
254encodedString* NNTPwrapper::fetchRawBody(const RecMailP&mail) { 256encodedString* NNTPwrapper::fetchRawBody(const RecMailP&mail) {
255 char*target=0; 257 char*target=0;
256 size_t length=0; 258 size_t length=0;
257 encodedString*res = 0; 259 encodedString*res = 0;
258 mailmessage * mailmsg = 0; 260 mailmessage * mailmsg = 0;
259 int err = mailsession_get_message(m_nntp->sto_session, mail->getNumber(), &mailmsg); 261 int err = mailsession_get_message(m_nntp->sto_session, mail->getNumber(), &mailmsg);
260 err = mailmessage_fetch(mailmsg,&target,&length); 262 err = mailmessage_fetch(mailmsg,&target,&length);
261 if (mailmsg) 263 if (mailmsg)
262 mailmessage_free(mailmsg); 264 mailmessage_free(mailmsg);
263 if (target) { 265 if (target) {
264 res = new encodedString(target,length); 266 res = new encodedString(target,length);
265 } 267 }
266 return res; 268 return res;
267} 269}
268 270
269MAILLIB::ATYPE NNTPwrapper::getType()const { 271MAILLIB::ATYPE NNTPwrapper::getType()const {
270 return account->getType(); 272 return account->getType();
271} 273}
272 274
273const QString&NNTPwrapper::getName()const{ 275const QString&NNTPwrapper::getName()const{
274 return account->getAccountName(); 276 return account->getAccountName();
275} 277}
276 278
277void NNTPwrapper::deleteMail(const RecMailP&) { 279void NNTPwrapper::deleteMail(const RecMailP&) {
278} 280}
279 281
280int NNTPwrapper::deleteAllMail(const FolderP&) { 282int NNTPwrapper::deleteAllMail(const FolderP&) {
281} 283}
diff --git a/kmicromail/libmailwrapper/nntpwrapper.h b/kmicromail/libmailwrapper/nntpwrapper.h
index 8c54f12..7c8e671 100644
--- a/kmicromail/libmailwrapper/nntpwrapper.h
+++ b/kmicromail/libmailwrapper/nntpwrapper.h
@@ -1,50 +1,52 @@
1// CHANGED 2004-09-31 Lutz Rogowski 1// CHANGED 2004-09-31 Lutz Rogowski
2#ifndef __NNTPWRAPPER 2#ifndef __NNTPWRAPPER
3#define __NNTPWRAPPER 3#define __NNTPWRAPPER
4 4
5#include "mailwrapper.h" 5#include "mailwrapper.h"
6#include "genericwrapper.h" 6#include "genericwrapper.h"
7#include <qstring.h> 7#include <qstring.h>
8//Added by qt3to4:
9#include <Q3ValueList>
8#include <libetpan/clist.h> 10#include <libetpan/clist.h>
9 11
10class encodedString; 12class encodedString;
11struct mailstorage; 13struct mailstorage;
12struct mailfolder; 14struct mailfolder;
13 15
14class NNTPwrapper : public Genericwrapper 16class NNTPwrapper : public Genericwrapper
15{ 17{
16 18
17 Q_OBJECT 19 Q_OBJECT
18 20
19public: 21public:
20 NNTPwrapper( NNTPaccount *a ); 22 NNTPwrapper( NNTPaccount *a );
21 virtual ~NNTPwrapper(); 23 virtual ~NNTPwrapper();
22 24
23 /* mailbox will be ignored */ 25 /* mailbox will be ignored */
24 virtual void listMessages(const QString & mailbox, QValueList<Opie::Core::OSmartPointer<RecMail> > &target, int maxSizeInKb = 0 ); 26 virtual void listMessages(const QString & mailbox, Q3ValueList<Opie::Core::OSmartPointer<RecMail> > &target, int maxSizeInKb = 0 );
25 /* should only get the subscribed one */ 27 /* should only get the subscribed one */
26 virtual QValueList<Opie::Core::OSmartPointer<Folder> >* listFolders(); 28 virtual Q3ValueList<Opie::Core::OSmartPointer<Folder> >* listFolders();
27 /* mailbox will be ignored */ 29 /* mailbox will be ignored */
28 virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX"); 30 virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX");
29 QStringList listAllNewsgroups(const QString&mask = QString::null); 31 QStringList listAllNewsgroups(const QString&mask = QString::null);
30 virtual void deleteMail(const RecMailP&mail); 32 virtual void deleteMail(const RecMailP&mail);
31 virtual void answeredMail(const RecMailP&mail); 33 virtual void answeredMail(const RecMailP&mail);
32 virtual int deleteAllMail(const Opie::Core::OSmartPointer<Folder>&); 34 virtual int deleteAllMail(const Opie::Core::OSmartPointer<Folder>&);
33 35
34 virtual RecBodyP fetchBody( const RecMailP &mail ); 36 virtual RecBodyP fetchBody( const RecMailP &mail );
35 virtual encodedString* fetchRawBody(const RecMailP&mail); 37 virtual encodedString* fetchRawBody(const RecMailP&mail);
36 virtual void logout(); 38 virtual void logout();
37 virtual MAILLIB::ATYPE getType()const; 39 virtual MAILLIB::ATYPE getType()const;
38 virtual const QString&getName()const; 40 virtual const QString&getName()const;
39 static void nntp_progress( size_t current, size_t maximum ); 41 static void nntp_progress( size_t current, size_t maximum );
40 virtual Account* getAccount() { return account; }; 42 virtual Account* getAccount() { return account; };
41 43
42protected: 44protected:
43 void login(); 45 void login();
44 NNTPaccount *account; 46 NNTPaccount *account;
45 mailstorage* m_nntp; 47 mailstorage* m_nntp;
46 48
47 49
48}; 50};
49 51
50#endif 52#endif
diff --git a/kmicromail/libmailwrapper/pop3wrapper.cpp b/kmicromail/libmailwrapper/pop3wrapper.cpp
index 2888f7c..ebeed71 100644
--- a/kmicromail/libmailwrapper/pop3wrapper.cpp
+++ b/kmicromail/libmailwrapper/pop3wrapper.cpp
@@ -1,303 +1,305 @@
1// CHANGED 2004-09-31 Lutz Rogowski 1// CHANGED 2004-09-31 Lutz Rogowski
2#include <stdlib.h> 2#include <stdlib.h>
3#include "pop3wrapper.h" 3#include "pop3wrapper.h"
4#include "mailtypes.h" 4#include "mailtypes.h"
5#include "logindialog.h" 5#include "logindialog.h"
6#include <libetpan/libetpan.h> 6#include <libetpan/libetpan.h>
7 7
8#include <klocale.h> 8#include <klocale.h>
9 9
10#include <qpe/global.h> 10#include <qpe/global.h>
11#include <qfile.h> 11#include <qfile.h>
12#include <qprogressbar.h> 12#include <q3progressbar.h>
13#include <qapplication.h> 13#include <qapplication.h>
14//Added by qt3to4:
15#include <Q3ValueList>
14 16
15/* we don't fetch messages larger than 5 MB */ 17/* we don't fetch messages larger than 5 MB */
16#define HARD_MSG_SIZE_LIMIT 5242880 18#define HARD_MSG_SIZE_LIMIT 5242880
17 19
18using namespace Opie::Core; 20using namespace Opie::Core;
19POP3wrapper::POP3wrapper( POP3account *a ) 21POP3wrapper::POP3wrapper( POP3account *a )
20: Genericwrapper() { 22: Genericwrapper() {
21 account = a; 23 account = a;
22 m_pop3 = NULL; 24 m_pop3 = NULL;
23 msgTempName = a->getFileName()+"_msg_cache"; 25 msgTempName = a->getFileName()+"_msg_cache";
24 last_msg_id = 0; 26 last_msg_id = 0;
25} 27}
26 28
27POP3wrapper::~POP3wrapper() { 29POP3wrapper::~POP3wrapper() {
28 logout(); 30 logout();
29 QFile msg_cache(msgTempName); 31 QFile msg_cache(msgTempName);
30 if (msg_cache.exists()) { 32 if (msg_cache.exists()) {
31 msg_cache.remove(); 33 msg_cache.remove();
32 } 34 }
33} 35}
34 36
35void POP3wrapper::pop3_progress( size_t current, size_t maximum ) { 37void POP3wrapper::pop3_progress( size_t current, size_t maximum ) {
36 ; // odebug << "POP3: " << current << " of " << maximum << "" << oendl; 38 ; // odebug << "POP3: " << current << " of " << maximum << "" << oendl;
37} 39}
38 40
39RecBodyP POP3wrapper::fetchBody( const RecMailP &mail ) { 41RecBodyP POP3wrapper::fetchBody( const RecMailP &mail ) {
40 int err = MAILPOP3_NO_ERROR; 42 int err = MAILPOP3_NO_ERROR;
41 char *message = 0; 43 char *message = 0;
42 size_t length = 0; 44 size_t length = 0;
43 45
44 RecBodyP body = new RecBody(); 46 RecBodyP body = new RecBody();
45 47
46 login(); 48 login();
47 if ( !m_pop3 ) { 49 if ( !m_pop3 ) {
48 return body; 50 return body;
49 } 51 }
50 52
51 mailmessage * mailmsg; 53 mailmessage * mailmsg;
52 if (mail->Msgsize()>HARD_MSG_SIZE_LIMIT) { 54 if (mail->Msgsize()>HARD_MSG_SIZE_LIMIT) {
53 ; // odebug << "Message to large: " << mail->Msgsize() << "" << oendl; 55 ; // odebug << "Message to large: " << mail->Msgsize() << "" << oendl;
54 return body; 56 return body;
55 } 57 }
56 58
57 QFile msg_cache(msgTempName); 59 QFile msg_cache(msgTempName);
58 60
59 cleanMimeCache(); 61 cleanMimeCache();
60 62
61 if (mail->getNumber()!=last_msg_id) { 63 if (mail->getNumber()!=last_msg_id) {
62 if (msg_cache.exists()) { 64 if (msg_cache.exists()) {
63 msg_cache.remove(); 65 msg_cache.remove();
64 } 66 }
65 msg_cache.open(IO_ReadWrite|IO_Truncate); 67 msg_cache.open(QIODevice::ReadWrite|QIODevice::Truncate);
66 last_msg_id = mail->getNumber(); 68 last_msg_id = mail->getNumber();
67 err = mailsession_get_message(m_pop3->sto_session, mail->getNumber(), &mailmsg); 69 err = mailsession_get_message(m_pop3->sto_session, mail->getNumber(), &mailmsg);
68 err = mailmessage_fetch(mailmsg,&message,&length); 70 err = mailmessage_fetch(mailmsg,&message,&length);
69 msg_cache.writeBlock(message,length); 71 msg_cache.writeBlock(message,length);
70 } else { 72 } else {
71 QString msg=""; 73 QString msg="";
72 msg_cache.open(IO_ReadOnly); 74 msg_cache.open(QIODevice::ReadOnly);
73 message = new char[4096]; 75 message = new char[4096];
74 memset(message,0,4096); 76 memset(message,0,4096);
75 while (msg_cache.readBlock(message,4095)>0) { 77 while (msg_cache.readBlock(message,4095)>0) {
76 msg+=message; 78 msg+=message;
77 memset(message,0,4096); 79 memset(message,0,4096);
78 } 80 }
79 delete message; 81 delete message;
80 message = (char*)malloc(msg.length()+1*sizeof(char)); 82 message = (char*)malloc(msg.length()+1*sizeof(char));
81 memset(message,0,msg.length()+1); 83 memset(message,0,msg.length()+1);
82 memcpy(message,msg.latin1(),msg.length()); 84 memcpy(message,msg.latin1(),msg.length());
83 /* transform to libetpan stuff */ 85 /* transform to libetpan stuff */
84 mailmsg = mailmessage_new(); 86 mailmsg = mailmessage_new();
85 mailmessage_init(mailmsg, NULL, data_message_driver, 0, strlen(message)); 87 mailmessage_init(mailmsg, NULL, data_message_driver, 0, strlen(message));
86 generic_message_t * msg_data; 88 generic_message_t * msg_data;
87 msg_data = (generic_message_t *)mailmsg->msg_data; 89 msg_data = (generic_message_t *)mailmsg->msg_data;
88 msg_data->msg_fetched = 1; 90 msg_data->msg_fetched = 1;
89 msg_data->msg_message = message; 91 msg_data->msg_message = message;
90 msg_data->msg_length = strlen(message); 92 msg_data->msg_length = strlen(message);
91 } 93 }
92 body = parseMail(mailmsg); 94 body = parseMail(mailmsg);
93 95
94 /* clean up */ 96 /* clean up */
95 if (mailmsg) 97 if (mailmsg)
96 mailmessage_free(mailmsg); 98 mailmessage_free(mailmsg);
97 if (message) 99 if (message)
98 free(message); 100 free(message);
99 101
100 return body; 102 return body;
101} 103}
102 104
103void POP3wrapper::listMessages(const QString &, QValueList<Opie::Core::OSmartPointer<RecMail> > &target, int maxSizeInKb ) 105void POP3wrapper::listMessages(const QString &, Q3ValueList<Opie::Core::OSmartPointer<RecMail> > &target, int maxSizeInKb )
104{ 106{
105 login(); 107 login();
106 if (!m_pop3) 108 if (!m_pop3)
107 return; 109 return;
108 uint32_t res_messages,res_recent,res_unseen; 110 uint32_t res_messages,res_recent,res_unseen;
109 mailsession_status_folder(m_pop3->sto_session,"INBOX",&res_messages,&res_recent,&res_unseen); 111 mailsession_status_folder(m_pop3->sto_session,"INBOX",&res_messages,&res_recent,&res_unseen);
110 parseList(target,m_pop3->sto_session,"INBOX", false, maxSizeInKb); 112 parseList(target,m_pop3->sto_session,"INBOX", false, maxSizeInKb);
111 Global::statusMessage( i18n("Mailbox contains %1 mail(s)").arg(res_messages)); 113 Global::statusMessage( i18n("Mailbox contains %1 mail(s)").arg(res_messages));
112} 114}
113 115
114void POP3wrapper::login() 116void POP3wrapper::login()
115{ 117{
116 if (account->getOffline()) 118 if (account->getOffline())
117 return; 119 return;
118 /* we'll hold the line */ 120 /* we'll hold the line */
119 if ( m_pop3 != NULL ) 121 if ( m_pop3 != NULL )
120 return; 122 return;
121 123
122 QString server,user, pass; 124 QString server,user, pass;
123 uint16_t port; 125 uint16_t port;
124 int err = MAILPOP3_NO_ERROR; 126 int err = MAILPOP3_NO_ERROR;
125 127
126 server = account->getServer(); 128 server = account->getServer();
127 port = account->getPort().toUInt(); 129 port = account->getPort().toUInt();
128 130
129 if ( account->getUser().isEmpty() || account->getPassword().isEmpty() ) { 131 if ( account->getUser().isEmpty() || account->getPassword().isEmpty() ) {
130 qApp->processEvents(); 132 qApp->processEvents();
131 LoginDialog login( account->getUser(), account->getPassword(), NULL, 0, true ); 133 LoginDialog login( account->getUser(), account->getPassword(), NULL, 0, true );
132 login.show(); 134 login.show();
133 if ( QDialog::Accepted == login.exec() ) { 135 if ( QDialog::Accepted == login.exec() ) {
134 // ok 136 // ok
135 user = login.getUser(); 137 user = login.getUser();
136 pass = login.getPassword(); 138 pass = login.getPassword();
137 } else { 139 } else {
138 // cancel 140 // cancel
139 ; // odebug << "POP3: Login canceled" << oendl; 141 ; // odebug << "POP3: Login canceled" << oendl;
140 return; 142 return;
141 } 143 }
142 } else { 144 } else {
143 user = account->getUser(); 145 user = account->getUser();
144 pass = account->getPassword(); 146 pass = account->getPassword();
145 } 147 }
146 // bool ssl = account->getSSL(); 148 // bool ssl = account->getSSL();
147 149
148 m_pop3=mailstorage_new(NULL); 150 m_pop3=mailstorage_new(NULL);
149 int conntypeset = account->ConnectionType(); 151 int conntypeset = account->ConnectionType();
150 int conntype = 0; 152 int conntype = 0;
151 if ( conntypeset == 3 ) { 153 if ( conntypeset == 3 ) {
152 conntype = CONNECTION_TYPE_COMMAND; 154 conntype = CONNECTION_TYPE_COMMAND;
153 } else if ( conntypeset == 2 ) { 155 } else if ( conntypeset == 2 ) {
154 conntype = CONNECTION_TYPE_TLS; 156 conntype = CONNECTION_TYPE_TLS;
155 } else if ( conntypeset == 1 ) { 157 } else if ( conntypeset == 1 ) {
156 conntype = CONNECTION_TYPE_STARTTLS; 158 conntype = CONNECTION_TYPE_STARTTLS;
157 } else if ( conntypeset == 0 ) { 159 } else if ( conntypeset == 0 ) {
158 conntype = CONNECTION_TYPE_TRY_STARTTLS; 160 conntype = CONNECTION_TYPE_TRY_STARTTLS;
159 } 161 }
160 162
161 //(ssl?CONNECTION_TYPE_TLS:CONNECTION_TYPE_PLAIN); 163 //(ssl?CONNECTION_TYPE_TLS:CONNECTION_TYPE_PLAIN);
162 164
163 pop3_mailstorage_init(m_pop3,(char*)server.latin1(), port, NULL, conntype, POP3_AUTH_TYPE_PLAIN, 165 pop3_mailstorage_init(m_pop3,(char*)server.latin1(), port, NULL, conntype, POP3_AUTH_TYPE_PLAIN,
164 (char*)user.latin1(),(char*)pass.latin1(),0,0,0); 166 (char*)user.latin1(),(char*)pass.latin1(),0,0,0);
165 167
166 err = mailstorage_connect(m_pop3); 168 err = mailstorage_connect(m_pop3);
167 if (err != MAIL_NO_ERROR) { 169 if (err != MAIL_NO_ERROR) {
168 ; // odebug << QString( "FEHLERNUMMER %1" ).arg( err ) << oendl; 170 ; // odebug << QString( "FEHLERNUMMER %1" ).arg( err ) << oendl;
169 Global::statusMessage(i18n("Error %1 initializing folder").arg( err )); 171 Global::statusMessage(i18n("Error %1 initializing folder").arg( err ));
170 mailstorage_free(m_pop3); 172 mailstorage_free(m_pop3);
171 m_pop3 = 0; 173 m_pop3 = 0;
172 } else { 174 } else {
173 mailsession * session = m_pop3->sto_session; 175 mailsession * session = m_pop3->sto_session;
174 mailpop3 * mail = ( ( pop3_session_state_data * )session->sess_data )->pop3_session; 176 mailpop3 * mail = ( ( pop3_session_state_data * )session->sess_data )->pop3_session;
175 if (mail) { 177 if (mail) {
176 mail->pop3_progr_fun = &pop3_progress; 178 mail->pop3_progr_fun = &pop3_progress;
177 } 179 }
178 } 180 }
179} 181}
180 182
181void POP3wrapper::logout() 183void POP3wrapper::logout()
182{ 184{
183 if ( m_pop3 == NULL ) 185 if ( m_pop3 == NULL )
184 return; 186 return;
185 mailstorage_free(m_pop3); 187 mailstorage_free(m_pop3);
186 m_pop3 = 0; 188 m_pop3 = 0;
187} 189}
188 190
189 191
190QValueList<Opie::Core::OSmartPointer<Folder> >* POP3wrapper::listFolders() { 192Q3ValueList<Opie::Core::OSmartPointer<Folder> >* POP3wrapper::listFolders() {
191 QValueList<Opie::Core::OSmartPointer<Folder> >* folders = new QValueList<FolderP>(); 193 Q3ValueList<Opie::Core::OSmartPointer<Folder> >* folders = new Q3ValueList<FolderP>();
192 FolderP inb=new Folder("INBOX","/"); 194 FolderP inb=new Folder("INBOX","/");
193 folders->append(inb); 195 folders->append(inb);
194 return folders; 196 return folders;
195} 197}
196 198
197void POP3wrapper::deleteMailList(const QValueList<RecMailP>&target) 199void POP3wrapper::deleteMailList(const Q3ValueList<RecMailP>&target)
198{ 200{
199 login(); 201 login();
200 if (!m_pop3) 202 if (!m_pop3)
201 return; 203 return;
202 int iii = 0; 204 int iii = 0;
203 int count = target.count(); 205 int count = target.count();
204 206
205 QProgressBar wid ( count ); 207 Q3ProgressBar wid ( count );
206 wid.setCaption( i18n("Deleting ...")); 208 wid.setCaption( i18n("Deleting ..."));
207 wid.show(); 209 wid.show();
208 while (iii < count ) { 210 while (iii < count ) {
209 Global::statusMessage(i18n("Delete message %1 of %2").arg(iii).arg(count)); 211 Global::statusMessage(i18n("Delete message %1 of %2").arg(iii).arg(count));
210 wid.setProgress( iii ); 212 wid.setProgress( iii );
211 wid.raise(); 213 wid.raise();
212 qApp->processEvents(); 214 qApp->processEvents();
213 //qDebug("delete "); 215 //qDebug("delete ");
214 RecMailP mail = (*target.at( iii )); 216 RecMailP mail = (*target.at( iii ));
215 int err = mailsession_remove_message(m_pop3->sto_session,mail->getNumber()); 217 int err = mailsession_remove_message(m_pop3->sto_session,mail->getNumber());
216 if (err != MAIL_NO_ERROR) { 218 if (err != MAIL_NO_ERROR) {
217 Global::statusMessage(i18n("Error deleting mail")); 219 Global::statusMessage(i18n("Error deleting mail"));
218 } 220 }
219 ++iii; 221 ++iii;
220 } 222 }
221} 223}
222void POP3wrapper::deleteMail(const RecMailP&mail) { 224void POP3wrapper::deleteMail(const RecMailP&mail) {
223 login(); 225 login();
224 if (!m_pop3) 226 if (!m_pop3)
225 return; 227 return;
226 int err = mailsession_remove_message(m_pop3->sto_session,mail->getNumber()); 228 int err = mailsession_remove_message(m_pop3->sto_session,mail->getNumber());
227 if (err != MAIL_NO_ERROR) { 229 if (err != MAIL_NO_ERROR) {
228 Global::statusMessage(i18n("error deleting mail")); 230 Global::statusMessage(i18n("error deleting mail"));
229 } 231 }
230} 232}
231 233
232void POP3wrapper::answeredMail(const RecMailP&) {} 234void POP3wrapper::answeredMail(const RecMailP&) {}
233 235
234int POP3wrapper::deleteAllMail(const FolderP&) { 236int POP3wrapper::deleteAllMail(const FolderP&) {
235 login(); 237 login();
236 if (!m_pop3) 238 if (!m_pop3)
237 return 0; 239 return 0;
238 int res = 1; 240 int res = 1;
239 241
240 uint32_t result = 0; 242 uint32_t result = 0;
241 int err = mailsession_messages_number(m_pop3->sto_session,NULL,&result); 243 int err = mailsession_messages_number(m_pop3->sto_session,NULL,&result);
242 if (err != MAIL_NO_ERROR) { 244 if (err != MAIL_NO_ERROR) {
243 Global::statusMessage(i18n("Error getting folder info")); 245 Global::statusMessage(i18n("Error getting folder info"));
244 return 0; 246 return 0;
245 } 247 }
246 248
247 249
248 250
249 QProgressBar wid ( result ); 251 Q3ProgressBar wid ( result );
250 wid.setCaption( i18n("Deleting ...")); 252 wid.setCaption( i18n("Deleting ..."));
251 wid.show(); 253 wid.show();
252 for (unsigned int i = 0; i < result; ++i) { 254 for (unsigned int i = 0; i < result; ++i) {
253 Global::statusMessage(i18n("Delete message %1 of %2").arg(i).arg(result)); 255 Global::statusMessage(i18n("Delete message %1 of %2").arg(i).arg(result));
254 wid.setProgress( i ); 256 wid.setProgress( i );
255 wid.raise(); 257 wid.raise();
256 qApp->processEvents(); 258 qApp->processEvents();
257 259
258 err = mailsession_remove_message(m_pop3->sto_session,i+1); 260 err = mailsession_remove_message(m_pop3->sto_session,i+1);
259 if (err != MAIL_NO_ERROR) { 261 if (err != MAIL_NO_ERROR) {
260 Global::statusMessage(i18n("Error deleting mail %1").arg(i+1)); 262 Global::statusMessage(i18n("Error deleting mail %1").arg(i+1));
261 res=0; 263 res=0;
262 } 264 }
263 break; 265 break;
264 } 266 }
265 return res; 267 return res;
266} 268}
267 269
268void POP3wrapper::statusFolder(folderStat&target_stat,const QString&) { 270void POP3wrapper::statusFolder(folderStat&target_stat,const QString&) {
269 login(); 271 login();
270 target_stat.message_count = 0; 272 target_stat.message_count = 0;
271 target_stat.message_unseen = 0; 273 target_stat.message_unseen = 0;
272 target_stat.message_recent = 0; 274 target_stat.message_recent = 0;
273 if (!m_pop3) 275 if (!m_pop3)
274 return; 276 return;
275 int r = mailsession_status_folder(m_pop3->sto_session,0,&target_stat.message_count, 277 int r = mailsession_status_folder(m_pop3->sto_session,0,&target_stat.message_count,
276 &target_stat.message_recent,&target_stat.message_unseen); 278 &target_stat.message_recent,&target_stat.message_unseen);
277 if (r != MAIL_NO_ERROR) { 279 if (r != MAIL_NO_ERROR) {
278 ; // odebug << "error getting folter status." << oendl; 280 ; // odebug << "error getting folter status." << oendl;
279 } 281 }
280} 282}
281 283
282encodedString* POP3wrapper::fetchRawBody(const RecMailP&mail) { 284encodedString* POP3wrapper::fetchRawBody(const RecMailP&mail) {
283 char*target=0; 285 char*target=0;
284 size_t length=0; 286 size_t length=0;
285 encodedString*res = 0; 287 encodedString*res = 0;
286 mailmessage * mailmsg = 0; 288 mailmessage * mailmsg = 0;
287 int err = mailsession_get_message(m_pop3->sto_session, mail->getNumber(), &mailmsg); 289 int err = mailsession_get_message(m_pop3->sto_session, mail->getNumber(), &mailmsg);
288 err = mailmessage_fetch(mailmsg,&target,&length); 290 err = mailmessage_fetch(mailmsg,&target,&length);
289 if (mailmsg) 291 if (mailmsg)
290 mailmessage_free(mailmsg); 292 mailmessage_free(mailmsg);
291 if (target) { 293 if (target) {
292 res = new encodedString(target,length); 294 res = new encodedString(target,length);
293 } 295 }
294 return res; 296 return res;
295} 297}
296 298
297MAILLIB::ATYPE POP3wrapper::getType()const { 299MAILLIB::ATYPE POP3wrapper::getType()const {
298 return account->getType(); 300 return account->getType();
299} 301}
300 302
301const QString&POP3wrapper::getName()const{ 303const QString&POP3wrapper::getName()const{
302 return account->getAccountName(); 304 return account->getAccountName();
303} 305}
diff --git a/kmicromail/libmailwrapper/pop3wrapper.h b/kmicromail/libmailwrapper/pop3wrapper.h
index ebc2fc7..a077877 100644
--- a/kmicromail/libmailwrapper/pop3wrapper.h
+++ b/kmicromail/libmailwrapper/pop3wrapper.h
@@ -1,44 +1,46 @@
1// CHANGED 2004-09-31 Lutz Rogowski 1// CHANGED 2004-09-31 Lutz Rogowski
2#ifndef __POP3WRAPPER 2#ifndef __POP3WRAPPER
3#define __POP3WRAPPER 3#define __POP3WRAPPER
4 4
5#include "mailwrapper.h" 5#include "mailwrapper.h"
6#include "genericwrapper.h" 6#include "genericwrapper.h"
7#include <qstring.h> 7#include <qstring.h>
8//Added by qt3to4:
9#include <Q3ValueList>
8 10
9class encodedString; 11class encodedString;
10struct mailstorage; 12struct mailstorage;
11struct mailfolder; 13struct mailfolder;
12 14
13class POP3wrapper : public Genericwrapper 15class POP3wrapper : public Genericwrapper
14{ 16{
15 Q_OBJECT 17 Q_OBJECT
16 18
17public: 19public:
18 POP3wrapper( POP3account *a ); 20 POP3wrapper( POP3account *a );
19 virtual ~POP3wrapper(); 21 virtual ~POP3wrapper();
20 /* mailbox will be ignored */ 22 /* mailbox will be ignored */
21 virtual void listMessages(const QString & mailbox, QValueList<Opie::Core::OSmartPointer<RecMail> > &target, int maxSizeInKb = 0 ); 23 virtual void listMessages(const QString & mailbox, Q3ValueList<Opie::Core::OSmartPointer<RecMail> > &target, int maxSizeInKb = 0 );
22 virtual QValueList<Opie::Core::OSmartPointer<Folder> >* listFolders(); 24 virtual Q3ValueList<Opie::Core::OSmartPointer<Folder> >* listFolders();
23 /* mailbox will be ignored */ 25 /* mailbox will be ignored */
24 virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX"); 26 virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX");
25 27
26 virtual void deleteMail(const RecMailP&mail); 28 virtual void deleteMail(const RecMailP&mail);
27 virtual void deleteMailList(const QValueList<RecMailP>&target); 29 virtual void deleteMailList(const Q3ValueList<RecMailP>&target);
28 virtual void answeredMail(const RecMailP&mail); 30 virtual void answeredMail(const RecMailP&mail);
29 virtual int deleteAllMail(const Opie::Core::OSmartPointer<Folder>&); 31 virtual int deleteAllMail(const Opie::Core::OSmartPointer<Folder>&);
30 32
31 virtual RecBodyP fetchBody( const RecMailP &mail ); 33 virtual RecBodyP fetchBody( const RecMailP &mail );
32 virtual encodedString* fetchRawBody(const RecMailP&mail); 34 virtual encodedString* fetchRawBody(const RecMailP&mail);
33 virtual void logout(); 35 virtual void logout();
34 virtual MAILLIB::ATYPE getType()const; 36 virtual MAILLIB::ATYPE getType()const;
35 virtual const QString&getName()const; 37 virtual const QString&getName()const;
36 static void pop3_progress( size_t current, size_t maximum ); 38 static void pop3_progress( size_t current, size_t maximum );
37 virtual Account* getAccount() { return account; }; 39 virtual Account* getAccount() { return account; };
38protected: 40protected:
39 void login(); 41 void login();
40 POP3account *account; 42 POP3account *account;
41 mailstorage*m_pop3; 43 mailstorage*m_pop3;
42}; 44};
43 45
44#endif 46#endif
diff --git a/kmicromail/libmailwrapper/sendmailprogress.cpp b/kmicromail/libmailwrapper/sendmailprogress.cpp
index 20dfe9b..6cd6409 100644
--- a/kmicromail/libmailwrapper/sendmailprogress.cpp
+++ b/kmicromail/libmailwrapper/sendmailprogress.cpp
@@ -1,48 +1,48 @@
1#include "sendmailprogress.h" 1#include "sendmailprogress.h"
2#include <qprogressbar.h> 2#include <q3progressbar.h>
3#include <qlabel.h> 3#include <qlabel.h>
4#include <klocale.h> 4#include <klocale.h>
5 5
6progressMailSend::progressMailSend(QWidget*parent, const char * name) 6progressMailSend::progressMailSend(QWidget*parent, const char * name)
7 :progressMailSendUI(parent,name,true),m_current_mail(0),m_current_single(0),m_max_mail(0),m_max_single(0) 7 :progressMailSendUI(parent,name,true),m_current_mail(0),m_current_single(0),m_max_mail(0),m_max_single(0)
8{ 8{
9} 9}
10 10
11progressMailSend::~progressMailSend() 11progressMailSend::~progressMailSend()
12{ 12{
13} 13}
14 14
15void progressMailSend::setMaxMails(unsigned int aMaxMails) 15void progressMailSend::setMaxMails(unsigned int aMaxMails)
16{ 16{
17 m_max_mail = aMaxMails; 17 m_max_mail = aMaxMails;
18 allMailProgressBar->setTotalSteps(aMaxMails); 18 allMailProgressBar->setTotalSteps(aMaxMails);
19 setMails(); 19 setMails();
20} 20}
21 21
22void progressMailSend::setCurrentMails(unsigned int aCurrent) 22void progressMailSend::setCurrentMails(unsigned int aCurrent)
23{ 23{
24 m_current_mail = aCurrent; 24 m_current_mail = aCurrent;
25 allMailProgressBar->setProgress(aCurrent); 25 allMailProgressBar->setProgress(aCurrent);
26 setMails(); 26 setMails();
27} 27}
28 28
29void progressMailSend::setSingleMail(unsigned int aCurrent,unsigned int aMax) 29void progressMailSend::setSingleMail(unsigned int aCurrent,unsigned int aMax)
30{ 30{
31 m_current_single = aCurrent; 31 m_current_single = aCurrent;
32 m_max_single = aMax; 32 m_max_single = aMax;
33 setSingle(); 33 setSingle();
34} 34}
35 35
36void progressMailSend::setSingle() 36void progressMailSend::setSingle()
37{ 37{
38 QString text = QString(i18n("%1 of %2 bytes send")).arg(m_current_single).arg(m_max_single); 38 QString text = QString(i18n("%1 of %2 bytes send")).arg(m_current_single).arg(m_max_single);
39 singleMailLabel->setText(text); 39 singleMailLabel->setText(text);
40 singleMailProgressBar->setTotalSteps(m_max_single); 40 singleMailProgressBar->setTotalSteps(m_max_single);
41 singleMailProgressBar->setProgress(m_current_single); 41 singleMailProgressBar->setProgress(m_current_single);
42} 42}
43 43
44void progressMailSend::setMails() 44void progressMailSend::setMails()
45{ 45{
46 QString text = QString(i18n("Sending mail %1 of %2")).arg(m_current_mail+1).arg(m_max_mail); 46 QString text = QString(i18n("Sending mail %1 of %2")).arg(m_current_mail+1).arg(m_max_mail);
47 allMailLabel->setText(text); 47 allMailLabel->setText(text);
48} 48}
diff --git a/kmicromail/libmailwrapper/settings.cpp b/kmicromail/libmailwrapper/settings.cpp
index 9436d43..fc01528 100644
--- a/kmicromail/libmailwrapper/settings.cpp
+++ b/kmicromail/libmailwrapper/settings.cpp
@@ -1,133 +1,133 @@
1#include <stdlib.h> 1#include <stdlib.h>
2#include <qdir.h> 2#include <qdir.h>
3 3
4#include <qtextcodec.h> 4#include <qtextcodec.h>
5#include <qtextstream.h> 5#include <q3textstream.h>
6#include <qfile.h> 6#include <qfile.h>
7 7
8//#include <opie2/odebug.h> 8//#include <opie2/odebug.h>
9#include <kconfig.h> 9#include <kconfig.h>
10 10
11#include <kstandarddirs.h> 11#include <kstandarddirs.h>
12#include "settings.h" 12#include "settings.h"
13//#include "defines.h" 13//#include "defines.h"
14 14
15#define IMAP_PORT "143" 15#define IMAP_PORT "143"
16#define IMAP_SSL_PORT "993" 16#define IMAP_SSL_PORT "993"
17#define SMTP_PORT "25" 17#define SMTP_PORT "25"
18#define SMTP_SSL_PORT "465" 18#define SMTP_SSL_PORT "465"
19#define POP3_PORT "110" 19#define POP3_PORT "110"
20#define POP3_SSL_PORT "995" 20#define POP3_SSL_PORT "995"
21#define NNTP_PORT "119" 21#define NNTP_PORT "119"
22#define NNTP_SSL_PORT "563" 22#define NNTP_SSL_PORT "563"
23 23
24 24
25Settings::Settings() 25Settings::Settings()
26 : QObject() 26 : QObject()
27{ 27{
28 accounts.setAutoDelete( true ); ; 28 accounts.setAutoDelete( true ); ;
29 updateAccounts(); 29 updateAccounts();
30 //qDebug("++++++++++++++++++new settings "); 30 //qDebug("++++++++++++++++++new settings ");
31} 31}
32 32
33void Settings::checkDirectory() 33void Settings::checkDirectory()
34{ 34{
35 return; 35 return;
36 locateLocal("data", "kopiemail" ); 36 locateLocal("data", "kopiemail" );
37 /* 37 /*
38 if ( !QDir( (QString) getenv( "HOME" ) + "/Applications/opiemail/" ).exists() ) { 38 if ( !QDir( (QString) getenv( "HOME" ) + "/Applications/opiemail/" ).exists() ) {
39 system( "mkdir -p $HOME/Applications/opiemail" ); 39 system( "mkdir -p $HOME/Applications/opiemail" );
40 qDebug("$HOME/Applications/opiemail created "); 40 qDebug("$HOME/Applications/opiemail created ");
41 } 41 }
42 */ 42 */
43} 43}
44 44
45QList<Account> Settings::getAccounts() 45QList<Account> Settings::getAccounts()
46{ 46{
47 return accounts; 47 return accounts;
48} 48}
49 49
50void Settings::addAccount( Account *account ) 50void Settings::addAccount( Account *account )
51{ 51{
52 accounts.append( account ); 52 accounts.append( account );
53} 53}
54 54
55void Settings::delAccount( Account *account ) 55void Settings::delAccount( Account *account )
56{ 56{
57 account->remove(); 57 account->remove();
58 accounts.remove( account ); 58 accounts.remove( account );
59} 59}
60 60
61void Settings::updateAccounts() 61void Settings::updateAccounts()
62{ 62{
63 accounts.clear(); 63 accounts.clear();
64 QDir dir( locateLocal("data", "kopiemail" ) ); 64 QDir dir( locateLocal("data", "kopiemail" ) );
65 QStringList::Iterator it; 65 QStringList::Iterator it;
66 66
67 QStringList imap = dir.entryList( "imap-*" ); 67 QStringList imap = dir.entryList( "imap-*" );
68 for ( it = imap.begin(); it != imap.end(); it++ ) { 68 for ( it = imap.begin(); it != imap.end(); it++ ) {
69 IMAPaccount *account = new IMAPaccount( (*it).replace(0, 5, "") ); 69 IMAPaccount *account = new IMAPaccount( (*it).replace(0, 5, "") );
70 accounts.append( account ); 70 accounts.append( account );
71 } 71 }
72 72
73 QStringList pop3 = dir.entryList( "pop3-*" ); 73 QStringList pop3 = dir.entryList( "pop3-*" );
74 for ( it = pop3.begin(); it != pop3.end(); it++ ) { 74 for ( it = pop3.begin(); it != pop3.end(); it++ ) {
75 POP3account *account = new POP3account( (*it).replace(0, 5, "") ); 75 POP3account *account = new POP3account( (*it).replace(0, 5, "") );
76 accounts.append( account ); 76 accounts.append( account );
77 } 77 }
78 78
79 QStringList smtp = dir.entryList( "smtp-*" ); 79 QStringList smtp = dir.entryList( "smtp-*" );
80 for ( it = smtp.begin(); it != smtp.end(); it++ ) { 80 for ( it = smtp.begin(); it != smtp.end(); it++ ) {
81 SMTPaccount *account = new SMTPaccount( (*it).replace(0, 5, "") ); 81 SMTPaccount *account = new SMTPaccount( (*it).replace(0, 5, "") );
82 accounts.append( account ); 82 accounts.append( account );
83 } 83 }
84 84
85 QStringList nntp = dir.entryList( "nntp-*" ); 85 QStringList nntp = dir.entryList( "nntp-*" );
86 for ( it = nntp.begin(); it != nntp.end(); it++ ) { 86 for ( it = nntp.begin(); it != nntp.end(); it++ ) {
87 NNTPaccount *account = new NNTPaccount( (*it).replace(0, 5, "") ); 87 NNTPaccount *account = new NNTPaccount( (*it).replace(0, 5, "") );
88 accounts.append( account ); 88 accounts.append( account );
89 } 89 }
90 90
91 readAccounts(); 91 readAccounts();
92} 92}
93 93
94void Settings::saveAccounts() 94void Settings::saveAccounts()
95{ 95{
96 checkDirectory(); 96 checkDirectory();
97 Account *it; 97 Account *it;
98 98
99 for ( it = accounts.first(); it; it = accounts.next() ) { 99 for ( it = accounts.first(); it; it = accounts.next() ) {
100 it->save(); 100 it->save();
101 } 101 }
102} 102}
103 103
104void Settings::readAccounts() 104void Settings::readAccounts()
105{ 105{
106 checkDirectory(); 106 checkDirectory();
107 Account *it; 107 Account *it;
108 108
109 for ( it = accounts.first(); it; it = accounts.next() ) { 109 for ( it = accounts.first(); it; it = accounts.next() ) {
110 it->read(); 110 it->read();
111 } 111 }
112} 112}
113 113
114Account::Account() 114Account::Account()
115{ 115{
116 accountName = "changeMe"; 116 accountName = "changeMe";
117 type = MAILLIB::A_UNDEFINED; 117 type = MAILLIB::A_UNDEFINED;
118 ssl = false; 118 ssl = false;
119 connectionType = 1; 119 connectionType = 1;
120 offline = false; 120 offline = false;
121 maxMailSize = 0; 121 maxMailSize = 0;
122 leaveOnServer = false; 122 leaveOnServer = false;
123} 123}
124 124
125void Account::remove() 125void Account::remove()
126{ 126{
127 QFile file( getFileName() ); 127 QFile file( getFileName() );
128 file.remove(); 128 file.remove();
129} 129}
130 130
131void Account::setPasswordList(const QStringList &str) 131void Account::setPasswordList(const QStringList &str)
132{ 132{
133 password = ""; 133 password = "";
@@ -251,284 +251,284 @@ QString IMAPaccount::getFileName()
251{ 251{
252 return locateLocal("data", "kopiemail" ) +"/imap-" + file; 252 return locateLocal("data", "kopiemail" ) +"/imap-" + file;
253} 253}
254 254
255POP3account::POP3account() 255POP3account::POP3account()
256 : Account() 256 : Account()
257{ 257{
258 file = POP3account::getUniqueFileName(); 258 file = POP3account::getUniqueFileName();
259 accountName = "New POP3 Account"; 259 accountName = "New POP3 Account";
260 ssl = false; 260 ssl = false;
261 connectionType = 1; 261 connectionType = 1;
262 type = MAILLIB::A_POP3; 262 type = MAILLIB::A_POP3;
263 port = POP3_PORT; 263 port = POP3_PORT;
264} 264}
265 265
266POP3account::POP3account( QString filename ) 266POP3account::POP3account( QString filename )
267 : Account() 267 : Account()
268{ 268{
269 file = filename; 269 file = filename;
270 accountName = "New POP3 Account"; 270 accountName = "New POP3 Account";
271 ssl = false; 271 ssl = false;
272 connectionType = 1; 272 connectionType = 1;
273 type = MAILLIB::A_POP3; 273 type = MAILLIB::A_POP3;
274 port = POP3_PORT; 274 port = POP3_PORT;
275} 275}
276 276
277QString POP3account::getUniqueFileName() 277QString POP3account::getUniqueFileName()
278{ 278{
279 int num = 0; 279 int num = 0;
280 QString unique; 280 QString unique;
281 281
282 QDir dir( locateLocal("data", "kopiemail" ) ); 282 QDir dir( locateLocal("data", "kopiemail" ) );
283 283
284 QStringList imap = dir.entryList( "pop3-*" ); 284 QStringList imap = dir.entryList( "pop3-*" );
285 do { 285 do {
286 unique.setNum( num++ ); 286 unique.setNum( num++ );
287 } while ( imap.contains( "pop3-" + unique ) > 0 ); 287 } while ( imap.contains( "pop3-" + unique ) > 0 );
288 288
289 return unique; 289 return unique;
290} 290}
291 291
292void POP3account::read() 292void POP3account::read()
293{ 293{
294 KConfig *conf = new KConfig( getFileName()); 294 KConfig *conf = new KConfig( getFileName());
295 conf->setGroup( "POP3 Account" ); 295 conf->setGroup( "POP3 Account" );
296 accountName = conf->readEntry( "Account" ); 296 accountName = conf->readEntry( "Account" );
297 server = conf->readEntry( "Server" ); 297 server = conf->readEntry( "Server" );
298 port = conf->readEntry( "Port" ); 298 port = conf->readEntry( "Port" );
299 ssl = conf->readBoolEntry( "SSL" ); 299 ssl = conf->readBoolEntry( "SSL" );
300 connectionType = conf->readNumEntry( "ConnectionType" ); 300 connectionType = conf->readNumEntry( "ConnectionType" );
301 user = conf->readEntry( "User" ); 301 user = conf->readEntry( "User" );
302 //password = conf->readEntryCrypt( "Password" ); 302 //password = conf->readEntryCrypt( "Password" );
303 setPasswordList( conf->readListEntry( "FolderHistory")); 303 setPasswordList( conf->readListEntry( "FolderHistory"));
304 offline = conf->readBoolEntry("Offline",false); 304 offline = conf->readBoolEntry("Offline",false);
305 localFolder = conf->readEntry( "LocalFolder" ); 305 localFolder = conf->readEntry( "LocalFolder" );
306 maxMailSize = conf->readNumEntry( "MaxSize",0 ); 306 maxMailSize = conf->readNumEntry( "MaxSize",0 );
307 int lf = conf->readNumEntry( "LastFetch",0 ); 307 int lf = conf->readNumEntry( "LastFetch",0 );
308 QDateTime dt ( QDate ( 2004, 1, 1 ), QTime( 0,0,0) ); 308 QDateTime dt ( QDate ( 2004, 1, 1 ), QTime( 0,0,0) );
309 leaveOnServer = conf->readBoolEntry("LeaveOnServer",false); 309 leaveOnServer = conf->readBoolEntry("LeaveOnServer",false);
310 lastFetch = dt.addSecs( lf ); 310 lastFetch = dt.addSecs( lf );
311 delete conf; 311 delete conf;
312} 312}
313 313
314void POP3account::save() 314void POP3account::save()
315{ 315{
316 Settings::checkDirectory(); 316 Settings::checkDirectory();
317 317
318 KConfig *conf = new KConfig( getFileName() ); 318 KConfig *conf = new KConfig( getFileName() );
319 conf->setGroup( "POP3 Account" ); 319 conf->setGroup( "POP3 Account" );
320 conf->writeEntry( "Account", accountName ); 320 conf->writeEntry( "Account", accountName );
321 conf->writeEntry( "Server", server ); 321 conf->writeEntry( "Server", server );
322 conf->writeEntry( "Port", port ); 322 conf->writeEntry( "Port", port );
323 conf->writeEntry( "SSL", ssl ); 323 conf->writeEntry( "SSL", ssl );
324 conf->writeEntry( "ConnectionType", connectionType ); 324 conf->writeEntry( "ConnectionType", connectionType );
325 conf->writeEntry( "User", user ); 325 conf->writeEntry( "User", user );
326 //conf->writeEntryCrypt( "Password", password ); 326 //conf->writeEntryCrypt( "Password", password );
327 conf->writeEntry( "FolderHistory",getPasswordList() ); 327 conf->writeEntry( "FolderHistory",getPasswordList() );
328 conf->writeEntry( "Offline",offline); 328 conf->writeEntry( "Offline",offline);
329 conf->writeEntry( "LocalFolder", localFolder ); 329 conf->writeEntry( "LocalFolder", localFolder );
330 conf->writeEntry( "MaxSize", maxMailSize ); 330 conf->writeEntry( "MaxSize", maxMailSize );
331 QDateTime dt ( QDate ( 2004, 1, 1 ), QTime( 0,0,0) ); 331 QDateTime dt ( QDate ( 2004, 1, 1 ), QTime( 0,0,0) );
332 int lf = dt.secsTo ( lastFetch ); 332 int lf = dt.secsTo ( lastFetch );
333 conf->writeEntry( "LastFetch", lf ); 333 conf->writeEntry( "LastFetch", lf );
334 conf->writeEntry( "LeaveOnServer", leaveOnServer); 334 conf->writeEntry( "LeaveOnServer", leaveOnServer);
335 conf->sync(); 335 conf->sync();
336 delete conf; 336 delete conf;
337} 337}
338 338
339 339
340QString POP3account::getFileName() 340QString POP3account::getFileName()
341{ 341{
342 return locateLocal("data", "kopiemail" ) +"/pop3-" + file; 342 return locateLocal("data", "kopiemail" ) +"/pop3-" + file;
343} 343}
344 344
345SMTPaccount::SMTPaccount() 345SMTPaccount::SMTPaccount()
346 : Account() 346 : Account()
347{ 347{
348 file = SMTPaccount::getUniqueFileName(); 348 file = SMTPaccount::getUniqueFileName();
349 accountName = "New SMTP Account"; 349 accountName = "New SMTP Account";
350 ssl = false; 350 ssl = false;
351 connectionType = 1; 351 connectionType = 1;
352 login = false; 352 login = false;
353 useCC = false; 353 useCC = false;
354 useBCC = false; 354 useBCC = false;
355 useReply = false; 355 useReply = false;
356 type = MAILLIB::A_SMTP; 356 type = MAILLIB::A_SMTP;
357 port = SMTP_PORT; 357 port = SMTP_PORT;
358} 358}
359 359
360SMTPaccount::SMTPaccount( QString filename ) 360SMTPaccount::SMTPaccount( QString filename )
361 : Account() 361 : Account()
362{ 362{
363 file = filename; 363 file = filename;
364 accountName = "New SMTP Account"; 364 accountName = "New SMTP Account";
365 ssl = false; 365 ssl = false;
366 connectionType = 1; 366 connectionType = 1;
367 login = false; 367 login = false;
368 type = MAILLIB::A_SMTP; 368 type = MAILLIB::A_SMTP;
369 port = SMTP_PORT; 369 port = SMTP_PORT;
370} 370}
371 371
372QString SMTPaccount::getSignature() 372QString SMTPaccount::getSignature()
373{ 373{
374 QFileInfo fi ( signature ); 374 QFileInfo fi ( signature );
375 if ( ! fi.exists() ) 375 if ( ! fi.exists() )
376 return QString(); 376 return QString();
377 377
378 QFile file( signature ); 378 QFile file( signature );
379 if (!file.open( IO_ReadOnly ) ) { 379 if (!file.open( QIODevice::ReadOnly ) ) {
380 return QString(); 380 return QString();
381 381
382 } 382 }
383 QTextStream ts( &file ); 383 Q3TextStream ts( &file );
384 ts.setCodec( QTextCodec::codecForName("utf8") ); 384 ts.setCodec( QTextCodec::codecForName("utf8") );
385 QString text = ts.read(); 385 QString text = ts.read();
386 file.close(); 386 file.close();
387 387
388 return text; 388 return text;
389 389
390} 390}
391void SMTPaccount::setSignature( QString b ) 391void SMTPaccount::setSignature( QString b )
392{ 392{
393 393
394 QFileInfo fi ( signature ); 394 QFileInfo fi ( signature );
395 if ( ! fi.exists() ) { 395 if ( ! fi.exists() ) {
396 QString filedir( locateLocal("data", "kopiemail" ) ); 396 QString filedir( locateLocal("data", "kopiemail" ) );
397 signature = filedir+ "/" + getAccountName() +".sig"; 397 signature = filedir+ "/" + getAccountName() +".sig";
398 qDebug("new sig %s ", signature.latin1()); 398 qDebug("new sig %s ", signature.latin1());
399 save(); 399 save();
400 } 400 }
401 QFile fileIn( signature ); 401 QFile fileIn( signature );
402 if (!fileIn.open( IO_WriteOnly ) ) { 402 if (!fileIn.open( QIODevice::WriteOnly ) ) {
403 qDebug("OM: Cannot write signature file %s ", signature.latin1() ); 403 qDebug("OM: Cannot write signature file %s ", signature.latin1() );
404 return ; 404 return ;
405 } 405 }
406 QTextStream tsIn( &fileIn ); 406 Q3TextStream tsIn( &fileIn );
407 tsIn.setCodec( QTextCodec::codecForName("utf8") ); 407 tsIn.setCodec( QTextCodec::codecForName("utf8") );
408 tsIn << b ; 408 tsIn << b ;
409 fileIn.close(); 409 fileIn.close();
410} 410}
411QString SMTPaccount::getUniqueFileName() 411QString SMTPaccount::getUniqueFileName()
412{ 412{
413 int num = 0; 413 int num = 0;
414 QString unique; 414 QString unique;
415 415
416 QDir dir( locateLocal("data", "kopiemail" ) ); 416 QDir dir( locateLocal("data", "kopiemail" ) );
417 417
418 QStringList imap = dir.entryList( "smtp-*" ); 418 QStringList imap = dir.entryList( "smtp-*" );
419 do { 419 do {
420 unique.setNum( num++ ); 420 unique.setNum( num++ );
421 } while ( imap.contains( "smtp-" + unique ) > 0 ); 421 } while ( imap.contains( "smtp-" + unique ) > 0 );
422 422
423 return unique; 423 return unique;
424} 424}
425 425
426void SMTPaccount::read() 426void SMTPaccount::read()
427{ 427{
428 KConfig *conf = new KConfig( getFileName() ); 428 KConfig *conf = new KConfig( getFileName() );
429 conf->setGroup( "SMTP Account" ); 429 conf->setGroup( "SMTP Account" );
430 accountName = conf->readEntry( "Account" ); 430 accountName = conf->readEntry( "Account" );
431 server = conf->readEntry( "Server" ); 431 server = conf->readEntry( "Server" );
432 port = conf->readEntry( "Port" ); 432 port = conf->readEntry( "Port" );
433 ssl = conf->readBoolEntry( "SSL" ); 433 ssl = conf->readBoolEntry( "SSL" );
434 connectionType = conf->readNumEntry( "ConnectionType" ); 434 connectionType = conf->readNumEntry( "ConnectionType" );
435 login = conf->readBoolEntry( "Login" ); 435 login = conf->readBoolEntry( "Login" );
436 user = conf->readEntry( "User" ); 436 user = conf->readEntry( "User" );
437 signature = conf->readEntry( "SigFile" ); 437 signature = conf->readEntry( "SigFile" );
438 setPasswordList( conf->readListEntry( "FolderHistory")); 438 setPasswordList( conf->readListEntry( "FolderHistory"));
439 delete conf; 439 delete conf;
440} 440}
441 441
442void SMTPaccount::save() 442void SMTPaccount::save()
443{ 443{
444 Settings::checkDirectory(); 444 Settings::checkDirectory();
445 445
446 KConfig *conf = new KConfig( getFileName() ); 446 KConfig *conf = new KConfig( getFileName() );
447 conf->setGroup( "SMTP Account" ); 447 conf->setGroup( "SMTP Account" );
448 conf->writeEntry( "Account", accountName ); 448 conf->writeEntry( "Account", accountName );
449 conf->writeEntry( "Server", server ); 449 conf->writeEntry( "Server", server );
450 conf->writeEntry( "Port", port ); 450 conf->writeEntry( "Port", port );
451 conf->writeEntry( "SSL", ssl ); 451 conf->writeEntry( "SSL", ssl );
452 conf->writeEntry( "ConnectionType", connectionType ); 452 conf->writeEntry( "ConnectionType", connectionType );
453 conf->writeEntry( "Login", login ); 453 conf->writeEntry( "Login", login );
454 conf->writeEntry( "User", user ); 454 conf->writeEntry( "User", user );
455 conf->writeEntry( "SigFile", signature ); 455 conf->writeEntry( "SigFile", signature );
456 //conf->writeEntryCrypt( "Password", password ); 456 //conf->writeEntryCrypt( "Password", password );
457 conf->writeEntry( "FolderHistory",getPasswordList() ); 457 conf->writeEntry( "FolderHistory",getPasswordList() );
458 conf->sync(); 458 conf->sync();
459 delete conf; 459 delete conf;
460} 460}
461 461
462 462
463QString SMTPaccount::getFileName() 463QString SMTPaccount::getFileName()
464{ 464{
465 return locateLocal("data", "kopiemail" ) +"/smtp-" + file; 465 return locateLocal("data", "kopiemail" ) +"/smtp-" + file;
466} 466}
467 467
468NNTPaccount::NNTPaccount() 468NNTPaccount::NNTPaccount()
469 : Account() 469 : Account()
470{ 470{
471 file = NNTPaccount::getUniqueFileName(); 471 file = NNTPaccount::getUniqueFileName();
472 accountName = "New NNTP Account"; 472 accountName = "New NNTP Account";
473 ssl = false; 473 ssl = false;
474 login = false; 474 login = false;
475 type = MAILLIB::A_NNTP; 475 type = MAILLIB::A_NNTP;
476 port = NNTP_PORT; 476 port = NNTP_PORT;
477} 477}
478 478
479NNTPaccount::NNTPaccount( QString filename ) 479NNTPaccount::NNTPaccount( QString filename )
480 : Account() 480 : Account()
481{ 481{
482 file = filename; 482 file = filename;
483 accountName = "New NNTP Account"; 483 accountName = "New NNTP Account";
484 ssl = false; 484 ssl = false;
485 login = false; 485 login = false;
486 type = MAILLIB::A_NNTP; 486 type = MAILLIB::A_NNTP;
487 port = NNTP_PORT; 487 port = NNTP_PORT;
488} 488}
489 489
490QString NNTPaccount::getUniqueFileName() 490QString NNTPaccount::getUniqueFileName()
491{ 491{
492 int num = 0; 492 int num = 0;
493 QString unique; 493 QString unique;
494 494
495 QDir dir( locateLocal("data", "kopiemail" ) ); 495 QDir dir( locateLocal("data", "kopiemail" ) );
496 496
497 QStringList imap = dir.entryList( "nntp-*" ); 497 QStringList imap = dir.entryList( "nntp-*" );
498 do { 498 do {
499 unique.setNum( num++ ); 499 unique.setNum( num++ );
500 } while ( imap.contains( "nntp-" + unique ) > 0 ); 500 } while ( imap.contains( "nntp-" + unique ) > 0 );
501 501
502 return unique; 502 return unique;
503} 503}
504 504
505void NNTPaccount::read() 505void NNTPaccount::read()
506{ 506{
507 KConfig *conf = new KConfig( getFileName() ); 507 KConfig *conf = new KConfig( getFileName() );
508 conf->setGroup( "NNTP Account" ); 508 conf->setGroup( "NNTP Account" );
509 accountName = conf->readEntry( "Account" ); 509 accountName = conf->readEntry( "Account" );
510 server = conf->readEntry( "Server" ); 510 server = conf->readEntry( "Server" );
511 port = conf->readEntry( "Port" ); 511 port = conf->readEntry( "Port" );
512 ssl = conf->readBoolEntry( "SSL" ); 512 ssl = conf->readBoolEntry( "SSL" );
513 login = conf->readBoolEntry( "Login" ); 513 login = conf->readBoolEntry( "Login" );
514 user = conf->readEntry( "User" ); 514 user = conf->readEntry( "User" );
515 //password = conf->readEntryCrypt( "Password" ); 515 //password = conf->readEntryCrypt( "Password" );
516 setPasswordList( conf->readListEntry( "FolderHistory")); 516 setPasswordList( conf->readListEntry( "FolderHistory"));
517 subscribedGroups = conf->readListEntry( "Subscribed"); 517 subscribedGroups = conf->readListEntry( "Subscribed");
518 delete conf; 518 delete conf;
519} 519}
520 520
521void NNTPaccount::save() 521void NNTPaccount::save()
522{ 522{
523 Settings::checkDirectory(); 523 Settings::checkDirectory();
524 524
525 KConfig *conf = new KConfig( getFileName() ); 525 KConfig *conf = new KConfig( getFileName() );
526 conf->setGroup( "NNTP Account" ); 526 conf->setGroup( "NNTP Account" );
527 conf->writeEntry( "Account", accountName ); 527 conf->writeEntry( "Account", accountName );
528 conf->writeEntry( "Server", server ); 528 conf->writeEntry( "Server", server );
529 conf->writeEntry( "Port", port ); 529 conf->writeEntry( "Port", port );
530 conf->writeEntry( "SSL", ssl ); 530 conf->writeEntry( "SSL", ssl );
531 conf->writeEntry( "Login", login ); 531 conf->writeEntry( "Login", login );
532 conf->writeEntry( "User", user ); 532 conf->writeEntry( "User", user );
533 //conf->writeEntryCrypt( "Password", password ); 533 //conf->writeEntryCrypt( "Password", password );
534 conf->writeEntry( "FolderHistory",getPasswordList() ); 534 conf->writeEntry( "FolderHistory",getPasswordList() );
diff --git a/kmicromail/libmailwrapper/smtpwrapper.cpp b/kmicromail/libmailwrapper/smtpwrapper.cpp
index 7c813cc..2df55ff 100644
--- a/kmicromail/libmailwrapper/smtpwrapper.cpp
+++ b/kmicromail/libmailwrapper/smtpwrapper.cpp
@@ -1,139 +1,141 @@
1#include "smtpwrapper.h" 1#include "smtpwrapper.h"
2#include "mailwrapper.h" 2#include "mailwrapper.h"
3#include "abstractmail.h" 3#include "abstractmail.h"
4#include "logindialog.h" 4#include "logindialog.h"
5#include "mailtypes.h" 5#include "mailtypes.h"
6#include "sendmailprogress.h" 6#include "sendmailprogress.h"
7 7
8//#include <opie2/odebug.h> 8//#include <opie2/odebug.h>
9//#include <qt.h> 9//#include <qt.h>
10#include <qapplication.h> 10#include <qapplication.h>
11#include <qmessagebox.h> 11#include <qmessagebox.h>
12//Added by qt3to4:
13#include <Q3ValueList>
12#include <stdlib.h> 14#include <stdlib.h>
13#ifndef DESKTOP_VERSION 15#ifndef DESKTOP_VERSION
14//#include <qpe/config.h> 16//#include <qpe/config.h>
15#include <qpe/qcopenvelope_qws.h> 17#include <qpe/qcopenvelope_qws.h>
16#endif 18#endif
17#include <libetpan/libetpan.h> 19#include <libetpan/libetpan.h>
18#include <klocale.h> 20#include <klocale.h>
19#include <kglobal.h> 21#include <kglobal.h>
20#include <kconfig.h> 22#include <kconfig.h>
21 23
22 24
23using namespace Opie::Core; 25using namespace Opie::Core;
24progressMailSend*SMTPwrapper::sendProgress = 0; 26progressMailSend*SMTPwrapper::sendProgress = 0;
25 27
26SMTPwrapper::SMTPwrapper(SMTPaccount * aSmtp ) 28SMTPwrapper::SMTPwrapper(SMTPaccount * aSmtp )
27 : Generatemail() 29 : Generatemail()
28{ 30{
29 m_SmtpAccount = aSmtp; 31 m_SmtpAccount = aSmtp;
30 KConfig cfg( locateLocal("config", "kopiemailrc" ) ); 32 KConfig cfg( locateLocal("config", "kopiemailrc" ) );
31 cfg.setGroup( "Status" ); 33 cfg.setGroup( "Status" );
32 m_queuedMail = cfg.readNumEntry( "outgoing", 0 ); 34 m_queuedMail = cfg.readNumEntry( "outgoing", 0 );
33 emit queuedMails( m_queuedMail ); 35 emit queuedMails( m_queuedMail );
34 connect( this, SIGNAL( queuedMails(int) ), this, SLOT( emitQCop(int) ) ); 36 connect( this, SIGNAL( queuedMails(int) ), this, SLOT( emitQCop(int) ) );
35 m_smtp = 0; 37 m_smtp = 0;
36} 38}
37 39
38SMTPwrapper::~SMTPwrapper() 40SMTPwrapper::~SMTPwrapper()
39{ 41{
40 disc_server(); 42 disc_server();
41} 43}
42 44
43void SMTPwrapper::emitQCop( int queued ) { 45void SMTPwrapper::emitQCop( int queued ) {
44#ifndef DESKTOP_VERSION 46#ifndef DESKTOP_VERSION
45 // LR : not used in kde-pim 47 // LR : not used in kde-pim
46 //QCopEnvelope env( "QPE/Pim", "outgoingMails(int)" ); 48 //QCopEnvelope env( "QPE/Pim", "outgoingMails(int)" );
47 //env << queued; 49 //env << queued;
48#endif 50#endif
49} 51}
50 52
51QString SMTPwrapper::mailsmtpError( int errnum ) { 53QString SMTPwrapper::mailsmtpError( int errnum ) {
52 switch ( errnum ) { 54 switch ( errnum ) {
53 case MAILSMTP_NO_ERROR: 55 case MAILSMTP_NO_ERROR:
54 return i18n( "No error" ); 56 return i18n( "No error" );
55 case MAILSMTP_ERROR_UNEXPECTED_CODE: 57 case MAILSMTP_ERROR_UNEXPECTED_CODE:
56 return i18n( "Unexpected error code" ); 58 return i18n( "Unexpected error code" );
57 case MAILSMTP_ERROR_SERVICE_NOT_AVAILABLE: 59 case MAILSMTP_ERROR_SERVICE_NOT_AVAILABLE:
58 return i18n( "Service not available" ); 60 return i18n( "Service not available" );
59 case MAILSMTP_ERROR_STREAM: 61 case MAILSMTP_ERROR_STREAM:
60 return i18n( "Stream error" ); 62 return i18n( "Stream error" );
61 case MAILSMTP_ERROR_HOSTNAME: 63 case MAILSMTP_ERROR_HOSTNAME:
62 return i18n( "gethostname() failed" ); 64 return i18n( "gethostname() failed" );
63 case MAILSMTP_ERROR_NOT_IMPLEMENTED: 65 case MAILSMTP_ERROR_NOT_IMPLEMENTED:
64 return i18n( "Not implemented" ); 66 return i18n( "Not implemented" );
65 case MAILSMTP_ERROR_ACTION_NOT_TAKEN: 67 case MAILSMTP_ERROR_ACTION_NOT_TAKEN:
66 return i18n( "Error, action not taken" ); 68 return i18n( "Error, action not taken" );
67 case MAILSMTP_ERROR_EXCEED_STORAGE_ALLOCATION: 69 case MAILSMTP_ERROR_EXCEED_STORAGE_ALLOCATION:
68 return i18n( "Data exceeds storage allocation" ); 70 return i18n( "Data exceeds storage allocation" );
69 case MAILSMTP_ERROR_IN_PROCESSING: 71 case MAILSMTP_ERROR_IN_PROCESSING:
70 return i18n( "Error in processing" ); 72 return i18n( "Error in processing" );
71 case MAILSMTP_ERROR_STARTTLS_NOT_SUPPORTED: 73 case MAILSMTP_ERROR_STARTTLS_NOT_SUPPORTED:
72 return i18n( "Starttls not supported" ); 74 return i18n( "Starttls not supported" );
73 // case MAILSMTP_ERROR_INSUFFISANT_SYSTEM_STORAGE: 75 // case MAILSMTP_ERROR_INSUFFISANT_SYSTEM_STORAGE:
74 // return i18n( "Insufficient system storage" ); 76 // return i18n( "Insufficient system storage" );
75 case MAILSMTP_ERROR_MAILBOX_UNAVAILABLE: 77 case MAILSMTP_ERROR_MAILBOX_UNAVAILABLE:
76 return i18n( "Mailbox unavailable" ); 78 return i18n( "Mailbox unavailable" );
77 case MAILSMTP_ERROR_MAILBOX_NAME_NOT_ALLOWED: 79 case MAILSMTP_ERROR_MAILBOX_NAME_NOT_ALLOWED:
78 return i18n( "Mailbox name not allowed" ); 80 return i18n( "Mailbox name not allowed" );
79 case MAILSMTP_ERROR_BAD_SEQUENCE_OF_COMMAND: 81 case MAILSMTP_ERROR_BAD_SEQUENCE_OF_COMMAND:
80 return i18n( "Bad command sequence" ); 82 return i18n( "Bad command sequence" );
81 case MAILSMTP_ERROR_USER_NOT_LOCAL: 83 case MAILSMTP_ERROR_USER_NOT_LOCAL:
82 return i18n( "User not local" ); 84 return i18n( "User not local" );
83 case MAILSMTP_ERROR_TRANSACTION_FAILED: 85 case MAILSMTP_ERROR_TRANSACTION_FAILED:
84 return i18n( "Transaction failed" ); 86 return i18n( "Transaction failed" );
85 case MAILSMTP_ERROR_MEMORY: 87 case MAILSMTP_ERROR_MEMORY:
86 return i18n( "Memory error" ); 88 return i18n( "Memory error" );
87 case MAILSMTP_ERROR_CONNECTION_REFUSED: 89 case MAILSMTP_ERROR_CONNECTION_REFUSED:
88 return i18n( "Connection refused" ); 90 return i18n( "Connection refused" );
89 default: 91 default:
90 return i18n( "Unknown error code" ); 92 return i18n( "Unknown error code" );
91 } 93 }
92} 94}
93 95
94 96
95void SMTPwrapper::progress( size_t current, size_t maximum ) { 97void SMTPwrapper::progress( size_t current, size_t maximum ) {
96 if (SMTPwrapper::sendProgress) { 98 if (SMTPwrapper::sendProgress) {
97 SMTPwrapper::sendProgress->setSingleMail(current, maximum ); 99 SMTPwrapper::sendProgress->setSingleMail(current, maximum );
98 qApp->processEvents(); 100 qApp->processEvents();
99 } 101 }
100} 102}
101 103
102void SMTPwrapper::storeMail(const char*mail, size_t length, const QString&box) { 104void SMTPwrapper::storeMail(const char*mail, size_t length, const QString&box) {
103 if (!mail) 105 if (!mail)
104 return; 106 return;
105 QString localfolders = AbstractMail::defaultLocalfolder(); 107 QString localfolders = AbstractMail::defaultLocalfolder();
106 AbstractMail*wrap = AbstractMail::getWrapper(localfolders); 108 AbstractMail*wrap = AbstractMail::getWrapper(localfolders);
107 wrap->createMbox(box); 109 wrap->createMbox(box);
108 wrap->storeMessage(mail,length,box); 110 wrap->storeMessage(mail,length,box);
109 delete wrap; 111 delete wrap;
110} 112}
111 113
112bool SMTPwrapper::smtpSend( mailmime *mail,bool later) { 114bool SMTPwrapper::smtpSend( mailmime *mail,bool later) {
113 clist *rcpts = 0; 115 clist *rcpts = 0;
114 char *from, *data; 116 char *from, *data;
115 size_t size; 117 size_t size;
116 118
117 from = data = 0; 119 from = data = 0;
118 120
119 mailmessage * msg = 0; 121 mailmessage * msg = 0;
120 msg = mime_message_init(mail); 122 msg = mime_message_init(mail);
121 mime_message_set_tmpdir(msg,getenv( "HOME" )); 123 mime_message_set_tmpdir(msg,getenv( "HOME" ));
122 int r = mailmessage_fetch(msg,&data,&size); 124 int r = mailmessage_fetch(msg,&data,&size);
123 mime_message_detach_mime(msg); 125 mime_message_detach_mime(msg);
124 mailmessage_free(msg); 126 mailmessage_free(msg);
125 if (r != MAIL_NO_ERROR || !data) { 127 if (r != MAIL_NO_ERROR || !data) {
126 if (data) 128 if (data)
127 free(data); 129 free(data);
128 qDebug("Error fetching mime... "); 130 qDebug("Error fetching mime... ");
129 return false; 131 return false;
130 } 132 }
131 msg = 0; 133 msg = 0;
132 if (later) { 134 if (later) {
133 storeMail(data,size,"Outgoing"); 135 storeMail(data,size,"Outgoing");
134 if (data) 136 if (data)
135 free( data ); 137 free( data );
136 KConfig cfg( locateLocal("config", "kopiemailrc" ) ); 138 KConfig cfg( locateLocal("config", "kopiemailrc" ) );
137 cfg.setGroup( "Status" ); 139 cfg.setGroup( "Status" );
138 cfg.writeEntry( "outgoing", ++m_queuedMail ); 140 cfg.writeEntry( "outgoing", ++m_queuedMail );
139 emit queuedMails( m_queuedMail ); 141 emit queuedMails( m_queuedMail );
@@ -309,193 +311,193 @@ void SMTPwrapper::connect_server()
309 if ( result == 0 ) { 311 if ( result == 0 ) {
310 mailsmtp_free(m_smtp); 312 mailsmtp_free(m_smtp);
311 m_smtp = 0; 313 m_smtp = 0;
312 } 314 }
313} 315}
314 316
315void SMTPwrapper::disc_server() 317void SMTPwrapper::disc_server()
316{ 318{
317 if (m_smtp) { 319 if (m_smtp) {
318 mailsmtp_quit( m_smtp ); 320 mailsmtp_quit( m_smtp );
319 mailsmtp_free( m_smtp ); 321 mailsmtp_free( m_smtp );
320 m_smtp = 0; 322 m_smtp = 0;
321 } 323 }
322} 324}
323 325
324int SMTPwrapper::smtpSend(char*from,clist*rcpts,const char*data,size_t size ) 326int SMTPwrapper::smtpSend(char*from,clist*rcpts,const char*data,size_t size )
325{ 327{
326 int err,result; 328 int err,result;
327 QString failuretext = ""; 329 QString failuretext = "";
328 330
329 connect_server(); 331 connect_server();
330 332
331 result = 1; 333 result = 1;
332 if (m_smtp) { 334 if (m_smtp) {
333 err = mailsmtp_send( m_smtp, from, rcpts, data, size ); 335 err = mailsmtp_send( m_smtp, from, rcpts, data, size );
334 if ( err != MAILSMTP_NO_ERROR ) { 336 if ( err != MAILSMTP_NO_ERROR ) {
335 qDebug("Error sending mail"); 337 qDebug("Error sending mail");
336 failuretext=i18n("Error sending mail:\n%1").arg(mailsmtpError(err)); 338 failuretext=i18n("Error sending mail:\n%1").arg(mailsmtpError(err));
337 result = 0; 339 result = 0;
338 } 340 }
339 } else { 341 } else {
340 result = 0; 342 result = 0;
341 } 343 }
342 344
343 if (!result) { 345 if (!result) {
344 storeFailedMail(data,size,failuretext); 346 storeFailedMail(data,size,failuretext);
345 } else { 347 } else {
346 ; // odebug << "Mail sent." << oendl; 348 ; // odebug << "Mail sent." << oendl;
347 storeMail(data,size,"Sent"); 349 storeMail(data,size,"Sent");
348 } 350 }
349 return result; 351 return result;
350} 352}
351 353
352bool SMTPwrapper::sendMail(const Opie::Core::OSmartPointer<Mail>&mail,bool later ) 354bool SMTPwrapper::sendMail(const Opie::Core::OSmartPointer<Mail>&mail,bool later )
353{ 355{
354 mailmime * mimeMail; 356 mailmime * mimeMail;
355 bool result = true; 357 bool result = true;
356 mimeMail = createMimeMail(mail ); 358 mimeMail = createMimeMail(mail );
357 if ( mimeMail == 0 ) { 359 if ( mimeMail == 0 ) {
358 qDebug("SMTP wrapper:Error creating mail! "); 360 qDebug("SMTP wrapper:Error creating mail! ");
359 return false; 361 return false;
360 } else { 362 } else {
361 sendProgress = new progressMailSend(); 363 sendProgress = new progressMailSend();
362 sendProgress->show(); 364 sendProgress->show();
363 sendProgress->setMaxMails(1); 365 sendProgress->setMaxMails(1);
364 result = smtpSend( mimeMail,later); 366 result = smtpSend( mimeMail,later);
365 ; // odebug << "Clean up done" << oendl; 367 ; // odebug << "Clean up done" << oendl;
366 sendProgress->hide(); 368 sendProgress->hide();
367 delete sendProgress; 369 delete sendProgress;
368 sendProgress = 0; 370 sendProgress = 0;
369 mailmime_free( mimeMail ); 371 mailmime_free( mimeMail );
370 if ( m_smtp ) { 372 if ( m_smtp ) {
371 mailsmtp_free(m_smtp); 373 mailsmtp_free(m_smtp);
372 m_smtp = 0; 374 m_smtp = 0;
373 } 375 }
374 } 376 }
375 return result; 377 return result;
376} 378}
377 379
378int SMTPwrapper::sendQueuedMail(AbstractMail*wrap,const RecMailP&which) { 380int SMTPwrapper::sendQueuedMail(AbstractMail*wrap,const RecMailP&which) {
379 size_t curTok = 0; 381 size_t curTok = 0;
380 mailimf_fields *fields = 0; 382 mailimf_fields *fields = 0;
381 mailimf_field*ffrom = 0; 383 mailimf_field*ffrom = 0;
382 clist *rcpts = 0; 384 clist *rcpts = 0;
383 char*from = 0; 385 char*from = 0;
384 int res = 0; 386 int res = 0;
385 387
386 encodedString * data = wrap->fetchRawBody(which); 388 encodedString * data = wrap->fetchRawBody(which);
387 if (!data) 389 if (!data)
388 return 0; 390 return 0;
389 int err = mailimf_fields_parse( data->Content(), data->Length(), &curTok, &fields ); 391 int err = mailimf_fields_parse( data->Content(), data->Length(), &curTok, &fields );
390 if (err != MAILIMF_NO_ERROR) { 392 if (err != MAILIMF_NO_ERROR) {
391 delete data; 393 delete data;
392 delete wrap; 394 delete wrap;
393 return 0; 395 return 0;
394 } 396 }
395 397
396 rcpts = createRcptList( fields ); 398 rcpts = createRcptList( fields );
397 ffrom = getField(fields, MAILIMF_FIELD_FROM ); 399 ffrom = getField(fields, MAILIMF_FIELD_FROM );
398 from = getFrom(ffrom); 400 from = getFrom(ffrom);
399 401
400 if (rcpts && from) { 402 if (rcpts && from) {
401 res = smtpSend(from,rcpts,data->Content(),data->Length()); 403 res = smtpSend(from,rcpts,data->Content(),data->Length());
402 } 404 }
403 if (fields) { 405 if (fields) {
404 mailimf_fields_free(fields); 406 mailimf_fields_free(fields);
405 fields = 0; 407 fields = 0;
406 } 408 }
407 if (data) { 409 if (data) {
408 delete data; 410 delete data;
409 } 411 }
410 if (from) { 412 if (from) {
411 free(from); 413 free(from);
412 } 414 }
413 if (rcpts) { 415 if (rcpts) {
414 smtp_address_list_free( rcpts ); 416 smtp_address_list_free( rcpts );
415 } 417 }
416 return res; 418 return res;
417} 419}
418 420
419/* this is a special fun */ 421/* this is a special fun */
420bool SMTPwrapper::flushOutbox() { 422bool SMTPwrapper::flushOutbox() {
421 bool returnValue = true; 423 bool returnValue = true;
422 424
423 ; // odebug << "Sending the queue" << oendl; 425 ; // odebug << "Sending the queue" << oendl;
424 if (!m_SmtpAccount) { 426 if (!m_SmtpAccount) {
425 ; // odebug << "No smtp account given" << oendl; 427 ; // odebug << "No smtp account given" << oendl;
426 return false; 428 return false;
427 } 429 }
428 430
429 bool reset_user_value = false; 431 bool reset_user_value = false;
430 QString localfolders = AbstractMail::defaultLocalfolder(); 432 QString localfolders = AbstractMail::defaultLocalfolder();
431 AbstractMail*wrap = AbstractMail::getWrapper(localfolders); 433 AbstractMail*wrap = AbstractMail::getWrapper(localfolders);
432 if (!wrap) { 434 if (!wrap) {
433 ; // odebug << "memory error" << oendl; 435 ; // odebug << "memory error" << oendl;
434 return false; 436 return false;
435 } 437 }
436 QString oldPw, oldUser; 438 QString oldPw, oldUser;
437 QValueList<RecMailP> mailsToSend; 439 Q3ValueList<RecMailP> mailsToSend;
438 QValueList<RecMailP> mailsToRemove; 440 Q3ValueList<RecMailP> mailsToRemove;
439 QString mbox("Outgoing"); 441 QString mbox("Outgoing");
440 wrap->listMessages(mbox,mailsToSend); 442 wrap->listMessages(mbox,mailsToSend);
441 if (mailsToSend.count()==0) { 443 if (mailsToSend.count()==0) {
442 delete wrap; 444 delete wrap;
443 ; // odebug << "No mails to send" << oendl; 445 ; // odebug << "No mails to send" << oendl;
444 return false; 446 return false;
445 } 447 }
446 448
447 oldPw = m_SmtpAccount->getPassword(); 449 oldPw = m_SmtpAccount->getPassword();
448 oldUser = m_SmtpAccount->getUser(); 450 oldUser = m_SmtpAccount->getUser();
449 if (m_SmtpAccount->getLogin() && (m_SmtpAccount->getUser().isEmpty() || m_SmtpAccount->getPassword().isEmpty()) ) { 451 if (m_SmtpAccount->getLogin() && (m_SmtpAccount->getUser().isEmpty() || m_SmtpAccount->getPassword().isEmpty()) ) {
450 // get'em 452 // get'em
451 QString user,pass; 453 QString user,pass;
452 LoginDialog login( m_SmtpAccount->getUser(), m_SmtpAccount->getPassword(), NULL, 0, true ); 454 LoginDialog login( m_SmtpAccount->getUser(), m_SmtpAccount->getPassword(), NULL, 0, true );
453 login.show(); 455 login.show();
454 if ( QDialog::Accepted == login.exec() ) { 456 if ( QDialog::Accepted == login.exec() ) {
455 // ok 457 // ok
456 user = login.getUser().latin1(); 458 user = login.getUser().latin1();
457 pass = login.getPassword().latin1(); 459 pass = login.getPassword().latin1();
458 reset_user_value = true; 460 reset_user_value = true;
459 m_SmtpAccount->setUser(user); 461 m_SmtpAccount->setUser(user);
460 m_SmtpAccount->setPassword(pass); 462 m_SmtpAccount->setPassword(pass);
461 } else { 463 } else {
462 return true; 464 return true;
463 } 465 }
464 } 466 }
465 467
466 468
467 sendProgress = new progressMailSend(); 469 sendProgress = new progressMailSend();
468 sendProgress->show(); 470 sendProgress->show();
469 sendProgress->setMaxMails(mailsToSend.count()); 471 sendProgress->setMaxMails(mailsToSend.count());
470 472
471 while (returnValue && mailsToSend.count()>0) { 473 while (returnValue && mailsToSend.count()>0) {
472 if (sendQueuedMail(wrap, (*mailsToSend.begin()))==0) { 474 if (sendQueuedMail(wrap, (*mailsToSend.begin()))==0) {
473 QMessageBox::critical(0,i18n("Error sending mail"), 475 QMessageBox::critical(0,i18n("Error sending mail"),
474 i18n("Error sending queued mail.\nBreaking.")); 476 i18n("Error sending queued mail.\nBreaking."));
475 returnValue = false; 477 returnValue = false;
476 } 478 }
477 mailsToRemove.append((*mailsToSend.begin())); 479 mailsToRemove.append((*mailsToSend.begin()));
478 mailsToSend.remove(mailsToSend.begin()); 480 mailsToSend.remove(mailsToSend.begin());
479 sendProgress->setCurrentMails(mailsToRemove.count()); 481 sendProgress->setCurrentMails(mailsToRemove.count());
480 } 482 }
481 if (reset_user_value) { 483 if (reset_user_value) {
482 m_SmtpAccount->setUser(oldUser); 484 m_SmtpAccount->setUser(oldUser);
483 m_SmtpAccount->setPassword(oldPw); 485 m_SmtpAccount->setPassword(oldPw);
484 } 486 }
485 487
486 KConfig cfg( locateLocal("config", "kopiemailrc" ) ); 488 KConfig cfg( locateLocal("config", "kopiemailrc" ) );
487 cfg.setGroup( "Status" ); 489 cfg.setGroup( "Status" );
488 m_queuedMail = mailsToSend.count(); 490 m_queuedMail = mailsToSend.count();
489 cfg.writeEntry( "outgoing", m_queuedMail ); 491 cfg.writeEntry( "outgoing", m_queuedMail );
490 emit queuedMails( m_queuedMail ); 492 emit queuedMails( m_queuedMail );
491 sendProgress->hide(); 493 sendProgress->hide();
492 delete sendProgress; 494 delete sendProgress;
493 sendProgress = 0; 495 sendProgress = 0;
494 wrap->deleteMails(mbox,mailsToRemove); 496 wrap->deleteMails(mbox,mailsToRemove);
495 delete wrap; 497 delete wrap;
496 if ( m_smtp ) { 498 if ( m_smtp ) {
497 mailsmtp_free(m_smtp); 499 mailsmtp_free(m_smtp);
498 m_smtp = 0; 500 m_smtp = 0;
499 } 501 }
500 return returnValue; 502 return returnValue;
501} 503}
diff --git a/kmicromail/mailistviewitem.cpp b/kmicromail/mailistviewitem.cpp
index 41cee52..d8eee7d 100644
--- a/kmicromail/mailistviewitem.cpp
+++ b/kmicromail/mailistviewitem.cpp
@@ -1,99 +1,99 @@
1// CHANGED 2004-08-06 Lutz Rogowski 1// CHANGED 2004-08-06 Lutz Rogowski
2#include "mailistviewitem.h" 2#include "mailistviewitem.h"
3#include <libmailwrapper/abstractmail.h> 3#include <libmailwrapper/abstractmail.h>
4#include <qtextstream.h> 4#include <q3textstream.h>
5#include <kiconloader.h> 5#include <kiconloader.h>
6#include "koprefs.h" 6#include "koprefs.h"
7//#include <qpe/resource.h> 7//#include <qpe/resource.h>
8 8
9MailListViewItem::MailListViewItem(QListView * parent, MailListViewItem * item ) 9MailListViewItem::MailListViewItem(Q3ListView * parent, MailListViewItem * item )
10 :KListViewItem(parent,item),mail_data() 10 :KListViewItem(parent,item),mail_data()
11{ 11{
12} 12}
13 13
14void MailListViewItem::showEntry() 14void MailListViewItem::showEntry()
15{ 15{
16 if ( mail_data->getFlags().testBit( FLAG_ANSWERED ) == true) { 16 if ( mail_data->getFlags().testBit( FLAG_ANSWERED ) == true) {
17 setPixmap( 0, SmallIcon ( "kmmsgreplied") ); 17 setPixmap( 0, SmallIcon ( "kmmsgreplied") );
18 mKeyMap.insert(0, "r" ); 18 mKeyMap.insert(0, "r" );
19 } else if ( mail_data->getFlags().testBit( FLAG_SEEN ) == true ) { 19 } else if ( mail_data->getFlags().testBit( FLAG_SEEN ) == true ) {
20 /* I think it looks nicer if there are not such a log of icons but only on mails 20 /* I think it looks nicer if there are not such a log of icons but only on mails
21 replied or new - Alwin*/ 21 replied or new - Alwin*/
22 //setPixmap( 0,SmallIcon ("kmmsgunseen") ); 22 //setPixmap( 0,SmallIcon ("kmmsgunseen") );
23 mKeyMap.insert(0, "s" ); 23 mKeyMap.insert(0, "s" );
24 } else { 24 } else {
25 setPixmap( 0,SmallIcon ( "kmmsgnew") ); 25 setPixmap( 0,SmallIcon ( "kmmsgnew") );
26 mKeyMap.insert(0, "u" ); 26 mKeyMap.insert(0, "u" );
27 } 27 }
28 QString fsize = mail_data->MsgsizeString(); 28 QString fsize = mail_data->MsgsizeString();
29 // 1.23 29 // 1.23
30 // 11.23 30 // 11.23
31 // 111.23 31 // 111.23
32 // 999.23 maxlen 32 // 999.23 maxlen
33 QString fsort; 33 QString fsort;
34 switch(fsize.length() ) { 34 switch(fsize.length() ) {
35 case 6: 35 case 6:
36 fsort = "00" + fsize ; 36 fsort = "00" + fsize ;
37 break; 37 break;
38 case 7: 38 case 7:
39 fsort = "0" + fsize ; 39 fsort = "0" + fsize ;
40 break; 40 break;
41 default: 41 default:
42 fsort = fsize ; 42 fsort = fsize ;
43 break; 43 break;
44 44
45 } 45 }
46 46
47 setText(3, fsize ); 47 setText(3, fsize );
48 //qDebug("fsize *%s* ",fsize.latin1() ); 48 //qDebug("fsize *%s* ",fsize.latin1() );
49 //qDebug("fsort *%s* ",fsort.latin1() ); 49 //qDebug("fsort *%s* ",fsort.latin1() );
50 if ( fsize.right(2) == "kB" ) { 50 if ( fsize.right(2) == "kB" ) {
51 mKeyMap.insert(3, "k" + fsort); 51 mKeyMap.insert(3, "k" + fsort);
52 } else { 52 } else {
53 mKeyMap.insert(3, "M" +fsort ); 53 mKeyMap.insert(3, "M" +fsort );
54 } 54 }
55 setText(1,mail_data->getSubject()); 55 setText(1,mail_data->getSubject());
56 setText(2,mail_data->getFrom()); 56 setText(2,mail_data->getFrom());
57 mKeyMap.insert(4,mail_data->getIsoDate()); 57 mKeyMap.insert(4,mail_data->getIsoDate());
58 setText(4," "+mail_data->getDate()); 58 setText(4," "+mail_data->getDate());
59 if ( KOPrefs::instance()->mShowToField ) 59 if ( KOPrefs::instance()->mShowToField )
60 setText(5,mail_data->To()[0]); 60 setText(5,mail_data->To()[0]);
61} 61}
62 62
63void MailListViewItem::storeData(const RecMailP&data) 63void MailListViewItem::storeData(const RecMailP&data)
64{ 64{
65 mail_data = data; 65 mail_data = data;
66} 66}
67void MailListViewItem::setSortKey(int column,const QString &key) 67void MailListViewItem::setSortKey(int column,const QString &key)
68{ 68{
69 mKeyMap.insert(column,key); 69 mKeyMap.insert(column,key);
70} 70}
71QString MailListViewItem::key(int column, bool) const 71QString MailListViewItem::key(int column, bool) const
72{ 72{
73 // to make is fast, we use here special cases 73 // to make is fast, we use here special cases
74 if ( column == 3 || column == 4 || column == 0) { 74 if ( column == 3 || column == 4 || column == 0) {
75 return *mKeyMap.find(column); 75 return *mKeyMap.find(column);
76 } 76 }
77 if ( column == 1 ) { 77 if ( column == 1 ) {
78 if ( text(1).left(4).lower() == "re: " ) 78 if ( text(1).left(4).lower() == "re: " )
79 return text(1).mid(4); 79 return text(1).mid(4);
80 80
81 } 81 }
82 return text(column); 82 return text(column);
83 /* 83 /*
84 QMap<int,QString>::ConstIterator it = mKeyMap.find(column); 84 QMap<int,QString>::ConstIterator it = mKeyMap.find(column);
85 if (it == mKeyMap.end()) return text(column); 85 if (it == mKeyMap.end()) return text(column);
86 else return *it; 86 else return *it;
87 */ 87 */
88} 88}
89 89
90const RecMailP& MailListViewItem::data()const 90const RecMailP& MailListViewItem::data()const
91{ 91{
92 return mail_data; 92 return mail_data;
93} 93}
94 94
95MAILLIB::ATYPE MailListViewItem::wrapperType() 95MAILLIB::ATYPE MailListViewItem::wrapperType()
96{ 96{
97 if (!mail_data->Wrapper()) return MAILLIB::A_UNDEFINED; 97 if (!mail_data->Wrapper()) return MAILLIB::A_UNDEFINED;
98 return mail_data->Wrapper()->getType(); 98 return mail_data->Wrapper()->getType();
99} 99}
diff --git a/kmicromail/mailistviewitem.h b/kmicromail/mailistviewitem.h
index b409c9d..ecc01ba 100644
--- a/kmicromail/mailistviewitem.h
+++ b/kmicromail/mailistviewitem.h
@@ -1,27 +1,27 @@
1// CHANGED 2004-08-06 Lutz Rogowski 1// CHANGED 2004-08-06 Lutz Rogowski
2#ifndef __MAILLISTVIEWITEM_H 2#ifndef __MAILLISTVIEWITEM_H
3#define __MAILLISTVIEWITEM_H 3#define __MAILLISTVIEWITEM_H
4 4
5#include <klistview.h> 5#include <klistview.h>
6#include <libmailwrapper/mailtypes.h> 6#include <libmailwrapper/mailtypes.h>
7#include <libmailwrapper/maildefines.h> 7#include <libmailwrapper/maildefines.h>
8 8
9class MailListViewItem:public KListViewItem 9class MailListViewItem:public KListViewItem
10{ 10{
11public: 11public:
12 MailListViewItem(QListView * parent, MailListViewItem * after ); 12 MailListViewItem(Q3ListView * parent, MailListViewItem * after );
13 virtual ~MailListViewItem(){} 13 virtual ~MailListViewItem(){}
14 14
15 void storeData(const RecMailP&data); 15 void storeData(const RecMailP&data);
16 const RecMailP&data()const; 16 const RecMailP&data()const;
17 void showEntry(); 17 void showEntry();
18 MAILLIB::ATYPE wrapperType(); 18 MAILLIB::ATYPE wrapperType();
19 QString key(int column, bool) const; 19 QString key(int column, bool) const;
20 void setSortKey(int column,const QString &key); 20 void setSortKey(int column,const QString &key);
21protected: 21protected:
22 RecMailP mail_data; 22 RecMailP mail_data;
23 private: 23 private:
24 QMap<int,QString> mKeyMap; 24 QMap<int,QString> mKeyMap;
25}; 25};
26 26
27#endif 27#endif
diff --git a/kmicromail/main.cpp b/kmicromail/main.cpp
index fe4bc76..dc73455 100644
--- a/kmicromail/main.cpp
+++ b/kmicromail/main.cpp
@@ -1,69 +1,72 @@
1// CHANGED 2004-08-06 Lutz Rogowski 1// CHANGED 2004-08-06 Lutz Rogowski
2 2
3 3
4#ifndef DESKTOP_VERSION 4#ifndef DESKTOP_VERSION
5#include <qpe/qpeapplication.h> 5#include <qpe/qpeapplication.h>
6//Added by qt3to4:
7#include <Q3CString>
6#include <libkdepim/externalapphandler.h> 8#include <libkdepim/externalapphandler.h>
7#include <stdlib.h> 9#include <stdlib.h>
8#else 10#else
9#include <qapplication.h> 11#include <qapplication.h>
10#include <qstring.h> 12#include <qstring.h>
11#include <qwindowsstyle.h> 13#include <qwindowsstyle.h>
12#include <qplatinumstyle.h> 14#include <qplatinumstyle.h>
13#include <qsgistyle.h> 15#include <qsgistyle.h>
14#endif 16#endif
15#include "opiemail.h" 17#include "opiemail.h"
16#include <qdir.h> 18#include <qdir.h>
17#include <kstandarddirs.h> 19#include <kstandarddirs.h>
18#include <kglobal.h> 20#include <kglobal.h>
19#include <stdio.h> 21#include <stdio.h>
20#include "mainwindow.h" 22#include "mainwindow.h"
21#include "koprefs.h" 23#include "koprefs.h"
22#include <libkdepim/kpimglobalprefs.h> 24#include <libkdepim/kpimglobalprefs.h>
23void dumpMissing(); 25void dumpMissing();
24//using namespace Opie::Core; 26//using namespace Opie::Core;
25int main( int argc, char **argv ) { 27int main( int argc, char **argv ) {
28 if(!getenv("QPEDIR")) putenv("QPEDIR=/usr/lib/kdepimpi");
26 29
27#ifndef DESKTOP_VERSION 30#ifndef DESKTOP_VERSION
28 QPEApplication a( argc, argv ); 31 QPEApplication a( argc, argv );
29 a.setKeepRunning (); 32 a.setKeepRunning ();
30#else 33#else
31 QApplication a( argc, argv ); 34 QApplication a( argc, argv );
32 QApplication::setStyle( new QPlatinumStyle ()); 35 QApplication::setStyle( new QPlatinumStyle ());
33#endif 36#endif
34 //a.setFont( KOPrefs::instance()->mAppFont ); 37 //a.setFont( KOPrefs::instance()->mAppFont );
35 KGlobal::setAppName( "kopiemail" ); 38 KGlobal::setAppName( "kopiemail" );
36 QString fileName ; 39 QString fileName ;
37#ifndef DESKTOP_VERSION 40#ifndef DESKTOP_VERSION
38 fileName = getenv("QPEDIR"); 41 fileName = getenv("QPEDIR");
39 if ( QApplication::desktop()->width() > 320 ) 42 if ( QApplication::desktop()->width() > 320 )
40 KGlobal::iconLoader()->setIconPath( fileName +"/pics/kdepim/kopiemail/icons22/"); 43 KGlobal::iconLoader()->setIconPath( fileName +"/pics/kdepim/kopiemail/icons22/");
41 else 44 else
42 KGlobal::iconLoader()->setIconPath( fileName +"/pics/kdepim/kopiemail/"); 45 KGlobal::iconLoader()->setIconPath( fileName +"/pics/kdepim/kopiemail/");
43#else 46#else
44 fileName = qApp->applicationDirPath () + "/kdepim/kopiemail/icons22/"; 47 fileName = qApp->applicationDirPath () + "/kdepim/kopiemail/icons22/";
45 KGlobal::iconLoader()->setIconPath(QDir::convertSeparators(fileName)); 48 KGlobal::iconLoader()->setIconPath(QDir::convertSeparators(fileName));
46#endif 49#endif
47 KStandardDirs::setAppDir( QDir::convertSeparators(locateLocal("data", "kopiemail"))); 50 KStandardDirs::setAppDir( QDir::convertSeparators(locateLocal("data", "kopiemail")));
48 KPimGlobalPrefs::instance()->setGlobalConfig(); 51 KPimGlobalPrefs::instance()->setGlobalConfig();
49 QApplication::setFont( KPimGlobalPrefs::instance()->mApplicationFont ); 52 QApplication::setFont( KPimGlobalPrefs::instance()->mApplicationFont );
50 QApplication::setFont( KOPrefs::instance()->mAppFont ); 53 QApplication::setFont( KOPrefs::instance()->mAppFont );
51 OpieMail mw; 54 OpieMail mw;
52#ifndef DESKTOP_VERSION 55#ifndef DESKTOP_VERSION
53 //qDebug("CONNECT "); 56 //qDebug("CONNECT ");
54 QObject::connect( &a, SIGNAL (appMessage ( const QCString &, const QByteArray & )),&mw, SLOT(message( const QCString&, const QByteArray& ))); 57 QObject::connect( &a, SIGNAL (appMessage ( const Q3CString &, const QByteArray & )),&mw, SLOT(message( const Q3CString&, const QByteArray& )));
55 // QObject::connect(&a, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & ))); 58 // QObject::connect(&a, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & )));
56 a.showMainWidget(&mw ); 59 a.showMainWidget(&mw );
57#else 60#else
58 a.setMainWidget(&mw ); 61 a.setMainWidget(&mw );
59 mw.show(); 62 mw.show();
60 //m.resize( 800, 600 ); 63 //m.resize( 800, 600 );
61 QObject::connect(&a, SIGNAL(lastWindowClosed()), &a, SLOT(quit())); 64 QObject::connect(&a, SIGNAL(lastWindowClosed()), &a, SLOT(quit()));
62#endif 65#endif
63 int rv = a.exec(); 66 int rv = a.exec();
64 dumpMissing(); 67 dumpMissing();
65 68
66 KPimGlobalPrefs::instance()->writeConfig(); 69 KPimGlobalPrefs::instance()->writeConfig();
67 return rv; 70 return rv;
68 71
69} 72}
diff --git a/kmicromail/mainwindow.cpp b/kmicromail/mainwindow.cpp
index d547dda..627d92e 100644
--- a/kmicromail/mainwindow.cpp
+++ b/kmicromail/mainwindow.cpp
@@ -1,446 +1,452 @@
1 1
2// CHANGED 2004-08-06 Lutz Rogowski 2// CHANGED 2004-08-06 Lutz Rogowski
3#include <qlabel.h> 3#include <qlabel.h>
4#include <qvbox.h> 4#include <q3vbox.h>
5#include <qheader.h> 5#include <q3header.h>
6#include <qtimer.h> 6#include <qtimer.h>
7#include <qlayout.h> 7#include <qlayout.h>
8//Added by qt3to4:
9#include <Q3CString>
10#include <Q3GridLayout>
11#include <Q3ValueList>
12#include <QPixmap>
13#include <Q3PopupMenu>
8//#include <kdialog.h> 14//#include <kdialog.h>
9#include <kiconloader.h> 15#include <kiconloader.h>
10#include <kapplication.h> 16#include <kapplication.h>
11 17
12#ifdef DESKTOP_VERSION 18#ifdef DESKTOP_VERSION
13#include <qapplication.h> 19#include <qapplication.h>
14#include <qstatusbar.h> 20#include <qstatusbar.h>
15#include <kabc/stdaddressbook.h> 21#include <kabc/stdaddressbook.h>
16extern QStatusBar* globalSstatusBarMainWindow; 22extern QStatusBar* globalSstatusBarMainWindow;
17#else 23#else
18#include <qpe/qpeapplication.h> 24#include <qpe/qpeapplication.h>
19#include <klocale.h> 25#include <klocale.h>
20#endif 26#endif
21#include "defines.h" 27#include "defines.h"
22#include "koprefs.h" 28#include "koprefs.h"
23#include "mainwindow.h" 29#include "mainwindow.h"
24#include "mailistviewitem.h" 30#include "mailistviewitem.h"
25#include <KDGanttMinimizeSplitter.h> 31#include <KDGanttMinimizeSplitter.h>
26#include <libkdepim/kpimglobalprefs.h> 32#include <libkdepim/kpimglobalprefs.h>
27 33
28#include "koprefs.h" 34#include "koprefs.h"
29 35
30MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags ) 36MainWindow::MainWindow( QWidget *parent, const char *name, Qt::WFlags flags )
31 : QMainWindow( parent, name ) //, flags ) 37 : Q3MainWindow( parent, name ) //, flags )
32{ 38{
33#ifdef DESKTOP_VERSION 39#ifdef DESKTOP_VERSION
34 globalSstatusBarMainWindow = statusBar(); 40 globalSstatusBarMainWindow = statusBar();
35#endif 41#endif
36 setCaption( i18n( "KOpieMail/Pi" ) ); 42 setCaption( i18n( "KOpieMail/Pi" ) );
37 setToolBarsMovable( false ); 43 setToolBarsMovable( false );
38 //KABC::StdAddressBook::self(); 44 //KABC::StdAddressBook::self();
39 toolBar = new QToolBar( this ); 45 toolBar = new Q3ToolBar( this );
40 menuBar = new QPEMenuBar( toolBar ); 46 menuBar = new QPEMenuBar( toolBar );
41 mailMenu = new QPopupMenu( menuBar ); 47 mailMenu = new Q3PopupMenu( menuBar );
42 menuBar->insertItem( i18n( "Mail" ), mailMenu ); 48 menuBar->insertItem( i18n( "Mail" ), mailMenu );
43 settingsMenu = new QPopupMenu( menuBar ); 49 settingsMenu = new Q3PopupMenu( menuBar );
44 menuBar->insertItem( i18n( "Settings" ), settingsMenu ); 50 menuBar->insertItem( i18n( "Settings" ), settingsMenu );
45 51
46 addToolBar( toolBar ); 52 addToolBar( toolBar );
47 toolBar->setHorizontalStretchable( true ); 53 toolBar->setHorizontalStretchable( true );
48 QAction* getMail = new QAction( i18n( "Get all new mails" ), SmallIcon("enter"), 54 QAction* getMail = new QAction( i18n( "Get all new mails" ), SmallIcon("enter"),
49 0, 0, this ); 55 0, 0, this );
50 connect(getMail, SIGNAL( activated() ), 56 connect(getMail, SIGNAL( activated() ),
51 SLOT( slotGetAllMail() ) ); 57 SLOT( slotGetAllMail() ) );
52 getMail->addTo( mailMenu ); 58 getMail->addTo( mailMenu );
53 59
54 getMail = new QAction( i18n( "Get new messages" ), SmallIcon("add"), 60 getMail = new QAction( i18n( "Get new messages" ), SmallIcon("add"),
55 0, 0, this ); 61 0, 0, this );
56 getMail->addTo( toolBar ); 62 getMail->addTo( toolBar );
57 getMail->addTo( mailMenu ); 63 getMail->addTo( mailMenu );
58 connect(getMail, SIGNAL( activated() ), 64 connect(getMail, SIGNAL( activated() ),
59 SLOT( slotGetMail() ) ); 65 SLOT( slotGetMail() ) );
60 66
61 composeMail = new QAction( i18n( "Compose new mail" ), SmallIcon("composemail"), 67 composeMail = new QAction( i18n( "Compose new mail" ), SmallIcon("composemail"),
62 0, 0, this ); 68 0, 0, this );
63 composeMail->addTo( toolBar ); 69 composeMail->addTo( toolBar );
64 composeMail->addTo( mailMenu ); 70 composeMail->addTo( mailMenu );
65 71
66 sendQueued = new QAction( i18n( "Send queued mails" ), SmallIcon("sendqueued") , 72 sendQueued = new QAction( i18n( "Send queued mails" ), SmallIcon("sendqueued") ,
67 0, 0, this ); 73 0, 0, this );
68 sendQueued->addTo( toolBar ); 74 sendQueued->addTo( toolBar );
69 sendQueued->addTo( mailMenu ); 75 sendQueued->addTo( mailMenu );
70 76
71 /* 77 /*
72 syncFolders = new QAction( i18n( "Sync mailfolders" ), ICON_SYNC, 78 syncFolders = new QAction( i18n( "Sync mailfolders" ), ICON_SYNC,
73 0, 0, this ); 79 0, 0, this );
74 syncFolders->addTo( toolBar ); 80 syncFolders->addTo( toolBar );
75 syncFolders->addTo( mailMenu ); 81 syncFolders->addTo( mailMenu );
76 */ 82 */
77 83
78 showFolders = new QAction( i18n( "Show/Hide folders" ), SmallIcon("showfolders") , 84 showFolders = new QAction( i18n( "Show/Hide folders" ), SmallIcon("showfolders") ,
79 0, 0, this, 0, true ); 85 0, 0, this, 0, true );
80 showFolders->addTo( toolBar ); 86 showFolders->addTo( toolBar );
81 showFolders->addTo( mailMenu ); 87 showFolders->addTo( mailMenu );
82 showFolders->setOn( true ); 88 showFolders->setOn( true );
83 connect(showFolders, SIGNAL( toggled(bool) ), 89 connect(showFolders, SIGNAL( toggled(bool) ),
84 SLOT( slotShowFolders(bool) ) ); 90 SLOT( slotShowFolders(bool) ) );
85 91
86 /* 92 /*
87 searchMails = new QAction( i18n( "Search mails" ), SmallIcon("find") ), 93 searchMails = new QAction( i18n( "Search mails" ), SmallIcon("find") ),
88 0, 0, this ); 94 0, 0, this );
89 searchMails->kopddTo( toolBar ); 95 searchMails->kopddTo( toolBar );
90 searchMails->addTo( mailMenu ); 96 searchMails->addTo( mailMenu );
91 */ 97 */
92 98
93 deleteMails = new QAction(i18n("Delete Mail"), SmallIcon("trash"), 0, 0, this); 99 deleteMails = new QAction(i18n("Delete Mail"), SmallIcon("trash"), 0, 0, this);
94 deleteMails->addTo( toolBar ); 100 deleteMails->addTo( toolBar );
95 deleteMails->addTo( mailMenu ); 101 deleteMails->addTo( mailMenu );
96 connect( deleteMails, SIGNAL( activated() ), 102 connect( deleteMails, SIGNAL( activated() ),
97 SLOT( slotDeleteAllMail() ) ); 103 SLOT( slotDeleteAllMail() ) );
98 104
99 editSettings = new QAction( i18n( "Configure OM/Pi..." ), SmallIcon("SettingsIcon") , 105 editSettings = new QAction( i18n( "Configure OM/Pi..." ), SmallIcon("SettingsIcon") ,
100 0, 0, this ); 106 0, 0, this );
101 editSettings->addTo( settingsMenu ); 107 editSettings->addTo( settingsMenu );
102 connect( editSettings, SIGNAL( activated() ), 108 connect( editSettings, SIGNAL( activated() ),
103 SLOT( slotEditSettings() ) ); 109 SLOT( slotEditSettings() ) );
104 110
105 111
106 QAction * editSettings2 = new QAction( i18n( "Global Settings..." ), SmallIcon("SettingsIcon") , 112 QAction * editSettings2 = new QAction( i18n( "Global Settings..." ), SmallIcon("SettingsIcon") ,
107 0, 0, this ); 113 0, 0, this );
108 editSettings2->addTo( settingsMenu ); 114 editSettings2->addTo( settingsMenu );
109 connect( editSettings2, SIGNAL( activated() ), 115 connect( editSettings2, SIGNAL( activated() ),
110 SLOT( slotEditGlobalSettings() ) ); 116 SLOT( slotEditGlobalSettings() ) );
111 117
112 118
113 119
114 editAccounts = new QAction( i18n( "Configure accounts" ), SmallIcon("editaccounts") , 120 editAccounts = new QAction( i18n( "Configure accounts" ), SmallIcon("editaccounts") ,
115 0, 0, this ); 121 0, 0, this );
116 editAccounts->addTo( settingsMenu ); 122 editAccounts->addTo( settingsMenu );
117 codecMenu = new QPopupMenu( menuBar ); 123 codecMenu = new Q3PopupMenu( menuBar );
118 codecMenu->insertItem( "Western (iso-8859-1)",0,0); 124 codecMenu->insertItem( "Western (iso-8859-1)",0,0);
119 codecMenu->insertItem( "Cyrillic (iso-8859-5)",1,1); 125 codecMenu->insertItem( "Cyrillic (iso-8859-5)",1,1);
120 codecMenu->insertItem( "Western (iso-8859-15)",2,2); 126 codecMenu->insertItem( "Western (iso-8859-15)",2,2);
121 codecMenu->insertItem( "Chinese (big-5)",3,3); 127 codecMenu->insertItem( "Chinese (big-5)",3,3);
122 codecMenu->insertItem( "Unicode (utf-8)",4,4); 128 codecMenu->insertItem( "Unicode (utf-8)",4,4);
123 codecMenu->insertItem( "Userdefined ("+KOPrefs::instance()->mSendCodec+")",5,5); 129 codecMenu->insertItem( "Userdefined ("+KOPrefs::instance()->mSendCodec+")",5,5);
124 //disabled 130 //disabled
125 //settingsMenu->insertItem( i18n("Codec for new mails"), codecMenu); 131 //settingsMenu->insertItem( i18n("Codec for new mails"), codecMenu);
126 //setCentralWidget( view ); 132 //setCentralWidget( view );
127 133
128 QVBox* wrapperBox = new QVBox( this ); 134 Q3VBox* wrapperBox = new Q3VBox( this );
129 setCentralWidget( wrapperBox ); 135 setCentralWidget( wrapperBox );
130 136
131 // QWidget *view = new QWidget( wrapperBox ); 137 // QWidget *view = new QWidget( wrapperBox );
132 KDGanttMinimizeSplitter* splithor = new KDGanttMinimizeSplitter( Qt::Vertical, wrapperBox); 138 KDGanttMinimizeSplitter* splithor = new KDGanttMinimizeSplitter( Qt::Vertical, wrapperBox);
133 splithor->setMinimizeDirection( KDGanttMinimizeSplitter::Down); 139 splithor->setMinimizeDirection( KDGanttMinimizeSplitter::Down);
134 KDGanttMinimizeSplitter* split = new KDGanttMinimizeSplitter( Qt::Horizontal, splithor); 140 KDGanttMinimizeSplitter* split = new KDGanttMinimizeSplitter( Qt::Horizontal, splithor);
135 split->setMinimizeDirection( KDGanttMinimizeSplitter::Left); 141 split->setMinimizeDirection( KDGanttMinimizeSplitter::Left);
136 //layout = new QBoxLayout ( split, QBoxLayout::LeftToRight ); 142 //layout = new QBoxLayout ( split, QBoxLayout::LeftToRight );
137 subLE = 0; 143 subLE = 0;
138 fromLE = 0; 144 fromLE = 0;
139 toLE = 0; 145 toLE = 0;
140 if ( KOPrefs::instance()->mShowInfoSub || KOPrefs::instance()->mShowInfoFrom || KOPrefs::instance()->mShowInfoTo ) { 146 if ( KOPrefs::instance()->mShowInfoSub || KOPrefs::instance()->mShowInfoFrom || KOPrefs::instance()->mShowInfoTo ) {
141 QWidget* infoBox = new QWidget( splithor ); 147 QWidget* infoBox = new QWidget( splithor );
142 QGridLayout *griLay = new QGridLayout( infoBox, 2,2); 148 Q3GridLayout *griLay = new Q3GridLayout( infoBox, 2,2);
143 if ( KOPrefs::instance()->mShowInfoSub ) { 149 if ( KOPrefs::instance()->mShowInfoSub ) {
144 griLay->addWidget( new QLabel ( i18n("Su:"), infoBox ),0,0 ); 150 griLay->addWidget( new QLabel ( i18n("Su:"), infoBox ),0,0 );
145 griLay->addWidget( subLE = new QLineEdit( infoBox ),0,1) ; 151 griLay->addWidget( subLE = new QLineEdit( infoBox ),0,1) ;
146 } 152 }
147 if ( KOPrefs::instance()->mShowInfoFrom ) { 153 if ( KOPrefs::instance()->mShowInfoFrom ) {
148 griLay->addWidget( new QLabel ( i18n("Fr:"), infoBox ),1,0 ); 154 griLay->addWidget( new QLabel ( i18n("Fr:"), infoBox ),1,0 );
149 griLay->addWidget( fromLE = new QLineEdit( infoBox ),1,1) ; 155 griLay->addWidget( fromLE = new QLineEdit( infoBox ),1,1) ;
150 } 156 }
151 if ( KOPrefs::instance()->mShowInfoTo ) { 157 if ( KOPrefs::instance()->mShowInfoTo ) {
152 griLay->addWidget( new QLabel ( i18n("To:"), infoBox ),2,0 ); 158 griLay->addWidget( new QLabel ( i18n("To:"), infoBox ),2,0 );
153 griLay->addWidget( toLE = new QLineEdit( infoBox ),2,1) ; 159 griLay->addWidget( toLE = new QLineEdit( infoBox ),2,1) ;
154 } 160 }
155 infoBox->setMaximumHeight( infoBox->sizeHint().height() ); 161 infoBox->setMaximumHeight( infoBox->sizeHint().height() );
156 if ( !KOPrefs::instance()->mShowInfoStart ) { 162 if ( !KOPrefs::instance()->mShowInfoStart ) {
157 QTimer::singleShot( 1,splithor, SLOT ( toggle() ) ); 163 QTimer::singleShot( 1,splithor, SLOT ( toggle() ) );
158 } 164 }
159 } 165 }
160 166
161 167
162 folderView = new AccountView( split ); 168 folderView = new AccountView( split );
163 folderView->header()->hide(); 169 folderView->header()->hide();
164 folderView->setRootIsDecorated( false ); 170 folderView->setRootIsDecorated( false );
165 folderView->addColumn( i18n( "Mailbox" ) ); 171 folderView->addColumn( i18n( "Mailbox" ) );
166 172
167 //layout->addWidget( folderView ); 173 //layout->addWidget( folderView );
168 174
169 mailView = new KListView( split ); 175 mailView = new KListView( split );
170 mailView->addColumn( i18n( " " ) ); 176 mailView->addColumn( i18n( " " ) );
171 mailView->addColumn( i18n( "Subject" ),QListView::Manual ); 177 mailView->addColumn( i18n( "Subject" ),Q3ListView::Manual );
172 mailView->addColumn( i18n( "Sender" ),QListView::Manual ); 178 mailView->addColumn( i18n( "Sender" ),Q3ListView::Manual );
173 mailView->addColumn( i18n( "Size" ),QListView::Manual); 179 mailView->addColumn( i18n( "Size" ),Q3ListView::Manual);
174 mailView->addColumn( i18n( "Date" ),QListView::Manual); 180 mailView->addColumn( i18n( "Date" ),Q3ListView::Manual);
175 if ( KOPrefs::instance()->mShowToField ) 181 if ( KOPrefs::instance()->mShowToField )
176 mailView->addColumn( i18n( "To" ),QListView::Manual); 182 mailView->addColumn( i18n( "To" ),Q3ListView::Manual);
177 mailView->setAllColumnsShowFocus(true); 183 mailView->setAllColumnsShowFocus(true);
178 //mailView->setSorting(-1); 184 //mailView->setSorting(-1);
179 mailView->setRootIsDecorated( false ); 185 mailView->setRootIsDecorated( false );
180 statusWidget = new StatusWidget( wrapperBox ); 186 statusWidget = new StatusWidget( wrapperBox );
181 statusWidget->hide(); 187 statusWidget->hide();
182 mailView->setSelectionMode( QListView::Multi ); 188 mailView->setSelectionMode( Q3ListView::Multi );
183 mailView->setMultiSelection( true); 189 mailView->setMultiSelection( true);
184 mailView->setAlternateBackground(KPimGlobalPrefs::instance()->mAlternateColor ); 190 mailView->setAlternateBackground(KPimGlobalPrefs::instance()->mAlternateColor );
185 //layout->addWidget( mailView ); 191 //layout->addWidget( mailView );
186 //layout->setStretchFactor( folderView, 1 ); 192 //layout->setStretchFactor( folderView, 1 );
187 //layout->setStretchFactor( mailView, 2 ); 193 //layout->setStretchFactor( mailView, 2 );
188 194
189 slotAdjustLayout(); 195 slotAdjustLayout();
190#ifndef DESKTOP_VERSION 196#ifndef DESKTOP_VERSION
191 QPEApplication::setStylusOperation( mailView->viewport(),QPEApplication::RightOnHold); 197 QPEApplication::setStylusOperation( mailView->viewport(),QPEApplication::RightOnHold);
192 QPEApplication::setStylusOperation( folderView->viewport(),QPEApplication::RightOnHold); 198 QPEApplication::setStylusOperation( folderView->viewport(),QPEApplication::RightOnHold);
193 if ( subLE ) 199 if ( subLE )
194 QPEApplication::setStylusOperation( subLE ,QPEApplication::RightOnHold); 200 QPEApplication::setStylusOperation( subLE ,QPEApplication::RightOnHold);
195 if ( fromLE ) 201 if ( fromLE )
196 QPEApplication::setStylusOperation( fromLE ,QPEApplication::RightOnHold); 202 QPEApplication::setStylusOperation( fromLE ,QPEApplication::RightOnHold);
197 if ( toLE ) 203 if ( toLE )
198 QPEApplication::setStylusOperation( toLE ,QPEApplication::RightOnHold); 204 QPEApplication::setStylusOperation( toLE ,QPEApplication::RightOnHold);
199#endif 205#endif
200 connect( mailView, SIGNAL( doubleClicked (QListViewItem* )),this, 206 connect( mailView, SIGNAL( doubleClicked (Q3ListViewItem* )),this,
201 SLOT( mailLeftClicked(QListViewItem*) ) ); 207 SLOT( mailLeftClicked(Q3ListViewItem*) ) );
202 connect( mailView, SIGNAL( returnPressed (QListViewItem* )),this, 208 connect( mailView, SIGNAL( returnPressed (Q3ListViewItem* )),this,
203 SLOT( mailLeftClicked(QListViewItem*) ) ); 209 SLOT( mailLeftClicked(Q3ListViewItem*) ) );
204 connect( mailView, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ),this, 210 connect( mailView, SIGNAL( mouseButtonPressed(int,Q3ListViewItem*,const QPoint&,int) ),this,
205 SLOT( mailHold(int,QListViewItem*,const QPoint&,int) ) ); 211 SLOT( mailHold(int,Q3ListViewItem*,const QPoint&,int) ) );
206 connect(folderView, SIGNAL(refreshMailview(const QValueList<RecMailP>&)), 212 connect(folderView, SIGNAL(refreshMailview(const Q3ValueList<RecMailP>&)),
207 this,SLOT(refreshMailView(const QValueList<RecMailP>&))); 213 this,SLOT(refreshMailView(const Q3ValueList<RecMailP>&)));
208 214
209 connect( mailView, SIGNAL( currentChanged (QListViewItem* )),this, 215 connect( mailView, SIGNAL( currentChanged (Q3ListViewItem* )),this,
210 SLOT( setInfoFields(QListViewItem*) ) ); 216 SLOT( setInfoFields(Q3ListViewItem*) ) );
211 217
212 connect( composeMail, SIGNAL( activated() ), SLOT( slotComposeMail() ) ); 218 connect( composeMail, SIGNAL( activated() ), SLOT( slotComposeMail() ) );
213 connect( sendQueued, SIGNAL( activated() ), SLOT( slotSendQueued() ) ); 219 connect( sendQueued, SIGNAL( activated() ), SLOT( slotSendQueued() ) );
214// connect( searchMails, SIGNAL( activated() ), SLOT( slotSearchMails() ) ); 220// connect( searchMails, SIGNAL( activated() ), SLOT( slotSearchMails() ) );
215 connect( editAccounts, SIGNAL( activated() ), SLOT( slotEditAccounts() ) ); 221 connect( editAccounts, SIGNAL( activated() ), SLOT( slotEditAccounts() ) );
216 //mailView->setMultiSelection ( true ); 222 //mailView->setMultiSelection ( true );
217 //mailView->setSelectionMode( QListView::Extended ); 223 //mailView->setSelectionMode( QListView::Extended );
218 QValueList<int> list; 224 Q3ValueList<int> list;
219 int fw = 100; 225 int fw = 100;
220 if ( QApplication::desktop()->width() > 320 ) 226 if ( QApplication::desktop()->width() > 320 )
221 fw = 50; 227 fw = 50;
222 list.append( fw ); 228 list.append( fw );
223 list.append( 100 ); 229 list.append( 100 );
224 split->setSizes( list ); 230 split->setSizes( list );
225 QTimer::singleShot( 100, this, SLOT( slotAdjustColumns() ) ); 231 QTimer::singleShot( 100, this, SLOT( slotAdjustColumns() ) );
226 mailView->setShowSortIndicator ( true ); 232 mailView->setShowSortIndicator ( true );
227 QLabel *spacer = new QLabel( toolBar ); 233 QLabel *spacer = new QLabel( toolBar );
228 spacer->setBackgroundMode( QWidget::PaletteButton ); 234 spacer->setBackgroundMode( QWidget::PaletteButton );
229 toolBar->setStretchableWidget( spacer ); 235 toolBar->setStretchableWidget( spacer );
230 236
231 QAction* closeMail = new QAction(i18n("Close"),SmallIcon("exit"), 0, 0, this); 237 QAction* closeMail = new QAction(i18n("Close"),SmallIcon("exit"), 0, 0, this);
232 connect( closeMail, SIGNAL( activated() ), SLOT( close() ) ); 238 connect( closeMail, SIGNAL( activated() ), SLOT( close() ) );
233 if ( QApplication::desktop()->width() > 320 ) 239 if ( QApplication::desktop()->width() > 320 )
234 closeMail->addTo(toolBar); 240 closeMail->addTo(toolBar);
235 closeMail->addTo(mailMenu); 241 closeMail->addTo(mailMenu);
236 242
237 243
238 QPopupMenu* helpMenu = new QPopupMenu( menuBar ); 244 Q3PopupMenu* helpMenu = new Q3PopupMenu( menuBar );
239 menuBar->insertItem( i18n( "Help" ), helpMenu ); 245 menuBar->insertItem( i18n( "Help" ), helpMenu );
240 QAction* li = new QAction(i18n("About"), QPixmap(), 0, 0, this); 246 QAction* li = new QAction(i18n("About"), QPixmap(), 0, 0, this);
241 connect( li, SIGNAL( activated() ), SLOT( showAbout()) ); 247 connect( li, SIGNAL( activated() ), SLOT( showAbout()) );
242 li->addTo(helpMenu); 248 li->addTo(helpMenu);
243 li = new QAction(i18n("Licence"),QPixmap(), 0, 0, this); 249 li = new QAction(i18n("Licence"),QPixmap(), 0, 0, this);
244 connect( li, SIGNAL( activated() ), SLOT( showLicence()) ); 250 connect( li, SIGNAL( activated() ), SLOT( showLicence()) );
245 li->addTo(helpMenu); 251 li->addTo(helpMenu);
246 li = new QAction(i18n("LibEtPan Licence"), QPixmap(), 0, 0, this); 252 li = new QAction(i18n("LibEtPan Licence"), QPixmap(), 0, 0, this);
247 connect( li, SIGNAL( activated() ), SLOT( showEtpanLicence()) ); 253 connect( li, SIGNAL( activated() ), SLOT( showEtpanLicence()) );
248 li->addTo(helpMenu); 254 li->addTo(helpMenu);
249 connect( codecMenu, SIGNAL( activated(int) ), this, SLOT( slotSetCodec( int )) ); 255 connect( codecMenu, SIGNAL( activated(int) ), this, SLOT( slotSetCodec( int )) );
250 slotSetCodec( KOPrefs::instance()->mCurrentCodec ); 256 slotSetCodec( KOPrefs::instance()->mCurrentCodec );
251 menuBar->setMaximumWidth( menuBar->sizeHint().width()); 257 menuBar->setMaximumWidth( menuBar->sizeHint().width());
252 //menuBar->setMaximumSize( menuBar->sizeHint()); 258 //menuBar->setMaximumSize( menuBar->sizeHint());
253#ifdef DESKTOP_VERSION 259#ifdef DESKTOP_VERSION
254 resize ( 640, 480 ); 260 resize ( 640, 480 );
255#endif 261#endif
256} 262}
257 263
258MainWindow::~MainWindow() 264MainWindow::~MainWindow()
259{ 265{
260} 266}
261 267
262void MainWindow::setInfoFields(QListViewItem* item ) 268void MainWindow::setInfoFields(Q3ListViewItem* item )
263{ 269{
264 if ( item == 0) { 270 if ( item == 0) {
265 if ( subLE ) subLE->setText(""); 271 if ( subLE ) subLE->setText("");
266 if ( fromLE ) fromLE->setText(""); 272 if ( fromLE ) fromLE->setText("");
267 if ( toLE ) toLE->setText(""); 273 if ( toLE ) toLE->setText("");
268 return; 274 return;
269 } 275 }
270 RecMailP mail = ((MailListViewItem*)item)->data(); 276 RecMailP mail = ((MailListViewItem*)item)->data();
271 if ( subLE ) subLE->setText(mail->getSubject()); 277 if ( subLE ) subLE->setText(mail->getSubject());
272 if ( fromLE ) fromLE->setText(mail->getFrom()); 278 if ( fromLE ) fromLE->setText(mail->getFrom());
273 if ( toLE ) toLE->setText(mail->To().join(";" )); 279 if ( toLE ) toLE->setText(mail->To().join(";" ));
274 if ( subLE ) subLE->setCursorPosition(0); 280 if ( subLE ) subLE->setCursorPosition(0);
275 if ( fromLE ) fromLE->setCursorPosition(0); 281 if ( fromLE ) fromLE->setCursorPosition(0);
276 if ( toLE ) toLE->setCursorPosition(0); 282 if ( toLE ) toLE->setCursorPosition(0);
277 283
278} 284}
279void MainWindow::slotSetCodec( int codec ) 285void MainWindow::slotSetCodec( int codec )
280{ 286{
281 codecMenu->setItemChecked(KOPrefs::instance()->mCurrentCodec, false ); 287 codecMenu->setItemChecked(KOPrefs::instance()->mCurrentCodec, false );
282 //qDebug("codec %d ", codec); 288 //qDebug("codec %d ", codec);
283 KOPrefs::instance()->mCurrentCodec = codec; 289 KOPrefs::instance()->mCurrentCodec = codec;
284 KOPrefs::instance()->isDirty = true; 290 KOPrefs::instance()->isDirty = true;
285 QString name; 291 QString name;
286 switch ( codec ) { 292 switch ( codec ) {
287 case 0: 293 case 0:
288 name = "iso-8859-1"; 294 name = "iso-8859-1";
289 break; 295 break;
290 case 1: 296 case 1:
291 name = "iso-8859-5"; 297 name = "iso-8859-5";
292 break; 298 break;
293 case 2: 299 case 2:
294 name = "iso-8859-15"; 300 name = "iso-8859-15";
295 break; 301 break;
296 case 3: 302 case 3:
297 name = "big-5"; 303 name = "big-5";
298 break; 304 break;
299 case 4: 305 case 4:
300 name = "utf-8"; 306 name = "utf-8";
301 break; 307 break;
302 case 5: 308 case 5:
303 name = KOPrefs::instance()->mSendCodec.lower(); 309 name = KOPrefs::instance()->mSendCodec.lower();
304 break; 310 break;
305 } 311 }
306 KOPrefs::instance()->mCurrentCodeName = name ; 312 KOPrefs::instance()->mCurrentCodeName = name ;
307 codecMenu->changeItem ( 5, "Userdefined ("+KOPrefs::instance()->mSendCodec+")"); 313 codecMenu->changeItem ( 5, "Userdefined ("+KOPrefs::instance()->mSendCodec+")");
308 codecMenu->setItemChecked(KOPrefs::instance()->mCurrentCodec, true ); 314 codecMenu->setItemChecked(KOPrefs::instance()->mCurrentCodec, true );
309} 315}
310void MainWindow::showLicence() 316void MainWindow::showLicence()
311{ 317{
312 KApplication::showLicence(); 318 KApplication::showLicence();
313} 319}
314void MainWindow::showAbout() 320void MainWindow::showAbout()
315{ 321{
316 QString version; 322 QString version;
317#include <../version> 323#include <../version>
318 324
319 QString cap = "About KOpieMail/Pi"; 325 QString cap = "About KOpieMail/Pi";
320 QString text =i18n("KOpieMail/Platform-independent\n") + 326 QString text =i18n("KOpieMail/Platform-independent\n") +
321 "(OM/Pi) " + version + " - " 327 "(OM/Pi) " + version + " - "
322 328
323#ifdef DESKTOP_VERSION 329#ifdef DESKTOP_VERSION
324 "Desktop Edition\n" 330 "Desktop Edition\n"
325#else 331#else
326 "PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n" 332 "PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n"
327#endif 333#endif
328 "www.pi-sync.info\n\n" 334 "www.pi-sync.info\n\n"
329 335
330 336
331 337
332"Copyright (c) 2004 Lutz Rogowski <lutz@pi-sync.info>\n" 338"Copyright (c) 2004 Lutz Rogowski <lutz@pi-sync.info>\n"
333 "KOpieMail/Pi is based on Opie Mail\n" 339 "KOpieMail/Pi is based on Opie Mail\n"
334 "Copyright (c) Rajko Albrecht and the Opie team\n" 340 "Copyright (c) Rajko Albrecht and the Opie team\n"
335 "KOpieMail/Pi is licensed under the GPL\n" 341 "KOpieMail/Pi is licensed under the GPL\n"
336 "\n" 342 "\n"
337 "KOpieMail/Pi uses LibEtPan - a mail stuff library\n" 343 "KOpieMail/Pi uses LibEtPan - a mail stuff library\n"
338 "Copyright (C) 2001, 2002 - DINH Viet Hoa\n" 344 "Copyright (C) 2001, 2002 - DINH Viet Hoa\n"
339 "libEtPan has its own licence - see LibEtPan licence\n"; 345 "libEtPan has its own licence - see LibEtPan licence\n";
340 346
341 KApplication::showText( cap, text ); 347 KApplication::showText( cap, text );
342} 348}
343void MainWindow::showEtpanLicence() 349void MainWindow::showEtpanLicence()
344{ 350{
345 KApplication::showFile( "LibEtPan licence", "kdepim/kopiemail/COPYRIGHTlibetpan" ); 351 KApplication::showFile( "LibEtPan licence", "kdepim/kopiemail/COPYRIGHTlibetpan" );
346 352
347} 353}
348void MainWindow::appMessage(const QCString &, const QByteArray &) 354void MainWindow::appMessage(const Q3CString &, const QByteArray &)
349{ 355{
350 qDebug("appMessage implemented by subclass"); 356 qDebug("appMessage implemented by subclass");
351} 357}
352 358
353void MainWindow::slotAdjustLayout() { 359void MainWindow::slotAdjustLayout() {
354 360
355 /* 361 /*
356 QWidget *d = QApplication::desktop(); 362 QWidget *d = QApplication::desktop();
357 363
358 if ( d->width() < d->height() ) { 364 if ( d->width() < d->height() ) {
359 layout->setDirection( QBoxLayout::TopToBottom ); 365 layout->setDirection( QBoxLayout::TopToBottom );
360 } else { 366 } else {
361 layout->setDirection( QBoxLayout::LeftToRight ); 367 layout->setDirection( QBoxLayout::LeftToRight );
362 } 368 }
363 */ 369 */
364} 370}
365 371
366void MainWindow::slotAdjustColumns() 372void MainWindow::slotAdjustColumns()
367{ 373{
368 374
369 if ( !folderView->isHidden() ) 375 if ( !folderView->isHidden() )
370 folderView->setColumnWidth( 0, folderView->visibleWidth() ); 376 folderView->setColumnWidth( 0, folderView->visibleWidth() );
371 377
372 mailView->setColumnWidth( 0, 10 ); 378 mailView->setColumnWidth( 0, 10 );
373 mailView->setColumnWidth( 1, 100 ); 379 mailView->setColumnWidth( 1, 100 );
374 mailView->setColumnWidth( 2, 100 ); 380 mailView->setColumnWidth( 2, 100 );
375 mailView->setColumnWidth( 3, 70 ); 381 mailView->setColumnWidth( 3, 70 );
376 mailView->setColumnWidth( 4, 180 ); 382 mailView->setColumnWidth( 4, 180 );
377 if ( KOPrefs::instance()->mShowToField ) 383 if ( KOPrefs::instance()->mShowToField )
378 mailView->setColumnWidth( 5, 100 ); 384 mailView->setColumnWidth( 5, 100 );
379 mailView->setColumnAlignment( 3, AlignRight); 385 mailView->setColumnAlignment( 3, AlignRight);
380} 386}
381void MainWindow::slotAdjustColumnsWide() 387void MainWindow::slotAdjustColumnsWide()
382{ 388{
383 if ( !folderView->isHidden() ) 389 if ( !folderView->isHidden() )
384 folderView->setColumnWidth( 0, folderView->visibleWidth() ); 390 folderView->setColumnWidth( 0, folderView->visibleWidth() );
385 391
386 mailView->setColumnWidth( 0, 10 ); 392 mailView->setColumnWidth( 0, 10 );
387 mailView->setColumnWidth( 1, 200 ); 393 mailView->setColumnWidth( 1, 200 );
388 mailView->setColumnWidth( 2, 200 ); 394 mailView->setColumnWidth( 2, 200 );
389 mailView->setColumnWidth( 3, 70 ); 395 mailView->setColumnWidth( 3, 70 );
390 mailView->setColumnWidth( 4, 180 ); 396 mailView->setColumnWidth( 4, 180 );
391 if ( KOPrefs::instance()->mShowToField ) 397 if ( KOPrefs::instance()->mShowToField )
392 mailView->setColumnWidth( 5, 100 ); 398 mailView->setColumnWidth( 5, 100 );
393 mailView->setColumnAlignment( 3, AlignRight); 399 mailView->setColumnAlignment( 3, AlignRight);
394} 400}
395 401
396void MainWindow::slotEditSettings() 402void MainWindow::slotEditSettings()
397{ 403{
398} 404}
399void MainWindow::slotEditGlobalSettings() 405void MainWindow::slotEditGlobalSettings()
400{ 406{
401} 407}
402 408
403void MainWindow::slotShowFolders( bool ) 409void MainWindow::slotShowFolders( bool )
404{ 410{
405 qDebug("not implemented: "); 411 qDebug("not implemented: ");
406} 412}
407 413
408void MainWindow::refreshMailView(const QValueList<RecMailP>&) 414void MainWindow::refreshMailView(const Q3ValueList<RecMailP>&)
409{ 415{
410 qDebug("not implemented: "); 416 qDebug("not implemented: ");
411} 417}
412 418
413void MainWindow::mailLeftClicked(QListViewItem * ) 419void MainWindow::mailLeftClicked(Q3ListViewItem * )
414{ 420{
415 qDebug("not implemented: "); 421 qDebug("not implemented: ");
416} 422}
417 423
418void MainWindow::displayMail() 424void MainWindow::displayMail()
419{ 425{
420 qDebug("not implemented: "); 426 qDebug("not implemented: ");
421} 427}
422 428
423void MainWindow::slotDeleteMail() 429void MainWindow::slotDeleteMail()
424{ 430{
425 qDebug("not implemented: "); 431 qDebug("not implemented: ");
426} 432}
427 433
428void MainWindow::mailHold(int, QListViewItem *,const QPoint&,int ) 434void MainWindow::mailHold(int, Q3ListViewItem *,const QPoint&,int )
429{ 435{
430 qDebug("not implemented: "); 436 qDebug("not implemented: ");
431} 437}
432 438
433void MainWindow::slotSendQueued() 439void MainWindow::slotSendQueued()
434{ 440{
435 qDebug("not implemented: "); 441 qDebug("not implemented: ");
436} 442}
437 443
438void MainWindow::slotEditAccounts() 444void MainWindow::slotEditAccounts()
439{ 445{
440 qDebug("not implemented: "); 446 qDebug("not implemented: ");
441} 447}
442 448
443void MainWindow::slotComposeMail() 449void MainWindow::slotComposeMail()
444{ 450{
445 qDebug("not implemented: "); 451 qDebug("not implemented: ");
446} 452}
diff --git a/kmicromail/mainwindow.h b/kmicromail/mainwindow.h
index f65f3b4..1ccadc2 100644
--- a/kmicromail/mainwindow.h
+++ b/kmicromail/mainwindow.h
@@ -1,75 +1,79 @@
1 1
2// CHANGED 2004-08-06 Lutz Rogowski 2// CHANGED 2004-08-06 Lutz Rogowski
3#ifndef MAINWINDOW_H 3#ifndef MAINWINDOW_H
4#define MAINWINDOW_H 4#define MAINWINDOW_H
5 5
6#include <qmainwindow.h> 6#include <q3mainwindow.h>
7//Added by qt3to4:
8#include <Q3CString>
9#include <Q3ValueList>
10#include <Q3PopupMenu>
7#include <klistview.h> 11#include <klistview.h>
8#include <qaction.h> 12#include <qaction.h>
9#include <qlineedit.h> 13#include <qlineedit.h>
10 14
11#include <qtoolbar.h> 15#include <q3toolbar.h>
12#ifdef DESKTOP_VERSION 16#ifdef DESKTOP_VERSION
13#include <qmenubar.h> 17#include <qmenubar.h>
14#define QPEMenuBar QMenuBar 18#define QPEMenuBar QMenuBar
15#else 19#else
16#include <qpe/qpemenubar.h> 20#include <qpe/qpemenubar.h>
17#endif 21#endif
18 22
19#include "accountview.h" 23#include "accountview.h"
20#include "statuswidget.h" 24#include "statuswidget.h"
21 25
22#include <libmailwrapper/mailtypes.h> 26#include <libmailwrapper/mailtypes.h>
23#include <opie2/osmartpointer.h> 27#include <opie2/osmartpointer.h>
24 28
25class RecMail; 29class RecMail;
26 30
27class MainWindow : public QMainWindow 31class MainWindow : public Q3MainWindow
28{ 32{
29 Q_OBJECT 33 Q_OBJECT
30 34
31public: 35public:
32 MainWindow( QWidget *parent = 0, const char *name = 0, WFlags flags = 0 ); 36 MainWindow( QWidget *parent = 0, const char *name = 0, Qt::WFlags flags = 0 );
33 virtual ~MainWindow(); 37 virtual ~MainWindow();
34 38
35public slots: 39public slots:
36 virtual void slotAdjustColumns(); 40 virtual void slotAdjustColumns();
37 virtual void slotAdjustColumnsWide(); 41 virtual void slotAdjustColumnsWide();
38 virtual void appMessage(const QCString &msg, const QByteArray &data); 42 virtual void appMessage(const Q3CString &msg, const QByteArray &data);
39 virtual void slotComposeMail(); 43 virtual void slotComposeMail();
40 44
41protected slots: 45protected slots:
42 virtual void setInfoFields(QListViewItem* ); 46 virtual void setInfoFields(Q3ListViewItem* );
43 virtual void slotSendQueued(); 47 virtual void slotSendQueued();
44 virtual void slotEditAccounts(); 48 virtual void slotEditAccounts();
45 virtual void slotShowFolders( bool show ); 49 virtual void slotShowFolders( bool show );
46 virtual void refreshMailView(const QValueList<RecMailP>&); 50 virtual void refreshMailView(const Q3ValueList<RecMailP>&);
47 virtual void displayMail(); 51 virtual void displayMail();
48 virtual void slotGetMail() = 0; 52 virtual void slotGetMail() = 0;
49 virtual void slotGetAllMail() = 0; 53 virtual void slotGetAllMail() = 0;
50 virtual void slotDeleteMail(); 54 virtual void slotDeleteMail();
51 virtual void slotDeleteAllMail() = 0; 55 virtual void slotDeleteAllMail() = 0;
52 virtual void slotSetCodec(int); 56 virtual void slotSetCodec(int);
53 virtual void mailHold(int, QListViewItem *,const QPoint&,int); 57 virtual void mailHold(int, Q3ListViewItem *,const QPoint&,int);
54 virtual void slotAdjustLayout(); 58 virtual void slotAdjustLayout();
55 virtual void slotEditSettings(); 59 virtual void slotEditSettings();
56 virtual void slotEditGlobalSettings(); 60 virtual void slotEditGlobalSettings();
57 virtual void mailLeftClicked( QListViewItem * ); 61 virtual void mailLeftClicked( Q3ListViewItem * );
58 void showLicence(); 62 void showLicence();
59 void showAbout(); 63 void showAbout();
60 void showEtpanLicence(); 64 void showEtpanLicence();
61 65
62protected: 66protected:
63 QToolBar *toolBar; 67 Q3ToolBar *toolBar;
64 StatusWidget *statusWidget; 68 StatusWidget *statusWidget;
65 QPEMenuBar *menuBar; 69 QPEMenuBar *menuBar;
66 QPopupMenu *mailMenu, *settingsMenu, *codecMenu; 70 Q3PopupMenu *mailMenu, *settingsMenu, *codecMenu;
67 QAction *composeMail, *sendQueued, *showFolders, *searchMails, *deleteMails, 71 QAction *composeMail, *sendQueued, *showFolders, *searchMails, *deleteMails,
68 *editSettings, *editAccounts, *syncFolders; 72 *editSettings, *editAccounts, *syncFolders;
69 AccountView *folderView; 73 AccountView *folderView;
70 KListView *mailView; 74 KListView *mailView;
71 QLineEdit* toLE,*fromLE,*subLE; 75 QLineEdit* toLE,*fromLE,*subLE;
72 //QBoxLayout *layout; 76 //QBoxLayout *layout;
73}; 77};
74 78
75#endif 79#endif
diff --git a/kmicromail/nntpgroups.cpp b/kmicromail/nntpgroups.cpp
index c729f79..d2213d4 100644
--- a/kmicromail/nntpgroups.cpp
+++ b/kmicromail/nntpgroups.cpp
@@ -1,62 +1,62 @@
1#include "nntpgroups.h" 1#include "nntpgroups.h"
2 2
3#include <libmailwrapper/settings.h> 3#include <libmailwrapper/settings.h>
4#include <qlistview.h> 4#include <q3listview.h>
5#include <qlineedit.h> 5#include <qlineedit.h>
6 6
7using namespace Opie::Core; 7using namespace Opie::Core;
8 8
9NNTPGroups::NNTPGroups(NNTPaccount *account, QWidget* parent, const char* name, WFlags fl) 9NNTPGroups::NNTPGroups(NNTPaccount *account, QWidget* parent, const char* name, Qt::WFlags fl)
10 : NNTPGroupsUI(parent,name,fl),subscribedGroups() 10 : NNTPGroupsUI(parent,name,fl),subscribedGroups()
11{ 11{
12 m_Account = account; 12 m_Account = account;
13 fillGroups(); 13 fillGroups();
14} 14}
15 15
16NNTPGroups::~NNTPGroups() 16NNTPGroups::~NNTPGroups()
17{ 17{
18 18
19} 19}
20 20
21void NNTPGroups::slotGetNG() 21void NNTPGroups::slotGetNG()
22{ 22{
23 if (!m_Account) return; 23 if (!m_Account) return;
24 GroupListView->clear(); 24 GroupListView->clear();
25 NNTPwrapper tmp( m_Account ); 25 NNTPwrapper tmp( m_Account );
26 QString filter = Groupfilteredit->text(); 26 QString filter = Groupfilteredit->text();
27 QStringList list = tmp.listAllNewsgroups(filter); 27 QStringList list = tmp.listAllNewsgroups(filter);
28 subscribedGroupsNotListed = subscribedGroups; 28 subscribedGroupsNotListed = subscribedGroups;
29 for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) { 29 for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) {
30 QCheckListItem *item; 30 Q3CheckListItem *item;
31 item = new QCheckListItem( GroupListView, (*it), QCheckListItem::CheckBox ); 31 item = new Q3CheckListItem( GroupListView, (*it), Q3CheckListItem::CheckBox );
32 if ( subscribedGroups.contains( (*it) ) >= 1 ) { 32 if ( subscribedGroups.contains( (*it) ) >= 1 ) {
33 item->setOn( true ); 33 item->setOn( true );
34 subscribedGroupsNotListed.remove((*it)); 34 subscribedGroupsNotListed.remove((*it));
35 } 35 }
36 } 36 }
37} 37}
38 38
39void NNTPGroups::fillGroups() 39void NNTPGroups::fillGroups()
40{ 40{
41 if (!m_Account) return; 41 if (!m_Account) return;
42 subscribedGroups = m_Account->getGroups(); 42 subscribedGroups = m_Account->getGroups();
43 for ( QStringList::Iterator it = subscribedGroups.begin(); it != subscribedGroups.end(); ++it ) { 43 for ( QStringList::Iterator it = subscribedGroups.begin(); it != subscribedGroups.end(); ++it ) {
44 QCheckListItem *item; 44 Q3CheckListItem *item;
45 item = new QCheckListItem( GroupListView, (*it), QCheckListItem::CheckBox ); 45 item = new Q3CheckListItem( GroupListView, (*it), Q3CheckListItem::CheckBox );
46 item->setOn( true ); 46 item->setOn( true );
47 } 47 }
48} 48}
49 49
50void NNTPGroups::storeValues() 50void NNTPGroups::storeValues()
51{ 51{
52 if (!m_Account) return; 52 if (!m_Account) return;
53 QListViewItemIterator list_it( GroupListView ); 53 Q3ListViewItemIterator list_it( GroupListView );
54 subscribedGroups.clear(); 54 subscribedGroups.clear();
55 for ( ; list_it.current(); ++list_it ) { 55 for ( ; list_it.current(); ++list_it ) {
56 if ( ( (QCheckListItem*)list_it.current() )->isOn() ) { 56 if ( ( (Q3CheckListItem*)list_it.current() )->isOn() ) {
57 subscribedGroups.append( list_it.current()->text(0) ); 57 subscribedGroups.append( list_it.current()->text(0) );
58 } 58 }
59 } 59 }
60 subscribedGroups+=subscribedGroupsNotListed; 60 subscribedGroups+=subscribedGroupsNotListed;
61 m_Account->setGroups( subscribedGroups ); 61 m_Account->setGroups( subscribedGroups );
62} 62}
diff --git a/kmicromail/nntpgroups.h b/kmicromail/nntpgroups.h
index e5b7c35..80cc329 100644
--- a/kmicromail/nntpgroups.h
+++ b/kmicromail/nntpgroups.h
@@ -1,33 +1,33 @@
1#ifndef __NNTPGROUPS_WINDOW__ 1#ifndef __NNTPGROUPS_WINDOW__
2#define __NNTPGROUPS_WINDOW__ 2#define __NNTPGROUPS_WINDOW__
3 3
4#include "nntpgroupsui.h" 4#include "nntpgroupsui.h"
5 5
6#include <libmailwrapper/nntpwrapper.h> 6#include <libmailwrapper/nntpwrapper.h>
7 7
8class NNTPaccount; 8class NNTPaccount;
9class QStringList; 9class QStringList;
10 10
11class NNTPGroups:public NNTPGroupsUI 11class NNTPGroups:public NNTPGroupsUI
12{ 12{
13 Q_OBJECT 13 Q_OBJECT
14public: 14public:
15 NNTPGroups(NNTPaccount *account, QWidget* parent = 0, const char* name = 0, WFlags fl = 0); 15 NNTPGroups(NNTPaccount *account, QWidget* parent = 0, const char* name = 0, Qt::WFlags fl = 0);
16 virtual ~NNTPGroups(); 16 virtual ~NNTPGroups();
17 /* must be called from external. 17 /* must be called from external.
18 * it will store the new subscription list into the account 18 * it will store the new subscription list into the account
19 * but don't save them, this must be done by the calling class. 19 * but don't save them, this must be done by the calling class.
20 */ 20 */
21 void storeValues(); 21 void storeValues();
22 22
23protected slots: 23protected slots:
24 virtual void slotGetNG(); 24 virtual void slotGetNG();
25 25
26protected: 26protected:
27 virtual void fillGroups(); 27 virtual void fillGroups();
28 28
29 NNTPaccount*m_Account; 29 NNTPaccount*m_Account;
30 QStringList subscribedGroups,subscribedGroupsNotListed; 30 QStringList subscribedGroups,subscribedGroupsNotListed;
31}; 31};
32 32
33#endif 33#endif
diff --git a/kmicromail/nntpgroupsdlg.cpp b/kmicromail/nntpgroupsdlg.cpp
index f564b10..bfe1d35 100644
--- a/kmicromail/nntpgroupsdlg.cpp
+++ b/kmicromail/nntpgroupsdlg.cpp
@@ -1,30 +1,32 @@
1#include "nntpgroupsdlg.h" 1#include "nntpgroupsdlg.h"
2#include "nntpgroups.h" 2#include "nntpgroups.h"
3#include <klocale.h> 3#include <klocale.h>
4 4
5#include <libmailwrapper/settings.h> 5#include <libmailwrapper/settings.h>
6 6
7#include <qlayout.h> 7#include <qlayout.h>
8//Added by qt3to4:
9#include <Q3VBoxLayout>
8 10
9NNTPGroupsDlg::NNTPGroupsDlg(NNTPaccount *account,QWidget * parent, const char * name) 11NNTPGroupsDlg::NNTPGroupsDlg(NNTPaccount *account,QWidget * parent, const char * name)
10 : QDialog(parent,name,true,0) 12 : QDialog(parent,name,true,0)
11{ 13{
12 setCaption(i18n("Subscribed newsgroups")); 14 setCaption(i18n("Subscribed newsgroups"));
13 m_Account = account; 15 m_Account = account;
14 QVBoxLayout*dlglayout = new QVBoxLayout(this); 16 Q3VBoxLayout*dlglayout = new Q3VBoxLayout(this);
15 dlglayout->setSpacing(2); 17 dlglayout->setSpacing(2);
16 dlglayout->setMargin(1); 18 dlglayout->setMargin(1);
17 groupsWidget = new NNTPGroups(account,this); 19 groupsWidget = new NNTPGroups(account,this);
18 dlglayout->addWidget(groupsWidget); 20 dlglayout->addWidget(groupsWidget);
19} 21}
20 22
21NNTPGroupsDlg::~NNTPGroupsDlg() 23NNTPGroupsDlg::~NNTPGroupsDlg()
22{ 24{
23} 25}
24 26
25void NNTPGroupsDlg::accept() 27void NNTPGroupsDlg::accept()
26{ 28{
27 groupsWidget->storeValues(); 29 groupsWidget->storeValues();
28 m_Account->save(); 30 m_Account->save();
29 QDialog::accept(); 31 QDialog::accept();
30} 32}
diff --git a/kmicromail/opiemail.cpp b/kmicromail/opiemail.cpp
index 75a75b9..f453be5 100644
--- a/kmicromail/opiemail.cpp
+++ b/kmicromail/opiemail.cpp
@@ -1,694 +1,699 @@
1// CHANGED 2004-09-31 Lutz Rogowski 1// CHANGED 2004-09-31 Lutz Rogowski
2// CHANGED 2004-08-06 Lutz Rogowski 2// CHANGED 2004-08-06 Lutz Rogowski
3 3
4 4
5#define protected public 5#define protected public
6#include <qwidget.h> 6#include <qwidget.h>
7//Added by qt3to4:
8#include <Q3ValueList>
9#include <Q3CString>
10#include <QPixmap>
11#include <Q3PopupMenu>
7#undef protected 12#undef protected
8#include "koprefsdialog.h" 13#include "koprefsdialog.h"
9#include <kapplication.h> 14#include <kapplication.h>
10#include <libkdepim/externalapphandler.h> 15#include <libkdepim/externalapphandler.h>
11#include <libkdepim/kpimglobalprefs.h> 16#include <libkdepim/kpimglobalprefs.h>
12#ifdef MINIKDE_KDIALOG_H 17#ifdef MINIKDE_KDIALOG_H
13#undef MINIKDE_KDIALOG_H 18#undef MINIKDE_KDIALOG_H
14#endif 19#endif
15#include "settingsdialog.h" 20#include "settingsdialog.h"
16#include "opiemail.h" 21#include "opiemail.h"
17#include "editaccounts.h" 22#include "editaccounts.h"
18#include "composemail.h" 23#include "composemail.h"
19#include "mailistviewitem.h" 24#include "mailistviewitem.h"
20#include "viewmail.h" 25#include "viewmail.h"
21#include "selectstore.h" 26#include "selectstore.h"
22#include "selectsmtp.h" 27#include "selectsmtp.h"
23#include "accountitem.h" 28#include "accountitem.h"
24#include "accountview.h" 29#include "accountview.h"
25#include "klocale.h" 30#include "klocale.h"
26 31
27#include <qmessagebox.h> 32#include <qmessagebox.h>
28#include <qtimer.h> 33#include <qtimer.h>
29#include <qcursor.h> 34#include <qcursor.h>
30#include <qtextbrowser.h> 35#include <q3textbrowser.h>
31#include <qregexp.h> 36#include <qregexp.h>
32#include <qpe/global.h> 37#include <qpe/global.h>
33 38
34#ifdef DESKTOP_VERSION 39#ifdef DESKTOP_VERSION
35#include <qapplication.h> 40#include <qapplication.h>
36#else 41#else
37#include <qpe/qpeapplication.h> 42#include <qpe/qpeapplication.h>
38#endif 43#endif
39#include <libmailwrapper/smtpwrapper.h> 44#include <libmailwrapper/smtpwrapper.h>
40#include <libmailwrapper/mailtypes.h> 45#include <libmailwrapper/mailtypes.h>
41#include <libmailwrapper/abstractmail.h> 46#include <libmailwrapper/abstractmail.h>
42#include "koprefs.h" 47#include "koprefs.h"
43 48
44//using namespace Opie::Core; 49//using namespace Opie::Core;
45 50
46OpieMail::OpieMail( QWidget *parent, const char *name ) 51OpieMail::OpieMail( QWidget *parent, const char *name )
47 : MainWindow( parent, name) //, WStyle_ContextHelp ) 52 : MainWindow( parent, name) //, WStyle_ContextHelp )
48{ 53{
49 mCurrentComposer = 0; 54 mCurrentComposer = 0;
50 settings = new Settings(); 55 settings = new Settings();
51 tb = 0; 56 tb = 0;
52 setIcon(SmallIcon( "kmicromail" ) ); 57 setIcon(SmallIcon( "kmicromail" ) );
53 folderView->populate( settings->getAccounts() ); 58 folderView->populate( settings->getAccounts() );
54 connect(ExternalAppHandler::instance(), SIGNAL(receivedNameEmailUidListEvent(const QString&, const QStringList&, const QStringList&, const QStringList&)), 59 connect(ExternalAppHandler::instance(), SIGNAL(receivedNameEmailUidListEvent(const QString&, const QStringList&, const QStringList&, const QStringList&)),
55 this, SLOT(insertAttendees(const QString&, const QStringList&, const QStringList&, const QStringList&))); 60 this, SLOT(insertAttendees(const QString&, const QStringList&, const QStringList&, const QStringList&)));
56 folderView->setFocus(); 61 folderView->setFocus();
57} 62}
58 63
59OpieMail::~OpieMail() 64OpieMail::~OpieMail()
60{ 65{
61 if (settings) delete settings; 66 if (settings) delete settings;
62 if ( tb ) 67 if ( tb )
63 delete tb; 68 delete tb;
64} 69}
65 70
66void OpieMail::appMessage(const QCString &msg, const QByteArray &data) 71void OpieMail::appMessage(const Q3CString &msg, const QByteArray &data)
67{ 72{
68 73
69} 74}
70#include <stdlib.h> 75#include <stdlib.h>
71void OpieMail::message(const QCString &msg, const QByteArray &data) 76void OpieMail::message(const Q3CString &msg, const QByteArray &data)
72{ 77{
73 // copied from old mail2 78 // copied from old mail2
74 static int ii = 0; 79 static int ii = 0;
75 //qDebug("QCOP CALL ############################# %d ", ii); 80 //qDebug("QCOP CALL ############################# %d ", ii);
76 //QString mess ( msg ); 81 //QString mess ( msg );
77 //qDebug("Message = %s ",mess.latin1()); 82 //qDebug("Message = %s ",mess.latin1());
78 ++ii; 83 ++ii;
79 //qDebug("KM:appMessage %d *%s* %x", ii, msg.data(), this); 84 //qDebug("KM:appMessage %d *%s* %x", ii, msg.data(), this);
80 85
81 mPendingEmail = QString::null; 86 mPendingEmail = QString::null;
82 mPendingName = QString::null; 87 mPendingName = QString::null;
83 if (msg == "writeMail(QString,QString)") 88 if (msg == "writeMail(QString,QString)")
84 { 89 {
85 //qDebug("writeMail(QString,QString) "); 90 //qDebug("writeMail(QString,QString) ");
86 QDataStream stream(data,IO_ReadOnly); 91 QDataStream stream(data,QIODevice::ReadOnly);
87 stream >> mPendingName >> mPendingEmail; 92 stream >> mPendingName >> mPendingEmail;
88 // removing the whitespaces at beginning and end is needed! 93 // removing the whitespaces at beginning and end is needed!
89 QTimer::singleShot ( 50, this, SLOT(slotComposeMail() ) ); 94 QTimer::singleShot ( 50, this, SLOT(slotComposeMail() ) );
90 } 95 }
91 else if (msg == "newMail()") 96 else if (msg == "newMail()")
92 { 97 {
93 //qDebug("slotComposeMail() "); 98 //qDebug("slotComposeMail() ");
94 // we cannot call slotComposeMail(); directly, because may be executing a QCOP call 99 // we cannot call slotComposeMail(); directly, because may be executing a QCOP call
95 // and a QCOP call does not like a processevents in his execution 100 // and a QCOP call does not like a processevents in his execution
96 // with the Qtimer we call slotComposeMail() after we reached the main event loop 101 // with the Qtimer we call slotComposeMail() after we reached the main event loop
97 QTimer::singleShot ( 50, this, SLOT(slotComposeMail() ) ); 102 QTimer::singleShot ( 50, this, SLOT(slotComposeMail() ) );
98 // slotComposeMail(); 103 // slotComposeMail();
99 } 104 }
100 else if (msg == "newMail(QString)") 105 else if (msg == "newMail(QString)")
101 { 106 {
102 //qDebug(" newMail(QString)"); 107 //qDebug(" newMail(QString)");
103 QDataStream stream(data,IO_ReadOnly); 108 QDataStream stream(data,QIODevice::ReadOnly);
104 stream >> mPendingName; 109 stream >> mPendingName;
105 // the format is 110 // the format is
106 // NAME <EMAIL>:SUBJECT 111 // NAME <EMAIL>:SUBJECT
107 QTimer::singleShot ( 50, this, SLOT(slotComposeMail() ) ); 112 QTimer::singleShot ( 50, this, SLOT(slotComposeMail() ) );
108 } else { 113 } else {
109 mPendingData = data; 114 mPendingData = data;
110 mPendingMessage = msg; 115 mPendingMessage = msg;
111 QTimer::singleShot ( 50, this, SLOT(slotExtAppHandler() ) ); 116 QTimer::singleShot ( 50, this, SLOT(slotExtAppHandler() ) );
112 } 117 }
113 118
114 //qDebug("END OpieMail::message "); 119 //qDebug("END OpieMail::message ");
115} 120}
116void OpieMail::slotExtAppHandler() 121void OpieMail::slotExtAppHandler()
117{ 122{
118 ExternalAppHandler::instance()->appMessage ( mPendingMessage, mPendingData ); 123 ExternalAppHandler::instance()->appMessage ( mPendingMessage, mPendingData );
119} 124}
120void OpieMail::slotwriteMail2(const QString& namemail ) 125void OpieMail::slotwriteMail2(const QString& namemail )
121{ 126{
122 //qDebug("OpieMail::slotwriteMail2 "); 127 //qDebug("OpieMail::slotwriteMail2 ");
123 //qApp->processEvents(); 128 //qApp->processEvents();
124 ComposeMail compose( settings, this, 0, true ); 129 ComposeMail compose( settings, this, 0, true );
125 if ( !namemail.isEmpty() ) { 130 if ( !namemail.isEmpty() ) {
126 QString to = namemail; 131 QString to = namemail;
127 if ( namemail.find( " <") > 1 ) { 132 if ( namemail.find( " <") > 1 ) {
128 to = "\"" +to.replace( QRegExp( " <"), "\" <") ; 133 to = "\"" +to.replace( QRegExp( " <"), "\" <") ;
129 } else 134 } else
130 if ( namemail.find( "<") > 1 ) { 135 if ( namemail.find( "<") > 1 ) {
131 to = "\"" +to.replace( QRegExp( "<"), "\" <") ; 136 to = "\"" +to.replace( QRegExp( "<"), "\" <") ;
132 } 137 }
133 int sub = to.find( ">:"); 138 int sub = to.find( ">:");
134 if ( sub > 0 ) { 139 if ( sub > 0 ) {
135 compose.setTo( to.left(sub+1) ); 140 compose.setTo( to.left(sub+1) );
136 compose.setSubject( to.mid(sub+2) ); 141 compose.setSubject( to.mid(sub+2) );
137 } else 142 } else
138 compose.setTo( to ); 143 compose.setTo( to );
139 } 144 }
140 compose.slotAdjustColumns(); 145 compose.slotAdjustColumns();
141#ifndef DESKTOP_VERSION 146#ifndef DESKTOP_VERSION
142 compose.showMaximized(); 147 compose.showMaximized();
143#endif 148#endif
144 mCurrentComposer = &compose; 149 mCurrentComposer = &compose;
145 compose.exec(); 150 compose.exec();
146 mCurrentComposer = 0; 151 mCurrentComposer = 0;
147 folderView->refreshOutgoing(); 152 folderView->refreshOutgoing();
148 raise(); 153 raise();
149 //qDebug("retttich "); 154 //qDebug("retttich ");
150} 155}
151void OpieMail::slotwriteMail(const QString&name,const QString&email) 156void OpieMail::slotwriteMail(const QString&name,const QString&email)
152{ 157{
153 // qDebug("OpieMail::slotwriteMail "); 158 // qDebug("OpieMail::slotwriteMail ");
154 ComposeMail compose( settings, this, 0, true ); 159 ComposeMail compose( settings, this, 0, true );
155 if (!email.isEmpty()) 160 if (!email.isEmpty())
156 { 161 {
157 if (!name.isEmpty()) 162 if (!name.isEmpty())
158 { 163 {
159 compose.setTo("\"" + name + "\"" + " " + "<"+ email + ">"); 164 compose.setTo("\"" + name + "\"" + " " + "<"+ email + ">");
160 } 165 }
161 else 166 else
162 { 167 {
163 compose.setTo(email); 168 compose.setTo(email);
164 } 169 }
165 } 170 }
166 compose.slotAdjustColumns(); 171 compose.slotAdjustColumns();
167#ifndef DESKTOP_VERSION 172#ifndef DESKTOP_VERSION
168 compose.showMaximized(); 173 compose.showMaximized();
169#endif 174#endif
170 175
171 mCurrentComposer = &compose; 176 mCurrentComposer = &compose;
172 compose.exec(); 177 compose.exec();
173 mCurrentComposer = 0; 178 mCurrentComposer = 0;
174 folderView->refreshOutgoing(); 179 folderView->refreshOutgoing();
175 raise(); 180 raise();
176} 181}
177 182
178void OpieMail::slotComposeMail() 183void OpieMail::slotComposeMail()
179{ 184{
180 if ( mPendingEmail == QString::null && mPendingName == QString::null) 185 if ( mPendingEmail == QString::null && mPendingName == QString::null)
181 slotwriteMail2( QString () ); 186 slotwriteMail2( QString () );
182 else { 187 else {
183 if ( mPendingEmail == QString::null ) 188 if ( mPendingEmail == QString::null )
184 slotwriteMail2( mPendingName ); 189 slotwriteMail2( mPendingName );
185 else 190 else
186 slotwriteMail( mPendingName, mPendingEmail ); 191 slotwriteMail( mPendingName, mPendingEmail );
187 } 192 }
188 //slotwriteMail(0l,0l); 193 //slotwriteMail(0l,0l);
189} 194}
190 195
191void OpieMail::slotSendQueued() 196void OpieMail::slotSendQueued()
192{ 197{
193 SMTPaccount *smtp = 0; 198 SMTPaccount *smtp = 0;
194 199
195 QList<Account> list = settings->getAccounts(); 200 QList<Account> list = settings->getAccounts();
196 QList<SMTPaccount> smtpList; 201 QList<SMTPaccount> smtpList;
197 smtpList.setAutoDelete(false); 202 smtpList.setAutoDelete(false);
198 Account *it; 203 Account *it;
199 for ( it = list.first(); it; it = list.next() ) 204 for ( it = list.first(); it; it = list.next() )
200 { 205 {
201 if ( it->getType() == MAILLIB::A_SMTP ) 206 if ( it->getType() == MAILLIB::A_SMTP )
202 { 207 {
203 smtp = static_cast<SMTPaccount *>(it); 208 smtp = static_cast<SMTPaccount *>(it);
204 smtpList.append(smtp); 209 smtpList.append(smtp);
205 } 210 }
206 } 211 }
207 if (smtpList.count()==0) 212 if (smtpList.count()==0)
208 { 213 {
209 QMessageBox::information(0,i18n("Info"),i18n("Define a smtp\n account first!\n")); 214 QMessageBox::information(0,i18n("Info"),i18n("Define a smtp\n account first!\n"));
210 return; 215 return;
211 } 216 }
212 if ( QMessageBox::warning(this, i18n("Sending all mails"), i18n("Do you really want to\nsend all queued mails?" ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::No ) 217 if ( QMessageBox::warning(this, i18n("Sending all mails"), i18n("Do you really want to\nsend all queued mails?" ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::No )
213 return; 218 return;
214 if (smtpList.count()==1) 219 if (smtpList.count()==1)
215 { 220 {
216 smtp = smtpList.at(0); 221 smtp = smtpList.at(0);
217 } 222 }
218 else 223 else
219 { 224 {
220 smtp = 0; 225 smtp = 0;
221 selectsmtp selsmtp; 226 selectsmtp selsmtp;
222 selsmtp.setSelectionlist(&smtpList); 227 selsmtp.setSelectionlist(&smtpList);
223 selsmtp.resize( selsmtp.sizeHint() ); 228 selsmtp.resize( selsmtp.sizeHint() );
224 if ( selsmtp.exec() == QDialog::Accepted ) 229 if ( selsmtp.exec() == QDialog::Accepted )
225 { 230 {
226 smtp = selsmtp.selected_smtp(); 231 smtp = selsmtp.selected_smtp();
227 } 232 }
228 } 233 }
229 if (smtp) 234 if (smtp)
230 { 235 {
231 236
232 Global::statusMessage("Sending mails...!"); 237 Global::statusMessage("Sending mails...!");
233 SMTPwrapper * wrap = new SMTPwrapper(smtp); 238 SMTPwrapper * wrap = new SMTPwrapper(smtp);
234 if ( wrap->flushOutbox() ) 239 if ( wrap->flushOutbox() )
235 { 240 {
236 Global::statusMessage("Mails sent!"); 241 Global::statusMessage("Mails sent!");
237 } 242 }
238 delete wrap; 243 delete wrap;
239 } 244 }
240 folderView->refreshOutgoing(); 245 folderView->refreshOutgoing();
241} 246}
242 247
243void OpieMail::slotSearchMails() 248void OpieMail::slotSearchMails()
244{ 249{
245 qDebug("OpieMail::slotSearchMails():not implemented "); 250 qDebug("OpieMail::slotSearchMails():not implemented ");
246} 251}
247void OpieMail::slotEditGlobalSettings() 252void OpieMail::slotEditGlobalSettings()
248{ 253{
249 KPimPrefsGlobalDialog gc ( this ); 254 KPimPrefsGlobalDialog gc ( this );
250 gc.exec(); 255 gc.exec();
251} 256}
252 257
253void OpieMail::slotEditSettings() 258void OpieMail::slotEditSettings()
254{ 259{
255 260
256 KOPrefsDialog settingsDialog( this, "koprefs", true ); 261 KOPrefsDialog settingsDialog( this, "koprefs", true );
257#ifndef DESKTOP_VERSION 262#ifndef DESKTOP_VERSION
258 settingsDialog.showMaximized(); 263 settingsDialog.showMaximized();
259#endif 264#endif
260 settingsDialog.exec(); 265 settingsDialog.exec();
261 266
262 slotSetCodec( KOPrefs::instance()->mCurrentCodec ); 267 slotSetCodec( KOPrefs::instance()->mCurrentCodec );
263 // KApplication::execDialog(settingsDialog); 268 // KApplication::execDialog(settingsDialog);
264} 269}
265 270
266void OpieMail::slotEditAccounts() 271void OpieMail::slotEditAccounts()
267{ 272{
268 EditAccounts eaDialog( settings, this, 0, true ); 273 EditAccounts eaDialog( settings, this, 0, true );
269 eaDialog.slotAdjustColumns(); 274 eaDialog.slotAdjustColumns();
270#ifndef DESKTOP_VERSION 275#ifndef DESKTOP_VERSION
271 eaDialog.showMaximized(); 276 eaDialog.showMaximized();
272#endif 277#endif
273 eaDialog.exec(); 278 eaDialog.exec();
274 if ( settings ) delete settings; 279 if ( settings ) delete settings;
275 settings = new Settings(); 280 settings = new Settings();
276 281
277 folderView->populate( settings->getAccounts() ); 282 folderView->populate( settings->getAccounts() );
278} 283}
279void OpieMail::replyMail() 284void OpieMail::replyMail()
280{ 285{
281 286
282 QListViewItem*item = mailView->currentItem(); 287 Q3ListViewItem*item = mailView->currentItem();
283 if (!item) return; 288 if (!item) return;
284 RecMailP mail = ((MailListViewItem*)item)->data(); 289 RecMailP mail = ((MailListViewItem*)item)->data();
285 RecBodyP body = folderView->fetchBody(mail); 290 RecBodyP body = folderView->fetchBody(mail);
286 291
287 QString rtext; 292 QString rtext;
288 rtext += QString("* %1 wrote on %2:\n") // no i18n on purpose 293 rtext += QString("* %1 wrote on %2:\n") // no i18n on purpose
289 .arg( mail->getFrom()) 294 .arg( mail->getFrom())
290 .arg( mail->getDate()); 295 .arg( mail->getDate());
291 296
292 QString text = body->Bodytext(); 297 QString text = body->Bodytext();
293 QStringList lines = QStringList::split(QRegExp("\\n"), text); 298 QStringList lines = QStringList::split(QRegExp("\\n"), text);
294 QStringList::Iterator it; 299 QStringList::Iterator it;
295 for (it = lines.begin(); it != lines.end(); it++) 300 for (it = lines.begin(); it != lines.end(); it++)
296 { 301 {
297 rtext += "> " + *it + "\n"; 302 rtext += "> " + *it + "\n";
298 } 303 }
299 rtext += "\n"; 304 rtext += "\n";
300 305
301 QString prefix; 306 QString prefix;
302 if ( mail->getSubject().find(QRegExp("^Re: .*$")) != -1) prefix = ""; 307 if ( mail->getSubject().find(QRegExp("^Re: .*$")) != -1) prefix = "";
303 else prefix = "Re: "; // no i18n on purpose 308 else prefix = "Re: "; // no i18n on purpose
304 309
305 Settings *settings = new Settings(); 310 Settings *settings = new Settings();
306 ComposeMail composer( settings ,this, 0, true); 311 ComposeMail composer( settings ,this, 0, true);
307 if (mail->Replyto().isEmpty()) { 312 if (mail->Replyto().isEmpty()) {
308 composer.setTo( mail->getFrom()); 313 composer.setTo( mail->getFrom());
309 } else { 314 } else {
310 composer.setTo( mail->Replyto()); 315 composer.setTo( mail->Replyto());
311 } 316 }
312 composer.setSubject( prefix + mail->getSubject()); 317 composer.setSubject( prefix + mail->getSubject());
313 composer.setMessage( rtext ); 318 composer.setMessage( rtext );
314 composer.setInReplyTo( mail->Msgid()); 319 composer.setInReplyTo( mail->Msgid());
315 composer.setCharset( body->getCharset() ); 320 composer.setCharset( body->getCharset() );
316 321
317 mCurrentComposer = &composer; 322 mCurrentComposer = &composer;
318 if ( QDialog::Accepted == KApplication::execDialog( &composer ) ) 323 if ( QDialog::Accepted == KApplication::execDialog( &composer ) )
319 { 324 {
320 mail->Wrapper()->answeredMail(mail); 325 mail->Wrapper()->answeredMail(mail);
321 } 326 }
322 mCurrentComposer = 0; 327 mCurrentComposer = 0;
323 folderView->refreshOutgoing(); 328 folderView->refreshOutgoing();
324 delete settings; 329 delete settings;
325 330
326} 331}
327void OpieMail::closeViewMail(ViewMail * vm) 332void OpieMail::closeViewMail(ViewMail * vm)
328{ 333{
329 vm->hide(); 334 vm->hide();
330} 335}
331 336
332void OpieMail::slotDownloadMail( ) 337void OpieMail::slotDownloadMail( )
333{ 338{
334 QListViewItem*item = mailView->currentItem(); 339 Q3ListViewItem*item = mailView->currentItem();
335 if (!item ) { 340 if (!item ) {
336 Global::statusMessage("Error: No item slected!"); 341 Global::statusMessage("Error: No item slected!");
337 return; 342 return;
338 } 343 }
339 RecMailP mail = ((MailListViewItem*)item)->data(); 344 RecMailP mail = ((MailListViewItem*)item)->data();
340 Account * acc = mail->Wrapper()->getAccount(); 345 Account * acc = mail->Wrapper()->getAccount();
341 if ( !acc ) { 346 if ( !acc ) {
342 Global::statusMessage("Mail is already stored locally!"); 347 Global::statusMessage("Mail is already stored locally!");
343 return; 348 return;
344 } 349 }
345 QString lfName = acc->getLocalFolder(); 350 QString lfName = acc->getLocalFolder();
346 //qDebug("local folder " + lfName ); 351 //qDebug("local folder " + lfName );
347 if ( lfName.isEmpty() ) 352 if ( lfName.isEmpty() )
348 lfName = acc->getAccountName(); 353 lfName = acc->getAccountName();
349 AbstractMail* targetMail = folderView->allAccounts()[0]->getWrapper(); 354 AbstractMail* targetMail = folderView->allAccounts()[0]->getWrapper();
350 //qDebug("target %d %d ",targetMail,mail->Wrapper() ); 355 //qDebug("target %d %d ",targetMail,mail->Wrapper() );
351 if ( targetMail == mail->Wrapper() ) { 356 if ( targetMail == mail->Wrapper() ) {
352 Global::statusMessage("Mail is already locally stored!"); 357 Global::statusMessage("Mail is already locally stored!");
353 return; 358 return;
354 } 359 }
355 if ( !targetMail->createMbox(lfName)) { 360 if ( !targetMail->createMbox(lfName)) {
356 Global::statusMessage("Error creating folder!"); 361 Global::statusMessage("Error creating folder!");
357 return; 362 return;
358 } 363 }
359 Global::statusMessage("Fetching mail...please wait!"); 364 Global::statusMessage("Fetching mail...please wait!");
360 qApp->processEvents(); 365 qApp->processEvents();
361 encodedString*st = 0; 366 encodedString*st = 0;
362 st = mail->Wrapper()->fetchRawBody(mail); 367 st = mail->Wrapper()->fetchRawBody(mail);
363 if ( st ) { 368 if ( st ) {
364 targetMail->storeMessage(st->Content(),st->Length(),lfName); 369 targetMail->storeMessage(st->Content(),st->Length(),lfName);
365 Global::statusMessage("Mail stored in "+ lfName); 370 Global::statusMessage("Mail stored in "+ lfName);
366 delete st; 371 delete st;
367 } else { 372 } else {
368 Global::statusMessage("Error: Cannot fetch mail!"); 373 Global::statusMessage("Error: Cannot fetch mail!");
369 } 374 }
370} 375}
371 376
372 377
373void OpieMail::deleteAndDisplayNextMail(ViewMail * vm) 378void OpieMail::deleteAndDisplayNextMail(ViewMail * vm)
374{ 379{
375 QListViewItem*item = mailView->currentItem(); 380 Q3ListViewItem*item = mailView->currentItem();
376 if (!item ) { 381 if (!item ) {
377 closeViewMail(vm); 382 closeViewMail(vm);
378 return; 383 return;
379 } 384 }
380 RecMailP mail = ((MailListViewItem*)item)->data(); 385 RecMailP mail = ((MailListViewItem*)item)->data();
381 mail->Wrapper()->deleteMail( mail ); 386 mail->Wrapper()->deleteMail( mail );
382 item = item->itemBelow(); 387 item = item->itemBelow();
383 if (!item ) { 388 if (!item ) {
384 closeViewMail(vm); 389 closeViewMail(vm);
385 return; 390 return;
386 } 391 }
387 mailView->setCurrentItem(item); 392 mailView->setCurrentItem(item);
388 mail = ((MailListViewItem*)item)->data(); 393 mail = ((MailListViewItem*)item)->data();
389 RecBodyP body = folderView->fetchBody(mail); 394 RecBodyP body = folderView->fetchBody(mail);
390 vm->setBody( body ); 395 vm->setBody( body );
391 vm->setMail( mail ); 396 vm->setMail( mail );
392} 397}
393void OpieMail::displayNextMail(ViewMail * vm) 398void OpieMail::displayNextMail(ViewMail * vm)
394{ 399{
395 QListViewItem*item = mailView->currentItem(); 400 Q3ListViewItem*item = mailView->currentItem();
396 if (!item) return; 401 if (!item) return;
397 ( (MailListViewItem*)item )->setPixmap( 0, QPixmap() ); 402 ( (MailListViewItem*)item )->setPixmap( 0, QPixmap() );
398 item = item->itemBelow(); 403 item = item->itemBelow();
399 if (!item) { 404 if (!item) {
400 vm->setCaption(i18n("End of List" )); 405 vm->setCaption(i18n("End of List" ));
401 return; 406 return;
402 } 407 }
403 mailView->setCurrentItem(item); 408 mailView->setCurrentItem(item);
404 RecMailP mail = ((MailListViewItem*)item)->data(); 409 RecMailP mail = ((MailListViewItem*)item)->data();
405 RecBodyP body = folderView->fetchBody(mail); 410 RecBodyP body = folderView->fetchBody(mail);
406 vm->setBody( body ); 411 vm->setBody( body );
407 vm->setMail( mail ); 412 vm->setMail( mail );
408} 413}
409void OpieMail::displayMail() 414void OpieMail::displayMail()
410{ 415{
411 QListViewItem*item = mailView->currentItem(); 416 Q3ListViewItem*item = mailView->currentItem();
412 if (!item) return; 417 if (!item) return;
413 RecMailP mail = ((MailListViewItem*)item)->data(); 418 RecMailP mail = ((MailListViewItem*)item)->data();
414 RecBodyP body = folderView->fetchBody(mail); 419 RecBodyP body = folderView->fetchBody(mail);
415 ViewMail readMail( this,"", Qt::WType_Modal ); 420 ViewMail readMail( this,"", Qt::WType_Modal );
416 readMail.setBody( body ); 421 readMail.setBody( body );
417 readMail.setMail( mail ); 422 readMail.setMail( mail );
418#ifndef DESKTOP_VERSION 423#ifndef DESKTOP_VERSION
419 readMail.showMaximized(); 424 readMail.showMaximized();
420#else 425#else
421 readMail.resize( 640, 480); 426 readMail.resize( 640, 480);
422#endif 427#endif
423 connect( &readMail,SIGNAL( showNextMail(ViewMail *) ), this, SLOT( displayNextMail(ViewMail *) ) ); 428 connect( &readMail,SIGNAL( showNextMail(ViewMail *) ), this, SLOT( displayNextMail(ViewMail *) ) );
424 connect( &readMail,SIGNAL( deleteAndDisplayNextMail(ViewMail *) ), this, SLOT(deleteAndDisplayNextMail(ViewMail *) ) ); 429 connect( &readMail,SIGNAL( deleteAndDisplayNextMail(ViewMail *) ), this, SLOT(deleteAndDisplayNextMail(ViewMail *) ) );
425 connect( &readMail,SIGNAL( signalDownloadMail() ), this, SLOT( slotDownloadMail() ) ); 430 connect( &readMail,SIGNAL( signalDownloadMail() ), this, SLOT( slotDownloadMail() ) );
426 431
427 readMail.exec(); 432 readMail.exec();
428 433
429 if ( readMail.deleted ) 434 if ( readMail.deleted )
430 { 435 {
431 folderView->refreshCurrent(); 436 folderView->refreshCurrent();
432 } 437 }
433 else 438 else
434 { 439 {
435 QListViewItem*item = mailView->currentItem(); 440 Q3ListViewItem*item = mailView->currentItem();
436 if (item) 441 if (item)
437 ( (MailListViewItem*)item )->setPixmap( 0, QPixmap() ); 442 ( (MailListViewItem*)item )->setPixmap( 0, QPixmap() );
438 } 443 }
439} 444}
440void OpieMail::slotGetAllMail() 445void OpieMail::slotGetAllMail()
441{ 446{
442 QListViewItem * item = folderView->firstChild(); 447 Q3ListViewItem * item = folderView->firstChild();
443 while ( item ){ 448 while ( item ){
444 ((AccountViewItem *)item)->contextMenuSelected( 101 ); 449 ((AccountViewItem *)item)->contextMenuSelected( 101 );
445 item = item->nextSibling (); 450 item = item->nextSibling ();
446 } 451 }
447} 452}
448void OpieMail::slotGetMail() 453void OpieMail::slotGetMail()
449{ 454{
450 QListViewItem * item = folderView->currentItem(); 455 Q3ListViewItem * item = folderView->currentItem();
451 if ( ! item ) return; 456 if ( ! item ) return;
452 ((AccountViewItem *)item)->contextMenuSelected( 101 ); 457 ((AccountViewItem *)item)->contextMenuSelected( 101 );
453} 458}
454void OpieMail::slotDeleteMail() 459void OpieMail::slotDeleteMail()
455{ 460{
456 if (!mailView->currentItem()) return; 461 if (!mailView->currentItem()) return;
457 RecMailP mail = ((MailListViewItem*)mailView->currentItem() )->data(); 462 RecMailP mail = ((MailListViewItem*)mailView->currentItem() )->data();
458 if ( QMessageBox::warning(this, i18n("Delete Mail"), QString( i18n("<p>Do you really want to delete this mail? <br><br>" ) + mail->getFrom() + " - " + mail->getSubject() ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes ) 463 if ( QMessageBox::warning(this, i18n("Delete Mail"), QString( i18n("<p>Do you really want to delete this mail? <br><br>" ) + mail->getFrom() + " - " + mail->getSubject() ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes )
459 { 464 {
460 mail->Wrapper()->deleteMail( mail ); 465 mail->Wrapper()->deleteMail( mail );
461 folderView->refreshCurrent(); 466 folderView->refreshCurrent();
462 } 467 }
463} 468}
464void OpieMail::slotDeleteAllMail() 469void OpieMail::slotDeleteAllMail()
465{ 470{
466 471
467 QValueList<RecMailP> t; 472 Q3ValueList<RecMailP> t;
468 if ( QMessageBox::warning(this, i18n("Delete All Mails"), i18n("Do you really want to delete\nall selected mails?" ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes ) 473 if ( QMessageBox::warning(this, i18n("Delete All Mails"), i18n("Do you really want to delete\nall selected mails?" ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes )
469 { 474 {
470 MailListViewItem* item = (MailListViewItem*)mailView->firstChild (); 475 MailListViewItem* item = (MailListViewItem*)mailView->firstChild ();
471 while ( item ) { 476 while ( item ) {
472 if ( item->isSelected() ) { 477 if ( item->isSelected() ) {
473 t.append( item->data() ); 478 t.append( item->data() );
474 } 479 }
475 item = (MailListViewItem*)item->nextSibling(); 480 item = (MailListViewItem*)item->nextSibling();
476 } 481 }
477 } 482 }
478 else 483 else
479 return; 484 return;
480 if ( t.count() == 0 ) 485 if ( t.count() == 0 )
481 return; 486 return;
482 RecMailP mail = t.first(); 487 RecMailP mail = t.first();
483 mail->Wrapper()->deleteMailList(t); 488 mail->Wrapper()->deleteMailList(t);
484 folderView->refreshCurrent(); 489 folderView->refreshCurrent();
485 490
486 491
487} 492}
488void OpieMail::clearSelection() 493void OpieMail::clearSelection()
489{ 494{
490 mailView->clearSelection(); 495 mailView->clearSelection();
491 496
492} 497}
493void OpieMail::selectAll() 498void OpieMail::selectAll()
494{ 499{
495 QListViewItem* item = mailView->firstChild (); 500 Q3ListViewItem* item = mailView->firstChild ();
496 while ( item ) { 501 while ( item ) {
497 mailView->setSelected ( item, true ); 502 mailView->setSelected ( item, true );
498 item = item->nextSibling(); 503 item = item->nextSibling();
499 } 504 }
500} 505}
501 506
502void OpieMail::mailHold(int button, QListViewItem *item,const QPoint&,int ) 507void OpieMail::mailHold(int button, Q3ListViewItem *item,const QPoint&,int )
503{ 508{
504 if (!mailView->currentItem()) return; 509 if (!mailView->currentItem()) return;
505 MAILLIB::ATYPE mailtype = ((MailListViewItem*)mailView->currentItem() )->wrapperType(); 510 MAILLIB::ATYPE mailtype = ((MailListViewItem*)mailView->currentItem() )->wrapperType();
506 /* just the RIGHT button - or hold on pda */ 511 /* just the RIGHT button - or hold on pda */
507 if (button!=2) {return;} 512 if (button!=2) {return;}
508 if (!item) return; 513 if (!item) return;
509 QPopupMenu *m = new QPopupMenu(0); 514 Q3PopupMenu *m = new Q3PopupMenu(0);
510 if (m) 515 if (m)
511 { 516 {
512 if (mailtype==MAILLIB::A_NNTP) { 517 if (mailtype==MAILLIB::A_NNTP) {
513 m->insertItem(i18n("Read this posting"),this,SLOT(displayMail())); 518 m->insertItem(i18n("Read this posting"),this,SLOT(displayMail()));
514 m->insertItem(i18n("Copy this posting"),this,SLOT(slotMoveCopyMail())); 519 m->insertItem(i18n("Copy this posting"),this,SLOT(slotMoveCopyMail()));
515 m->insertSeparator(); 520 m->insertSeparator();
516 m->insertItem(i18n("Copy all selected postings"),this,SLOT(slotMoveCopyAllMail())); 521 m->insertItem(i18n("Copy all selected postings"),this,SLOT(slotMoveCopyAllMail()));
517 m->insertItem(i18n("Clear selection"),this,SLOT(clearSelection())); 522 m->insertItem(i18n("Clear selection"),this,SLOT(clearSelection()));
518 } else { 523 } else {
519 if (folderView->currentisDraft()) { 524 if (folderView->currentisDraft()) {
520 m->insertItem(i18n("Edit this mail"),this,SLOT(reEditMail())); 525 m->insertItem(i18n("Edit this mail"),this,SLOT(reEditMail()));
521 } 526 }
522 m->insertItem(i18n("Reply to this mail"),this,SLOT(replyMail())); 527 m->insertItem(i18n("Reply to this mail"),this,SLOT(replyMail()));
523 m->insertItem(i18n("Read this mail"),this,SLOT(displayMail())); 528 m->insertItem(i18n("Read this mail"),this,SLOT(displayMail()));
524 m->insertSeparator(); 529 m->insertSeparator();
525 m->insertItem(i18n("Move/Copy this mail"),this,SLOT(slotMoveCopyMail())); 530 m->insertItem(i18n("Move/Copy this mail"),this,SLOT(slotMoveCopyMail()));
526 m->insertItem(i18n("Delete this mail"),this,SLOT(slotDeleteMail())); 531 m->insertItem(i18n("Delete this mail"),this,SLOT(slotDeleteMail()));
527 m->insertSeparator(); 532 m->insertSeparator();
528 m->insertItem(i18n("Move/Copy all selected mail"),this,SLOT(slotMoveCopyAllMail())); 533 m->insertItem(i18n("Move/Copy all selected mail"),this,SLOT(slotMoveCopyAllMail()));
529 m->insertItem(i18n("Delete all selected mails"),this,SLOT(slotDeleteAllMail())); 534 m->insertItem(i18n("Delete all selected mails"),this,SLOT(slotDeleteAllMail()));
530 m->insertSeparator(); 535 m->insertSeparator();
531 m->insertItem(i18n("Select all"),this,SLOT(selectAll())); 536 m->insertItem(i18n("Select all"),this,SLOT(selectAll()));
532 m->insertItem(i18n("Clear selection"),this,SLOT(clearSelection())); 537 m->insertItem(i18n("Clear selection"),this,SLOT(clearSelection()));
533 } 538 }
534 m->setFocus(); 539 m->setFocus();
535 m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y()) ); 540 m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y()) );
536 delete m; 541 delete m;
537 } 542 }
538} 543}
539 544
540void OpieMail::slotShowFolders( bool show ) 545void OpieMail::slotShowFolders( bool show )
541{ 546{
542 if ( show && folderView->isHidden() ) 547 if ( show && folderView->isHidden() )
543 { 548 {
544 slotAdjustColumns(); 549 slotAdjustColumns();
545 folderView->show(); 550 folderView->show();
546 //slotAdjustColumns(); 551 //slotAdjustColumns();
547 } 552 }
548 else if ( !show && !folderView->isHidden() ) 553 else if ( !show && !folderView->isHidden() )
549 { 554 {
550 slotAdjustColumnsWide(); 555 slotAdjustColumnsWide();
551 folderView->hide(); 556 folderView->hide();
552 //slotAdjustColumnsWide(); 557 //slotAdjustColumnsWide();
553 } 558 }
554} 559}
555 560
556void OpieMail::refreshMailView(const QValueList<RecMailP>&list) 561void OpieMail::refreshMailView(const Q3ValueList<RecMailP>&list)
557{ 562{
558 MailListViewItem*item = 0; 563 MailListViewItem*item = 0;
559 mailView->clear(); 564 mailView->clear();
560 565
561 QValueList<RecMailP>::ConstIterator it; 566 Q3ValueList<RecMailP>::ConstIterator it;
562 for (it = list.begin(); it != list.end();++it) 567 for (it = list.begin(); it != list.end();++it)
563 { 568 {
564 item = new MailListViewItem(mailView,item); 569 item = new MailListViewItem(mailView,item);
565 item->storeData((*it)); 570 item->storeData((*it));
566 item->showEntry(); 571 item->showEntry();
567 } 572 }
568 mailView->setSorting ( 4, false ); 573 mailView->setSorting ( 4, false );
569} 574}
570 575
571void OpieMail::mailLeftClicked( QListViewItem *item ) 576void OpieMail::mailLeftClicked( Q3ListViewItem *item )
572{ 577{
573 mailView->clearSelection(); 578 mailView->clearSelection();
574 /* just LEFT button - or tap with stylus on pda */ 579 /* just LEFT button - or tap with stylus on pda */
575 //if (button!=1) return; 580 //if (button!=1) return;
576 if (!item) return; 581 if (!item) return;
577 if (folderView->currentisDraft()) { 582 if (folderView->currentisDraft()) {
578 reEditMail(); 583 reEditMail();
579 } else { 584 } else {
580 displayMail(); 585 displayMail();
581 } 586 }
582} 587}
583 588
584void OpieMail::slotMoveCopyMail() 589void OpieMail::slotMoveCopyMail()
585{ 590{
586 if (!mailView->currentItem()) return; 591 if (!mailView->currentItem()) return;
587 RecMailP mail = ((MailListViewItem*)mailView->currentItem() )->data(); 592 RecMailP mail = ((MailListViewItem*)mailView->currentItem() )->data();
588 AbstractMail*targetMail = 0; 593 AbstractMail*targetMail = 0;
589 QString targetFolder = ""; 594 QString targetFolder = "";
590 Selectstore sels; 595 Selectstore sels;
591 folderView->setupFolderselect(&sels); 596 folderView->setupFolderselect(&sels);
592 if (!sels.exec()) return; 597 if (!sels.exec()) return;
593 targetMail = sels.currentMail(); 598 targetMail = sels.currentMail();
594 targetFolder = sels.currentFolder(); 599 targetFolder = sels.currentFolder();
595 if ( (mail->Wrapper()==targetMail && mail->getMbox()==targetFolder) || 600 if ( (mail->Wrapper()==targetMail && mail->getMbox()==targetFolder) ||
596 targetFolder.isEmpty()) 601 targetFolder.isEmpty())
597 { 602 {
598 return; 603 return;
599 } 604 }
600 if (sels.newFolder() && !targetMail->createMbox(targetFolder)) 605 if (sels.newFolder() && !targetMail->createMbox(targetFolder))
601 { 606 {
602 QMessageBox::critical(0,i18n("Error creating new Folder"), 607 QMessageBox::critical(0,i18n("Error creating new Folder"),
603 i18n("<center>Error while creating<br>new folder - breaking.</center>")); 608 i18n("<center>Error while creating<br>new folder - breaking.</center>"));
604 return; 609 return;
605 } 610 }
606 sels.hide(); 611 sels.hide();
607 qApp->processEvents(); 612 qApp->processEvents();
608 // qDebug("hiding sels "); 613 // qDebug("hiding sels ");
609 mail->Wrapper()->mvcpMail(mail,targetFolder,targetMail,sels.moveMails()); 614 mail->Wrapper()->mvcpMail(mail,targetFolder,targetMail,sels.moveMails());
610 folderView->refreshCurrent(); 615 folderView->refreshCurrent();
611} 616}
612 617
613void OpieMail::slotMoveCopyAllMail() 618void OpieMail::slotMoveCopyAllMail()
614{ 619{
615 620
616 if (!mailView->currentItem()) return; 621 if (!mailView->currentItem()) return;
617 QValueList<RecMailP> t; 622 Q3ValueList<RecMailP> t;
618 // if ( QMessageBox::warning(this, i18n("Move/Copy all selected mails"), i18n("Do you really want to copy/move\nall selected mails?" ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes ) 623 // if ( QMessageBox::warning(this, i18n("Move/Copy all selected mails"), i18n("Do you really want to copy/move\nall selected mails?" ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes )
619 { 624 {
620 MailListViewItem* item = (MailListViewItem*)mailView->firstChild (); 625 MailListViewItem* item = (MailListViewItem*)mailView->firstChild ();
621 while ( item ) { 626 while ( item ) {
622 if ( item->isSelected() ) { 627 if ( item->isSelected() ) {
623 t.append( item->data() ); 628 t.append( item->data() );
624 } 629 }
625 item = (MailListViewItem*)item->nextSibling(); 630 item = (MailListViewItem*)item->nextSibling();
626 } 631 }
627 } 632 }
628 // else 633 // else
629 // return; 634 // return;
630 if ( t.count() == 0 ) 635 if ( t.count() == 0 )
631 return; 636 return;
632 RecMailP mail = t.first(); 637 RecMailP mail = t.first();
633 AbstractMail*targetMail = 0; 638 AbstractMail*targetMail = 0;
634 QString targetFolder = ""; 639 QString targetFolder = "";
635 Selectstore sels; 640 Selectstore sels;
636 folderView->setupFolderselect(&sels); 641 folderView->setupFolderselect(&sels);
637 if (!sels.exec()) return; 642 if (!sels.exec()) return;
638 targetMail = sels.currentMail(); 643 targetMail = sels.currentMail();
639 targetFolder = sels.currentFolder(); 644 targetFolder = sels.currentFolder();
640 if ( (mail->Wrapper()==targetMail && mail->getMbox()==targetFolder) || 645 if ( (mail->Wrapper()==targetMail && mail->getMbox()==targetFolder) ||
641 targetFolder.isEmpty()) 646 targetFolder.isEmpty())
642 { 647 {
643 return; 648 return;
644 } 649 }
645 if (sels.newFolder() && !targetMail->createMbox(targetFolder)) 650 if (sels.newFolder() && !targetMail->createMbox(targetFolder))
646 { 651 {
647 QMessageBox::critical(0,i18n("Error creating new Folder"), 652 QMessageBox::critical(0,i18n("Error creating new Folder"),
648 i18n("<center>Error while creating<br>new folder - breaking.</center>")); 653 i18n("<center>Error while creating<br>new folder - breaking.</center>"));
649 return; 654 return;
650 } 655 }
651 sels.hide(); 656 sels.hide();
652 qApp->processEvents(); 657 qApp->processEvents();
653 //qDebug("hiding sels "); 658 //qDebug("hiding sels ");
654 mail->Wrapper()->mvcpMailList(t,targetFolder,targetMail,sels.moveMails()); 659 mail->Wrapper()->mvcpMailList(t,targetFolder,targetMail,sels.moveMails());
655 folderView->refreshCurrent(); 660 folderView->refreshCurrent();
656} 661}
657 662
658void OpieMail::reEditMail() 663void OpieMail::reEditMail()
659{ 664{
660 if (!mailView->currentItem()) return; 665 if (!mailView->currentItem()) return;
661 666
662 ComposeMail compose( settings, this, 0, true ); 667 ComposeMail compose( settings, this, 0, true );
663 compose.reEditMail(((MailListViewItem*)mailView->currentItem() )->data()); 668 compose.reEditMail(((MailListViewItem*)mailView->currentItem() )->data());
664 compose.slotAdjustColumns(); 669 compose.slotAdjustColumns();
665#ifndef DESKTOP_VERSION 670#ifndef DESKTOP_VERSION
666 compose.showMaximized(); 671 compose.showMaximized();
667#else 672#else
668 compose.resize(640,480); 673 compose.resize(640,480);
669#endif 674#endif
670 mCurrentComposer = &compose; 675 mCurrentComposer = &compose;
671 compose.exec(); 676 compose.exec();
672 folderView->refreshOutgoing(); 677 folderView->refreshOutgoing();
673 mCurrentComposer = 0; 678 mCurrentComposer = 0;
674} 679}
675 680
676void OpieMail::insertAttendees(const QString& uid,const QStringList& nameList,const QStringList& emailList,const QStringList& uidList) 681void OpieMail::insertAttendees(const QString& uid,const QStringList& nameList,const QStringList& emailList,const QStringList& uidList)
677{ 682{
678 683
679 if ( mCurrentComposer ) { 684 if ( mCurrentComposer ) {
680 mCurrentComposer->insertAttendees(uid,nameList,emailList,uidList); 685 mCurrentComposer->insertAttendees(uid,nameList,emailList,uidList);
681 } else { 686 } else {
682 ComposeMail compose( settings, this, 0, true ); 687 ComposeMail compose( settings, this, 0, true );
683 compose.slotAdjustColumns(); 688 compose.slotAdjustColumns();
684#ifndef DESKTOP_VERSION 689#ifndef DESKTOP_VERSION
685 compose.showMaximized(); 690 compose.showMaximized();
686#endif 691#endif
687 mCurrentComposer = &compose; 692 mCurrentComposer = &compose;
688 mCurrentComposer->insertAttendees(uid,nameList,emailList,uidList); 693 mCurrentComposer->insertAttendees(uid,nameList,emailList,uidList);
689 compose.exec(); 694 compose.exec();
690 mCurrentComposer = 0; 695 mCurrentComposer = 0;
691 folderView->refreshOutgoing(); 696 folderView->refreshOutgoing();
692 raise(); 697 raise();
693 } 698 }
694} 699}
diff --git a/kmicromail/opiemail.h b/kmicromail/opiemail.h
index bdd9058..ea64dc4 100644
--- a/kmicromail/opiemail.h
+++ b/kmicromail/opiemail.h
@@ -1,68 +1,71 @@
1// CHANGED 2004-09-31 Lutz Rogowski 1// CHANGED 2004-09-31 Lutz Rogowski
2#ifndef OPIEMAIL_H 2#ifndef OPIEMAIL_H
3#define OPIEMAIL_H 3#define OPIEMAIL_H
4 4
5#include "mainwindow.h" 5#include "mainwindow.h"
6#include <libmailwrapper/settings.h> 6#include <libmailwrapper/settings.h>
7 7
8#include <opie2/osmartpointer.h> 8#include <opie2/osmartpointer.h>
9#include <libmailwrapper/mailtypes.h> 9#include <libmailwrapper/mailtypes.h>
10#include <viewmail.h> 10#include <viewmail.h>
11#include <qstringlist.h> 11#include <qstringlist.h>
12//Added by qt3to4:
13#include <Q3CString>
14#include <Q3ValueList>
12 15
13class ComposeMail; 16class ComposeMail;
14 17
15class OpieMail : public MainWindow 18class OpieMail : public MainWindow
16{ 19{
17 Q_OBJECT 20 Q_OBJECT
18 21
19public: 22public:
20 OpieMail( QWidget *parent = 0, const char *name = 0 ); 23 OpieMail( QWidget *parent = 0, const char *name = 0 );
21 virtual ~OpieMail(); 24 virtual ~OpieMail();
22 static QString appName() { return QString::fromLatin1("kopiemail"); } 25 static QString appName() { return QString::fromLatin1("kopiemail"); }
23 26
24public slots: 27public slots:
25 virtual void slotwriteMail(const QString&name,const QString&email); 28 virtual void slotwriteMail(const QString&name,const QString&email);
26 virtual void slotwriteMail2(const QString&nameemail); 29 virtual void slotwriteMail2(const QString&nameemail);
27 virtual void slotComposeMail(); 30 virtual void slotComposeMail();
28 virtual void slotExtAppHandler(); 31 virtual void slotExtAppHandler();
29 virtual void appMessage(const QCString &msg, const QByteArray &data); 32 virtual void appMessage(const Q3CString &msg, const QByteArray &data);
30 virtual void message(const QCString &msg, const QByteArray &data); 33 virtual void message(const Q3CString &msg, const QByteArray &data);
31 void insertAttendees(const QString&, const QStringList& namelist, const QStringList& emaillist, const QStringList& uidlist); 34 void insertAttendees(const QString&, const QStringList& namelist, const QStringList& emaillist, const QStringList& uidlist);
32protected slots: 35protected slots:
33 virtual void deleteAndDisplayNextMail(ViewMail * vm); 36 virtual void deleteAndDisplayNextMail(ViewMail * vm);
34 virtual void displayNextMail(ViewMail * vm); 37 virtual void displayNextMail(ViewMail * vm);
35 virtual void slotSendQueued(); 38 virtual void slotSendQueued();
36 virtual void slotSearchMails(); 39 virtual void slotSearchMails();
37 virtual void slotEditSettings(); 40 virtual void slotEditSettings();
38 virtual void slotEditGlobalSettings(); 41 virtual void slotEditGlobalSettings();
39 virtual void slotEditAccounts(); 42 virtual void slotEditAccounts();
40 virtual void displayMail(); 43 virtual void displayMail();
41 virtual void replyMail(); 44 virtual void replyMail();
42 virtual void slotDeleteMail(); 45 virtual void slotDeleteMail();
43 virtual void slotGetMail(); 46 virtual void slotGetMail();
44 virtual void slotGetAllMail(); 47 virtual void slotGetAllMail();
45 virtual void slotDeleteAllMail(); 48 virtual void slotDeleteAllMail();
46 virtual void mailHold(int, QListViewItem *,const QPoint&,int); 49 virtual void mailHold(int, Q3ListViewItem *,const QPoint&,int);
47 virtual void slotShowFolders( bool show ); 50 virtual void slotShowFolders( bool show );
48 virtual void refreshMailView(const QValueList<RecMailP>&); 51 virtual void refreshMailView(const Q3ValueList<RecMailP>&);
49 virtual void mailLeftClicked( QListViewItem * ); 52 virtual void mailLeftClicked( Q3ListViewItem * );
50 virtual void slotMoveCopyMail(); 53 virtual void slotMoveCopyMail();
51 virtual void slotMoveCopyAllMail(); 54 virtual void slotMoveCopyAllMail();
52 virtual void reEditMail(); 55 virtual void reEditMail();
53 void clearSelection(); 56 void clearSelection();
54 void selectAll(); 57 void selectAll();
55 void slotDownloadMail(); 58 void slotDownloadMail();
56private: 59private:
57 ComposeMail* mCurrentComposer; 60 ComposeMail* mCurrentComposer;
58 void closeViewMail(ViewMail * vm); 61 void closeViewMail(ViewMail * vm);
59 QString mPendingEmail; 62 QString mPendingEmail;
60 QString mPendingName; 63 QString mPendingName;
61 QByteArray mPendingData; 64 QByteArray mPendingData;
62 QCString mPendingMessage; 65 Q3CString mPendingMessage;
63 Settings *settings; 66 Settings *settings;
64 QTextBrowser * tb; 67 Q3TextBrowser * tb;
65 68
66}; 69};
67 70
68#endif 71#endif
diff --git a/kmicromail/qpe/qdialog.h b/kmicromail/qpe/qdialog.h
index c63133d..3720182 100644
--- a/kmicromail/qpe/qdialog.h
+++ b/kmicromail/qpe/qdialog.h
@@ -1,29 +1,29 @@
1 1
2#ifndef MINIKDE_KDIALOG_H 2#ifndef MINIKDE_KDIALOG_H
3 3
4#ifndef DEFINE_QDIALOG_HACK 4#ifndef DEFINE_QDIALOG_HACK
5#define DEFINE_QDIALOG_HACK 5#define DEFINE_QDIALOG_HACK
6#warning call of include <qdialog.h> 6#warning call of include <qdialog.h>
7#warning including /usr/local/qt/include/qdialog.h 7#warning including /usr/local/qt/include/qdialog.h
8#warning if you get a compiling error 8#warning if you get a compiling error
9#warning please adjust your path here! 9#warning please adjust your path here!
10 10
11#include "/usr/local/qt/include/qdialog.h" 11#include "/usr/local/qt/include/qdialog.h"
12class QDialog_hacked : public QDialog 12class QDialog_hacked : public QDialog
13{ 13{
14 //Q__OBJECT 14 //Q__OBJECT
15 15
16 public: 16 public:
17 QDialog_hacked ( QWidget * parent=0, const char * name=0, bool modal=true, WFlags f=0 ); 17 QDialog_hacked ( QWidget * parent=0, const char * name=0, bool modal=true, Qt::WFlags f=0 );
18 18
19}; 19};
20 20
21#define QDialog QDialog_hacked 21#define QDialog QDialog_hacked
22 22
23#endif 23#endif
24 24
25#else 25#else
26#warning "/usr/local/qt/include/qdialog.h" for KDialog 26#warning "/usr/local/qt/include/qdialog.h" for KDialog
27#include "/usr/local/qt/include/qdialog.h" 27#include "/usr/local/qt/include/qdialog.h"
28 28
29#endif 29#endif
diff --git a/kmicromail/qpe/qdialog_hacked.cpp b/kmicromail/qpe/qdialog_hacked.cpp
index 0a34cec..5d4d353 100644
--- a/kmicromail/qpe/qdialog_hacked.cpp
+++ b/kmicromail/qpe/qdialog_hacked.cpp
@@ -1,27 +1,27 @@
1 1
2#include <qdialog.h> 2#include <qdialog.h>
3#include <qhbox.h> 3#include <q3hbox.h>
4#include <qpushbutton.h> 4#include <qpushbutton.h>
5#include <klocale.h> 5#include <klocale.h>
6#ifdef QDialog 6#ifdef QDialog
7#undef QDialog 7#undef QDialog
8#endif 8#endif
9 QDialog_hacked::QDialog_hacked ( QWidget * parent, const char * name, bool modal, WFlags f ) 9 QDialog_hacked::QDialog_hacked ( QWidget * parent, const char * name, bool modal, Qt::WFlags f )
10 : QDialog( parent,name,modal, f) 10 : QDialog( parent,name,modal, f)
11 { 11 {
12 qDebug("New hacked QDialog for ompi desktop"); 12 qDebug("New hacked QDialog for ompi desktop");
13 //QTimer::singleShot( 1, this,SLOT(addaddbuttons()) ); 13 //QTimer::singleShot( 1, this,SLOT(addaddbuttons()) );
14 14
15 setOrientation ( Vertical ); 15 setOrientation ( Vertical );
16 QHBox * hb = new QHBox ( this ); 16 Q3HBox * hb = new Q3HBox ( this );
17 QPushButton *ok = new QPushButton( i18n("OK"), hb ); 17 QPushButton *ok = new QPushButton( i18n("OK"), hb );
18 QPushButton *cancel = new QPushButton( i18n("Cancel"), hb ); 18 QPushButton *cancel = new QPushButton( i18n("Cancel"), hb );
19 setExtension ( hb ); 19 setExtension ( hb );
20 showExtension ( true ); 20 showExtension ( true );
21 connect ( ok, SIGNAL ( clicked()),this, SLOT (accept() ) ); 21 connect ( ok, SIGNAL ( clicked()),this, SLOT (accept() ) );
22 connect ( cancel, SIGNAL ( clicked()),this, SLOT (reject() ) ); 22 connect ( cancel, SIGNAL ( clicked()),this, SLOT (reject() ) );
23 //setWFlags(WStyle_MinMax ); 23 //setWFlags(WStyle_MinMax );
24 24
25 } 25 }
26 26
27 27
diff --git a/kmicromail/selectsmtp.cpp b/kmicromail/selectsmtp.cpp
index 10b6d79..ead723c 100644
--- a/kmicromail/selectsmtp.cpp
+++ b/kmicromail/selectsmtp.cpp
@@ -1,64 +1,64 @@
1#include "selectsmtp.h" 1#include "selectsmtp.h"
2#include <libmailwrapper/mailwrapper.h> 2#include <libmailwrapper/mailwrapper.h>
3 3
4#include <qcombobox.h> 4#include <qcombobox.h>
5#include <qcheckbox.h> 5#include <qcheckbox.h>
6#include <qmessagebox.h> 6#include <qmessagebox.h>
7#include <qpushbutton.h> 7#include <qpushbutton.h>
8#include <qlineedit.h> 8#include <qlineedit.h>
9#include <qlabel.h> 9#include <qlabel.h>
10#include <qtabwidget.h> 10#include <qtabwidget.h>
11#include <qlistview.h> 11#include <q3listview.h>
12#include <klocale.h> 12#include <klocale.h>
13selectsmtp::selectsmtp(QWidget* parent, const char* name, bool modal, WFlags fl) 13selectsmtp::selectsmtp(QWidget* parent, const char* name, bool modal, Qt::WFlags fl)
14 : selectstoreui(parent,name,modal,fl) 14 : selectstoreui(parent,name,modal,fl)
15{ 15{
16 //m_smtpList.setAutoDelete(false); 16 //m_smtpList.setAutoDelete(false);
17 m_smtpList = 0; 17 m_smtpList = 0;
18 //headlabel->setText(i18n("<center>Select SMTP account to use</center>")); 18 //headlabel->setText(i18n("<center>Select SMTP account to use</center>"));
19 headlabel->hide(); 19 headlabel->hide();
20 folderSelection->hide(); 20 folderSelection->hide();
21 folderLabel->hide(); 21 folderLabel->hide();
22 //accountlabel->setText(i18n("SMTP\nAccount:")); 22 //accountlabel->setText(i18n("SMTP\nAccount:"));
23 Line1->hide(); 23 Line1->hide();
24 newFoldersel->hide(); 24 newFoldersel->hide();
25 newFolderedit->hide(); 25 newFolderedit->hide();
26 newFolderLabel->hide(); 26 newFolderLabel->hide();
27 Line2->hide(); 27 Line2->hide();
28 selMove->hide(); 28 selMove->hide();
29 m_current_smtp = 0; 29 m_current_smtp = 0;
30 setCaption(i18n("Select SMTP Account")); 30 setCaption(i18n("Select SMTP Account"));
31} 31}
32 32
33selectsmtp::~selectsmtp() 33selectsmtp::~selectsmtp()
34{ 34{
35} 35}
36 36
37void selectsmtp::slotAccountselected(int which) 37void selectsmtp::slotAccountselected(int which)
38{ 38{
39 if (!m_smtpList || (unsigned)which>=m_smtpList->count() || which < 0) { 39 if (!m_smtpList || (unsigned)which>=m_smtpList->count() || which < 0) {
40 m_current_smtp = 0; 40 m_current_smtp = 0;
41 return; 41 return;
42 } 42 }
43 m_current_smtp = m_smtpList->at(which); 43 m_current_smtp = m_smtpList->at(which);
44} 44}
45 45
46void selectsmtp::setSelectionlist(QList<SMTPaccount>*list) 46void selectsmtp::setSelectionlist(QList<SMTPaccount>*list)
47{ 47{
48 m_smtpList = list; 48 m_smtpList = list;
49 accountSelection->clear(); 49 accountSelection->clear();
50 if (!m_smtpList || m_smtpList->count()==0) { 50 if (!m_smtpList || m_smtpList->count()==0) {
51 accountSelection->setEnabled(false); 51 accountSelection->setEnabled(false);
52 return; 52 return;
53 } 53 }
54 accountSelection->setEnabled(true); 54 accountSelection->setEnabled(true);
55 for (unsigned i = 0; m_smtpList!=0 && i < m_smtpList->count(); ++i) { 55 for (unsigned i = 0; m_smtpList!=0 && i < m_smtpList->count(); ++i) {
56 accountSelection->insertItem( m_smtpList->at(i)->getAccountName()); 56 accountSelection->insertItem( m_smtpList->at(i)->getAccountName());
57 } 57 }
58 m_current_smtp = m_smtpList->at(0); 58 m_current_smtp = m_smtpList->at(0);
59} 59}
60 60
61SMTPaccount*selectsmtp::selected_smtp() 61SMTPaccount*selectsmtp::selected_smtp()
62{ 62{
63 return m_current_smtp; 63 return m_current_smtp;
64} 64}
diff --git a/kmicromail/selectsmtp.h b/kmicromail/selectsmtp.h
index 9157ddf..d7accf6 100644
--- a/kmicromail/selectsmtp.h
+++ b/kmicromail/selectsmtp.h
@@ -1,27 +1,27 @@
1#ifndef __selectsmtp_h 1#ifndef __selectsmtp_h
2#define __selectstmp_h 2#define __selectstmp_h
3 3
4 4
5#include "selectstoreui.h" 5#include "selectstoreui.h"
6#include <qlist.h> 6#include <qlist.h>
7 7
8class SMTPaccount; 8class SMTPaccount;
9 9
10class selectsmtp : public selectstoreui 10class selectsmtp : public selectstoreui
11{ 11{
12 Q_OBJECT 12 Q_OBJECT
13public: 13public:
14 selectsmtp(QWidget* parent = 0, const char* name = 0, bool modal = TRUE, WFlags fl = 0 ); 14 selectsmtp(QWidget* parent = 0, const char* name = 0, bool modal = TRUE, Qt::WFlags fl = 0 );
15 virtual ~selectsmtp(); 15 virtual ~selectsmtp();
16 void setSelectionlist(QList<SMTPaccount>*list); 16 void setSelectionlist(QList<SMTPaccount>*list);
17 SMTPaccount*selected_smtp(); 17 SMTPaccount*selected_smtp();
18 18
19protected: 19protected:
20 QList<SMTPaccount>*m_smtpList; 20 QList<SMTPaccount>*m_smtpList;
21 SMTPaccount*m_current_smtp; 21 SMTPaccount*m_current_smtp;
22 22
23protected slots: 23protected slots:
24 virtual void slotAccountselected(int); 24 virtual void slotAccountselected(int);
25}; 25};
26 26
27#endif 27#endif
diff --git a/kmicromail/selectstore.h b/kmicromail/selectstore.h
index 447a6ae..d312c1d 100644
--- a/kmicromail/selectstore.h
+++ b/kmicromail/selectstore.h
@@ -1,33 +1,33 @@
1#ifndef _SELECTSTORE_H 1#ifndef _SELECTSTORE_H
2#define _SELECTSTORE_H 2#define _SELECTSTORE_H
3 3
4#include "selectstoreui.h" 4#include "selectstoreui.h"
5#include <qvaluelist.h> 5#include <q3valuelist.h>
6#include <qmap.h> 6#include <qmap.h>
7#include <qstringlist.h> 7#include <qstringlist.h>
8 8
9class AbstractMail; 9class AbstractMail;
10 10
11class Selectstore:public selectstoreui 11class Selectstore:public selectstoreui
12{ 12{
13 Q_OBJECT 13 Q_OBJECT
14public: 14public:
15 Selectstore(QWidget* parent = 0, const char* name = 0); 15 Selectstore(QWidget* parent = 0, const char* name = 0);
16 virtual ~Selectstore(); 16 virtual ~Selectstore();
17 virtual void addAccounts(AbstractMail*mail,const QStringList&folders); 17 virtual void addAccounts(AbstractMail*mail,const QStringList&folders);
18 virtual QString currentFolder(); 18 virtual QString currentFolder();
19 virtual AbstractMail*currentMail(); 19 virtual AbstractMail*currentMail();
20 bool newFolder(); 20 bool newFolder();
21 bool moveMails(); 21 bool moveMails();
22 22
23protected slots: 23protected slots:
24 virtual void slotCreateNewFolder(); 24 virtual void slotCreateNewFolder();
25 virtual void slotMoveMail(); 25 virtual void slotMoveMail();
26 virtual void slotAccountselected(int); 26 virtual void slotAccountselected(int);
27 27
28protected: 28protected:
29 QMap<int,QStringList> folderMap; 29 QMap<int,QStringList> folderMap;
30 QMap<int,AbstractMail*> mailMap; 30 QMap<int,AbstractMail*> mailMap;
31 AbstractMail*cMail; 31 AbstractMail*cMail;
32}; 32};
33#endif 33#endif
diff --git a/kmicromail/settingsdialog.cpp b/kmicromail/settingsdialog.cpp
index c593b48..889c490 100644
--- a/kmicromail/settingsdialog.cpp
+++ b/kmicromail/settingsdialog.cpp
@@ -1,89 +1,91 @@
1#include <qcheckbox.h> 1#include <qcheckbox.h>
2#include <qspinbox.h> 2#include <qspinbox.h>
3#include <qlayout.h> 3#include <qlayout.h>
4#include <qtabwidget.h> 4#include <qtabwidget.h>
5//Added by qt3to4:
6#include <Q3GridLayout>
5 7
6#include <kconfig.h> 8#include <kconfig.h>
7#include <kprefs.h> 9#include <kprefs.h>
8#include <klocale.h> 10#include <klocale.h>
9#include <kglobal.h> 11#include <kglobal.h>
10#include <kfontdialog.h> 12#include <kfontdialog.h>
11 13
12#include "settingsdialog.h" 14#include "settingsdialog.h"
13 15
14 16
15SettingsDialog::SettingsDialog( QWidget* parent, const char* name, bool modal, WFlags fl ) 17SettingsDialog::SettingsDialog( QWidget* parent, const char* name, bool modal, Qt::WFlags fl )
16 : SettingsDialogUI( parent, name, modal, fl ) { 18 : SettingsDialogUI( parent, name, modal, fl ) {
17 19
18#if 0 20#if 0
19 QTabWidget *topFrame = TabWidget2; 21 QTabWidget *topFrame = TabWidget2;
20 22
21 QGridLayout *topLayout = new QGridLayout(topFrame,3,3); 23 Q3GridLayout *topLayout = new Q3GridLayout(topFrame,3,3);
22 topLayout->setSpacing(2); 24 topLayout->setSpacing(2);
23 topLayout->setMargin(3); 25 topLayout->setMargin(3);
24 KPrefsWidFont * tVFont; 26 KPrefsWidFont * tVFont;
25 int i = 0; 27 int i = 0;
26 KPrefsWidFont *timeLabelsFont = 28 KPrefsWidFont *timeLabelsFont =
27 addWidFont(i18n("OK"),i18n("Application(nr):"), 29 addWidFont(i18n("OK"),i18n("Application(nr):"),
28 &(mAppFont),topFrame); 30 &(mAppFont),topFrame);
29 topLayout->addWidget(timeLabelsFont->label(),i,0); 31 topLayout->addWidget(timeLabelsFont->label(),i,0);
30 topLayout->addWidget(timeLabelsFont->preview(),i,1); 32 topLayout->addWidget(timeLabelsFont->preview(),i,1);
31 topLayout->addWidget(timeLabelsFont->button(),i,2); 33 topLayout->addWidget(timeLabelsFont->button(),i,2);
32 ++i; 34 ++i;
33 35
34 36
35 timeLabelsFont = 37 timeLabelsFont =
36 addWidFont(i18n("Mon 15"),i18n("Compose Mail:"), 38 addWidFont(i18n("Mon 15"),i18n("Compose Mail:"),
37 &(mComposeFont),topFrame); 39 &(mComposeFont),topFrame);
38 topLayout->addWidget(timeLabelsFont->label(),i,0); 40 topLayout->addWidget(timeLabelsFont->label(),i,0);
39 topLayout->addWidget(timeLabelsFont->preview(),i,1); 41 topLayout->addWidget(timeLabelsFont->preview(),i,1);
40 topLayout->addWidget(timeLabelsFont->button(),i,2); 42 topLayout->addWidget(timeLabelsFont->button(),i,2);
41 ++i; 43 ++i;
42 44
43 KPrefsWidFont *timeBarFont = 45 KPrefsWidFont *timeBarFont =
44 addWidFont(i18n("Mon 15"),i18n("Read Mail:"), 46 addWidFont(i18n("Mon 15"),i18n("Read Mail:"),
45 &(mReadFont),topFrame); 47 &(mReadFont),topFrame);
46 topLayout->addWidget(timeBarFont->label(),i,0); 48 topLayout->addWidget(timeBarFont->label(),i,0);
47 topLayout->addWidget(timeBarFont->preview(),i,1); 49 topLayout->addWidget(timeBarFont->preview(),i,1);
48 topLayout->addWidget(timeBarFont->button(),i,2); 50 topLayout->addWidget(timeBarFont->button(),i,2);
49 ++i; 51 ++i;
50 52
51 readConfig(); 53 readConfig();
52#endif 54#endif
53} 55}
54 56
55SettingsDialog::~SettingsDialog() { 57SettingsDialog::~SettingsDialog() {
56 58
57} 59}
58 60
59void SettingsDialog::readConfig() { 61void SettingsDialog::readConfig() {
60 KConfig cfg = ( locateLocal("config","kopiemailrc" )); 62 KConfig cfg = ( locateLocal("config","kopiemailrc" ));
61 cfg.setGroup( "Settings" ); 63 cfg.setGroup( "Settings" );
62 showHtmlButton->setChecked( cfg.readBoolEntry( "showHtml", false ) ); 64 showHtmlButton->setChecked( cfg.readBoolEntry( "showHtml", false ) );
63 cfg.setGroup( "Compose" ); 65 cfg.setGroup( "Compose" );
64 checkBoxLater->setChecked( cfg.readBoolEntry( "sendLater", false ) ); 66 checkBoxLater->setChecked( cfg.readBoolEntry( "sendLater", false ) );
65 cfg.setGroup( "Applet" ); 67 cfg.setGroup( "Applet" );
66 cbEnableTaskbarApplet->setChecked( cfg.readBoolEntry( "Disabled", false ) ); 68 cbEnableTaskbarApplet->setChecked( cfg.readBoolEntry( "Disabled", false ) );
67 spCheckOften->setValue( cfg.readNumEntry( "CheckEvery", 5 ) ); 69 spCheckOften->setValue( cfg.readNumEntry( "CheckEvery", 5 ) );
68 cbBlinkLed->setChecked( cfg.readBoolEntry( "BlinkLed", true ) ); 70 cbBlinkLed->setChecked( cfg.readBoolEntry( "BlinkLed", true ) );
69 cbPlaySound->setChecked( cfg.readBoolEntry( "PlaySound", false ) ); 71 cbPlaySound->setChecked( cfg.readBoolEntry( "PlaySound", false ) );
70 72
71} 73}
72 74
73void SettingsDialog::writeConfig() { 75void SettingsDialog::writeConfig() {
74 KConfig cfg ( locateLocal("config","kopiemailrc" )); 76 KConfig cfg ( locateLocal("config","kopiemailrc" ));
75 cfg.setGroup( "Settings" ); 77 cfg.setGroup( "Settings" );
76 cfg.writeEntry( "showHtml", showHtmlButton->isChecked() ); 78 cfg.writeEntry( "showHtml", showHtmlButton->isChecked() );
77 cfg.setGroup( "Compose" ); 79 cfg.setGroup( "Compose" );
78 cfg.writeEntry( "sendLater", checkBoxLater->isChecked() ); 80 cfg.writeEntry( "sendLater", checkBoxLater->isChecked() );
79 cfg.setGroup( "Applet" ); 81 cfg.setGroup( "Applet" );
80 cfg.writeEntry( "Disabled", cbEnableTaskbarApplet->isChecked() ); 82 cfg.writeEntry( "Disabled", cbEnableTaskbarApplet->isChecked() );
81 cfg.writeEntry( "CheckEvery", spCheckOften->value() ); 83 cfg.writeEntry( "CheckEvery", spCheckOften->value() );
82 cfg.writeEntry( "BlinkLed", cbBlinkLed->isChecked() ); 84 cfg.writeEntry( "BlinkLed", cbBlinkLed->isChecked() );
83 cfg.writeEntry( "PlaySound", cbPlaySound->isChecked() ); 85 cfg.writeEntry( "PlaySound", cbPlaySound->isChecked() );
84} 86}
85 87
86void SettingsDialog::accept() { 88void SettingsDialog::accept() {
87 writeConfig(); 89 writeConfig();
88 QDialog::accept(); 90 QDialog::accept();
89} 91}
diff --git a/kmicromail/settingsdialog.h b/kmicromail/settingsdialog.h
index 042b69f..b168226 100644
--- a/kmicromail/settingsdialog.h
+++ b/kmicromail/settingsdialog.h
@@ -1,30 +1,30 @@
1#ifndef SETTINGS_DIALOG_H 1#ifndef SETTINGS_DIALOG_H
2#define SETTINGS_DIALOG_H 2#define SETTINGS_DIALOG_H
3 3
4#include <qwidget.h> 4#include <qwidget.h>
5#include <qfont.h> 5#include <qfont.h>
6 6
7#include "settingsdialogui.h" 7#include "settingsdialogui.h"
8 8
9class SettingsDialog : public SettingsDialogUI { 9class SettingsDialog : public SettingsDialogUI {
10 10
11Q_OBJECT 11Q_OBJECT
12 12
13public: 13public:
14 SettingsDialog( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); 14 SettingsDialog( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, Qt::WFlags fl = 0 );
15 ~SettingsDialog(); 15 ~SettingsDialog();
16 16
17private: 17private:
18 void readConfig(); 18 void readConfig();
19 void writeConfig(); 19 void writeConfig();
20 QFont mAppFont, mComposeFont, mReadFont; 20 QFont mAppFont, mComposeFont, mReadFont;
21 21
22private slots: 22private slots:
23 void accept(); 23 void accept();
24 24
25 25
26}; 26};
27 27
28 28
29 29
30#endif 30#endif
diff --git a/kmicromail/statuswidget.cpp b/kmicromail/statuswidget.cpp
index 19cf635..6da6f54 100644
--- a/kmicromail/statuswidget.cpp
+++ b/kmicromail/statuswidget.cpp
@@ -1,33 +1,33 @@
1#include <qtimer.h> 1#include <qtimer.h>
2#include <qprogressbar.h> 2#include <q3progressbar.h>
3#include <qlabel.h> 3#include <qlabel.h>
4 4
5#include "statuswidget.h" 5#include "statuswidget.h"
6 6
7// the current problem I see is "locking": used exclusive by one sender 7// the current problem I see is "locking": used exclusive by one sender
8 8
9 9
10StatusWidget::StatusWidget( QWidget* parent, const char* name,WFlags fl ) 10StatusWidget::StatusWidget( QWidget* parent, const char* name,Qt::WFlags fl )
11 : StatusWidgetUI( parent, name, fl ) { 11 : StatusWidgetUI( parent, name, fl ) {
12 12
13 setMaximumHeight( 15 ); 13 setMaximumHeight( 15 );
14 // hide for now since nothing reports decent progress data yet. 14 // hide for now since nothing reports decent progress data yet.
15 statusProgress->hide(); 15 statusProgress->hide();
16 } 16 }
17 17
18StatusWidget::~StatusWidget() { 18StatusWidget::~StatusWidget() {
19} 19}
20 20
21void StatusWidget::setText( const QString& text ) { 21void StatusWidget::setText( const QString& text ) {
22 show(); 22 show();
23 statusText->setText( text ); 23 statusText->setText( text );
24 QTimer::singleShot( 5000, this, SLOT( hide() ) ); 24 QTimer::singleShot( 5000, this, SLOT( hide() ) );
25} 25}
26 26
27void StatusWidget::setProgress( int progress ) { 27void StatusWidget::setProgress( int progress ) {
28 show(); 28 show();
29 statusProgress->setProgress( progress ); 29 statusProgress->setProgress( progress );
30 if ( progress == 100 ) { 30 if ( progress == 100 ) {
31 hide(); 31 hide();
32 } 32 }
33} 33}
diff --git a/kmicromail/statuswidget.h b/kmicromail/statuswidget.h
index 73f0d75..1d29daf 100644
--- a/kmicromail/statuswidget.h
+++ b/kmicromail/statuswidget.h
@@ -1,24 +1,24 @@
1#ifndef STATUS_WIDGET_H 1#ifndef STATUS_WIDGET_H
2#define STATUS_WIDGET_H 2#define STATUS_WIDGET_H
3 3
4#include <qwidget.h> 4#include <qwidget.h>
5#include "statuswidgetui.h" 5#include "statuswidgetui.h"
6 6
7class StatusWidget : public StatusWidgetUI { 7class StatusWidget : public StatusWidgetUI {
8 8
9Q_OBJECT 9Q_OBJECT
10 10
11public: 11public:
12 StatusWidget( QWidget* parent = 0, const char* name = 0,WFlags fl = 0 ); 12 StatusWidget( QWidget* parent = 0, const char* name = 0,Qt::WFlags fl = 0 );
13 ~StatusWidget(); 13 ~StatusWidget();
14 14
15 15
16public slots: 16public slots:
17 17
18 void setText( const QString& text ); 18 void setText( const QString& text );
19 void setProgress( int progress ); 19 void setProgress( int progress );
20}; 20};
21 21
22 22
23#endif 23#endif
24 24
diff --git a/kmicromail/viewmail.cpp b/kmicromail/viewmail.cpp
index 685b4e4..c9dedb0 100644
--- a/kmicromail/viewmail.cpp
+++ b/kmicromail/viewmail.cpp
@@ -1,579 +1,582 @@
1// CHANGED 2004-08-06 Lutz Rogowski 1// CHANGED 2004-08-06 Lutz Rogowski
2 2
3 3
4 4
5#include <kfiledialog.h> 5#include <kfiledialog.h>
6#include "koprefs.h" 6#include "koprefs.h"
7#include <klocale.h> 7#include <klocale.h>
8#include <kglobal.h> 8#include <kglobal.h>
9#include <kapplication.h> 9#include <kapplication.h>
10 10
11#ifdef MINIKDE_KDIALOG_H 11#ifdef MINIKDE_KDIALOG_H
12#undef MINIKDE_KDIALOG_H 12#undef MINIKDE_KDIALOG_H
13#endif 13#endif
14 14
15#include "composemail.h" 15#include "composemail.h"
16#include "viewmail.h" 16#include "viewmail.h"
17 17
18#include <libmailwrapper/settings.h> 18#include <libmailwrapper/settings.h>
19#include <libmailwrapper/abstractmail.h> 19#include <libmailwrapper/abstractmail.h>
20#include <libmailwrapper/mailtypes.h> 20#include <libmailwrapper/mailtypes.h>
21 21
22#include <qdialog.h> 22#include <qdialog.h>
23 23
24#include <qpe/qpeapplication.h> 24#include <qpe/qpeapplication.h>
25 25
26/* QT */ 26/* QT */
27#include <qtextbrowser.h> 27#include <q3textbrowser.h>
28#include <qmessagebox.h> 28#include <qmessagebox.h>
29#include <qtextstream.h> 29#include <q3textstream.h>
30#include <qaction.h> 30#include <qaction.h>
31#include <qpopupmenu.h> 31#include <q3popupmenu.h>
32#include <qfile.h> 32#include <qfile.h>
33#include <qlayout.h> 33#include <qlayout.h>
34//Added by qt3to4:
35#include <Q3ValueList>
36#include <Q3VBoxLayout>
34 37
35//using namespace Opie::Ui; 38//using namespace Opie::Ui;
36//using namespace Opie::Core; 39//using namespace Opie::Core;
37 40
38AttachItem::AttachItem(QListView * parent,QListViewItem *after, const QString&mime,const QString&desc,const QString&file, 41AttachItem::AttachItem(Q3ListView * parent,Q3ListViewItem *after, const QString&mime,const QString&desc,const QString&file,
39 const QString&fsize,int num,const QValueList<int>&path) 42 const QString&fsize,int num,const Q3ValueList<int>&path)
40 : QListViewItem(parent,after),_partNum(num) 43 : Q3ListViewItem(parent,after),_partNum(num)
41{ 44{
42 _path=path; 45 _path=path;
43 setText(0, mime); 46 setText(0, mime);
44 setText(1, desc); 47 setText(1, desc);
45 setText(2, file); 48 setText(2, file);
46 setText(3, fsize); 49 setText(3, fsize);
47} 50}
48 51
49AttachItem::AttachItem(QListViewItem * parent,QListViewItem *after, const QString&mime,const QString&desc,const QString&file, 52AttachItem::AttachItem(Q3ListViewItem * parent,Q3ListViewItem *after, const QString&mime,const QString&desc,const QString&file,
50 const QString&fsize,int num,const QValueList<int>&path) 53 const QString&fsize,int num,const Q3ValueList<int>&path)
51 : QListViewItem(parent,after),_partNum(num) 54 : Q3ListViewItem(parent,after),_partNum(num)
52{ 55{
53 _path=path; 56 _path=path;
54 setText(0, mime); 57 setText(0, mime);
55 setText(1, desc); 58 setText(1, desc);
56 setText(2, file); 59 setText(2, file);
57 setText(3, fsize); 60 setText(3, fsize);
58} 61}
59 62
60bool AttachItem::isParentof(const QValueList<int>&path) 63bool AttachItem::isParentof(const Q3ValueList<int>&path)
61{ 64{
62 /* if not set, then no parent */ 65 /* if not set, then no parent */
63 if (path.count()==0||_path.count()==0) return false; 66 if (path.count()==0||_path.count()==0) return false;
64 /* the parent must have one digit less then a child */ 67 /* the parent must have one digit less then a child */
65 if (path.count()!=_path.count()+1) return false; 68 if (path.count()!=_path.count()+1) return false;
66 for (unsigned int i=0; i < _path.count();++i) 69 for (unsigned int i=0; i < _path.count();++i)
67 { 70 {
68 if (_path[i]!=path[i]) return false; 71 if (_path[i]!=path[i]) return false;
69 } 72 }
70 return true; 73 return true;
71} 74}
72 75
73AttachItem* ViewMail::searchParent(const QValueList<int>&path) 76AttachItem* ViewMail::searchParent(const Q3ValueList<int>&path)
74{ 77{
75 QListViewItemIterator it( attachments ); 78 Q3ListViewItemIterator it( attachments );
76 for ( ; it.current(); ++it ) 79 for ( ; it.current(); ++it )
77 { 80 {
78 AttachItem*ati = (AttachItem*)it.current(); 81 AttachItem*ati = (AttachItem*)it.current();
79 if (ati->isParentof(path)) return ati; 82 if (ati->isParentof(path)) return ati;
80 } 83 }
81 return 0; 84 return 0;
82} 85}
83 86
84AttachItem* ViewMail::lastChild(AttachItem*parent) 87AttachItem* ViewMail::lastChild(AttachItem*parent)
85{ 88{
86 if (!parent) return 0; 89 if (!parent) return 0;
87 AttachItem* item = (AttachItem*)parent->firstChild(); 90 AttachItem* item = (AttachItem*)parent->firstChild();
88 if (!item) return item; 91 if (!item) return item;
89 AttachItem*temp=0; 92 AttachItem*temp=0;
90 while( (temp=(AttachItem*)item->nextSibling())) 93 while( (temp=(AttachItem*)item->nextSibling()))
91 { 94 {
92 item = temp; 95 item = temp;
93 } 96 }
94 return item; 97 return item;
95} 98}
96 99
97void ViewMail::setBody(const RecBodyP&body ) 100void ViewMail::setBody(const RecBodyP&body )
98{ 101{
99 102
100 m_body = body; 103 m_body = body;
101 m_mail[2] = body->Bodytext(); 104 m_mail[2] = body->Bodytext();
102 m_showHtml = KOPrefs::instance()->mViewAsHtml; 105 m_showHtml = KOPrefs::instance()->mViewAsHtml;
103 if ( m_showHtml ) { 106 if ( m_showHtml ) {
104 if ( m_mail[2].find ("<html>",0,false ) > -1 ) { 107 if ( m_mail[2].find ("<html>",0,false ) > -1 ) {
105 qDebug("html mail "); 108 qDebug("html mail ");
106 } else { 109 } else {
107 qDebug("no html mail "); 110 qDebug("no html mail ");
108 m_showHtml = false; 111 m_showHtml = false;
109 } 112 }
110 } 113 }
111 showHtml->blockSignals( true ); 114 showHtml->blockSignals( true );
112 showHtml->setOn( m_showHtml ); 115 showHtml->setOn( m_showHtml );
113 showHtml->blockSignals( false ); 116 showHtml->blockSignals( false );
114 // qDebug("********text %s ",m_mail[2].latin1() ); 117 // qDebug("********text %s ",m_mail[2].latin1() );
115 attachbutton->setEnabled(body->Parts().count()>0); 118 attachbutton->setEnabled(body->Parts().count()>0);
116 attachments->setEnabled(body->Parts().count()>0); 119 attachments->setEnabled(body->Parts().count()>0);
117 if (body->Parts().count()==0) 120 if (body->Parts().count()==0)
118 { 121 {
119 return; 122 return;
120 } 123 }
121 AttachItem * curItem=0; 124 AttachItem * curItem=0;
122 AttachItem * parentItem = 0; 125 AttachItem * parentItem = 0;
123 QString type=body->Description()->Type()+"/"+body->Description()->Subtype(); 126 QString type=body->Description()->Type()+"/"+body->Description()->Subtype();
124 QString desc,fsize; 127 QString desc,fsize;
125 double s = body->Description()->Size(); 128 double s = body->Description()->Size();
126 int w; 129 int w;
127 w=0; 130 w=0;
128 131
129 while (s>1024) 132 while (s>1024)
130 { 133 {
131 s/=1024; 134 s/=1024;
132 ++w; 135 ++w;
133 if (w>=2) break; 136 if (w>=2) break;
134 } 137 }
135 138
136 QString q=""; 139 QString q="";
137 switch(w) 140 switch(w)
138 { 141 {
139 case 1: 142 case 1:
140 q="k"; 143 q="k";
141 break; 144 break;
142 case 2: 145 case 2:
143 q="M"; 146 q="M";
144 break; 147 break;
145 default: 148 default:
146 break; 149 break;
147 } 150 }
148 151
149 { 152 {
150 /* I did not found a method to make a CONTENT reset on a QTextStream 153 /* I did not found a method to make a CONTENT reset on a QTextStream
151 so I use this construct that the stream will re-constructed in each 154 so I use this construct that the stream will re-constructed in each
152 loop. To let it work, the textstream is packed into a own area of 155 loop. To let it work, the textstream is packed into a own area of
153 code is it will be destructed after finishing its small job. 156 code is it will be destructed after finishing its small job.
154 */ 157 */
155 QTextOStream o(&fsize); 158 QTextOStream o(&fsize);
156 if (w>0) o.precision(2); else o.precision(0); 159 if (w>0) o.precision(2); else o.precision(0);
157 o.setf(QTextStream::fixed); 160 o.setf(Q3TextStream::fixed);
158 o << s << " " << q << "Byte"; 161 o << s << " " << q << "Byte";
159 } 162 }
160 163
161 curItem=new AttachItem(attachments,curItem,type,"Mailbody","",fsize,-1,body->Description()->Positionlist()); 164 curItem=new AttachItem(attachments,curItem,type,"Mailbody","",fsize,-1,body->Description()->Positionlist());
162 QString filename = ""; 165 QString filename = "";
163 166
164 for (unsigned int i = 0; i < body->Parts().count();++i) 167 for (unsigned int i = 0; i < body->Parts().count();++i)
165 { 168 {
166 filename = ""; 169 filename = "";
167 type = body->Parts()[i]->Type()+"/"+body->Parts()[i]->Subtype(); 170 type = body->Parts()[i]->Type()+"/"+body->Parts()[i]->Subtype();
168 part_plist_t::ConstIterator it = body->Parts()[i]->Parameters().begin(); 171 part_plist_t::ConstIterator it = body->Parts()[i]->Parameters().begin();
169 for (;it!=body->Parts()[i]->Parameters().end();++it) 172 for (;it!=body->Parts()[i]->Parameters().end();++it)
170 { 173 {
171 if (it.key().lower()=="name") 174 if (it.key().lower()=="name")
172 { 175 {
173 filename=it.data(); 176 filename=it.data();
174 } 177 }
175 } 178 }
176 s = body->Parts()[i]->Size(); 179 s = body->Parts()[i]->Size();
177 w = 0; 180 w = 0;
178 while (s>1024) 181 while (s>1024)
179 { 182 {
180 s/=1024; 183 s/=1024;
181 ++w; 184 ++w;
182 if (w>=2) break; 185 if (w>=2) break;
183 } 186 }
184 switch(w) 187 switch(w)
185 { 188 {
186 case 1: 189 case 1:
187 q="k"; 190 q="k";
188 break; 191 break;
189 case 2: 192 case 2:
190 q="M"; 193 q="M";
191 break; 194 break;
192 default: 195 default:
193 q=""; 196 q="";
194 break; 197 break;
195 } 198 }
196 QTextOStream o(&fsize); 199 QTextOStream o(&fsize);
197 if (w>0) o.precision(2); else o.precision(0); 200 if (w>0) o.precision(2); else o.precision(0);
198 o.setf(QTextStream::fixed); 201 o.setf(Q3TextStream::fixed);
199 o << s << " " << q << "Byte"; 202 o << s << " " << q << "Byte";
200 desc = body->Parts()[i]->Description(); 203 desc = body->Parts()[i]->Description();
201 parentItem = searchParent(body->Parts()[i]->Positionlist()); 204 parentItem = searchParent(body->Parts()[i]->Positionlist());
202 if (parentItem) 205 if (parentItem)
203 { 206 {
204 AttachItem*temp = lastChild(parentItem); 207 AttachItem*temp = lastChild(parentItem);
205 if (temp) curItem = temp; 208 if (temp) curItem = temp;
206 curItem=new AttachItem(parentItem,curItem,type,desc,filename,fsize,i,body->Parts()[i]->Positionlist()); 209 curItem=new AttachItem(parentItem,curItem,type,desc,filename,fsize,i,body->Parts()[i]->Positionlist());
207 attachments->setRootIsDecorated(true); 210 attachments->setRootIsDecorated(true);
208 curItem = parentItem; 211 curItem = parentItem;
209 } 212 }
210 else 213 else
211 { 214 {
212 curItem=new AttachItem(attachments,curItem,type,desc,filename,fsize,i,body->Parts()[i]->Positionlist()); 215 curItem=new AttachItem(attachments,curItem,type,desc,filename,fsize,i,body->Parts()[i]->Positionlist());
213 } 216 }
214 } 217 }
215} 218}
216 219
217 220
218void ViewMail::slotViewSource() 221void ViewMail::slotViewSource()
219{ 222{
220 223
221 if ( !sourceOn ) { 224 if ( !sourceOn ) {
222 sourceOn = true; 225 sourceOn = true;
223 viewSource->setText(i18n("View Body Text")); 226 viewSource->setText(i18n("View Body Text"));
224 encodedString*st = 0; 227 encodedString*st = 0;
225 st = m_recMail->Wrapper()->fetchRawBody(m_recMail); 228 st = m_recMail->Wrapper()->fetchRawBody(m_recMail);
226 if ( st ) { 229 if ( st ) {
227 QString source = QString::fromUtf8( st->Content(), st->Length()); 230 QString source = QString::fromUtf8( st->Content(), st->Length());
228 browser->setText( source ); 231 browser->setText( source );
229 delete st; 232 delete st;
230 } 233 }
231 } else 234 } else
232 setText(); 235 setText();
233 236
234 237
235} 238}
236void ViewMail::slotShowHtml( bool state ) 239void ViewMail::slotShowHtml( bool state )
237{ 240{
238 m_showHtml = state; 241 m_showHtml = state;
239 setText(); 242 setText();
240} 243}
241 244
242void ViewMail::slotItemClicked( QListViewItem * item , const QPoint & point, int ) 245void ViewMail::slotItemClicked( Q3ListViewItem * item , const QPoint & point, int )
243{ 246{
244 if (!item ) 247 if (!item )
245 return; 248 return;
246 249
247 if ( ( ( AttachItem* )item )->Partnumber() == -1 ) 250 if ( ( ( AttachItem* )item )->Partnumber() == -1 )
248 { 251 {
249 setText(); 252 setText();
250 return; 253 return;
251 } 254 }
252 QPopupMenu *menu = new QPopupMenu(); 255 Q3PopupMenu *menu = new Q3PopupMenu();
253 int ret=0; 256 int ret=0;
254 257
255 if ( item->text( 0 ).left( 5 ) == "text/" || item->text(0)=="message/rfc822" ) 258 if ( item->text( 0 ).left( 5 ) == "text/" || item->text(0)=="message/rfc822" )
256 { 259 {
257 menu->insertItem( i18n( "Show Text" ), 1 ); 260 menu->insertItem( i18n( "Show Text" ), 1 );
258 } 261 }
259 if (item->text(0).left(6)=="image/") { 262 if (item->text(0).left(6)=="image/") {
260 menu->insertItem(i18n("Display image preview"),2); 263 menu->insertItem(i18n("Display image preview"),2);
261 } 264 }
262 menu->insertItem( i18n( "Save Attachment" ), 0 ); 265 menu->insertItem( i18n( "Save Attachment" ), 0 );
263 menu->insertSeparator(1); 266 menu->insertSeparator(1);
264 267
265 ret = menu->exec( point, 0 ); 268 ret = menu->exec( point, 0 );
266 269
267 switch(ret) 270 switch(ret)
268 { 271 {
269 case 0: 272 case 0:
270 { 273 {
271 //MimeTypes types; 274 //MimeTypes types;
272 //types.insert( "all", "*" ); 275 //types.insert( "all", "*" );
273 QString str = KFileDialog::getSaveFileName( "/", item->text( 2 ), this ); 276 QString str = KFileDialog::getSaveFileName( "/", item->text( 2 ), this );
274 277
275 if( !str.isEmpty() ) 278 if( !str.isEmpty() )
276 { 279 {
277 encodedString*content = m_recMail->Wrapper()->fetchDecodedPart( m_recMail, m_body->Parts()[ ( ( AttachItem* )item )->Partnumber() ] ); 280 encodedString*content = m_recMail->Wrapper()->fetchDecodedPart( m_recMail, m_body->Parts()[ ( ( AttachItem* )item )->Partnumber() ] );
278 if (content) 281 if (content)
279 { 282 {
280 QFile output(str); 283 QFile output(str);
281 output.open(IO_WriteOnly); 284 output.open(QIODevice::WriteOnly);
282 output.writeBlock(content->Content(),content->Length()); 285 output.writeBlock(content->Content(),content->Length());
283 output.close(); 286 output.close();
284 delete content; 287 delete content;
285 } 288 }
286 } 289 }
287 } 290 }
288 break ; 291 break ;
289 292
290 case 2: 293 case 2:
291 { 294 {
292#ifdef DESKTOP_VERSION 295#ifdef DESKTOP_VERSION
293 QString tmpfile = locateLocal( "tmp", "opiemail-image"); 296 QString tmpfile = locateLocal( "tmp", "opiemail-image");
294#else 297#else
295 QString tmpfile = "/tmp/opiemail-image"; 298 QString tmpfile = "/tmp/opiemail-image";
296#endif 299#endif
297 encodedString*content = m_recMail->Wrapper()->fetchDecodedPart( m_recMail, m_body->Parts()[ ( ( AttachItem* )item )->Partnumber() ] ); 300 encodedString*content = m_recMail->Wrapper()->fetchDecodedPart( m_recMail, m_body->Parts()[ ( ( AttachItem* )item )->Partnumber() ] );
298 if (content) { 301 if (content) {
299 QFile output(tmpfile); 302 QFile output(tmpfile);
300 output.open(IO_WriteOnly); 303 output.open(QIODevice::WriteOnly);
301 output.writeBlock(content->Content(),content->Length()); 304 output.writeBlock(content->Content(),content->Length());
302 output.close(); 305 output.close();
303 delete content; 306 delete content;
304 MailImageDlg iview(""); 307 MailImageDlg iview("");
305 iview.setName(tmpfile); 308 iview.setName(tmpfile);
306 KApplication::execDialog(&iview); 309 KApplication::execDialog(&iview);
307 output.remove(); 310 output.remove();
308 } 311 }
309 } 312 }
310 break; 313 break;
311 case 1: 314 case 1:
312 if ( ( ( AttachItem* )item )->Partnumber() == -1 ) 315 if ( ( ( AttachItem* )item )->Partnumber() == -1 )
313 { 316 {
314 setText(); 317 setText();
315 } 318 }
316 else 319 else
317 { 320 {
318 if ( m_recMail->Wrapper() != 0l ) 321 if ( m_recMail->Wrapper() != 0l )
319 { // make sure that there is a wrapper , even after delete or simular actions 322 { // make sure that there is a wrapper , even after delete or simular actions
320 browser->setText( m_recMail->Wrapper()->fetchTextPart( m_recMail, m_body->Parts()[ ( ( AttachItem* )item )->Partnumber() ] ) ); 323 browser->setText( m_recMail->Wrapper()->fetchTextPart( m_recMail, m_body->Parts()[ ( ( AttachItem* )item )->Partnumber() ] ) );
321 } 324 }
322 } 325 }
323 break; 326 break;
324 } 327 }
325 delete menu; 328 delete menu;
326} 329}
327 330
328 331
329void ViewMail::setMail(const RecMailP&mail ) 332void ViewMail::setMail(const RecMailP&mail )
330{ 333{
331 334
332 m_recMail = mail; 335 m_recMail = mail;
333 336
334 m_mail[0] = mail->getFrom(); 337 m_mail[0] = mail->getFrom();
335 m_mail[1] = mail->getSubject(); 338 m_mail[1] = mail->getSubject();
336 m_mail[3] = mail->getDate(); 339 m_mail[3] = mail->getDate();
337 m_mail[4] = mail->Msgid(); 340 m_mail[4] = mail->Msgid();
338 341
339 m_mail2[0] = mail->To(); 342 m_mail2[0] = mail->To();
340 m_mail2[1] = mail->CC(); 343 m_mail2[1] = mail->CC();
341 m_mail2[2] = mail->Bcc(); 344 m_mail2[2] = mail->Bcc();
342 345
343 setText(); 346 setText();
344} 347}
345 348
346void ViewMail::slotNextMail() 349void ViewMail::slotNextMail()
347{ 350{
348 nextMail->blockSignals( true ); 351 nextMail->blockSignals( true );
349 setCaption(i18n("Displaying next mail...please wait!")); 352 setCaption(i18n("Displaying next mail...please wait!"));
350 qApp->processEvents(); 353 qApp->processEvents();
351 emit showNextMail(this); 354 emit showNextMail(this);
352 nextMail->blockSignals( false ); 355 nextMail->blockSignals( false );
353} 356}
354 357
355ViewMail::ViewMail( QWidget *parent, const char *name, WFlags fl) 358ViewMail::ViewMail( QWidget *parent, const char *name, Qt::WFlags fl)
356 : ViewMailBase(parent, name, fl), _inLoop(false) 359 : ViewMailBase(parent, name, fl), _inLoop(false)
357{ 360{
358 m_gotBody = false; 361 m_gotBody = false;
359 deleted = false; 362 deleted = false;
360 sourceOn = false; 363 sourceOn = false;
361 readConfig(); 364 readConfig();
362 connect( reply, SIGNAL(activated()), SLOT(slotReply())); 365 connect( reply, SIGNAL(activated()), SLOT(slotReply()));
363 connect( forward, SIGNAL(activated()), SLOT(slotForward())); 366 connect( forward, SIGNAL(activated()), SLOT(slotForward()));
364 connect( deleteMail, SIGNAL( activated() ), SLOT( slotDeleteMail() ) ); 367 connect( deleteMail, SIGNAL( activated() ), SLOT( slotDeleteMail() ) );
365 connect( showHtml, SIGNAL( toggled(bool) ), SLOT( slotShowHtml(bool) ) ); 368 connect( showHtml, SIGNAL( toggled(bool) ), SLOT( slotShowHtml(bool) ) );
366 connect( closeMail, SIGNAL( activated() ), SLOT( close() ) ); 369 connect( closeMail, SIGNAL( activated() ), SLOT( close() ) );
367 connect( nextMail, SIGNAL( activated() ), SLOT( slotNextMail() ) ); 370 connect( nextMail, SIGNAL( activated() ), SLOT( slotNextMail() ) );
368 connect( viewSource, SIGNAL( activated() ), SLOT( slotViewSource() ) ); 371 connect( viewSource, SIGNAL( activated() ), SLOT( slotViewSource() ) );
369 connect( downloadMail, SIGNAL( activated() ), SIGNAL( signalDownloadMail() ) ); 372 connect( downloadMail, SIGNAL( activated() ), SIGNAL( signalDownloadMail() ) );
370 373
371 attachments->setEnabled(m_gotBody); 374 attachments->setEnabled(m_gotBody);
372 connect( attachments, SIGNAL( clicked(QListViewItem*,const QPoint&, int) ), SLOT( slotItemClicked(QListViewItem*,const QPoint&, int) ) ); 375 connect( attachments, SIGNAL( clicked(Q3ListViewItem*,const QPoint&, int) ), SLOT( slotItemClicked(Q3ListViewItem*,const QPoint&, int) ) );
373 376
374 attachments->setSorting(-1); 377 attachments->setSorting(-1);
375} 378}
376 379
377void ViewMail::readConfig() 380void ViewMail::readConfig()
378{ 381{
379 382
380 setFont ( KOPrefs::instance()->mReadFont ); 383 setFont ( KOPrefs::instance()->mReadFont );
381 m_showHtml = KOPrefs::instance()->mViewAsHtml; 384 m_showHtml = KOPrefs::instance()->mViewAsHtml;
382 showHtml->setOn( m_showHtml ); 385 showHtml->setOn( m_showHtml );
383} 386}
384 387
385void ViewMail::setText() 388void ViewMail::setText()
386{ 389{
387 390
388 viewSource->setText(i18n("View Source")); 391 viewSource->setText(i18n("View Source"));
389 sourceOn = false; 392 sourceOn = false;
390 QString toString; 393 QString toString;
391 QString ccString; 394 QString ccString;
392 QString bccString; 395 QString bccString;
393 396
394 397
395 toString = m_mail2[0].join(","); 398 toString = m_mail2[0].join(",");
396 ccString = m_mail2[1].join(","); 399 ccString = m_mail2[1].join(",");
397 bccString = m_mail2[2].join(","); 400 bccString = m_mail2[2].join(",");
398 401
399#ifdef DESKTOP_VERSION 402#ifdef DESKTOP_VERSION
400 setCaption( i18n("Size: ")+m_recMail->MsgsizeString()+" - "+i18n("E-Mail by %1").arg( m_mail[0] ) ); 403 setCaption( i18n("Size: ")+m_recMail->MsgsizeString()+" - "+i18n("E-Mail by %1").arg( m_mail[0] ) );
401#else 404#else
402 setCaption( m_recMail->MsgsizeString()+" - "+m_mail[0] ); 405 setCaption( m_recMail->MsgsizeString()+" - "+m_mail[0] );
403#endif 406#endif
404 407
405 m_mailHtml = "<html><body>" 408 m_mailHtml = "<html><body>"
406 "<table width=\"100%\" border=\"0\"><tr bgcolor=\"#FFDD76\"><td>" 409 "<table width=\"100%\" border=\"0\"><tr bgcolor=\"#FFDD76\"><td>"
407 "<div align=left><b>" + deHtml( m_mail[1] ) + "</b></div>" 410 "<div align=left><b>" + deHtml( m_mail[1] ) + "</b></div>"
408 "</td></tr><tr bgcolor=\"#EEEEE6\"><td>" 411 "</td></tr><tr bgcolor=\"#EEEEE6\"><td>"
409 "<b>" + i18n( "From" ) + ": </b><font color=#6C86C0>" + deHtml( m_mail[0] ) + "</font><br>" 412 "<b>" + i18n( "From" ) + ": </b><font color=#6C86C0>" + deHtml( m_mail[0] ) + "</font><br>"
410 "<b>" + i18n( "To" ) + ": </b><font color=#6C86C0>" + deHtml( toString ) + "</font><br><b>" + 413 "<b>" + i18n( "To" ) + ": </b><font color=#6C86C0>" + deHtml( toString ) + "</font><br><b>" +
411 i18n( "Cc" ) + ": </b>" + deHtml( ccString ) + "<br>" 414 i18n( "Cc" ) + ": </b>" + deHtml( ccString ) + "<br>"
412 "<b>" + i18n( "Date" ) + ": </b> " + m_mail[3] + 415 "<b>" + i18n( "Date" ) + ": </b> " + m_mail[3] +
413 "</td></tr></table><font>"; 416 "</td></tr></table><font>";
414 417
415 if ( !m_showHtml ) 418 if ( !m_showHtml )
416 { 419 {
417 browser->setText( QString( m_mailHtml) + deHtml( m_mail[2] ) + "</font></html>" ); 420 browser->setText( QString( m_mailHtml) + deHtml( m_mail[2] ) + "</font></html>" );
418 } 421 }
419 else 422 else
420 { 423 {
421 browser->setText( QString( m_mailHtml) + m_mail[2] + "</font></html>" ); 424 browser->setText( QString( m_mailHtml) + m_mail[2] + "</font></html>" );
422 } 425 }
423 // remove later in favor of a real handling 426 // remove later in favor of a real handling
424 m_gotBody = true; 427 m_gotBody = true;
425} 428}
426 429
427 430
428ViewMail::~ViewMail() 431ViewMail::~ViewMail()
429{ 432{
430 m_recMail->Wrapper()->cleanMimeCache(); 433 m_recMail->Wrapper()->cleanMimeCache();
431 hide(); 434 hide();
432} 435}
433 436
434void ViewMail::hide() 437void ViewMail::hide()
435{ 438{
436 QWidget::hide(); 439 QWidget::hide();
437 440
438 if (_inLoop) 441 if (_inLoop)
439 { 442 {
440 _inLoop = false; 443 _inLoop = false;
441 qApp->exit_loop(); 444 qApp->exit_loop();
442 445
443 } 446 }
444 447
445} 448}
446 449
447void ViewMail::exec() 450void ViewMail::exec()
448{ 451{
449 show(); 452 show();
450 453
451 if (!_inLoop) 454 if (!_inLoop)
452 { 455 {
453 _inLoop = true; 456 _inLoop = true;
454 qApp->enter_loop(); 457 qApp->enter_loop();
455 } 458 }
456 459
457} 460}
458 461
459QString ViewMail::deHtml(const QString &string) 462QString ViewMail::deHtml(const QString &string)
460{ 463{
461 QString string_ = string; 464 QString string_ = string;
462 string_.replace(QRegExp("&"), "&amp;"); 465 string_.replace(QRegExp("&"), "&amp;");
463 string_.replace(QRegExp("<"), "&lt;"); 466 string_.replace(QRegExp("<"), "&lt;");
464 string_.replace(QRegExp(">"), "&gt;"); 467 string_.replace(QRegExp(">"), "&gt;");
465 string_.replace(QRegExp("\\n"), "<br>"); 468 string_.replace(QRegExp("\\n"), "<br>");
466 return string_; 469 return string_;
467} 470}
468 471
469void ViewMail::slotReply() 472void ViewMail::slotReply()
470{ 473{
471 if (!m_gotBody) 474 if (!m_gotBody)
472 { 475 {
473 QMessageBox::information(this, i18n("Error"), i18n("<p>The mail body is not yet downloaded, so you cannot reply yet."), i18n("Ok")); 476 QMessageBox::information(this, i18n("Error"), i18n("<p>The mail body is not yet downloaded, so you cannot reply yet."), i18n("Ok"));
474 return; 477 return;
475 } 478 }
476 479
477 QString rtext; 480 QString rtext;
478 rtext += QString("* %1 wrote on %2:\n") // no i18n on purpose 481 rtext += QString("* %1 wrote on %2:\n") // no i18n on purpose
479 .arg( m_mail[0] ) 482 .arg( m_mail[0] )
480 .arg( m_mail[3] ); 483 .arg( m_mail[3] );
481 484
482 QString text = m_mail[2]; 485 QString text = m_mail[2];
483 QStringList lines = QStringList::split(QRegExp("\\n"), text); 486 QStringList lines = QStringList::split(QRegExp("\\n"), text);
484 QStringList::Iterator it; 487 QStringList::Iterator it;
485 for (it = lines.begin(); it != lines.end(); it++) 488 for (it = lines.begin(); it != lines.end(); it++)
486 { 489 {
487 rtext += "> " + *it + "\n"; 490 rtext += "> " + *it + "\n";
488 } 491 }
489 rtext += "\n"; 492 rtext += "\n";
490 493
491 QString prefix; 494 QString prefix;
492 if ( m_mail[1].find(QRegExp("^Re: .*$")) != -1) prefix = ""; 495 if ( m_mail[1].find(QRegExp("^Re: .*$")) != -1) prefix = "";
493 else prefix = "Re: "; // no i18n on purpose 496 else prefix = "Re: "; // no i18n on purpose
494 497
495 Settings *settings = new Settings(); 498 Settings *settings = new Settings();
496 ComposeMail composer( settings ,this, 0, true); 499 ComposeMail composer( settings ,this, 0, true);
497 if (m_recMail->Replyto().isEmpty()) { 500 if (m_recMail->Replyto().isEmpty()) {
498 composer.setTo(m_recMail->getFrom()); 501 composer.setTo(m_recMail->getFrom());
499 } else { 502 } else {
500 composer.setTo(m_recMail->Replyto()); 503 composer.setTo(m_recMail->Replyto());
501 } 504 }
502 composer.setSubject( prefix + m_mail[1] ); 505 composer.setSubject( prefix + m_mail[1] );
503 composer.setMessage( rtext ); 506 composer.setMessage( rtext );
504 composer.setInReplyTo(m_recMail->Msgid()); 507 composer.setInReplyTo(m_recMail->Msgid());
505 composer.setCharset( m_body->getCharset() ); 508 composer.setCharset( m_body->getCharset() );
506 509
507 if ( QDialog::Accepted == KApplication::execDialog( &composer ) ) 510 if ( QDialog::Accepted == KApplication::execDialog( &composer ) )
508 { 511 {
509 m_recMail->Wrapper()->answeredMail(m_recMail); 512 m_recMail->Wrapper()->answeredMail(m_recMail);
510 } 513 }
511 delete settings; 514 delete settings;
512} 515}
513 516
514void ViewMail::slotForward() 517void ViewMail::slotForward()
515{ 518{
516 if (!m_gotBody) 519 if (!m_gotBody)
517 { 520 {
518 QMessageBox::information(this, i18n("Error"), i18n("<p>The mail body is not yet downloaded, so you cannot forward yet."), i18n("Ok")); 521 QMessageBox::information(this, i18n("Error"), i18n("<p>The mail body is not yet downloaded, so you cannot forward yet."), i18n("Ok"));
519 return; 522 return;
520 } 523 }
521 524
522 QString ftext; 525 QString ftext;
523 ftext += QString("\n----- Forwarded message from %1 -----\n\n") 526 ftext += QString("\n----- Forwarded message from %1 -----\n\n")
524 .arg( m_mail[0] ); 527 .arg( m_mail[0] );
525 if (!m_mail[3].isNull()) 528 if (!m_mail[3].isNull())
526 ftext += QString("Date: %1\n") 529 ftext += QString("Date: %1\n")
527 .arg( m_mail[3] ); 530 .arg( m_mail[3] );
528 if (!m_mail[0].isNull()) 531 if (!m_mail[0].isNull())
529 ftext += QString("From: %1\n") 532 ftext += QString("From: %1\n")
530 .arg( m_mail[0] ); 533 .arg( m_mail[0] );
531 if (!m_mail[1].isNull()) 534 if (!m_mail[1].isNull())
532 ftext += QString("Subject: %1\n") 535 ftext += QString("Subject: %1\n")
533 .arg( m_mail[1] ); 536 .arg( m_mail[1] );
534 537
535 ftext += QString("\n%1\n") 538 ftext += QString("\n%1\n")
536 .arg( m_mail[2]); 539 .arg( m_mail[2]);
537 540
538 ftext += QString("----- End forwarded message -----\n"); 541 ftext += QString("----- End forwarded message -----\n");
539 542
540 Settings *settings = new Settings(); 543 Settings *settings = new Settings();
541 ComposeMail composer( settings ,this, 0, true); 544 ComposeMail composer( settings ,this, 0, true);
542 composer.setSubject( "Fwd: " + m_mail[1] ); 545 composer.setSubject( "Fwd: " + m_mail[1] );
543 composer.setMessage( ftext ); 546 composer.setMessage( ftext );
544 if ( QDialog::Accepted == KApplication::execDialog( &composer )) 547 if ( QDialog::Accepted == KApplication::execDialog( &composer ))
545 { 548 {
546 } 549 }
547} 550}
548 551
549void ViewMail::slotDeleteMail( ) 552void ViewMail::slotDeleteMail( )
550{ 553{
551 if ( QMessageBox::warning(this, i18n("Delete Mail"), QString( i18n("<p>Do you really want to delete this mail? <br><br>" ) + m_mail[0] + " - " + m_mail[1] ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes ) 554 if ( QMessageBox::warning(this, i18n("Delete Mail"), QString( i18n("<p>Do you really want to delete this mail? <br><br>" ) + m_mail[0] + " - " + m_mail[1] ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes )
552 { 555 {
553 emit deleteAndDisplayNextMail( this); 556 emit deleteAndDisplayNextMail( this);
554 //m_recMail->Wrapper()->deleteMail( m_recMail ); 557 //m_recMail->Wrapper()->deleteMail( m_recMail );
555 //hide(); 558 //hide();
556 deleted = true; 559 deleted = true;
557 } 560 }
558} 561}
559 562
560MailImageDlg::MailImageDlg(const QString&fname,QWidget *parent, const char *name, bool modal, WFlags f) 563MailImageDlg::MailImageDlg(const QString&fname,QWidget *parent, const char *name, bool modal, Qt::WFlags f)
561 : QDialog(parent,name,modal) 564 : QDialog(parent,name,modal)
562{ 565{
563 QVBoxLayout*dlglayout = new QVBoxLayout(this); 566 Q3VBoxLayout*dlglayout = new Q3VBoxLayout(this);
564 dlglayout->setSpacing(2); 567 dlglayout->setSpacing(2);
565 dlglayout->setMargin(1); 568 dlglayout->setMargin(1);
566 //m_imageview = new Opie::MM::OImageScrollView(this); 569 //m_imageview = new Opie::MM::OImageScrollView(this);
567 //dlglayout->addWidget(m_imageview); 570 //dlglayout->addWidget(m_imageview);
568} 571}
569 572
570MailImageDlg::~MailImageDlg() 573MailImageDlg::~MailImageDlg()
571{ 574{
572} 575}
573 576
574void MailImageDlg::setName(const QString&fname) 577void MailImageDlg::setName(const QString&fname)
575{ 578{
576 qDebug("viewmail.cpp: MailImageDlg::setName Pending"); 579 qDebug("viewmail.cpp: MailImageDlg::setName Pending");
577 // m_imageview->setImage(fname); 580 // m_imageview->setImage(fname);
578} 581}
579 582
diff --git a/kmicromail/viewmail.h b/kmicromail/viewmail.h
index bb5b685..6cf6efb 100644
--- a/kmicromail/viewmail.h
+++ b/kmicromail/viewmail.h
@@ -1,93 +1,93 @@
1#ifndef VIEWMAIL_H 1#ifndef VIEWMAIL_H
2#define VIEWMAIL_H 2#define VIEWMAIL_H
3 3
4#include "viewmailbase.h" 4#include "viewmailbase.h"
5#include <libmailwrapper/mailtypes.h> 5#include <libmailwrapper/mailtypes.h>
6 6
7#include <qdialog.h> 7#include <qdialog.h>
8#include <qapplication.h> 8#include <qapplication.h>
9 9
10#include <qlistview.h> 10#include <q3listview.h>
11#include <qmap.h> 11#include <qmap.h>
12#include <klocale.h> 12#include <klocale.h>
13#include <qstringlist.h> 13#include <qstringlist.h>
14#include <qvaluelist.h> 14#include <q3valuelist.h>
15 15
16//namespace Opie { namespace MM { class OImageScrollView; } } 16//namespace Opie { namespace MM { class OImageScrollView; } }
17 17
18class AttachItem : public QListViewItem 18class AttachItem : public Q3ListViewItem
19{ 19{
20public: 20public:
21 AttachItem(QListView * parent,QListViewItem *after, const QString&mime,const QString&desc,const QString&file, 21 AttachItem(Q3ListView * parent,Q3ListViewItem *after, const QString&mime,const QString&desc,const QString&file,
22 const QString&fsize,int num,const QValueList<int>&path); 22 const QString&fsize,int num,const Q3ValueList<int>&path);
23 AttachItem(QListViewItem * parent,QListViewItem *after, const QString&mime,const QString&desc,const QString&file, 23 AttachItem(Q3ListViewItem * parent,Q3ListViewItem *after, const QString&mime,const QString&desc,const QString&file,
24 const QString&fsize,int num,const QValueList<int>&path); 24 const QString&fsize,int num,const Q3ValueList<int>&path);
25 int Partnumber() { return _partNum; } 25 int Partnumber() { return _partNum; }
26 bool isParentof(const QValueList<int>&path); 26 bool isParentof(const Q3ValueList<int>&path);
27 27
28private: 28private:
29 int _partNum; 29 int _partNum;
30 /* needed for a better display of attachments */ 30 /* needed for a better display of attachments */
31 QValueList<int> _path; 31 Q3ValueList<int> _path;
32}; 32};
33 33
34class ViewMail : public ViewMailBase 34class ViewMail : public ViewMailBase
35{ 35{
36 Q_OBJECT 36 Q_OBJECT
37 37
38public: 38public:
39 ViewMail( QWidget *parent = 0, const char *name = 0, WFlags fl = 0); 39 ViewMail( QWidget *parent = 0, const char *name = 0, Qt::WFlags fl = 0);
40 ~ViewMail(); 40 ~ViewMail();
41 41
42 void hide(); 42 void hide();
43 void exec(); 43 void exec();
44 void setMail(const RecMailP&mail ); 44 void setMail(const RecMailP&mail );
45 void setBody(const RecBodyP&body); 45 void setBody(const RecBodyP&body);
46 bool deleted; 46 bool deleted;
47 signals: 47 signals:
48 void showNextMail(ViewMail*); 48 void showNextMail(ViewMail*);
49 void deleteAndDisplayNextMail(ViewMail *); 49 void deleteAndDisplayNextMail(ViewMail *);
50 void signalDownloadMail(); 50 void signalDownloadMail();
51protected: 51protected:
52 QString deHtml(const QString &string); 52 QString deHtml(const QString &string);
53 AttachItem* searchParent(const QValueList<int>&path); 53 AttachItem* searchParent(const Q3ValueList<int>&path);
54 AttachItem* lastChild(AttachItem*parent); 54 AttachItem* lastChild(AttachItem*parent);
55 55
56protected slots: 56protected slots:
57 void slotNextMail(); 57 void slotNextMail();
58 void slotReply(); 58 void slotReply();
59 void slotForward(); 59 void slotForward();
60 void setText(); 60 void setText();
61 void slotItemClicked( QListViewItem * item , const QPoint & point, int c ); 61 void slotItemClicked( Q3ListViewItem * item , const QPoint & point, int c );
62 void slotDeleteMail( ); 62 void slotDeleteMail( );
63 void slotShowHtml( bool ); 63 void slotShowHtml( bool );
64 void slotViewSource(); 64 void slotViewSource();
65 65
66private: 66private:
67 void readConfig(); 67 void readConfig();
68 bool sourceOn;; 68 bool sourceOn;;
69 bool _inLoop; 69 bool _inLoop;
70 QString m_mailHtml; 70 QString m_mailHtml;
71 bool m_gotBody; 71 bool m_gotBody;
72 RecBodyP m_body; 72 RecBodyP m_body;
73 RecMailP m_recMail; 73 RecMailP m_recMail;
74 bool m_showHtml; 74 bool m_showHtml;
75 75
76 // 0 from 1 subject 2 bodytext 3 date 76 // 0 from 1 subject 2 bodytext 3 date
77 QMap <int,QString> m_mail; 77 QMap <int,QString> m_mail;
78 // 0 to 1 cc 2 bcc 78 // 0 to 1 cc 2 bcc
79 QMap <int,QStringList> m_mail2; 79 QMap <int,QStringList> m_mail2;
80}; 80};
81 81
82class MailImageDlg:public QDialog 82class MailImageDlg:public QDialog
83{ 83{
84 Q_OBJECT 84 Q_OBJECT
85public: 85public:
86 MailImageDlg(const QString&,QWidget *parent = 0, const char *name = 0, bool modal = true, WFlags f = 0); 86 MailImageDlg(const QString&,QWidget *parent = 0, const char *name = 0, bool modal = true, Qt::WFlags f = 0);
87 ~MailImageDlg(); 87 ~MailImageDlg();
88 void setName(const QString&); 88 void setName(const QString&);
89protected: 89protected:
90 //Opie::MM::OImageScrollView*m_imageview; 90 //Opie::MM::OImageScrollView*m_imageview;
91}; 91};
92 92
93#endif 93#endif
diff --git a/kmicromail/viewmailbase.cpp b/kmicromail/viewmailbase.cpp
index 3bb964e..371ee91 100644
--- a/kmicromail/viewmailbase.cpp
+++ b/kmicromail/viewmailbase.cpp
@@ -1,109 +1,112 @@
1// CHANGED 2004-08-06 Lutz Rogowski 1// CHANGED 2004-08-06 Lutz Rogowski
2#include <qtextbrowser.h> 2#include <q3textbrowser.h>
3#include <qlistview.h> 3#include <q3listview.h>
4#include <qaction.h> 4#include <qaction.h>
5#include <qlabel.h> 5#include <qlabel.h>
6#include <qvbox.h> 6#include <q3vbox.h>
7#include <qapplication.h> 7#include <qapplication.h>
8 8
9#include <qtoolbar.h> 9#include <q3toolbar.h>
10#include <qmenubar.h> 10#include <qmenubar.h>
11//Added by qt3to4:
12#include <QKeyEvent>
13#include <Q3PopupMenu>
11#include <kiconloader.h> 14#include <kiconloader.h>
12//#include <qpe/resource.h> 15//#include <qpe/resource.h>
13#include <klocale.h> 16#include <klocale.h>
14 17
15#include "viewmailbase.h" 18#include "viewmailbase.h"
16//#include "opendiag.h" 19//#include "opendiag.h"
17 20
18ViewMailBase::ViewMailBase(QWidget *parent, const char *name, WFlags fl) 21ViewMailBase::ViewMailBase(QWidget *parent, const char *name, Qt::WFlags fl)
19 : QMainWindow(parent, name, fl) 22 : Q3MainWindow(parent, name, fl)
20{ 23{
21 24
22 setToolBarsMovable(false); 25 setToolBarsMovable(false);
23 26
24 toolbar = new QToolBar(this); 27 toolbar = new Q3ToolBar(this);
25 menubar = new QMenuBar( toolbar ); 28 menubar = new QMenuBar( toolbar );
26 mailmenu = new QPopupMenu( menubar ); 29 mailmenu = new Q3PopupMenu( menubar );
27 menubar->insertItem( i18n( "Mail" ), mailmenu ); 30 menubar->insertItem( i18n( "Mail" ), mailmenu );
28 31
29 toolbar->setHorizontalStretchable(true); 32 toolbar->setHorizontalStretchable(true);
30 addToolBar(toolbar); 33 addToolBar(toolbar);
31 34
32 viewSource = new QAction(i18n("View Source"), 0, 0, this); 35 viewSource = new QAction(i18n("View Source"), 0, 0, this);
33 viewSource->addTo(mailmenu); 36 viewSource->addTo(mailmenu);
34 37
35 downloadMail= new QAction(i18n("Download Mail"),SmallIcon("add"), 0, 0, this); 38 downloadMail= new QAction(i18n("Download Mail"),SmallIcon("add"), 0, 0, this);
36 downloadMail->addTo(toolbar); 39 downloadMail->addTo(toolbar);
37 downloadMail->addTo(mailmenu); 40 downloadMail->addTo(mailmenu);
38 41
39 42
40 reply = new QAction(i18n("Reply"),SmallIcon("reply"), 0, 0, this); 43 reply = new QAction(i18n("Reply"),SmallIcon("reply"), 0, 0, this);
41 reply->addTo(toolbar); 44 reply->addTo(toolbar);
42 reply->addTo(mailmenu); 45 reply->addTo(mailmenu);
43 46
44 forward = new QAction(i18n("Forward"),SmallIcon("forward"), 0, 0, this); 47 forward = new QAction(i18n("Forward"),SmallIcon("forward"), 0, 0, this);
45 forward->addTo(toolbar); 48 forward->addTo(toolbar);
46 forward->addTo(mailmenu); 49 forward->addTo(mailmenu);
47 50
48 attachbutton = new QAction(i18n("Attachments"),SmallIcon("attach"), 0, 0, this, 0, true); 51 attachbutton = new QAction(i18n("Attachments"),SmallIcon("attach"), 0, 0, this, 0, true);
49 attachbutton->addTo(toolbar); 52 attachbutton->addTo(toolbar);
50 attachbutton->addTo(mailmenu); 53 attachbutton->addTo(mailmenu);
51 connect(attachbutton, SIGNAL(toggled(bool)), SLOT(slotChangeAttachview(bool))); 54 connect(attachbutton, SIGNAL(toggled(bool)), SLOT(slotChangeAttachview(bool)));
52 55
53 showHtml = new QAction( i18n( "Show Html" ), SmallIcon( "html" ), 0, 0, this, 0, true ); 56 showHtml = new QAction( i18n( "Show Html" ), SmallIcon( "html" ), 0, 0, this, 0, true );
54 showHtml->addTo( toolbar ); 57 showHtml->addTo( toolbar );
55 showHtml->addTo( mailmenu ); 58 showHtml->addTo( mailmenu );
56 59
57 deleteMail = new QAction(i18n("Delete Mail"),SmallIcon("trash"), 0, 0, this); 60 deleteMail = new QAction(i18n("Delete Mail"),SmallIcon("trash"), 0, 0, this);
58 deleteMail->addTo(toolbar); 61 deleteMail->addTo(toolbar);
59 deleteMail->addTo(mailmenu); 62 deleteMail->addTo(mailmenu);
60 63
61 nextMail = new QAction(i18n("Show next mail"),SmallIcon("enter"), 0, 0, this); 64 nextMail = new QAction(i18n("Show next mail"),SmallIcon("enter"), 0, 0, this);
62 QLabel *spacer = new QLabel(toolbar); 65 QLabel *spacer = new QLabel(toolbar);
63 nextMail->addTo(toolbar); 66 nextMail->addTo(toolbar);
64 nextMail->addTo(mailmenu); 67 nextMail->addTo(mailmenu);
65 68
66 closeMail = new QAction(i18n("Close"),SmallIcon("exit"), 0, 0, this); 69 closeMail = new QAction(i18n("Close"),SmallIcon("exit"), 0, 0, this);
67 //QLabel *spacer = new QLabel(toolbar); 70 //QLabel *spacer = new QLabel(toolbar);
68 spacer->setBackgroundMode(QWidget::PaletteButton); 71 spacer->setBackgroundMode(QWidget::PaletteButton);
69 toolbar->setStretchableWidget(spacer); 72 toolbar->setStretchableWidget(spacer);
70 closeMail->addTo(toolbar); 73 closeMail->addTo(toolbar);
71 closeMail->addTo(mailmenu); 74 closeMail->addTo(mailmenu);
72 QVBox *view = new QVBox(this); 75 Q3VBox *view = new Q3VBox(this);
73 setCentralWidget(view); 76 setCentralWidget(view);
74 77
75 attachments = new QListView(view); 78 attachments = new Q3ListView(view);
76 int fixh = 100; 79 int fixh = 100;
77 if ( QApplication::desktop()->width() > 320 ) 80 if ( QApplication::desktop()->width() > 320 )
78 fixh = 200; 81 fixh = 200;
79 attachments->setFixedHeight(fixh); 82 attachments->setFixedHeight(fixh);
80 attachments->setAllColumnsShowFocus(true); 83 attachments->setAllColumnsShowFocus(true);
81 attachments->addColumn("Mime Type", fixh-30); 84 attachments->addColumn("Mime Type", fixh-30);
82 attachments->addColumn(i18n("Description"), 100); 85 attachments->addColumn(i18n("Description"), 100);
83 attachments->addColumn(i18n("Filename"), 80); 86 attachments->addColumn(i18n("Filename"), 80);
84 attachments->addColumn(i18n("Size"), 80); 87 attachments->addColumn(i18n("Size"), 80);
85 attachments->setSorting(-1); 88 attachments->setSorting(-1);
86 attachments->hide(); 89 attachments->hide();
87 90
88 browser = new QTextBrowser(view); 91 browser = new Q3TextBrowser(view);
89 92
90 //openDiag = new OpenDiag(view); 93 //openDiag = new OpenDiag(view);
91 //openDiag->hide(); 94 //openDiag->hide();
92 95
93} 96}
94 97
95void ViewMailBase::slotChangeAttachview(bool state) 98void ViewMailBase::slotChangeAttachview(bool state)
96{ 99{
97 if (state) attachments->show(); 100 if (state) attachments->show();
98 else attachments->hide(); 101 else attachments->hide();
99} 102}
100 103
101void ViewMailBase::keyPressEvent ( QKeyEvent * e ) 104void ViewMailBase::keyPressEvent ( QKeyEvent * e )
102{ 105{
103 if( e->key()==Qt::Key_Escape ) { 106 if( e->key()==Qt::Key_Escape ) {
104 close(); 107 close();
105 e->accept(); 108 e->accept();
106 return; 109 return;
107 } 110 }
108 QWidget::keyPressEvent(e); 111 QWidget::keyPressEvent(e);
109} 112}
diff --git a/kmicromail/viewmailbase.h b/kmicromail/viewmailbase.h
index 7c075eb..3f1dead 100644
--- a/kmicromail/viewmailbase.h
+++ b/kmicromail/viewmailbase.h
@@ -1,44 +1,47 @@
1// CHANGED 2004-08-06 Lutz Rogowski 1// CHANGED 2004-08-06 Lutz Rogowski
2#ifndef VIEWMAILBASE_H 2#ifndef VIEWMAILBASE_H
3#define VIEWMAILBASE_H 3#define VIEWMAILBASE_H
4 4
5#include <qmainwindow.h> 5#include <q3mainwindow.h>
6//Added by qt3to4:
7#include <Q3PopupMenu>
8#include <QKeyEvent>
6 9
7#ifndef DESKTOP_VERSION 10#ifndef DESKTOP_VERSION
8#include <qpe/qpemenubar.h> 11#include <qpe/qpemenubar.h>
9#define QMenuBar QPEMenuBar 12#define QMenuBar QPEMenuBar
10#endif 13#endif
11 14
12class QAction; 15class QAction;
13class OpenDiag; 16class OpenDiag;
14class QListView; 17class Q3ListView;
15class QToolBar; 18class Q3ToolBar;
16class QTextBrowser; 19class Q3TextBrowser;
17class QMenuBar; 20class QMenuBar;
18class QPopupMenu; 21class Q3PopupMenu;
19 22
20class ViewMailBase : public QMainWindow 23class ViewMailBase : public Q3MainWindow
21{ 24{
22 Q_OBJECT 25 Q_OBJECT
23 26
24public: 27public:
25 ViewMailBase(QWidget *parent = 0, const char *name = 0, WFlags fl = 0); 28 ViewMailBase(QWidget *parent = 0, const char *name = 0, Qt::WFlags fl = 0);
26 29
27protected: 30protected:
28 QAction *reply, *forward, *attachbutton, *deleteMail, *showHtml, *closeMail, *nextMail, *downloadMail, *viewSource; 31 QAction *reply, *forward, *attachbutton, *deleteMail, *showHtml, *closeMail, *nextMail, *downloadMail, *viewSource;
29 QListView *attachments; 32 Q3ListView *attachments;
30 QToolBar *toolbar; 33 Q3ToolBar *toolbar;
31 QTextBrowser *browser; 34 Q3TextBrowser *browser;
32 OpenDiag *openDiag; 35 OpenDiag *openDiag;
33 QMenuBar *menubar; 36 QMenuBar *menubar;
34 QPopupMenu *mailmenu; 37 Q3PopupMenu *mailmenu;
35 38
36protected slots: 39protected slots:
37 void slotChangeAttachview(bool state); 40 void slotChangeAttachview(bool state);
38 virtual void keyPressEvent ( QKeyEvent * e ); 41 virtual void keyPressEvent ( QKeyEvent * e );
39 42
40 43
41}; 44};
42 45
43#endif 46#endif
44 47