summaryrefslogtreecommitdiff
path: root/noncore/net/mail/accountview.cpp
Unidiff
Diffstat (limited to 'noncore/net/mail/accountview.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/net/mail/accountview.cpp58
1 files changed, 54 insertions, 4 deletions
diff --git a/noncore/net/mail/accountview.cpp b/noncore/net/mail/accountview.cpp
index d725b87..8e21d39 100644
--- a/noncore/net/mail/accountview.cpp
+++ b/noncore/net/mail/accountview.cpp
@@ -1,146 +1,196 @@
1#include "accountview.h" 1#include "accountview.h"
2#include "mailtypes.h" 2#include "mailtypes.h"
3#include "defines.h" 3#include "defines.h"
4 4
5 5
6/** 6/**
7 * POP3 Account stuff 7 * POP3 Account stuff
8 */ 8 */
9 9
10POP3viewItem::POP3viewItem( POP3account *a, QListView *parent ) 10POP3viewItem::POP3viewItem( POP3account *a, QListView *parent )
11 : AccountViewItem( parent ) 11 : AccountViewItem( parent )
12{ 12{
13 account = a; 13 account = a;
14 wrapper = AbstractMail::getWrapper( account ); 14 wrapper = AbstractMail::getWrapper( account );
15 setPixmap( 0, PIXMAP_POP3FOLDER ); 15 setPixmap( 0, PIXMAP_POP3FOLDER );
16 setText( 0, account->getAccountName() ); 16 setText( 0, account->getAccountName() );
17} 17}
18 18
19POP3viewItem::~POP3viewItem() 19POP3viewItem::~POP3viewItem()
20{ 20{
21 delete wrapper; 21 delete wrapper;
22} 22}
23 23
24void POP3viewItem::refresh( QList<RecMail> &target ) 24AbstractMail *POP3viewItem::getWrapper()
25{ 25{
26 qDebug( "POP3: refresh" ); 26 return wrapper;
27 wrapper->listMessages("INBOX", target );
28} 27}
29 28
29void POP3viewItem::refresh( QList<RecMail> & )
30{
31 QList<Folder> *folders = wrapper->listFolders();
32 QListViewItem *child = firstChild();
33 while ( child ) {
34 QListViewItem *tmp = child;
35 child = child->nextSibling();
36 delete tmp;
37 }
38 Folder *it;
39 QListViewItem*item = 0;
40 for ( it = folders->first(); it; it = folders->next() ) {
41 item = new POP3folderItem( it, this , item );
42 item->setSelectable(it->may_select());
43 }
44 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
45 folders->setAutoDelete(false);
46 delete folders;
47}
30 48
31RecBody POP3viewItem::fetchBody( const RecMail &mail ) 49RecBody POP3viewItem::fetchBody( const RecMail &mail )
32{ 50{
33 qDebug( "POP3 fetchBody" ); 51 qDebug( "POP3 fetchBody" );
34 return wrapper->fetchBody( mail ); 52 return wrapper->fetchBody( mail );
35} 53}
36 54
55POP3folderItem::~POP3folderItem()
56{
57 delete folder;
58}
59
60POP3folderItem::POP3folderItem( Folder *folderInit, POP3viewItem *parent , QListViewItem*after )
61 : AccountViewItem( parent,after )
62{
63 folder = folderInit;
64 pop3 = parent;
65 if (folder->getDisplayName().lower()!="inbox") {
66 setPixmap( 0, PIXMAP_POP3FOLDER );
67 } else {
68 setPixmap( 0, PIXMAP_INBOXFOLDER);
69 }
70 setText( 0, folder->getDisplayName() );
71}
72
73void POP3folderItem::refresh(QList<RecMail>&target)
74{
75 if (folder->may_select())
76 pop3->getWrapper()->listMessages( folder->getName(),target );
77}
78
79RecBody POP3folderItem::fetchBody(const RecMail&aMail)
80{
81 return pop3->getWrapper()->fetchBody(aMail);
82}
83
37/** 84/**
38 * IMAP Account stuff 85 * IMAP Account stuff
39 */ 86 */
40
41IMAPviewItem::IMAPviewItem( IMAPaccount *a, QListView *parent ) 87IMAPviewItem::IMAPviewItem( IMAPaccount *a, QListView *parent )
42 : AccountViewItem( parent ) 88 : AccountViewItem( parent )
43{ 89{
44 account = a; 90 account = a;
45 wrapper = AbstractMail::getWrapper( account ); 91 wrapper = AbstractMail::getWrapper( account );
46 setPixmap( 0, PIXMAP_IMAPFOLDER ); 92 setPixmap( 0, PIXMAP_IMAPFOLDER );
47 setText( 0, account->getAccountName() ); 93 setText( 0, account->getAccountName() );
48 setOpen( true ); 94 setOpen( true );
49} 95}
50 96
51IMAPviewItem::~IMAPviewItem() 97IMAPviewItem::~IMAPviewItem()
52{ 98{
53 delete wrapper; 99 delete wrapper;
54} 100}
55 101
56AbstractMail *IMAPviewItem::getWrapper() 102AbstractMail *IMAPviewItem::getWrapper()
57{ 103{
58 return wrapper; 104 return wrapper;
59} 105}
60 106
61void IMAPviewItem::refresh(QList<RecMail>&) 107void IMAPviewItem::refresh(QList<RecMail>&)
62{ 108{
63 QList<Folder> *folders = wrapper->listFolders(); 109 QList<Folder> *folders = wrapper->listFolders();
64 110
65 QListViewItem *child = firstChild(); 111 QListViewItem *child = firstChild();
66 while ( child ) { 112 while ( child ) {
67 QListViewItem *tmp = child; 113 QListViewItem *tmp = child;
68 child = child->nextSibling(); 114 child = child->nextSibling();
69 delete tmp; 115 delete tmp;
70 } 116 }
71 117
72 Folder *it; 118 Folder *it;
73 QListViewItem*item = 0; 119 QListViewItem*item = 0;
74 for ( it = folders->first(); it; it = folders->next() ) { 120 for ( it = folders->first(); it; it = folders->next() ) {
75 item = new IMAPfolderItem( it, this , item ); 121 item = new IMAPfolderItem( it, this , item );
76 item->setSelectable(it->may_select()); 122 item->setSelectable(it->may_select());
77 } 123 }
78 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 124 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
79 folders->setAutoDelete(false); 125 folders->setAutoDelete(false);
80 delete folders; 126 delete folders;
81} 127}
82 128
83RecBody IMAPviewItem::fetchBody(const RecMail&) 129RecBody IMAPviewItem::fetchBody(const RecMail&)
84{ 130{
85 return RecBody(); 131 return RecBody();
86} 132}
87 133
88IMAPfolderItem::~IMAPfolderItem() 134IMAPfolderItem::~IMAPfolderItem()
89{ 135{
90 delete folder; 136 delete folder;
91} 137}
92 138
93IMAPfolderItem::IMAPfolderItem( Folder *folderInit, IMAPviewItem *parent , QListViewItem*after ) 139IMAPfolderItem::IMAPfolderItem( Folder *folderInit, IMAPviewItem *parent , QListViewItem*after )
94 : AccountViewItem( parent,after ) 140 : AccountViewItem( parent,after )
95{ 141{
96 folder = folderInit; 142 folder = folderInit;
97 imap = parent; 143 imap = parent;
144 if (folder->getDisplayName().lower()!="inbox") {
98 setPixmap( 0, PIXMAP_IMAPFOLDER ); 145 setPixmap( 0, PIXMAP_IMAPFOLDER );
146 } else {
147 setPixmap( 0, PIXMAP_INBOXFOLDER);
148 }
99 setText( 0, folder->getDisplayName() ); 149 setText( 0, folder->getDisplayName() );
100} 150}
101 151
102void IMAPfolderItem::refresh(QList<RecMail>&target) 152void IMAPfolderItem::refresh(QList<RecMail>&target)
103{ 153{
104 if (folder->may_select()) 154 if (folder->may_select())
105 imap->getWrapper()->listMessages( folder->getName(),target ); 155 imap->getWrapper()->listMessages( folder->getName(),target );
106} 156}
107 157
108RecBody IMAPfolderItem::fetchBody(const RecMail&aMail) 158RecBody IMAPfolderItem::fetchBody(const RecMail&aMail)
109{ 159{
110 return imap->getWrapper()->fetchBody(aMail); 160 return imap->getWrapper()->fetchBody(aMail);
111} 161}
112 162
113/** 163/**
114 * Generic stuff 164 * Generic stuff
115 */ 165 */
116 166
117AccountView::AccountView( QWidget *parent, const char *name, WFlags flags ) 167AccountView::AccountView( QWidget *parent, const char *name, WFlags flags )
118 : QListView( parent, name, flags ) 168 : QListView( parent, name, flags )
119{ 169{
120 connect( this, SIGNAL( selectionChanged( QListViewItem * ) ), 170 connect( this, SIGNAL( selectionChanged( QListViewItem * ) ),
121 SLOT( refresh( QListViewItem * ) ) ); 171 SLOT( refresh( QListViewItem * ) ) );
122 setSorting(-1); 172 setSorting(-1);
123} 173}
124 174
125void AccountView::populate( QList<Account> list ) 175void AccountView::populate( QList<Account> list )
126{ 176{
127 clear(); 177 clear();
128 178
129 Account *it; 179 Account *it;
130 for ( it = list.first(); it; it = list.next() ) { 180 for ( it = list.first(); it; it = list.next() ) {
131 if ( it->getType().compare( "IMAP" ) == 0 ) { 181 if ( it->getType().compare( "IMAP" ) == 0 ) {
132 IMAPaccount *imap = static_cast<IMAPaccount *>(it); 182 IMAPaccount *imap = static_cast<IMAPaccount *>(it);
133 qDebug( "added IMAP " + imap->getAccountName() ); 183 qDebug( "added IMAP " + imap->getAccountName() );
134 (void) new IMAPviewItem( imap, this ); 184 (void) new IMAPviewItem( imap, this );
135 } else if ( it->getType().compare( "POP3" ) == 0 ) { 185 } else if ( it->getType().compare( "POP3" ) == 0 ) {
136 POP3account *pop3 = static_cast<POP3account *>(it); 186 POP3account *pop3 = static_cast<POP3account *>(it);
137 qDebug( "added POP3 " + pop3->getAccountName() ); 187 qDebug( "added POP3 " + pop3->getAccountName() );
138 (void) new POP3viewItem( pop3, this ); 188 (void) new POP3viewItem( pop3, this );
139 } 189 }
140 } 190 }
141} 191}
142 192
143void AccountView::refresh(QListViewItem *item) { 193void AccountView::refresh(QListViewItem *item) {
144 194
145 qDebug("AccountView refresh..."); 195 qDebug("AccountView refresh...");
146 if ( item ) { 196 if ( item ) {