author | alwin <alwin> | 2004-03-06 12:36:55 (UTC) |
---|---|---|
committer | alwin <alwin> | 2004-03-06 12:36:55 (UTC) |
commit | a66fd5afde517e9a61e74fc17df617297f134c96 (patch) (unidiff) | |
tree | 7bb9819c087516f6b0f3399bdec6d5ce225201e5 | |
parent | 5b49d47174925c1e2415641b77269b753688f5f1 (diff) | |
download | opie-a66fd5afde517e9a61e74fc17df617297f134c96.zip opie-a66fd5afde517e9a61e74fc17df617297f134c96.tar.gz opie-a66fd5afde517e9a61e74fc17df617297f134c96.tar.bz2 |
standalone dlg for (un-)subscribing newsgroups.
May be integrated into the standard nntp-settings-dialog, too.
-rw-r--r-- | noncore/net/mail/.cvsignore | 3 | ||||
-rw-r--r-- | noncore/net/mail/accountitem.cpp | 15 | ||||
-rw-r--r-- | noncore/net/mail/accountitem.h | 1 | ||||
-rw-r--r-- | noncore/net/mail/mail.pro | 11 | ||||
-rw-r--r-- | noncore/net/mail/nntpgroups.cpp | 57 | ||||
-rw-r--r-- | noncore/net/mail/nntpgroups.h | 33 | ||||
-rw-r--r-- | noncore/net/mail/nntpgroupsdlg.cpp | 29 | ||||
-rw-r--r-- | noncore/net/mail/nntpgroupsdlg.h | 24 | ||||
-rw-r--r-- | noncore/net/mail/nntpgroupsui.ui | 88 |
9 files changed, 256 insertions, 5 deletions
diff --git a/noncore/net/mail/.cvsignore b/noncore/net/mail/.cvsignore index 4957719..3819f80 100644 --- a/noncore/net/mail/.cvsignore +++ b/noncore/net/mail/.cvsignore | |||
@@ -1,31 +1,32 @@ | |||
1 | .moc | 1 | .moc |
2 | Makefile | 2 | Makefile |
3 | addresspickerui.cpp | 3 | addresspickerui.cpp |
4 | addresspickerui.h | 4 | addresspickerui.h |
5 | composemailui.cpp | 5 | composemailui.cpp |
6 | composemailui.h | 6 | composemailui.h |
7 | editaccountsui.cpp | 7 | editaccountsui.cpp |
8 | editaccountsui.h | 8 | editaccountsui.h |
9 | imapconfigui.cpp | 9 | imapconfigui.cpp |
10 | imapconfigui.h | 10 | imapconfigui.h |
11 | logindialogui.cpp | 11 | logindialogui.cpp |
12 | logindialogui.h | 12 | logindialogui.h |
13 | nntpconfigui.cpp | 13 | nntpconfigui.cpp |
14 | nntpconfigui.h | 14 | nntpconfigui.h |
15 | pop3configui.cpp | 15 | pop3configui.cpp |
16 | pop3configui.h | 16 | pop3configui.h |
17 | selectmailtypeui.cpp | 17 | selectmailtypeui.cpp |
18 | selectmailtypeui.h | 18 | selectmailtypeui.h |
19 | smtpconfigui.cpp | 19 | smtpconfigui.cpp |
20 | smtpconfigui.h | 20 | smtpconfigui.h |
21 | settingsdialogui.cpp | 21 | settingsdialogui.cpp |
22 | settingsdialogui.h | 22 | settingsdialogui.h |
23 | statuswidgetui.cpp | 23 | statuswidgetui.cpp |
24 | statuswidgetui.h | 24 | statuswidgetui.h |
25 | newmaildirui.cpp | 25 | newmaildirui.cpp |
26 | newmaildirui.h | 26 | newmaildirui.h |
27 | sendmailprogressui.cpp | 27 | sendmailprogressui.cpp |
28 | sendmailprogressui.h | 28 | sendmailprogressui.h |
29 | selectstoreui.cpp | 29 | selectstoreui.cpp |
30 | selectstoreui.h | 30 | selectstoreui.h |
31 | 31 | nntpgroupsui.cpp | |
32 | nntpgroupsui.h | ||
diff --git a/noncore/net/mail/accountitem.cpp b/noncore/net/mail/accountitem.cpp index e925d8d..0d636a4 100644 --- a/noncore/net/mail/accountitem.cpp +++ b/noncore/net/mail/accountitem.cpp | |||
@@ -1,52 +1,53 @@ | |||
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 "defines.h" | 6 | #include "defines.h" |
6 | 7 | ||
7 | /* OPIE */ | 8 | /* OPIE */ |
8 | #include <libmailwrapper/mailtypes.h> | 9 | #include <libmailwrapper/mailtypes.h> |
9 | #include <libmailwrapper/abstractmail.h> | 10 | #include <libmailwrapper/abstractmail.h> |
10 | #include <libmailwrapper/mailwrapper.h> | 11 | #include <libmailwrapper/mailwrapper.h> |
11 | #include <qpe/qpeapplication.h> | 12 | #include <qpe/qpeapplication.h> |
12 | 13 | ||
13 | /* QT */ | 14 | /* QT */ |
14 | #include <qpopupmenu.h> | 15 | #include <qpopupmenu.h> |
15 | #include <qmessagebox.h> | 16 | #include <qmessagebox.h> |
16 | 17 | ||
17 | #define SETPIX(x) if (!account->getOffline()) {setPixmap( 0,x);} else {setPixmap( 0, PIXMAP_OFFLINE );} | 18 | #define SETPIX(x) if (!account->getOffline()) {setPixmap( 0,x);} else {setPixmap( 0, PIXMAP_OFFLINE );} |
18 | /** | 19 | /** |
19 | * POP3 Account stuff | 20 | * POP3 Account stuff |
20 | */ | 21 | */ |
21 | POP3viewItem::POP3viewItem( POP3account *a, AccountView *parent ) | 22 | POP3viewItem::POP3viewItem( POP3account *a, AccountView *parent ) |
22 | : AccountViewItem( parent ) | 23 | : AccountViewItem( parent ) |
23 | { | 24 | { |
24 | account = a; | 25 | account = a; |
25 | wrapper = AbstractMail::getWrapper( account ); | 26 | wrapper = AbstractMail::getWrapper( account ); |
26 | SETPIX(PIXMAP_POP3FOLDER); | 27 | SETPIX(PIXMAP_POP3FOLDER); |
27 | #if 0 | 28 | #if 0 |
28 | if (!account->getOffline()) | 29 | if (!account->getOffline()) |
29 | { | 30 | { |
30 | setPixmap( 0, ); | 31 | setPixmap( 0, ); |
31 | } | 32 | } |
32 | else | 33 | else |
33 | { | 34 | { |
34 | setPixmap( 0, PIXMAP_OFFLINE ); | 35 | setPixmap( 0, PIXMAP_OFFLINE ); |
35 | } | 36 | } |
36 | #endif | 37 | #endif |
37 | setText( 0, account->getAccountName() ); | 38 | setText( 0, account->getAccountName() ); |
38 | setOpen( true ); | 39 | setOpen( true ); |
39 | } | 40 | } |
40 | 41 | ||
41 | POP3viewItem::~POP3viewItem() | 42 | POP3viewItem::~POP3viewItem() |
42 | { | 43 | { |
43 | delete wrapper; | 44 | delete wrapper; |
44 | } | 45 | } |
45 | 46 | ||
46 | AbstractMail *POP3viewItem::getWrapper() | 47 | AbstractMail *POP3viewItem::getWrapper() |
47 | { | 48 | { |
48 | return wrapper; | 49 | return wrapper; |
49 | } | 50 | } |
50 | 51 | ||
51 | void POP3viewItem::refresh( QList<RecMail> & ) | 52 | void POP3viewItem::refresh( QList<RecMail> & ) |
52 | { | 53 | { |
@@ -239,180 +240,192 @@ NNTPviewItem::~NNTPviewItem() | |||
239 | AbstractMail *NNTPviewItem::getWrapper() | 240 | AbstractMail *NNTPviewItem::getWrapper() |
240 | { | 241 | { |
241 | return wrapper; | 242 | return wrapper; |
242 | } | 243 | } |
243 | 244 | ||
244 | void NNTPviewItem::refresh( QList<RecMail> & ) | 245 | void NNTPviewItem::refresh( QList<RecMail> & ) |
245 | { | 246 | { |
246 | refresh(); | 247 | refresh(); |
247 | } | 248 | } |
248 | 249 | ||
249 | void NNTPviewItem::refresh() | 250 | void NNTPviewItem::refresh() |
250 | { | 251 | { |
251 | if (account->getOffline()) return; | 252 | if (account->getOffline()) return; |
252 | QList<Folder> *folders = wrapper->listFolders(); | 253 | QList<Folder> *folders = wrapper->listFolders(); |
253 | QListViewItem *child = firstChild(); | 254 | QListViewItem *child = firstChild(); |
254 | while ( child ) | 255 | while ( child ) |
255 | { | 256 | { |
256 | QListViewItem *tmp = child; | 257 | QListViewItem *tmp = child; |
257 | child = child->nextSibling(); | 258 | child = child->nextSibling(); |
258 | delete tmp; | 259 | delete tmp; |
259 | } | 260 | } |
260 | Folder *it; | 261 | Folder *it; |
261 | QListViewItem*item = 0; | 262 | QListViewItem*item = 0; |
262 | for ( it = folders->first(); it; it = folders->next() ) | 263 | for ( it = folders->first(); it; it = folders->next() ) |
263 | { | 264 | { |
264 | item = new NNTPfolderItem( it, this , item ); | 265 | item = new NNTPfolderItem( it, this , item ); |
265 | item->setSelectable(it->may_select()); | 266 | item->setSelectable(it->may_select()); |
266 | } | 267 | } |
267 | // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | 268 | // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
268 | folders->setAutoDelete(false); | 269 | folders->setAutoDelete(false); |
269 | delete folders; | 270 | delete folders; |
270 | } | 271 | } |
271 | 272 | ||
272 | RecBody NNTPviewItem::fetchBody( const RecMail &mail ) | 273 | RecBody NNTPviewItem::fetchBody( const RecMail &mail ) |
273 | { | 274 | { |
274 | qDebug( "NNTP fetchBody" ); | 275 | qDebug( "NNTP fetchBody" ); |
275 | return wrapper->fetchBody( mail ); | 276 | return wrapper->fetchBody( mail ); |
276 | } | 277 | } |
277 | 278 | ||
278 | QPopupMenu * NNTPviewItem::getContextMenu() | 279 | QPopupMenu * NNTPviewItem::getContextMenu() |
279 | { | 280 | { |
280 | QPopupMenu *m = new QPopupMenu(0); | 281 | QPopupMenu *m = new QPopupMenu(0); |
281 | if (m) | 282 | if (m) |
282 | { | 283 | { |
283 | if (!account->getOffline()) | 284 | if (!account->getOffline()) |
284 | { | 285 | { |
285 | m->insertItem(QObject::tr("Disconnect",contextName),0); | 286 | m->insertItem(QObject::tr("Disconnect",contextName),0); |
286 | m->insertItem(QObject::tr("Set offline",contextName),1); | 287 | m->insertItem(QObject::tr("Set offline",contextName),1); |
288 | m->insertItem(QObject::tr("(Un-)Subscribe groups",contextName),2); | ||
287 | } | 289 | } |
288 | else | 290 | else |
289 | { | 291 | { |
290 | m->insertItem(QObject::tr("Set online",contextName),1); | 292 | m->insertItem(QObject::tr("Set online",contextName),1); |
291 | } | 293 | } |
292 | } | 294 | } |
293 | return m; | 295 | return m; |
294 | } | 296 | } |
295 | 297 | ||
298 | void NNTPviewItem::subscribeGroups() | ||
299 | { | ||
300 | NNTPGroupsDlg dlg(account); | ||
301 | if (QPEApplication::execDialog(&dlg)== QDialog::Accepted ){ | ||
302 | refresh(); | ||
303 | } | ||
304 | } | ||
305 | |||
296 | void NNTPviewItem::disconnect() | 306 | void NNTPviewItem::disconnect() |
297 | { | 307 | { |
298 | QListViewItem *child = firstChild(); | 308 | QListViewItem *child = firstChild(); |
299 | while ( child ) | 309 | while ( child ) |
300 | { | 310 | { |
301 | QListViewItem *tmp = child; | 311 | QListViewItem *tmp = child; |
302 | child = child->nextSibling(); | 312 | child = child->nextSibling(); |
303 | delete tmp; | 313 | delete tmp; |
304 | } | 314 | } |
305 | wrapper->logout(); | 315 | wrapper->logout(); |
306 | } | 316 | } |
307 | 317 | ||
308 | void NNTPviewItem::setOnOffline() | 318 | void NNTPviewItem::setOnOffline() |
309 | { | 319 | { |
310 | if (!account->getOffline()) | 320 | if (!account->getOffline()) |
311 | { | 321 | { |
312 | disconnect(); | 322 | disconnect(); |
313 | } | 323 | } |
314 | account->setOffline(!account->getOffline()); | 324 | account->setOffline(!account->getOffline()); |
315 | account->save(); | 325 | account->save(); |
316 | //FIXME | 326 | //FIXME |
317 | SETPIX(PIXMAP_POP3FOLDER); | 327 | SETPIX(PIXMAP_POP3FOLDER); |
318 | refresh(); | 328 | refresh(); |
319 | } | 329 | } |
320 | 330 | ||
321 | void NNTPviewItem::contextMenuSelected(int which) | 331 | void NNTPviewItem::contextMenuSelected(int which) |
322 | { | 332 | { |
323 | switch (which) | 333 | switch (which) |
324 | { | 334 | { |
325 | case 0: | 335 | case 0: |
326 | disconnect(); | 336 | disconnect(); |
327 | break; | 337 | break; |
328 | case 1: | 338 | case 1: |
329 | setOnOffline(); | 339 | setOnOffline(); |
330 | break; | 340 | break; |
341 | case 2: | ||
342 | subscribeGroups(); | ||
343 | break; | ||
331 | } | 344 | } |
332 | } | 345 | } |
333 | 346 | ||
334 | NNTPfolderItem::~NNTPfolderItem() | 347 | NNTPfolderItem::~NNTPfolderItem() |
335 | {} | 348 | {} |
336 | 349 | ||
337 | NNTPfolderItem::NNTPfolderItem( Folder *folderInit, NNTPviewItem *parent , QListViewItem*after ) | 350 | NNTPfolderItem::NNTPfolderItem( Folder *folderInit, NNTPviewItem *parent , QListViewItem*after ) |
338 | : AccountViewItem( parent,after ) | 351 | : AccountViewItem( parent,after ) |
339 | { | 352 | { |
340 | folder = folderInit; | 353 | folder = folderInit; |
341 | nntp = parent; | 354 | nntp = parent; |
342 | if (folder->getDisplayName().lower()!="inbox") | 355 | if (folder->getDisplayName().lower()!="inbox") |
343 | { | 356 | { |
344 | setPixmap( 0, PIXMAP_POP3FOLDER ); | 357 | setPixmap( 0, PIXMAP_POP3FOLDER ); |
345 | } | 358 | } |
346 | else | 359 | else |
347 | { | 360 | { |
348 | setPixmap( 0, PIXMAP_INBOXFOLDER); | 361 | setPixmap( 0, PIXMAP_INBOXFOLDER); |
349 | } | 362 | } |
350 | setText( 0, folder->getDisplayName() ); | 363 | setText( 0, folder->getDisplayName() ); |
351 | } | 364 | } |
352 | 365 | ||
353 | void NNTPfolderItem::refresh(QList<RecMail>&target) | 366 | void NNTPfolderItem::refresh(QList<RecMail>&target) |
354 | { | 367 | { |
355 | if (folder->may_select()) | 368 | if (folder->may_select()) |
356 | nntp->getWrapper()->listMessages( folder->getName(),target ); | 369 | nntp->getWrapper()->listMessages( folder->getName(),target ); |
357 | } | 370 | } |
358 | 371 | ||
359 | RecBody NNTPfolderItem::fetchBody(const RecMail&aMail) | 372 | RecBody NNTPfolderItem::fetchBody(const RecMail&aMail) |
360 | { | 373 | { |
361 | return nntp->getWrapper()->fetchBody(aMail); | 374 | return nntp->getWrapper()->fetchBody(aMail); |
362 | } | 375 | } |
363 | 376 | ||
364 | QPopupMenu * NNTPfolderItem::getContextMenu() | 377 | QPopupMenu * NNTPfolderItem::getContextMenu() |
365 | { | 378 | { |
366 | QPopupMenu *m = new QPopupMenu(0); | 379 | QPopupMenu *m = new QPopupMenu(0); |
367 | if (m) | 380 | if (m) |
368 | { | 381 | { |
369 | m->insertItem(QObject::tr("Refresh header list",contextName),0); | 382 | m->insertItem(QObject::tr("Refresh header list",contextName),0); |
370 | m->insertItem(QObject::tr("Move/Copie all mails",contextName),1); | 383 | m->insertItem(QObject::tr("Copy all postings",contextName),1); |
371 | } | 384 | } |
372 | return m; | 385 | return m; |
373 | } | 386 | } |
374 | 387 | ||
375 | void NNTPfolderItem::downloadMails() | 388 | void NNTPfolderItem::downloadMails() |
376 | { | 389 | { |
377 | AccountView*bl = nntp->accountView(); | 390 | AccountView*bl = nntp->accountView(); |
378 | if (!bl) return; | 391 | if (!bl) return; |
379 | bl->downloadMails(folder,nntp->getWrapper()); | 392 | bl->downloadMails(folder,nntp->getWrapper()); |
380 | } | 393 | } |
381 | 394 | ||
382 | void NNTPfolderItem::contextMenuSelected(int which) | 395 | void NNTPfolderItem::contextMenuSelected(int which) |
383 | { | 396 | { |
384 | AccountView * view = (AccountView*)listView(); | 397 | AccountView * view = (AccountView*)listView(); |
385 | switch (which) | 398 | switch (which) |
386 | { | 399 | { |
387 | case 0: | 400 | case 0: |
388 | /* must be 'cause pop3 lists are cached */ | 401 | /* must be 'cause pop3 lists are cached */ |
389 | nntp->getWrapper()->logout(); | 402 | nntp->getWrapper()->logout(); |
390 | view->refreshCurrent(); | 403 | view->refreshCurrent(); |
391 | break; | 404 | break; |
392 | case 1: | 405 | case 1: |
393 | downloadMails(); | 406 | downloadMails(); |
394 | break; | 407 | break; |
395 | default: | 408 | default: |
396 | break; | 409 | break; |
397 | } | 410 | } |
398 | } | 411 | } |
399 | 412 | ||
400 | /** | 413 | /** |
401 | * IMAP Account stuff | 414 | * IMAP Account stuff |
402 | */ | 415 | */ |
403 | IMAPviewItem::IMAPviewItem( IMAPaccount *a, AccountView *parent ) | 416 | IMAPviewItem::IMAPviewItem( IMAPaccount *a, AccountView *parent ) |
404 | : AccountViewItem( parent ) | 417 | : AccountViewItem( parent ) |
405 | { | 418 | { |
406 | account = a; | 419 | account = a; |
407 | wrapper = AbstractMail::getWrapper( account ); | 420 | wrapper = AbstractMail::getWrapper( account ); |
408 | SETPIX(PIXMAP_IMAPFOLDER); | 421 | SETPIX(PIXMAP_IMAPFOLDER); |
409 | setText( 0, account->getAccountName() ); | 422 | setText( 0, account->getAccountName() ); |
410 | setOpen( true ); | 423 | setOpen( true ); |
411 | } | 424 | } |
412 | 425 | ||
413 | IMAPviewItem::~IMAPviewItem() | 426 | IMAPviewItem::~IMAPviewItem() |
414 | { | 427 | { |
415 | delete wrapper; | 428 | delete wrapper; |
416 | } | 429 | } |
417 | 430 | ||
418 | AbstractMail *IMAPviewItem::getWrapper() | 431 | AbstractMail *IMAPviewItem::getWrapper() |
diff --git a/noncore/net/mail/accountitem.h b/noncore/net/mail/accountitem.h index a138c9b..f3c0f5d 100644 --- a/noncore/net/mail/accountitem.h +++ b/noncore/net/mail/accountitem.h | |||
@@ -51,96 +51,97 @@ public: | |||
51 | virtual RecBody fetchBody( const RecMail &mail ); | 51 | virtual RecBody fetchBody( const RecMail &mail ); |
52 | AbstractMail *getWrapper(); | 52 | AbstractMail *getWrapper(); |
53 | virtual QPopupMenu * getContextMenu(); | 53 | virtual QPopupMenu * getContextMenu(); |
54 | virtual void contextMenuSelected(int); | 54 | virtual void contextMenuSelected(int); |
55 | 55 | ||
56 | protected: | 56 | protected: |
57 | POP3account *account; | 57 | POP3account *account; |
58 | virtual void refresh(); | 58 | virtual void refresh(); |
59 | AbstractMail *wrapper; | 59 | AbstractMail *wrapper; |
60 | void disconnect(); | 60 | void disconnect(); |
61 | void setOnOffline(); | 61 | void setOnOffline(); |
62 | }; | 62 | }; |
63 | 63 | ||
64 | class POP3folderItem : public AccountViewItem | 64 | class POP3folderItem : public AccountViewItem |
65 | { | 65 | { |
66 | 66 | ||
67 | public: | 67 | public: |
68 | POP3folderItem( Folder *folder, POP3viewItem *parent , QListViewItem*after ); | 68 | POP3folderItem( Folder *folder, POP3viewItem *parent , QListViewItem*after ); |
69 | virtual ~POP3folderItem(); | 69 | virtual ~POP3folderItem(); |
70 | virtual void refresh(QList<RecMail>&); | 70 | virtual void refresh(QList<RecMail>&); |
71 | virtual RecBody fetchBody(const RecMail&); | 71 | virtual RecBody fetchBody(const RecMail&); |
72 | virtual QPopupMenu * getContextMenu(); | 72 | virtual QPopupMenu * getContextMenu(); |
73 | virtual void contextMenuSelected(int); | 73 | virtual void contextMenuSelected(int); |
74 | 74 | ||
75 | protected: | 75 | protected: |
76 | void downloadMails(); | 76 | void downloadMails(); |
77 | POP3viewItem *pop3; | 77 | POP3viewItem *pop3; |
78 | }; | 78 | }; |
79 | 79 | ||
80 | 80 | ||
81 | class NNTPviewItem : public AccountViewItem | 81 | class NNTPviewItem : public AccountViewItem |
82 | { | 82 | { |
83 | 83 | ||
84 | public: | 84 | public: |
85 | NNTPviewItem( NNTPaccount *a, AccountView *parent ); | 85 | NNTPviewItem( NNTPaccount *a, AccountView *parent ); |
86 | virtual ~NNTPviewItem(); | 86 | virtual ~NNTPviewItem(); |
87 | virtual void refresh( QList<RecMail> &target ); | 87 | virtual void refresh( QList<RecMail> &target ); |
88 | virtual RecBody fetchBody( const RecMail &mail ); | 88 | virtual RecBody fetchBody( const RecMail &mail ); |
89 | AbstractMail *getWrapper(); | 89 | AbstractMail *getWrapper(); |
90 | virtual QPopupMenu * getContextMenu(); | 90 | virtual QPopupMenu * getContextMenu(); |
91 | virtual void contextMenuSelected(int); | 91 | virtual void contextMenuSelected(int); |
92 | 92 | ||
93 | protected: | 93 | protected: |
94 | NNTPaccount *account; | 94 | NNTPaccount *account; |
95 | virtual void refresh(); | 95 | virtual void refresh(); |
96 | AbstractMail *wrapper; | 96 | AbstractMail *wrapper; |
97 | void disconnect(); | 97 | void disconnect(); |
98 | void setOnOffline(); | 98 | void setOnOffline(); |
99 | void subscribeGroups(); | ||
99 | }; | 100 | }; |
100 | 101 | ||
101 | class NNTPfolderItem : public AccountViewItem | 102 | class NNTPfolderItem : public AccountViewItem |
102 | { | 103 | { |
103 | 104 | ||
104 | public: | 105 | public: |
105 | NNTPfolderItem( Folder *folder, NNTPviewItem *parent , QListViewItem*after ); | 106 | NNTPfolderItem( Folder *folder, NNTPviewItem *parent , QListViewItem*after ); |
106 | virtual ~NNTPfolderItem(); | 107 | virtual ~NNTPfolderItem(); |
107 | virtual void refresh(QList<RecMail>&); | 108 | virtual void refresh(QList<RecMail>&); |
108 | virtual RecBody fetchBody(const RecMail&); | 109 | virtual RecBody fetchBody(const RecMail&); |
109 | virtual QPopupMenu * getContextMenu(); | 110 | virtual QPopupMenu * getContextMenu(); |
110 | virtual void contextMenuSelected(int); | 111 | virtual void contextMenuSelected(int); |
111 | 112 | ||
112 | protected: | 113 | protected: |
113 | void downloadMails(); | 114 | void downloadMails(); |
114 | NNTPviewItem *nntp; | 115 | NNTPviewItem *nntp; |
115 | }; | 116 | }; |
116 | 117 | ||
117 | 118 | ||
118 | 119 | ||
119 | class IMAPviewItem : public AccountViewItem | 120 | class IMAPviewItem : public AccountViewItem |
120 | { | 121 | { |
121 | friend class IMAPfolderItem; | 122 | friend class IMAPfolderItem; |
122 | public: | 123 | public: |
123 | IMAPviewItem( IMAPaccount *a, AccountView *parent ); | 124 | IMAPviewItem( IMAPaccount *a, AccountView *parent ); |
124 | virtual ~IMAPviewItem(); | 125 | virtual ~IMAPviewItem(); |
125 | virtual void refresh(QList<RecMail>&); | 126 | virtual void refresh(QList<RecMail>&); |
126 | virtual RecBody fetchBody(const RecMail&); | 127 | virtual RecBody fetchBody(const RecMail&); |
127 | AbstractMail *getWrapper(); | 128 | AbstractMail *getWrapper(); |
128 | virtual QPopupMenu * getContextMenu(); | 129 | virtual QPopupMenu * getContextMenu(); |
129 | virtual void contextMenuSelected(int); | 130 | virtual void contextMenuSelected(int); |
130 | const QStringList&subFolders(); | 131 | const QStringList&subFolders(); |
131 | virtual void refreshFolders(bool force=false); | 132 | virtual void refreshFolders(bool force=false); |
132 | bool offline(); | 133 | bool offline(); |
133 | 134 | ||
134 | protected: | 135 | protected: |
135 | virtual void createNewFolder(); | 136 | virtual void createNewFolder(); |
136 | IMAPaccount *account; | 137 | IMAPaccount *account; |
137 | AbstractMail *wrapper; | 138 | AbstractMail *wrapper; |
138 | QStringList currentFolders; | 139 | QStringList currentFolders; |
139 | }; | 140 | }; |
140 | 141 | ||
141 | class IMAPfolderItem : public AccountViewItem | 142 | class IMAPfolderItem : public AccountViewItem |
142 | { | 143 | { |
143 | 144 | ||
144 | public: | 145 | public: |
145 | IMAPfolderItem( Folder *folder, IMAPviewItem *parent , QListViewItem*after ); | 146 | IMAPfolderItem( Folder *folder, IMAPviewItem *parent , QListViewItem*after ); |
146 | IMAPfolderItem( Folder *folder, IMAPfolderItem *parent , QListViewItem*after, IMAPviewItem *master ); | 147 | IMAPfolderItem( Folder *folder, IMAPfolderItem *parent , QListViewItem*after, IMAPviewItem *master ); |
diff --git a/noncore/net/mail/mail.pro b/noncore/net/mail/mail.pro index 7e0de2b..005a839 100644 --- a/noncore/net/mail/mail.pro +++ b/noncore/net/mail/mail.pro | |||
@@ -1,61 +1,66 @@ | |||
1 | CONFIG += qt warn_on debug quick-app | 1 | CONFIG += qt warn_on debug quick-app |
2 | 2 | ||
3 | HEADERS = defines.h \ | 3 | HEADERS = 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 \ | ||
19 | nntpgroupsdlg.h | ||
18 | 20 | ||
19 | SOURCES = main.cpp \ | 21 | SOURCES = main.cpp \ |
20 | opiemail.cpp \ | 22 | opiemail.cpp \ |
21 | mainwindow.cpp \ | 23 | mainwindow.cpp \ |
22 | accountview.cpp \ | 24 | accountview.cpp \ |
23 | accountitem.cpp \ | 25 | accountitem.cpp \ |
24 | composemail.cpp \ | 26 | composemail.cpp \ |
25 | addresspicker.cpp \ | 27 | addresspicker.cpp \ |
26 | editaccounts.cpp \ | 28 | editaccounts.cpp \ |
27 | viewmail.cpp \ | 29 | viewmail.cpp \ |
28 | viewmailbase.cpp \ | 30 | viewmailbase.cpp \ |
29 | mailistviewitem.cpp \ | 31 | mailistviewitem.cpp \ |
30 | settingsdialog.cpp \ | 32 | settingsdialog.cpp \ |
31 | statuswidget.cpp \ | 33 | statuswidget.cpp \ |
32 | newmaildir.cpp \ | 34 | newmaildir.cpp \ |
33 | selectstore.cpp \ | 35 | selectstore.cpp \ |
34 | selectsmtp.cpp | 36 | selectsmtp.cpp \ |
37 | nntpgroups.cpp \ | ||
38 | nntpgroupsdlg.cpp | ||
35 | 39 | ||
36 | INTERFACES = editaccountsui.ui \ | 40 | INTERFACES = editaccountsui.ui \ |
37 | selectmailtypeui.ui \ | 41 | selectmailtypeui.ui \ |
38 | imapconfigui.ui \ | 42 | imapconfigui.ui \ |
39 | pop3configui.ui \ | 43 | pop3configui.ui \ |
40 | nntpconfigui.ui \ | 44 | nntpconfigui.ui \ |
41 | smtpconfigui.ui \ | 45 | smtpconfigui.ui \ |
42 | addresspickerui.ui \ | 46 | addresspickerui.ui \ |
43 | composemailui.ui \ | 47 | composemailui.ui \ |
44 | settingsdialogui.ui \ | 48 | settingsdialogui.ui \ |
45 | statuswidgetui.ui \ | 49 | statuswidgetui.ui \ |
46 | newmaildirui.ui \ | 50 | newmaildirui.ui \ |
47 | selectstoreui.ui | 51 | selectstoreui.ui \ |
52 | nntpgroupsui.ui | ||
48 | 53 | ||
49 | 54 | ||
50 | INCLUDEPATH += $(OPIEDIR)/include | 55 | INCLUDEPATH += $(OPIEDIR)/include |
51 | 56 | ||
52 | CONFTEST = $$system( echo $CONFIG_TARGET_MACOSX ) | 57 | CONFTEST = $$system( echo $CONFIG_TARGET_MACOSX ) |
53 | contains( CONFTEST, y ){ | 58 | contains( CONFTEST, y ){ |
54 | LIBS += -lqpe -lopieui2 -lopiecore2 -lopiepim2 -lopiedb2 -lmailwrapper -liconv | 59 | LIBS += -lqpe -lopieui2 -lopiecore2 -lopiepim2 -lopiedb2 -lmailwrapper -liconv |
55 | }else{ | 60 | }else{ |
56 | LIBS += -lqpe -lopieui2 -lopiecore2 -lopiepim2 -lopiedb2 -lmailwrapper | 61 | LIBS += -lqpe -lopieui2 -lopiecore2 -lopiepim2 -lopiedb2 -lmailwrapper |
57 | } | 62 | } |
58 | 63 | ||
59 | TARGET = opiemail | 64 | TARGET = opiemail |
60 | 65 | ||
61 | include ( $(OPIEDIR)/include.pro ) | 66 | include ( $(OPIEDIR)/include.pro ) |
diff --git a/noncore/net/mail/nntpgroups.cpp b/noncore/net/mail/nntpgroups.cpp new file mode 100644 index 0000000..97b1985 --- a/dev/null +++ b/noncore/net/mail/nntpgroups.cpp | |||
@@ -0,0 +1,57 @@ | |||
1 | #include "nntpgroups.h" | ||
2 | |||
3 | #include <libmailwrapper/settings.h> | ||
4 | |||
5 | #include <qlistview.h> | ||
6 | |||
7 | NNTPGroups::NNTPGroups(NNTPaccount *account, QWidget* parent, const char* name, WFlags fl) | ||
8 | : NNTPGroupsUI(parent,name,fl),subscribedGroups() | ||
9 | { | ||
10 | m_Account = account; | ||
11 | fillGroups(); | ||
12 | } | ||
13 | |||
14 | NNTPGroups::~NNTPGroups() | ||
15 | { | ||
16 | |||
17 | } | ||
18 | |||
19 | void NNTPGroups::slotGetNG() | ||
20 | { | ||
21 | if (!m_Account) return; | ||
22 | GroupListView->clear(); | ||
23 | NNTPwrapper tmp( m_Account ); | ||
24 | QStringList list = tmp.listAllNewsgroups(); | ||
25 | for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) { | ||
26 | QCheckListItem *item; | ||
27 | item = new QCheckListItem( GroupListView, (*it), QCheckListItem::CheckBox ); | ||
28 | if ( subscribedGroups.contains( (*it) ) >= 1 ) { | ||
29 | item->setOn( true ); | ||
30 | } | ||
31 | } | ||
32 | } | ||
33 | |||
34 | void NNTPGroups::fillGroups() | ||
35 | { | ||
36 | if (!m_Account) return; | ||
37 | subscribedGroups = m_Account->getGroups(); | ||
38 | for ( QStringList::Iterator it = subscribedGroups.begin(); it != subscribedGroups.end(); ++it ) { | ||
39 | QCheckListItem *item; | ||
40 | item = new QCheckListItem( GroupListView, (*it), QCheckListItem::CheckBox ); | ||
41 | item->setOn( true ); | ||
42 | } | ||
43 | } | ||
44 | |||
45 | void NNTPGroups::storeValues() | ||
46 | { | ||
47 | if (!m_Account) return; | ||
48 | QListViewItemIterator list_it( GroupListView ); | ||
49 | subscribedGroups.clear(); | ||
50 | for ( ; list_it.current(); ++list_it ) { | ||
51 | if ( ( (QCheckListItem*)list_it.current() )->isOn() ) { | ||
52 | qDebug(list_it.current()->text(0) ); | ||
53 | subscribedGroups.append( list_it.current()->text(0) ); | ||
54 | } | ||
55 | } | ||
56 | m_Account->setGroups( subscribedGroups ); | ||
57 | } | ||
diff --git a/noncore/net/mail/nntpgroups.h b/noncore/net/mail/nntpgroups.h new file mode 100644 index 0000000..8cc2e8b --- a/dev/null +++ b/noncore/net/mail/nntpgroups.h | |||
@@ -0,0 +1,33 @@ | |||
1 | #ifndef __NNTPGROUPS_WINDOW__ | ||
2 | #define __NNTPGROUPS_WINDOW__ | ||
3 | |||
4 | #include "nntpgroupsui.h" | ||
5 | |||
6 | #include <libmailwrapper/nntpwrapper.h> | ||
7 | |||
8 | class NNTPaccount; | ||
9 | class QStringList; | ||
10 | |||
11 | class NNTPGroups:public NNTPGroupsUI | ||
12 | { | ||
13 | Q_OBJECT | ||
14 | public: | ||
15 | NNTPGroups(NNTPaccount *account, QWidget* parent = 0, const char* name = 0, WFlags fl = 0); | ||
16 | virtual ~NNTPGroups(); | ||
17 | /* must be called from external. | ||
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. | ||
20 | */ | ||
21 | void storeValues(); | ||
22 | |||
23 | protected slots: | ||
24 | virtual void slotGetNG(); | ||
25 | |||
26 | protected: | ||
27 | virtual void fillGroups(); | ||
28 | |||
29 | NNTPaccount*m_Account; | ||
30 | QStringList subscribedGroups; | ||
31 | }; | ||
32 | |||
33 | #endif | ||
diff --git a/noncore/net/mail/nntpgroupsdlg.cpp b/noncore/net/mail/nntpgroupsdlg.cpp new file mode 100644 index 0000000..752ce3c --- a/dev/null +++ b/noncore/net/mail/nntpgroupsdlg.cpp | |||
@@ -0,0 +1,29 @@ | |||
1 | #include "nntpgroupsdlg.h" | ||
2 | #include "nntpgroups.h" | ||
3 | |||
4 | #include <libmailwrapper/settings.h> | ||
5 | |||
6 | #include <qlayout.h> | ||
7 | |||
8 | NNTPGroupsDlg::NNTPGroupsDlg(NNTPaccount *account,QWidget * parent, const char * name) | ||
9 | : QDialog(parent,name,true) | ||
10 | { | ||
11 | setCaption(tr("Subscribed newsgroups")); | ||
12 | m_Account = account; | ||
13 | QVBoxLayout*dlglayout = new QVBoxLayout(this); | ||
14 | dlglayout->setSpacing(2); | ||
15 | dlglayout->setMargin(1); | ||
16 | groupsWidget = new NNTPGroups(account,this); | ||
17 | dlglayout->addWidget(groupsWidget); | ||
18 | } | ||
19 | |||
20 | NNTPGroupsDlg::~NNTPGroupsDlg() | ||
21 | { | ||
22 | } | ||
23 | |||
24 | void NNTPGroupsDlg::accept() | ||
25 | { | ||
26 | groupsWidget->storeValues(); | ||
27 | m_Account->save(); | ||
28 | QDialog::accept(); | ||
29 | } | ||
diff --git a/noncore/net/mail/nntpgroupsdlg.h b/noncore/net/mail/nntpgroupsdlg.h new file mode 100644 index 0000000..a21bac7 --- a/dev/null +++ b/noncore/net/mail/nntpgroupsdlg.h | |||
@@ -0,0 +1,24 @@ | |||
1 | #ifndef __NNTP_GROUP_DLG_H | ||
2 | #define __NNTP_GROUP_DLG_H | ||
3 | |||
4 | #include <qdialog.h> | ||
5 | |||
6 | class NNTPGroups; | ||
7 | class NNTPaccount; | ||
8 | |||
9 | class NNTPGroupsDlg : public QDialog | ||
10 | { | ||
11 | Q_OBJECT | ||
12 | public: | ||
13 | NNTPGroupsDlg(NNTPaccount *account,QWidget * parent=0, const char * name=0); | ||
14 | virtual ~NNTPGroupsDlg(); | ||
15 | |||
16 | protected: | ||
17 | NNTPGroups*groupsWidget; | ||
18 | NNTPaccount*m_Account; | ||
19 | |||
20 | protected slots: | ||
21 | virtual void accept (); | ||
22 | }; | ||
23 | |||
24 | #endif | ||
diff --git a/noncore/net/mail/nntpgroupsui.ui b/noncore/net/mail/nntpgroupsui.ui new file mode 100644 index 0000000..93f487b --- a/dev/null +++ b/noncore/net/mail/nntpgroupsui.ui | |||
@@ -0,0 +1,88 @@ | |||
1 | <!DOCTYPE UI><UI> | ||
2 | <class>NNTPGroupsUI</class> | ||
3 | <widget> | ||
4 | <class>QWidget</class> | ||
5 | <property stdset="1"> | ||
6 | <name>name</name> | ||
7 | <cstring>NNTPGroupsUI</cstring> | ||
8 | </property> | ||
9 | <property stdset="1"> | ||
10 | <name>geometry</name> | ||
11 | <rect> | ||
12 | <x>0</x> | ||
13 | <y>0</y> | ||
14 | <width>356</width> | ||
15 | <height>406</height> | ||
16 | </rect> | ||
17 | </property> | ||
18 | <property stdset="1"> | ||
19 | <name>caption</name> | ||
20 | <string>newsgroupslist</string> | ||
21 | </property> | ||
22 | <property> | ||
23 | <name>layoutMargin</name> | ||
24 | </property> | ||
25 | <property> | ||
26 | <name>layoutSpacing</name> | ||
27 | </property> | ||
28 | <vbox> | ||
29 | <property stdset="1"> | ||
30 | <name>margin</name> | ||
31 | <number>2</number> | ||
32 | </property> | ||
33 | <property stdset="1"> | ||
34 | <name>spacing</name> | ||
35 | <number>2</number> | ||
36 | </property> | ||
37 | <widget> | ||
38 | <class>QListView</class> | ||
39 | <column> | ||
40 | <property> | ||
41 | <name>text</name> | ||
42 | <string>Newsgroups</string> | ||
43 | </property> | ||
44 | <property> | ||
45 | <name>clickable</name> | ||
46 | <bool>true</bool> | ||
47 | </property> | ||
48 | <property> | ||
49 | <name>resizeable</name> | ||
50 | <bool>true</bool> | ||
51 | </property> | ||
52 | </column> | ||
53 | <property stdset="1"> | ||
54 | <name>name</name> | ||
55 | <cstring>GroupListView</cstring> | ||
56 | </property> | ||
57 | <property> | ||
58 | <name>whatsThis</name> | ||
59 | <string>List of groups from the server. On start, only subscribed groups are listed.</string> | ||
60 | </property> | ||
61 | </widget> | ||
62 | <widget> | ||
63 | <class>QPushButton</class> | ||
64 | <property stdset="1"> | ||
65 | <name>name</name> | ||
66 | <cstring>GetNGButton</cstring> | ||
67 | </property> | ||
68 | <property stdset="1"> | ||
69 | <name>text</name> | ||
70 | <string>Get newsgroup list from server</string> | ||
71 | </property> | ||
72 | <property> | ||
73 | <name>whatsThis</name> | ||
74 | <string>Retrieve the list of groups from server</string> | ||
75 | </property> | ||
76 | </widget> | ||
77 | </vbox> | ||
78 | </widget> | ||
79 | <connections> | ||
80 | <connection> | ||
81 | <sender>GetNGButton</sender> | ||
82 | <signal>clicked()</signal> | ||
83 | <receiver>NNTPGroupsUI</receiver> | ||
84 | <slot>slotGetNG()</slot> | ||
85 | </connection> | ||
86 | <slot access="protected">slotGetNG()</slot> | ||
87 | </connections> | ||
88 | </UI> | ||