summaryrefslogtreecommitdiffabout
path: root/kmicromail/accountitem.cpp
Unidiff
Diffstat (limited to 'kmicromail/accountitem.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kmicromail/accountitem.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/kmicromail/accountitem.cpp b/kmicromail/accountitem.cpp
index d0321ef..1698b40 100644
--- a/kmicromail/accountitem.cpp
+++ b/kmicromail/accountitem.cpp
@@ -31,171 +31,181 @@ POP3viewItem::POP3viewItem( POP3account *a, AccountView *parent )
31 if (!account->getOffline()) 31 if (!account->getOffline())
32 { 32 {
33 setPixmap( 0, ); 33 setPixmap( 0, );
34 } 34 }
35 else 35 else
36 { 36 {
37 setPixmap( 0, PIXMAP_OFFLINE ); 37 setPixmap( 0, PIXMAP_OFFLINE );
38 } 38 }
39#endif 39#endif
40 setText( 0, account->getAccountName() ); 40 setText( 0, account->getAccountName() );
41 setOpen( true ); 41 setOpen( true );
42} 42}
43 43
44POP3viewItem::~POP3viewItem() 44POP3viewItem::~POP3viewItem()
45{ 45{
46 delete wrapper; 46 delete wrapper;
47} 47}
48 48
49AbstractMail *POP3viewItem::getWrapper() 49AbstractMail *POP3viewItem::getWrapper()
50{ 50{
51 return wrapper; 51 return wrapper;
52} 52}
53 53
54void POP3viewItem::refresh(QValueList<Opie::Core::OSmartPointer<RecMail> > & ) 54void POP3viewItem::refresh(QValueList<Opie::Core::OSmartPointer<RecMail> > & )
55{ 55{
56 refresh(); 56 refresh();
57} 57}
58 58
59void POP3viewItem::refresh() 59void POP3viewItem::refresh()
60{ 60{
61 if (account->getOffline()) return; 61 if (account->getOffline()) return;
62 QValueList<FolderP> *folders = wrapper->listFolders(); 62 QValueList<FolderP> *folders = wrapper->listFolders();
63 QListViewItem *child = firstChild(); 63 QListViewItem *child = firstChild();
64 while ( child ) 64 while ( child )
65 { 65 {
66 QListViewItem *tmp = child; 66 QListViewItem *tmp = child;
67 child = child->nextSibling(); 67 child = child->nextSibling();
68 delete tmp; 68 delete tmp;
69 } 69 }
70 QValueList<FolderP>::ConstIterator it; 70 QValueList<FolderP>::ConstIterator it;
71 QListViewItem*item = 0; 71 QListViewItem*item = 0;
72 for ( it = folders->begin(); it!=folders->end(); ++it) 72 for ( it = folders->begin(); it!=folders->end(); ++it)
73 { 73 {
74 item = new POP3folderItem( (*it), this , item ); 74 item = new POP3folderItem( (*it), this , item );
75 item->setSelectable( (*it)->may_select()); 75 item->setSelectable( (*it)->may_select());
76 } 76 }
77 delete folders; 77 delete folders;
78} 78}
79 79
80RECBODYP POP3viewItem::fetchBody( const RecMailP &mail ) 80RECBODYP POP3viewItem::fetchBody( const RecMailP &mail )
81{ 81{
82 82
83 return wrapper->fetchBody( mail ); 83 return wrapper->fetchBody( mail );
84} 84}
85 85
86QPopupMenu * POP3viewItem::getContextMenu() 86QPopupMenu * POP3viewItem::getContextMenu()
87{ 87{
88 QPopupMenu *m = new QPopupMenu(0); 88 QPopupMenu *m = new QPopupMenu(0);
89 if (m) 89 if (m)
90 { 90 {
91 if (!account->getOffline()) 91 if (!account->getOffline())
92 { 92 {
93 m->insertItem(QObject::tr("Disconnect",contextName),0); 93 m->insertItem(QObject::tr("Disconnect",contextName),0);
94 m->insertItem(QObject::tr("Set offline",contextName),1); 94 m->insertItem(QObject::tr("Set offline",contextName),1);
95 m->insertItem(QObject::tr("Download messages",contextName),2);
95 } 96 }
96 else 97 else
97 { 98 {
98 m->insertItem(QObject::tr("Set online",contextName),1); 99 m->insertItem(QObject::tr("Set online",contextName),1);
99 } 100 }
100 } 101 }
101 return m; 102 return m;
102} 103}
103 104
104void POP3viewItem::disconnect() 105void POP3viewItem::disconnect()
105{ 106{
106 QListViewItem *child = firstChild(); 107 QListViewItem *child = firstChild();
107 while ( child ) 108 while ( child )
108 { 109 {
109 QListViewItem *tmp = child; 110 QListViewItem *tmp = child;
110 child = child->nextSibling(); 111 child = child->nextSibling();
111 delete tmp; 112 delete tmp;
112 } 113 }
113 wrapper->logout(); 114 wrapper->logout();
114} 115}
115 116
116void POP3viewItem::setOnOffline() 117void POP3viewItem::setOnOffline()
117{ 118{
118 if (!account->getOffline()) 119 if (!account->getOffline())
119 { 120 {
120 disconnect(); 121 disconnect();
121 } 122 }
122 account->setOffline(!account->getOffline()); 123 account->setOffline(!account->getOffline());
123 account->save(); 124 account->save();
124 SETPIX(PIXMAP_POP3FOLDER); 125 SETPIX(PIXMAP_POP3FOLDER);
125 refresh(); 126 refresh();
126} 127}
127 128
128void POP3viewItem::contextMenuSelected(int which) 129void POP3viewItem::contextMenuSelected(int which)
129{ 130{
130 switch (which) 131 switch (which)
131 { 132 {
132 case 0: 133 case 0:
133 disconnect(); 134 disconnect();
134 break; 135 break;
135 case 1: 136 case 1:
136 setOnOffline(); 137 setOnOffline();
137 break; 138 break;
139 case 2: // daunlood
140 AccountView*bl = accountView();
141 if (!bl) return;
142 AccountViewItem* in = findSubItem( "inbox" , 0);
143 if ( ! in )
144 return;
145 bl->downloadMailsInbox(in->getFolder() ,getWrapper());
146 setOnOffline();
147 break;
138 } 148 }
139} 149}
140 150
141POP3folderItem::~POP3folderItem() 151POP3folderItem::~POP3folderItem()
142{} 152{}
143 153
144POP3folderItem::POP3folderItem( const FolderP&folderInit, POP3viewItem *parent , QListViewItem*after ) 154POP3folderItem::POP3folderItem( const FolderP&folderInit, POP3viewItem *parent , QListViewItem*after )
145 : AccountViewItem(folderInit,parent,after ) 155 : AccountViewItem(folderInit,parent,after )
146{ 156{
147 pop3 = parent; 157 pop3 = parent;
148 if (folder->getDisplayName().lower()!="inbox") 158 if (folder->getDisplayName().lower()!="inbox")
149 { 159 {
150 setPixmap( 0, PIXMAP_POP3FOLDER ); 160 setPixmap( 0, PIXMAP_POP3FOLDER );
151 } 161 }
152 else 162 else
153 { 163 {
154 setPixmap( 0, PIXMAP_INBOXFOLDER); 164 setPixmap( 0, PIXMAP_INBOXFOLDER);
155 } 165 }
156 setText( 0, folder->getDisplayName() ); 166 setText( 0, folder->getDisplayName() );
157} 167}
158 168
159void POP3folderItem::refresh(QValueList<RecMailP>&target) 169void POP3folderItem::refresh(QValueList<RecMailP>&target)
160{ 170{
161 if (folder->may_select()) 171 if (folder->may_select())
162 pop3->getWrapper()->listMessages( folder->getName(),target ); 172 pop3->getWrapper()->listMessages( folder->getName(),target );
163} 173}
164 174
165RECBODYP POP3folderItem::fetchBody(const RecMailP&aMail) 175RECBODYP POP3folderItem::fetchBody(const RecMailP&aMail)
166{ 176{
167 return pop3->getWrapper()->fetchBody(aMail); 177 return pop3->getWrapper()->fetchBody(aMail);
168} 178}
169 179
170QPopupMenu * POP3folderItem::getContextMenu() 180QPopupMenu * POP3folderItem::getContextMenu()
171{ 181{
172 QPopupMenu *m = new QPopupMenu(0); 182 QPopupMenu *m = new QPopupMenu(0);
173 if (m) 183 if (m)
174 { 184 {
175 m->insertItem(QObject::tr("Refresh header list",contextName),0); 185 m->insertItem(QObject::tr("Refresh header list",contextName),0);
176 m->insertItem(QObject::tr("Delete all mails",contextName),1); 186 m->insertItem(QObject::tr("Delete all mails",contextName),1);
177 m->insertItem(QObject::tr("Move/Copie all mails",contextName),2); 187 m->insertItem(QObject::tr("Move/Copie all mails",contextName),2);
178 } 188 }
179 return m; 189 return m;
180} 190}
181 191
182void POP3folderItem::downloadMails() 192void POP3folderItem::downloadMails()
183{ 193{
184 AccountView*bl = pop3->accountView(); 194 AccountView*bl = pop3->accountView();
185 if (!bl) return; 195 if (!bl) return;
186 bl->downloadMails(folder,pop3->getWrapper()); 196 bl->downloadMails(folder,pop3->getWrapper());
187} 197}
188 198
189void POP3folderItem::contextMenuSelected(int which) 199void POP3folderItem::contextMenuSelected(int which)
190{ 200{
191 AccountView * view = (AccountView*)listView(); 201 AccountView * view = (AccountView*)listView();
192 switch (which) 202 switch (which)
193 { 203 {
194 case 0: 204 case 0:
195 /* must be 'cause pop3 lists are cached */ 205 /* must be 'cause pop3 lists are cached */
196 pop3->getWrapper()->logout(); 206 pop3->getWrapper()->logout();
197 view->refreshCurrent(); 207 view->refreshCurrent();
198 break; 208 break;
199 case 1: 209 case 1:
200 deleteAllMail(pop3->getWrapper(),folder); 210 deleteAllMail(pop3->getWrapper(),folder);
201 break; 211 break;
@@ -1044,97 +1054,97 @@ AccountViewItem::AccountViewItem( QListViewItem *parent)
1044} 1054}
1045 1055
1046AccountViewItem::AccountViewItem( QListViewItem *parent , QListViewItem*after ) 1056AccountViewItem::AccountViewItem( QListViewItem *parent , QListViewItem*after )
1047 :QListViewItem( parent,after ),folder(0) 1057 :QListViewItem( parent,after ),folder(0)
1048{ 1058{
1049 init(); 1059 init();
1050} 1060}
1051 1061
1052AccountViewItem::AccountViewItem( const Opie::Core::OSmartPointer<Folder>&folderInit,QListViewItem *parent , QListViewItem*after ) 1062AccountViewItem::AccountViewItem( const Opie::Core::OSmartPointer<Folder>&folderInit,QListViewItem *parent , QListViewItem*after )
1053 :QListViewItem( parent,after ),folder(folderInit) 1063 :QListViewItem( parent,after ),folder(folderInit)
1054{ 1064{
1055 init(); 1065 init();
1056} 1066}
1057 1067
1058void AccountViewItem::init() 1068void AccountViewItem::init()
1059{ 1069{
1060 m_Backlink = 0; 1070 m_Backlink = 0;
1061} 1071}
1062 1072
1063AccountViewItem::~AccountViewItem() 1073AccountViewItem::~AccountViewItem()
1064{ 1074{
1065 folder = 0; 1075 folder = 0;
1066} 1076}
1067 1077
1068AccountView*AccountViewItem::accountView() 1078AccountView*AccountViewItem::accountView()
1069{ 1079{
1070 return m_Backlink; 1080 return m_Backlink;
1071} 1081}
1072 1082
1073void AccountViewItem::deleteAllMail(AbstractMail*wrapper,const FolderP&folder) 1083void AccountViewItem::deleteAllMail(AbstractMail*wrapper,const FolderP&folder)
1074{ 1084{
1075 if (!wrapper) return; 1085 if (!wrapper) return;
1076 QString fname=""; 1086 QString fname="";
1077 if (folder) fname = folder->getDisplayName(); 1087 if (folder) fname = folder->getDisplayName();
1078 int yesno = QMessageBox::warning(0,QObject::tr("Delete all mails",contextName), 1088 int yesno = QMessageBox::warning(0,QObject::tr("Delete all mails",contextName),
1079 QObject::tr("<center>Realy delete all mails in box <br>%1</center>",contextName). 1089 QObject::tr("<center>Realy delete all mails in box <br>%1</center>",contextName).
1080 arg(fname), 1090 arg(fname),
1081 QObject::tr("Yes",contextName), 1091 QObject::tr("Yes",contextName),
1082 QObject::tr("No",contextName),QString::null,1,1); 1092 QObject::tr("No",contextName),QString::null,1,1);
1083 1093
1084 if (yesno == 0) 1094 if (yesno == 0)
1085 { 1095 {
1086 if (wrapper->deleteAllMail(folder)) 1096 if (wrapper->deleteAllMail(folder))
1087 { 1097 {
1088 AccountView * view = (AccountView*)listView(); 1098 AccountView * view = (AccountView*)listView();
1089 if (view) view->refreshCurrent(); 1099 if (view) view->refreshCurrent();
1090 } 1100 }
1091 } 1101 }
1092} 1102}
1093 1103
1094void AccountViewItem::removeChilds() 1104void AccountViewItem::removeChilds()
1095{ 1105{
1096 QListViewItem *child = firstChild(); 1106 QListViewItem *child = firstChild();
1097 while ( child ) 1107 while ( child )
1098 { 1108 {
1099 QListViewItem *tmp = child; 1109 QListViewItem *tmp = child;
1100 child = child->nextSibling(); 1110 child = child->nextSibling();
1101 delete tmp; 1111 delete tmp;
1102 } 1112 }
1103} 1113}
1104 1114
1105bool AccountViewItem::matchName(const QString&name)const 1115bool AccountViewItem::matchName(const QString&name)const
1106{ 1116{
1107 if (!folder) return false; 1117 if (!folder) return false;
1108 return folder->getDisplayName()==name; 1118 return folder->getDisplayName().lower()==name.lower();
1109} 1119}
1110 1120
1111 1121
1112AccountViewItem*AccountViewItem::findSubItem(const QString&path,AccountViewItem*start) 1122AccountViewItem*AccountViewItem::findSubItem(const QString&path,AccountViewItem*start)
1113{ 1123{
1114 AccountViewItem*pitem,*sitem; 1124 AccountViewItem*pitem,*sitem;
1115 if (!start) pitem = (AccountViewItem*)firstChild(); 1125 if (!start) pitem = (AccountViewItem*)firstChild();
1116 else pitem = (AccountViewItem*)start->firstChild(); 1126 else pitem = (AccountViewItem*)start->firstChild();
1117 while (pitem) 1127 while (pitem)
1118 { 1128 {
1119 if (pitem->matchName(path)) 1129 if (pitem->matchName(path))
1120 { 1130 {
1121 break; 1131 break;
1122 } 1132 }
1123 if (pitem->childCount()>0) 1133 if (pitem->childCount()>0)
1124 { 1134 {
1125 sitem = findSubItem(path,pitem); 1135 sitem = findSubItem(path,pitem);
1126 if (sitem) 1136 if (sitem)
1127 { 1137 {
1128 pitem = sitem; 1138 pitem = sitem;
1129 break; 1139 break;
1130 } 1140 }
1131 } 1141 }
1132 pitem=(AccountViewItem*)pitem->nextSibling(); 1142 pitem=(AccountViewItem*)pitem->nextSibling();
1133 } 1143 }
1134 return pitem; 1144 return pitem;
1135} 1145}
1136 1146
1137bool AccountViewItem::isDraftfolder() 1147bool AccountViewItem::isDraftfolder()
1138{ 1148{
1139 return false; 1149 return false;
1140} 1150}