summaryrefslogtreecommitdiffabout
path: root/kmicromail/accountview.cpp
Unidiff
Diffstat (limited to 'kmicromail/accountview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kmicromail/accountview.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/kmicromail/accountview.cpp b/kmicromail/accountview.cpp
index 4879d57..d1d4f7e 100644
--- a/kmicromail/accountview.cpp
+++ b/kmicromail/accountview.cpp
@@ -1,263 +1,263 @@
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 <qpopupmenu.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#include <klocale.h> 20#include <klocale.h>
21#include <kmessagebox.h> 21#include <kmessagebox.h>
22 22
23using namespace Opie::Core; 23using namespace Opie::Core;
24AccountView::AccountView( QWidget *parent, const char *name, WFlags flags ) 24AccountView::AccountView( QWidget *parent, const char *name, WFlags flags )
25 : QListView( parent, name, flags ) 25 : QListView( parent, name, flags )
26{ 26{
27 //connect( this, SIGNAL( selectionChanged(QListViewItem*) ), 27 //connect( this, SIGNAL( selectionChanged(QListViewItem*) ),
28 // SLOT( refresh(QListViewItem*) ) ); 28 // SLOT( refresh(QListViewItem*) ) );
29 connect( this, SIGNAL( clicked(QListViewItem*) ), 29 connect( this, SIGNAL( clicked(QListViewItem*) ),
30 SLOT( refresh(QListViewItem*) ) ); 30 SLOT( refresh(QListViewItem*) ) );
31 connect( this, SIGNAL( returnPressed(QListViewItem*) ), 31 connect( this, SIGNAL( returnPressed(QListViewItem*) ),
32 SLOT( refresh(QListViewItem*) ) ); 32 SLOT( refresh(QListViewItem*) ) );
33 connect( this, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ),this, 33 connect( this, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ),this,
34 SLOT( slotHold(int,QListViewItem*,const QPoint&,int) ) ); 34 SLOT( slotHold(int,QListViewItem*,const QPoint&,int) ) );
35 setSorting(0); 35 setSorting(0);
36} 36}
37 37
38AccountView::~AccountView() 38AccountView::~AccountView()
39{ 39{
40 imapAccounts.clear(); 40 imapAccounts.clear();
41 mhAccounts.clear(); 41 mhAccounts.clear();
42} 42}
43 43
44void AccountView::slotContextMenu(int id) 44void AccountView::slotContextMenu(int id)
45{ 45{
46 AccountViewItem *view = static_cast<AccountViewItem *>(currentItem()); 46 AccountViewItem *view = static_cast<AccountViewItem *>(currentItem());
47 if (!view) return; 47 if (!view) return;
48 view->contextMenuSelected(id); 48 view->contextMenuSelected(id);
49} 49}
50 50
51void AccountView::slotHold(int button, QListViewItem * item,const QPoint&,int) 51void AccountView::slotHold(int button, QListViewItem * item,const QPoint&,int)
52{ 52{
53 if (button==1) {return;} 53 if (button==1) {return;}
54 if (!item) return; 54 if (!item) return;
55 AccountViewItem *view = static_cast<AccountViewItem *>(item); 55 AccountViewItem *view = static_cast<AccountViewItem *>(item);
56 QPopupMenu*m = view->getContextMenu(); 56 QPopupMenu*m = view->getContextMenu();
57 if (!m) return; 57 if (!m) return;
58 connect(m,SIGNAL(activated(int)),this,SLOT(slotContextMenu(int))); 58 connect(m,SIGNAL(activated(int)),this,SLOT(slotContextMenu(int)));
59 m->setFocus(); 59 m->setFocus();
60 m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y()) ); 60 m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y()) );
61 delete m; 61 delete m;
62} 62}
63 63
64void AccountView::populate( QList<Account> list ) 64void AccountView::populate( QList<Account> list )
65{ 65{
66 clear(); 66 clear();
67 67
68 imapAccounts.clear(); 68 imapAccounts.clear();
69 mhAccounts.clear(); 69 mhAccounts.clear();
70 70
71 mhAccounts.append(new MHviewItem(AbstractMail::defaultLocalfolder(),this)); 71 mhAccounts.append(new MHviewItem(AbstractMail::defaultLocalfolder(),this));
72 72
73 Account *it; 73 Account *it;
74 for ( it = list.first(); it; it = list.next() ) 74 for ( it = list.first(); it; it = list.next() )
75 { 75 {
76 if ( it->getType() == MAILLIB::A_IMAP ) 76 if ( it->getType() == MAILLIB::A_IMAP )
77 { 77 {
78 IMAPaccount *imap = static_cast<IMAPaccount *>(it); 78 IMAPaccount *imap = static_cast<IMAPaccount *>(it);
79 imapAccounts.append(new IMAPviewItem( imap, this )); 79 imapAccounts.append(new IMAPviewItem( imap, this ));
80 } 80 }
81 else if ( it->getType() == MAILLIB::A_POP3 ) 81 else if ( it->getType() == MAILLIB::A_POP3 )
82 { 82 {
83 POP3account *pop3 = static_cast<POP3account *>(it); 83 POP3account *pop3 = static_cast<POP3account *>(it);
84 /* must not be hold 'cause it isn't required */ 84 /* must not be hold 'cause it isn't required */
85 (void) new POP3viewItem( pop3, this ); 85 (void) new POP3viewItem( pop3, this );
86 } 86 }
87 else if ( it->getType() == MAILLIB::A_NNTP ) 87 else if ( it->getType() == MAILLIB::A_NNTP )
88 { 88 {
89 NNTPaccount *nntp = static_cast<NNTPaccount *>(it); 89 NNTPaccount *nntp = static_cast<NNTPaccount *>(it);
90 /* must not be hold 'cause it isn't required */ 90 /* must not be hold 'cause it isn't required */
91 (void) new NNTPviewItem( nntp, this ); 91 (void) new NNTPviewItem( nntp, this );
92 } 92 }
93 } 93 }
94} 94}
95 95
96void AccountView::refresh(QListViewItem *item) 96void AccountView::refresh(QListViewItem *item)
97{ 97{
98 if ( item ) 98 if ( item )
99 { 99 {
100 bool ask = true; 100 bool ask = true;
101 qDebug("text -%s- ",item->text( 0 ).latin1() ); 101 //qDebug("text -%s- ",item->text( 0 ).latin1() );
102 if ( item->text( 0 ) == i18n (" Local Mailfolders") ) 102 if ( item->text( 0 ) == i18n (" Local Mailfolders") )
103 ask = false; 103 ask = false;
104 else { 104 else {
105 if ( item->parent() ) 105 if ( item->parent() )
106 if ( item->parent()->text( 0 ) == i18n (" Local Mailfolders") ) 106 if ( item->parent()->text( 0 ) == i18n (" Local Mailfolders") )
107 ask = false; 107 ask = false;
108 } 108 }
109 if ( ask ) { 109 if ( ask ) {
110 int result = KMessageBox::warningContinueCancel(this, 110 int result = KMessageBox::warningContinueCancel(this,
111 i18n("Refresh\n%1\n?").arg( item->text(0) ), 111 i18n("Refresh\n%1\n?").arg( item->text(0) ),
112 i18n("Refresh"),i18n("Refresh"),i18n("Cancel"), 112 i18n("Refresh"),i18n("Refresh"),i18n("Cancel"),
113 true); 113 true);
114 if (result != KMessageBox::Continue) return; 114 if (result != KMessageBox::Continue) return;
115 } 115 }
116 m_currentItem = item; 116 m_currentItem = item;
117 topLevelWidget()->setCaption( i18n ( "Refreshing %1 ... please wait" ). arg ( m_currentItem->text( 0 ) ) ) ; 117 topLevelWidget()->setCaption( i18n ( "Refreshing %1 ... please wait" ). arg ( m_currentItem->text( 0 ) ) ) ;
118 QTimer::singleShot( 500, this, SLOT ( refreshCurrentSelected() ) ); 118 QTimer::singleShot( 500, this, SLOT ( refreshCurrentSelected() ) );
119 119
120 } 120 }
121} 121}
122void AccountView::refreshOutgoing() 122void AccountView::refreshOutgoing()
123{ 123{
124 m_currentItem = currentItem(); 124 m_currentItem = currentItem();
125 if ( !m_currentItem ) return; 125 if ( !m_currentItem ) return;
126 AccountViewItem *view = static_cast<AccountViewItem *>(m_currentItem); 126 AccountViewItem *view = static_cast<AccountViewItem *>(m_currentItem);
127 if ( !view->getFolder() ) 127 if ( !view->getFolder() )
128 return; 128 return;
129 QString bName = view->getFolder()->getDisplayName(); 129 QString bName = view->getFolder()->getDisplayName();
130 if (bName.startsWith("/")&&bName.length()>1) 130 if (bName.startsWith("/")&&bName.length()>1)
131 { 131 {
132 bName.replace(0,1,""); 132 bName.replace(0,1,"");
133 } 133 }
134 int pos = bName.findRev("/"); 134 int pos = bName.findRev("/");
135 if (pos > 0) 135 if (pos > 0)
136 { 136 {
137 bName.replace(0,pos+1,""); 137 bName.replace(0,pos+1,"");
138 } 138 }
139 //qDebug("name *%s* ",bName.lower().latin1() ); 139 //qDebug("name *%s* ",bName.lower().latin1() );
140 if ( bName.lower() == "outgoing" || bName.lower() == "sent" || bName.lower() == "sendfailed" ) { 140 if ( bName.lower() == "outgoing" || bName.lower() == "sent" || bName.lower() == "sendfailed" ) {
141 refreshCurrent(); 141 refreshCurrent();
142 // qDebug("refresh "); 142 // qDebug("refresh ");
143 } 143 }
144} 144}
145void AccountView::refreshCurrentSelected() 145void AccountView::refreshCurrentSelected()
146{ 146{
147 if ( !m_currentItem ) return; 147 if ( !m_currentItem ) return;
148 QValueList<RecMailP> headerlist; 148 QValueList<RecMailP> headerlist;
149 AccountViewItem *view = static_cast<AccountViewItem *>(m_currentItem); 149 AccountViewItem *view = static_cast<AccountViewItem *>(m_currentItem);
150 view->refresh(headerlist); 150 view->refresh(headerlist);
151 emit refreshMailview(headerlist); 151 emit refreshMailview(headerlist);
152 topLevelWidget()->setCaption( i18n ( "KOpieMail/Pi" ) ) ; 152 topLevelWidget()->setCaption( i18n ( "KOpieMail/Pi" ) ) ;
153} 153}
154 154
155void AccountView::refreshCurrent() 155void AccountView::refreshCurrent()
156{ 156{
157 m_currentItem = currentItem(); 157 m_currentItem = currentItem();
158 if ( !m_currentItem ) return; 158 if ( !m_currentItem ) return;
159 topLevelWidget()->setCaption( i18n ( "Refreshing %1 ... please wait" ). arg ( m_currentItem->text( 0 ) ) ) ; 159 topLevelWidget()->setCaption( i18n ( "Refreshing %1 ... please wait" ). arg ( m_currentItem->text( 0 ) ) ) ;
160 QTimer::singleShot( 500, this, SLOT ( refreshCurrentSelected() ) ); 160 QTimer::singleShot( 500, this, SLOT ( refreshCurrentSelected() ) );
161} 161}
162 162
163void AccountView::refreshAll() 163void AccountView::refreshAll()
164{ 164{
165} 165}
166 166
167RecBodyP AccountView::fetchBody(const RecMailP&aMail) 167RecBodyP AccountView::fetchBody(const RecMailP&aMail)
168{ 168{
169 QListViewItem*item = selectedItem (); 169 QListViewItem*item = selectedItem ();
170 if (!item) return new RecBody(); 170 if (!item) return new RecBody();
171 AccountViewItem *view = static_cast<AccountViewItem *>(item); 171 AccountViewItem *view = static_cast<AccountViewItem *>(item);
172 return view->fetchBody(aMail); 172 return view->fetchBody(aMail);
173} 173}
174 174
175void AccountView::setupFolderselect(Selectstore*sels) 175void AccountView::setupFolderselect(Selectstore*sels)
176{ 176{
177 177
178#ifndef DESKTOP_VERSION 178#ifndef DESKTOP_VERSION
179 sels->showMaximized(); 179 sels->showMaximized();
180#else 180#else
181 sels->show(); 181 sels->show();
182#endif 182#endif
183 QStringList sFolders; 183 QStringList sFolders;
184 unsigned int i = 0; 184 unsigned int i = 0;
185 for (i=0; i < mhAccounts.count();++i) 185 for (i=0; i < mhAccounts.count();++i)
186 { 186 {
187 mhAccounts[i]->refresh(false); 187 mhAccounts[i]->refresh(false);
188 sFolders = mhAccounts[i]->subFolders(); 188 sFolders = mhAccounts[i]->subFolders();
189 sels->addAccounts(mhAccounts[i]->getWrapper(),sFolders); 189 sels->addAccounts(mhAccounts[i]->getWrapper(),sFolders);
190 } 190 }
191 for (i=0; i < imapAccounts.count();++i) 191 for (i=0; i < imapAccounts.count();++i)
192 { 192 {
193 if (imapAccounts[i]->offline()) 193 if (imapAccounts[i]->offline())
194 continue; 194 continue;
195 imapAccounts[i]->refreshFolders(false); 195 imapAccounts[i]->refreshFolders(false);
196 sels->addAccounts(imapAccounts[i]->getWrapper(),imapAccounts[i]->subFolders()); 196 sels->addAccounts(imapAccounts[i]->getWrapper(),imapAccounts[i]->subFolders());
197 } 197 }
198} 198}
199void AccountView::downloadMailsInbox(const FolderP&fromFolder,AbstractMail*fromWrapper) 199void AccountView::downloadMailsInbox(const FolderP&fromFolder,AbstractMail*fromWrapper)
200{ 200{
201#if 0 201#if 0
202 AbstractMail*targetMail = 0; 202 AbstractMail*targetMail = 0;
203 QString targetFolder = ""; 203 QString targetFolder = "";
204 Selectstore sels; 204 Selectstore sels;
205 setupFolderselect(&sels); 205 setupFolderselect(&sels);
206 if (!sels.exec()) return; 206 if (!sels.exec()) return;
207 targetMail = sels.currentMail(); 207 targetMail = sels.currentMail();
208 targetFolder = sels.currentFolder(); 208 targetFolder = sels.currentFolder();
209 if ( (fromWrapper==targetMail && fromFolder->getName()==targetFolder) || 209 if ( (fromWrapper==targetMail && fromFolder->getName()==targetFolder) ||
210 targetFolder.isEmpty()) 210 targetFolder.isEmpty())
211 { 211 {
212 return; 212 return;
213 } 213 }
214 if (sels.newFolder() && !targetMail->createMbox(targetFolder)) 214 if (sels.newFolder() && !targetMail->createMbox(targetFolder))
215 { 215 {
216 QMessageBox::critical(0,i18n("Error creating new Folder"), 216 QMessageBox::critical(0,i18n("Error creating new Folder"),
217 i18n("<center>Error while creating<br>new folder - breaking.</center>")); 217 i18n("<center>Error while creating<br>new folder - breaking.</center>"));
218 return; 218 return;
219 } 219 }
220 int maxsize = 0; 220 int maxsize = 0;
221 if ( sels.useSize->isChecked()) 221 if ( sels.useSize->isChecked())
222 maxsize = sels.sizeSpinBox->value(); 222 maxsize = sels.sizeSpinBox->value();
223 fromWrapper->mvcpAllMails(fromFolder,targetFolder,targetMail,sels.moveMails(), maxsize); 223 fromWrapper->mvcpAllMails(fromFolder,targetFolder,targetMail,sels.moveMails(), maxsize);
224#endif 224#endif
225 fromWrapper->downloadNewMails( fromFolder, mhAccounts[0]->getWrapper()); 225 fromWrapper->downloadNewMails( fromFolder, mhAccounts[0]->getWrapper());
226 refreshCurrent(); 226 refreshCurrent();
227 227
228} 228}
229 229
230void AccountView::downloadMails(const FolderP&fromFolder,AbstractMail*fromWrapper) 230void AccountView::downloadMails(const FolderP&fromFolder,AbstractMail*fromWrapper)
231{ 231{
232 AbstractMail*targetMail = 0; 232 AbstractMail*targetMail = 0;
233 QString targetFolder = ""; 233 QString targetFolder = "";
234 Selectstore sels; 234 Selectstore sels;
235 setupFolderselect(&sels); 235 setupFolderselect(&sels);
236 if (!sels.exec()) return; 236 if (!sels.exec()) return;
237 targetMail = sels.currentMail(); 237 targetMail = sels.currentMail();
238 targetFolder = sels.currentFolder(); 238 targetFolder = sels.currentFolder();
239 if ( (fromWrapper==targetMail && fromFolder->getName()==targetFolder) || 239 if ( (fromWrapper==targetMail && fromFolder->getName()==targetFolder) ||
240 targetFolder.isEmpty()) 240 targetFolder.isEmpty())
241 { 241 {
242 return; 242 return;
243 } 243 }
244 if (sels.newFolder() && !targetMail->createMbox(targetFolder)) 244 if (sels.newFolder() && !targetMail->createMbox(targetFolder))
245 { 245 {
246 QMessageBox::critical(0,i18n("Error creating new Folder"), 246 QMessageBox::critical(0,i18n("Error creating new Folder"),
247 i18n("<center>Error while creating<br>new folder - breaking.</center>")); 247 i18n("<center>Error while creating<br>new folder - breaking.</center>"));
248 return; 248 return;
249 } 249 }
250 int maxsize = 0; 250 int maxsize = 0;
251 if ( sels.useSize->isChecked()) 251 if ( sels.useSize->isChecked())
252 maxsize = sels.sizeSpinBox->value(); 252 maxsize = sels.sizeSpinBox->value();
253 253
254 fromWrapper->mvcpAllMails(fromFolder,targetFolder,targetMail,sels.moveMails(), maxsize); 254 fromWrapper->mvcpAllMails(fromFolder,targetFolder,targetMail,sels.moveMails(), maxsize);
255 refreshCurrent(); 255 refreshCurrent();
256} 256}
257 257
258bool AccountView::currentisDraft() 258bool AccountView::currentisDraft()
259{ 259{
260 AccountViewItem *view = static_cast<AccountViewItem *>(currentItem()); 260 AccountViewItem *view = static_cast<AccountViewItem *>(currentItem());
261 if (!view) return false; 261 if (!view) return false;
262 return view->isDraftfolder(); 262 return view->isDraftfolder();
263} 263}