Diffstat (limited to 'noncore/net/mail/accountview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/net/mail/accountview.cpp | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/noncore/net/mail/accountview.cpp b/noncore/net/mail/accountview.cpp new file mode 100644 index 0000000..c6a44ab --- a/dev/null +++ b/noncore/net/mail/accountview.cpp | |||
@@ -0,0 +1,110 @@ | |||
1 | #include "accountview.h" | ||
2 | #include "defines.h" | ||
3 | |||
4 | IMAPviewItem::IMAPviewItem( IMAPaccount *a, QListView *parent ) | ||
5 | : AccountViewItem( parent ) | ||
6 | { | ||
7 | account = a; | ||
8 | wrapper = new IMAPwrapper( account ); | ||
9 | setPixmap( 0, PIXMAP_IMAPFOLDER ); | ||
10 | setText( 0, account->getAccountName() ); | ||
11 | setOpen( true ); | ||
12 | } | ||
13 | |||
14 | IMAPviewItem::~IMAPviewItem() | ||
15 | { | ||
16 | delete wrapper; | ||
17 | } | ||
18 | |||
19 | IMAPwrapper *IMAPviewItem::getWrapper() | ||
20 | { | ||
21 | return wrapper; | ||
22 | } | ||
23 | |||
24 | void IMAPviewItem::refresh(Maillist&) | ||
25 | { | ||
26 | QList<IMAPFolder> *folders = wrapper->listFolders(); | ||
27 | |||
28 | QListViewItem *child = firstChild(); | ||
29 | while ( child ) { | ||
30 | QListViewItem *tmp = child; | ||
31 | child = child->nextSibling(); | ||
32 | delete tmp; | ||
33 | } | ||
34 | |||
35 | IMAPFolder *it; | ||
36 | for ( it = folders->first(); it; it = folders->next() ) { | ||
37 | (void) new IMAPfolderItem( it, this ); | ||
38 | } | ||
39 | } | ||
40 | |||
41 | |||
42 | IMAPfolderItem::~IMAPfolderItem() | ||
43 | { | ||
44 | delete folder; | ||
45 | } | ||
46 | |||
47 | IMAPfolderItem::IMAPfolderItem( IMAPFolder *folderInit, IMAPviewItem *parent ) | ||
48 | : AccountViewItem( parent ) | ||
49 | { | ||
50 | folder = folderInit; | ||
51 | imap = parent; | ||
52 | setPixmap( 0, PIXMAP_IMAPFOLDER ); | ||
53 | setText( 0, folder->getDisplayName() ); | ||
54 | } | ||
55 | |||
56 | void IMAPfolderItem::refresh(Maillist&target) | ||
57 | { | ||
58 | imap->getWrapper()->listMessages( folder->getName(),target ); | ||
59 | } | ||
60 | |||
61 | QString IMAPfolderItem::fetchBody(const RecMail&aMail) | ||
62 | { | ||
63 | return imap->getWrapper()->fetchBody(folder->getName(),aMail); | ||
64 | } | ||
65 | |||
66 | AccountView::AccountView( QWidget *parent, const char *name, WFlags flags ) | ||
67 | : QListView( parent, name, flags ) | ||
68 | { | ||
69 | connect( this, SIGNAL( clicked( QListViewItem * ) ), | ||
70 | SLOT( refresh( QListViewItem * ) ) ); | ||
71 | } | ||
72 | |||
73 | void AccountView::populate( QList<Account> list ) | ||
74 | { | ||
75 | clear(); | ||
76 | |||
77 | Account *it; | ||
78 | for ( it = list.first(); it; it = list.next() ) { | ||
79 | if ( it->getType().compare( "IMAP" ) == 0 ) { | ||
80 | IMAPaccount *imap = static_cast<IMAPaccount *>(it); | ||
81 | qDebug( "added IMAP " + imap->getAccountName() ); | ||
82 | (void) new IMAPviewItem( imap, this ); | ||
83 | } | ||
84 | } | ||
85 | } | ||
86 | |||
87 | void AccountView::refresh(QListViewItem *item) { | ||
88 | qDebug("AccountView refresh..."); | ||
89 | if ( item ) { | ||
90 | Maillist headerlist; | ||
91 | headerlist.setAutoDelete(true); | ||
92 | AccountViewItem *view = static_cast<AccountViewItem *>(item); | ||
93 | view->refresh(headerlist); | ||
94 | emit refreshMailview(&headerlist); | ||
95 | } | ||
96 | } | ||
97 | |||
98 | void AccountView::refreshAll() | ||
99 | { | ||
100 | |||
101 | } | ||
102 | |||
103 | QString AccountView::fetchBody(const RecMail&aMail) | ||
104 | { | ||
105 | QString Body; | ||
106 | QListViewItem*item = selectedItem (); | ||
107 | if (!item) return Body; | ||
108 | AccountViewItem *view = static_cast<AccountViewItem *>(item); | ||
109 | return view->fetchBody(aMail); | ||
110 | } | ||