summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/accountitem.cpp3
-rw-r--r--noncore/net/mail/accountview.cpp4
-rw-r--r--noncore/net/mail/composemail.cpp1
-rw-r--r--noncore/net/mail/editaccounts.cpp3
-rw-r--r--noncore/net/mail/libmailwrapper/abstractmail.cpp2
-rw-r--r--noncore/net/mail/libmailwrapper/generatemail.cpp2
-rw-r--r--noncore/net/mail/libmailwrapper/genericwrapper.cpp2
-rw-r--r--noncore/net/mail/libmailwrapper/imapwrapper.cpp1
-rw-r--r--noncore/net/mail/libmailwrapper/logindialog.cpp4
-rw-r--r--noncore/net/mail/libmailwrapper/mailtypes.cpp3
-rw-r--r--noncore/net/mail/libmailwrapper/mboxwrapper.cpp2
-rw-r--r--noncore/net/mail/libmailwrapper/mhwrapper.cpp1
-rw-r--r--noncore/net/mail/libmailwrapper/nntpwrapper.cpp1
-rw-r--r--noncore/net/mail/libmailwrapper/pop3wrapper.cpp3
-rw-r--r--noncore/net/mail/libmailwrapper/settings.cpp1
-rw-r--r--noncore/net/mail/libmailwrapper/smtpwrapper.cpp1
-rw-r--r--noncore/net/mail/libmailwrapper/statusmail.cpp4
-rw-r--r--noncore/net/mail/libmailwrapper/storemail.cpp2
-rw-r--r--noncore/net/mail/mainwindow.cpp2
-rw-r--r--noncore/net/mail/nntpgroups.cpp4
-rw-r--r--noncore/net/mail/opiemail.cpp5
-rw-r--r--noncore/net/mail/taskbarapplet/mailapplet.cpp2
-rw-r--r--noncore/net/mail/viewmail.cpp3
23 files changed, 49 insertions, 7 deletions
diff --git a/noncore/net/mail/accountitem.cpp b/noncore/net/mail/accountitem.cpp
index ae28313..c1574fd 100644
--- a/noncore/net/mail/accountitem.cpp
+++ b/noncore/net/mail/accountitem.cpp
@@ -1,107 +1,108 @@
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 "nntpgroupsdlg.h"
6#include "defines.h" 6#include "defines.h"
7 7
8/* OPIE */
9#include <libmailwrapper/mailtypes.h> 8#include <libmailwrapper/mailtypes.h>
10#include <libmailwrapper/abstractmail.h> 9#include <libmailwrapper/abstractmail.h>
11#include <libmailwrapper/mailwrapper.h> 10#include <libmailwrapper/mailwrapper.h>
11/* OPIE */
12#include <opie2/odebug.h>
12#include <qpe/qpeapplication.h> 13#include <qpe/qpeapplication.h>
13 14
14/* QT */ 15/* QT */
15#include <qpopupmenu.h> 16#include <qpopupmenu.h>
16#include <qmessagebox.h> 17#include <qmessagebox.h>
17 18
18using namespace Opie::Core; 19using namespace Opie::Core;
19#define SETPIX(x) if (!account->getOffline()) {setPixmap( 0,x);} else {setPixmap( 0, PIXMAP_OFFLINE );} 20#define SETPIX(x) if (!account->getOffline()) {setPixmap( 0,x);} else {setPixmap( 0, PIXMAP_OFFLINE );}
20/** 21/**
21 * POP3 Account stuff 22 * POP3 Account stuff
22 */ 23 */
23POP3viewItem::POP3viewItem( POP3account *a, AccountView *parent ) 24POP3viewItem::POP3viewItem( POP3account *a, AccountView *parent )
24 : AccountViewItem( parent ) 25 : AccountViewItem( parent )
25{ 26{
26 account = a; 27 account = a;
27 wrapper = AbstractMail::getWrapper( account ); 28 wrapper = AbstractMail::getWrapper( account );
28 SETPIX(PIXMAP_POP3FOLDER); 29 SETPIX(PIXMAP_POP3FOLDER);
29#if 0 30#if 0
30 if (!account->getOffline()) 31 if (!account->getOffline())
31 { 32 {
32 setPixmap( 0, ); 33 setPixmap( 0, );
33 } 34 }
34 else 35 else
35 { 36 {
36 setPixmap( 0, PIXMAP_OFFLINE ); 37 setPixmap( 0, PIXMAP_OFFLINE );
37 } 38 }
38#endif 39#endif
39 setText( 0, account->getAccountName() ); 40 setText( 0, account->getAccountName() );
40 setOpen( true ); 41 setOpen( true );
41} 42}
42 43
43POP3viewItem::~POP3viewItem() 44POP3viewItem::~POP3viewItem()
44{ 45{
45 delete wrapper; 46 delete wrapper;
46} 47}
47 48
48AbstractMail *POP3viewItem::getWrapper() 49AbstractMail *POP3viewItem::getWrapper()
49{ 50{
50 return wrapper; 51 return wrapper;
51} 52}
52 53
53void POP3viewItem::refresh(QValueList<Opie::Core::OSmartPointer<RecMail> > & ) 54void POP3viewItem::refresh(QValueList<Opie::Core::OSmartPointer<RecMail> > & )
54{ 55{
55 refresh(); 56 refresh();
56} 57}
57 58
58void POP3viewItem::refresh() 59void POP3viewItem::refresh()
59{ 60{
60 if (account->getOffline()) return; 61 if (account->getOffline()) return;
61 QValueList<FolderP> *folders = wrapper->listFolders(); 62 QValueList<FolderP> *folders = wrapper->listFolders();
62 QListViewItem *child = firstChild(); 63 QListViewItem *child = firstChild();
63 while ( child ) 64 while ( child )
64 { 65 {
65 QListViewItem *tmp = child; 66 QListViewItem *tmp = child;
66 child = child->nextSibling(); 67 child = child->nextSibling();
67 delete tmp; 68 delete tmp;
68 } 69 }
69 QValueList<FolderP>::ConstIterator it; 70 QValueList<FolderP>::ConstIterator it;
70 QListViewItem*item = 0; 71 QListViewItem*item = 0;
71 for ( it = folders->begin(); it!=folders->end(); ++it) 72 for ( it = folders->begin(); it!=folders->end(); ++it)
72 { 73 {
73 item = new POP3folderItem( (*it), this , item ); 74 item = new POP3folderItem( (*it), this , item );
74 item->setSelectable( (*it)->may_select()); 75 item->setSelectable( (*it)->may_select());
75 } 76 }
76 delete folders; 77 delete folders;
77} 78}
78 79
79RECBODYP POP3viewItem::fetchBody( const RecMailP &mail ) 80RECBODYP POP3viewItem::fetchBody( const RecMailP &mail )
80{ 81{
81 odebug << "POP3 fetchBody" << oendl; 82 odebug << "POP3 fetchBody" << oendl;
82 return wrapper->fetchBody( mail ); 83 return wrapper->fetchBody( mail );
83} 84}
84 85
85QPopupMenu * POP3viewItem::getContextMenu() 86QPopupMenu * POP3viewItem::getContextMenu()
86{ 87{
87 QPopupMenu *m = new QPopupMenu(0); 88 QPopupMenu *m = new QPopupMenu(0);
88 if (m) 89 if (m)
89 { 90 {
90 if (!account->getOffline()) 91 if (!account->getOffline())
91 { 92 {
92 m->insertItem(QObject::tr("Disconnect",contextName),0); 93 m->insertItem(QObject::tr("Disconnect",contextName),0);
93 m->insertItem(QObject::tr("Set offline",contextName),1); 94 m->insertItem(QObject::tr("Set offline",contextName),1);
94 } 95 }
95 else 96 else
96 { 97 {
97 m->insertItem(QObject::tr("Set online",contextName),1); 98 m->insertItem(QObject::tr("Set online",contextName),1);
98 } 99 }
99 } 100 }
100 return m; 101 return m;
101} 102}
102 103
103void POP3viewItem::disconnect() 104void POP3viewItem::disconnect()
104{ 105{
105 QListViewItem *child = firstChild(); 106 QListViewItem *child = firstChild();
106 while ( child ) 107 while ( child )
107 { 108 {
diff --git a/noncore/net/mail/accountview.cpp b/noncore/net/mail/accountview.cpp
index 0052061..662e555 100644
--- a/noncore/net/mail/accountview.cpp
+++ b/noncore/net/mail/accountview.cpp
@@ -1,106 +1,108 @@
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/* OPIE */
7#include <libmailwrapper/settings.h> 6#include <libmailwrapper/settings.h>
8#include <libmailwrapper/mailwrapper.h> 7#include <libmailwrapper/mailwrapper.h>
9#include <libmailwrapper/mailtypes.h> 8#include <libmailwrapper/mailtypes.h>
10#include <libmailwrapper/abstractmail.h> 9#include <libmailwrapper/abstractmail.h>
10
11/* OPIE */
12#include <opie2/odebug.h>
11#include <qpe/qpeapplication.h> 13#include <qpe/qpeapplication.h>
12 14
13/* QT */ 15/* QT */
14#include <qmessagebox.h> 16#include <qmessagebox.h>
15#include <qpopupmenu.h> 17#include <qpopupmenu.h>
16 18
17using namespace Opie::Core; 19using namespace Opie::Core;
18AccountView::AccountView( QWidget *parent, const char *name, WFlags flags ) 20AccountView::AccountView( QWidget *parent, const char *name, WFlags flags )
19 : QListView( parent, name, flags ) 21 : QListView( parent, name, flags )
20{ 22{
21 connect( this, SIGNAL( selectionChanged(QListViewItem*) ), 23 connect( this, SIGNAL( selectionChanged(QListViewItem*) ),
22 SLOT( refresh(QListViewItem*) ) ); 24 SLOT( refresh(QListViewItem*) ) );
23 connect( this, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ),this, 25 connect( this, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ),this,
24 SLOT( slotHold(int,QListViewItem*,const QPoint&,int) ) ); 26 SLOT( slotHold(int,QListViewItem*,const QPoint&,int) ) );
25 setSorting(0); 27 setSorting(0);
26} 28}
27 29
28AccountView::~AccountView() 30AccountView::~AccountView()
29{ 31{
30 imapAccounts.clear(); 32 imapAccounts.clear();
31 mhAccounts.clear(); 33 mhAccounts.clear();
32} 34}
33 35
34void AccountView::slotContextMenu(int id) 36void AccountView::slotContextMenu(int id)
35{ 37{
36 AccountViewItem *view = static_cast<AccountViewItem *>(currentItem()); 38 AccountViewItem *view = static_cast<AccountViewItem *>(currentItem());
37 if (!view) return; 39 if (!view) return;
38 view->contextMenuSelected(id); 40 view->contextMenuSelected(id);
39} 41}
40 42
41void AccountView::slotHold(int button, QListViewItem * item,const QPoint&,int) 43void AccountView::slotHold(int button, QListViewItem * item,const QPoint&,int)
42{ 44{
43 if (button==1) {return;} 45 if (button==1) {return;}
44 if (!item) return; 46 if (!item) return;
45 AccountViewItem *view = static_cast<AccountViewItem *>(item); 47 AccountViewItem *view = static_cast<AccountViewItem *>(item);
46 QPopupMenu*m = view->getContextMenu(); 48 QPopupMenu*m = view->getContextMenu();
47 if (!m) return; 49 if (!m) return;
48 connect(m,SIGNAL(activated(int)),this,SLOT(slotContextMenu(int))); 50 connect(m,SIGNAL(activated(int)),this,SLOT(slotContextMenu(int)));
49 m->setFocus(); 51 m->setFocus();
50 m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y()) ); 52 m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y()) );
51 delete m; 53 delete m;
52} 54}
53 55
54void AccountView::populate( QList<Account> list ) 56void AccountView::populate( QList<Account> list )
55{ 57{
56 clear(); 58 clear();
57 59
58 imapAccounts.clear(); 60 imapAccounts.clear();
59 mhAccounts.clear(); 61 mhAccounts.clear();
60 62
61 mhAccounts.append(new MHviewItem(AbstractMail::defaultLocalfolder(),this)); 63 mhAccounts.append(new MHviewItem(AbstractMail::defaultLocalfolder(),this));
62 64
63 Account *it; 65 Account *it;
64 for ( it = list.first(); it; it = list.next() ) 66 for ( it = list.first(); it; it = list.next() )
65 { 67 {
66 if ( it->getType() == MAILLIB::A_IMAP ) 68 if ( it->getType() == MAILLIB::A_IMAP )
67 { 69 {
68 IMAPaccount *imap = static_cast<IMAPaccount *>(it); 70 IMAPaccount *imap = static_cast<IMAPaccount *>(it);
69 odebug << "added IMAP " + imap->getAccountName() << oendl; 71 odebug << "added IMAP " + imap->getAccountName() << oendl;
70 imapAccounts.append(new IMAPviewItem( imap, this )); 72 imapAccounts.append(new IMAPviewItem( imap, this ));
71 } 73 }
72 else if ( it->getType() == MAILLIB::A_POP3 ) 74 else if ( it->getType() == MAILLIB::A_POP3 )
73 { 75 {
74 POP3account *pop3 = static_cast<POP3account *>(it); 76 POP3account *pop3 = static_cast<POP3account *>(it);
75 odebug << "added POP3 " + pop3->getAccountName() << oendl; 77 odebug << "added POP3 " + pop3->getAccountName() << oendl;
76 /* must not be hold 'cause it isn't required */ 78 /* must not be hold 'cause it isn't required */
77 (void) new POP3viewItem( pop3, this ); 79 (void) new POP3viewItem( pop3, this );
78 } 80 }
79 else if ( it->getType() == MAILLIB::A_NNTP ) 81 else if ( it->getType() == MAILLIB::A_NNTP )
80 { 82 {
81 NNTPaccount *nntp = static_cast<NNTPaccount *>(it); 83 NNTPaccount *nntp = static_cast<NNTPaccount *>(it);
82 odebug << "added NNTP " + nntp->getAccountName() << oendl; 84 odebug << "added NNTP " + nntp->getAccountName() << oendl;
83 /* must not be hold 'cause it isn't required */ 85 /* must not be hold 'cause it isn't required */
84 (void) new NNTPviewItem( nntp, this ); 86 (void) new NNTPviewItem( nntp, this );
85 } 87 }
86 } 88 }
87} 89}
88 90
89void AccountView::refresh(QListViewItem *item) 91void AccountView::refresh(QListViewItem *item)
90{ 92{
91 93
92 odebug << "AccountView refresh..." << oendl; 94 odebug << "AccountView refresh..." << oendl;
93 if ( item ) 95 if ( item )
94 { 96 {
95 m_currentItem = item; 97 m_currentItem = item;
96 QValueList<RecMailP> headerlist; 98 QValueList<RecMailP> headerlist;
97 AccountViewItem *view = static_cast<AccountViewItem *>(item); 99 AccountViewItem *view = static_cast<AccountViewItem *>(item);
98 view->refresh(headerlist); 100 view->refresh(headerlist);
99 emit refreshMailview(headerlist); 101 emit refreshMailview(headerlist);
100 } 102 }
101} 103}
102 104
103void AccountView::refreshCurrent() 105void AccountView::refreshCurrent()
104{ 106{
105 m_currentItem = currentItem(); 107 m_currentItem = currentItem();
106 if ( !m_currentItem ) return; 108 if ( !m_currentItem ) return;
diff --git a/noncore/net/mail/composemail.cpp b/noncore/net/mail/composemail.cpp
index fa703c4..b15e692 100644
--- a/noncore/net/mail/composemail.cpp
+++ b/noncore/net/mail/composemail.cpp
@@ -1,99 +1,100 @@
1#include <qt.h> 1#include <qt.h>
2 2
3#include <opie2/ofiledialog.h> 3#include <opie2/ofiledialog.h>
4#include <opie2/odebug.h>
4#include <qpe/resource.h> 5#include <qpe/resource.h>
5#include <qpe/config.h> 6#include <qpe/config.h>
6#include <qpe/global.h> 7#include <qpe/global.h>
7#include <qpe/contact.h> 8#include <qpe/contact.h>
8 9
9#include "composemail.h" 10#include "composemail.h"
10 11
11#include <libmailwrapper/smtpwrapper.h> 12#include <libmailwrapper/smtpwrapper.h>
12#include <libmailwrapper/storemail.h> 13#include <libmailwrapper/storemail.h>
13#include <libmailwrapper/abstractmail.h> 14#include <libmailwrapper/abstractmail.h>
14#include <libmailwrapper/mailtypes.h> 15#include <libmailwrapper/mailtypes.h>
15 16
16using namespace Opie::Core; 17using namespace Opie::Core;
17using namespace Opie::Ui; 18using namespace Opie::Ui;
18ComposeMail::ComposeMail( Settings *s, QWidget *parent, const char *name, bool modal, WFlags flags ) 19ComposeMail::ComposeMail( Settings *s, QWidget *parent, const char *name, bool modal, WFlags flags )
19 : ComposeMailUI( parent, name, modal, flags ) 20 : ComposeMailUI( parent, name, modal, flags )
20{ 21{
21 settings = s; 22 settings = s;
22 m_replyid = ""; 23 m_replyid = "";
23 24
24 QString vfilename = Global::applicationFileName("addressbook", 25 QString vfilename = Global::applicationFileName("addressbook",
25 "businesscard.vcf"); 26 "businesscard.vcf");
26 Contact c; 27 Contact c;
27 if (QFile::exists(vfilename)) { 28 if (QFile::exists(vfilename)) {
28 c = Contact::readVCard( vfilename )[0]; 29 c = Contact::readVCard( vfilename )[0];
29 } 30 }
30 31
31 QStringList mails = c.emailList(); 32 QStringList mails = c.emailList();
32 QString defmail = c.defaultEmail(); 33 QString defmail = c.defaultEmail();
33 34
34 if (defmail.length()!=0) { 35 if (defmail.length()!=0) {
35 fromBox->insertItem(defmail); 36 fromBox->insertItem(defmail);
36 } 37 }
37 QStringList::ConstIterator sit = mails.begin(); 38 QStringList::ConstIterator sit = mails.begin();
38 for (;sit!=mails.end();++sit) { 39 for (;sit!=mails.end();++sit) {
39 if ( (*sit)==defmail) 40 if ( (*sit)==defmail)
40 continue; 41 continue;
41 fromBox->insertItem((*sit)); 42 fromBox->insertItem((*sit));
42 } 43 }
43 senderNameEdit->setText(c.firstName()+" "+c.lastName()); 44 senderNameEdit->setText(c.firstName()+" "+c.lastName());
44 Config cfg( "mail" ); 45 Config cfg( "mail" );
45 cfg.setGroup( "Compose" ); 46 cfg.setGroup( "Compose" );
46 checkBoxLater->setChecked( cfg.readBoolEntry( "sendLater", false ) ); 47 checkBoxLater->setChecked( cfg.readBoolEntry( "sendLater", false ) );
47 48
48 attList->addColumn( tr( "Name" ) ); 49 attList->addColumn( tr( "Name" ) );
49 attList->addColumn( tr( "Size" ) ); 50 attList->addColumn( tr( "Size" ) );
50 51
51 QList<Account> accounts = settings->getAccounts(); 52 QList<Account> accounts = settings->getAccounts();
52 53
53 Account *it; 54 Account *it;
54 for ( it = accounts.first(); it; it = accounts.next() ) { 55 for ( it = accounts.first(); it; it = accounts.next() ) {
55 if ( it->getType()==MAILLIB::A_SMTP ) { 56 if ( it->getType()==MAILLIB::A_SMTP ) {
56 SMTPaccount *smtp = static_cast<SMTPaccount *>(it); 57 SMTPaccount *smtp = static_cast<SMTPaccount *>(it);
57 smtpAccountBox->insertItem( smtp->getAccountName() ); 58 smtpAccountBox->insertItem( smtp->getAccountName() );
58 smtpAccounts.append( smtp ); 59 smtpAccounts.append( smtp );
59 } 60 }
60 } 61 }
61 62
62 if ( smtpAccounts.count() > 0 ) { 63 if ( smtpAccounts.count() > 0 ) {
63 fillValues( smtpAccountBox->currentItem() ); 64 fillValues( smtpAccountBox->currentItem() );
64 } else { 65 } else {
65 QMessageBox::information( this, tr( "Problem" ), 66 QMessageBox::information( this, tr( "Problem" ),
66 tr( "<p>Please create an SMTP account first.</p>" ), 67 tr( "<p>Please create an SMTP account first.</p>" ),
67 tr( "Ok" ) ); 68 tr( "Ok" ) );
68 return; 69 return;
69 } 70 }
70 71
71 connect( smtpAccountBox, SIGNAL( activated(int) ), SLOT( fillValues(int) ) ); 72 connect( smtpAccountBox, SIGNAL( activated(int) ), SLOT( fillValues(int) ) );
72 connect( toButton, SIGNAL( clicked() ), SLOT( pickAddressTo() ) ); 73 connect( toButton, SIGNAL( clicked() ), SLOT( pickAddressTo() ) );
73 connect( ccButton, SIGNAL( clicked() ), SLOT( pickAddressCC() ) ); 74 connect( ccButton, SIGNAL( clicked() ), SLOT( pickAddressCC() ) );
74 connect( bccButton, SIGNAL( clicked() ), SLOT( pickAddressBCC() ) ); 75 connect( bccButton, SIGNAL( clicked() ), SLOT( pickAddressBCC() ) );
75 connect( replyButton, SIGNAL( clicked() ), SLOT( pickAddressReply() ) ); 76 connect( replyButton, SIGNAL( clicked() ), SLOT( pickAddressReply() ) );
76 connect( addButton, SIGNAL( clicked() ), SLOT( addAttachment() ) ); 77 connect( addButton, SIGNAL( clicked() ), SLOT( addAttachment() ) );
77 connect( deleteButton, SIGNAL( clicked() ), SLOT( removeAttachment() ) ); 78 connect( deleteButton, SIGNAL( clicked() ), SLOT( removeAttachment() ) );
78} 79}
79 80
80void ComposeMail::pickAddress( QLineEdit *line ) 81void ComposeMail::pickAddress( QLineEdit *line )
81{ 82{
82 QString names = AddressPicker::getNames(); 83 QString names = AddressPicker::getNames();
83 if ( line->text().isEmpty() ) { 84 if ( line->text().isEmpty() ) {
84 line->setText( names ); 85 line->setText( names );
85 } else if ( !names.isEmpty() ) { 86 } else if ( !names.isEmpty() ) {
86 line->setText( line->text() + ", " + names ); 87 line->setText( line->text() + ", " + names );
87 } 88 }
88} 89}
89 90
90 91
91void ComposeMail::setTo( const QString & to ) 92void ComposeMail::setTo( const QString & to )
92{ 93{
93 toLine->setText( to ); 94 toLine->setText( to );
94} 95}
95 96
96void ComposeMail::setSubject( const QString & subject ) 97void ComposeMail::setSubject( const QString & subject )
97{ 98{
98 subjectLine->setText( subject ); 99 subjectLine->setText( subject );
99} 100}
diff --git a/noncore/net/mail/editaccounts.cpp b/noncore/net/mail/editaccounts.cpp
index de064ca..b0ce57d 100644
--- a/noncore/net/mail/editaccounts.cpp
+++ b/noncore/net/mail/editaccounts.cpp
@@ -1,109 +1,112 @@
1 1
2#include "defines.h" 2#include "defines.h"
3#include "editaccounts.h" 3#include "editaccounts.h"
4 4
5/* OPIE */ 5/* OPIE */
6#include <opie2/odebug.h>
6#include <qpe/qpeapplication.h> 7#include <qpe/qpeapplication.h>
7 8
8/* QT */ 9/* QT */
9#include <qt.h> 10#include <qt.h>
10#include <qstringlist.h> 11#include <qstringlist.h>
11 12
12#include <libmailwrapper/nntpwrapper.h> 13#include <libmailwrapper/nntpwrapper.h>
13 14
15using namespace Opie::Core;
16
14AccountListItem::AccountListItem( QListView *parent, Account *a) 17AccountListItem::AccountListItem( QListView *parent, Account *a)
15 : QListViewItem( parent ) 18 : QListViewItem( parent )
16{ 19{
17 account = a; 20 account = a;
18 setText( 0, account->getAccountName() ); 21 setText( 0, account->getAccountName() );
19 QString ttext = ""; 22 QString ttext = "";
20 switch (account->getType()) { 23 switch (account->getType()) {
21 case MAILLIB::A_NNTP: 24 case MAILLIB::A_NNTP:
22 ttext="NNTP"; 25 ttext="NNTP";
23 break; 26 break;
24 case MAILLIB::A_POP3: 27 case MAILLIB::A_POP3:
25 ttext = "POP3"; 28 ttext = "POP3";
26 break; 29 break;
27 case MAILLIB::A_IMAP: 30 case MAILLIB::A_IMAP:
28 ttext = "IMAP"; 31 ttext = "IMAP";
29 break; 32 break;
30 case MAILLIB::A_SMTP: 33 case MAILLIB::A_SMTP:
31 ttext = "SMTP"; 34 ttext = "SMTP";
32 break; 35 break;
33 default: 36 default:
34 ttext = "UNKNOWN"; 37 ttext = "UNKNOWN";
35 break; 38 break;
36 } 39 }
37 setText( 1, ttext); 40 setText( 1, ttext);
38} 41}
39 42
40EditAccounts::EditAccounts( Settings *s, QWidget *parent, const char *name, bool modal, WFlags flags ) 43EditAccounts::EditAccounts( Settings *s, QWidget *parent, const char *name, bool modal, WFlags flags )
41 : EditAccountsUI( parent, name, modal, flags ) 44 : EditAccountsUI( parent, name, modal, flags )
42{ 45{
43 odebug << "New Account Configuration Widget" << oendl; 46 odebug << "New Account Configuration Widget" << oendl;
44 settings = s; 47 settings = s;
45 48
46 mailList->addColumn( tr( "Account" ) ); 49 mailList->addColumn( tr( "Account" ) );
47 mailList->addColumn( tr( "Type" ) ); 50 mailList->addColumn( tr( "Type" ) );
48 51
49 newsList->addColumn( tr( "Account" ) ); 52 newsList->addColumn( tr( "Account" ) );
50 53
51 connect( newMail, SIGNAL( clicked() ), SLOT( slotNewMail() ) ); 54 connect( newMail, SIGNAL( clicked() ), SLOT( slotNewMail() ) );
52 connect( editMail, SIGNAL( clicked() ), SLOT( slotEditMail() ) ); 55 connect( editMail, SIGNAL( clicked() ), SLOT( slotEditMail() ) );
53 connect( deleteMail, SIGNAL( clicked() ), SLOT( slotDeleteMail() ) ); 56 connect( deleteMail, SIGNAL( clicked() ), SLOT( slotDeleteMail() ) );
54 connect( newNews, SIGNAL( clicked() ), SLOT( slotNewNews() ) ); 57 connect( newNews, SIGNAL( clicked() ), SLOT( slotNewNews() ) );
55 connect( editNews, SIGNAL( clicked() ), SLOT( slotEditNews() ) ); 58 connect( editNews, SIGNAL( clicked() ), SLOT( slotEditNews() ) );
56 connect( deleteNews, SIGNAL( clicked() ), SLOT( slotDeleteNews() ) ); 59 connect( deleteNews, SIGNAL( clicked() ), SLOT( slotDeleteNews() ) );
57 60
58 slotFillLists(); 61 slotFillLists();
59} 62}
60 63
61void EditAccounts::slotFillLists() 64void EditAccounts::slotFillLists()
62{ 65{
63 mailList->clear(); 66 mailList->clear();
64 newsList->clear(); 67 newsList->clear();
65 68
66 QList<Account> accounts = settings->getAccounts(); 69 QList<Account> accounts = settings->getAccounts();
67 Account *it; 70 Account *it;
68 for ( it = accounts.first(); it; it = accounts.next() ) 71 for ( it = accounts.first(); it; it = accounts.next() )
69 { 72 {
70 if ( it->getType()==MAILLIB::A_NNTP ) 73 if ( it->getType()==MAILLIB::A_NNTP )
71 { 74 {
72 (void) new AccountListItem( newsList, it ); 75 (void) new AccountListItem( newsList, it );
73 } 76 }
74 else 77 else
75 { 78 {
76 (void) new AccountListItem( mailList, it ); 79 (void) new AccountListItem( mailList, it );
77 } 80 }
78 } 81 }
79} 82}
80 83
81void EditAccounts::slotNewMail() 84void EditAccounts::slotNewMail()
82{ 85{
83 odebug << "New Mail Account" << oendl; 86 odebug << "New Mail Account" << oendl;
84 QString *selection = new QString(); 87 QString *selection = new QString();
85 SelectMailType selType( selection, this, 0, true ); 88 SelectMailType selType( selection, this, 0, true );
86 selType.show(); 89 selType.show();
87 if ( QDialog::Accepted == selType.exec() ) 90 if ( QDialog::Accepted == selType.exec() )
88 { 91 {
89 slotNewAccount( *selection ); 92 slotNewAccount( *selection );
90 } 93 }
91} 94}
92 95
93void EditAccounts::slotNewAccount( const QString &type ) 96void EditAccounts::slotNewAccount( const QString &type )
94{ 97{
95 if ( type.compare( "IMAP" ) == 0 ) 98 if ( type.compare( "IMAP" ) == 0 )
96 { 99 {
97 odebug << "-> config IMAP" << oendl; 100 odebug << "-> config IMAP" << oendl;
98 IMAPaccount *account = new IMAPaccount(); 101 IMAPaccount *account = new IMAPaccount();
99 IMAPconfig imap( account, this, 0, true ); 102 IMAPconfig imap( account, this, 0, true );
100 if ( QDialog::Accepted == QPEApplication::execDialog( &imap ) ) 103 if ( QDialog::Accepted == QPEApplication::execDialog( &imap ) )
101 { 104 {
102 settings->addAccount( account ); 105 settings->addAccount( account );
103 account->save(); 106 account->save();
104 slotFillLists(); 107 slotFillLists();
105 } 108 }
106 else 109 else
107 { 110 {
108 account->remove(); 111 account->remove();
109 } 112 }
diff --git a/noncore/net/mail/libmailwrapper/abstractmail.cpp b/noncore/net/mail/libmailwrapper/abstractmail.cpp
index 1a26351..7c1c0e4 100644
--- a/noncore/net/mail/libmailwrapper/abstractmail.cpp
+++ b/noncore/net/mail/libmailwrapper/abstractmail.cpp
@@ -1,103 +1,105 @@
1#include "abstractmail.h" 1#include "abstractmail.h"
2#include "imapwrapper.h" 2#include "imapwrapper.h"
3#include "pop3wrapper.h" 3#include "pop3wrapper.h"
4#include "nntpwrapper.h" 4#include "nntpwrapper.h"
5#include "mhwrapper.h" 5#include "mhwrapper.h"
6#include "mailtypes.h" 6#include "mailtypes.h"
7 7
8#include <opie2/odebug.h>
9
8#include <qfile.h> 10#include <qfile.h>
9#include <qtextstream.h> 11#include <qtextstream.h>
10#include <stdlib.h> 12#include <stdlib.h>
11#include <libetpan/mailmime_content.h> 13#include <libetpan/mailmime_content.h>
12#include <libetpan/mailmime.h> 14#include <libetpan/mailmime.h>
13 15
14using namespace Opie::Core; 16using namespace Opie::Core;
15AbstractMail* AbstractMail::getWrapper(IMAPaccount *a) 17AbstractMail* AbstractMail::getWrapper(IMAPaccount *a)
16{ 18{
17 return new IMAPwrapper(a); 19 return new IMAPwrapper(a);
18} 20}
19 21
20AbstractMail* AbstractMail::getWrapper(POP3account *a) 22AbstractMail* AbstractMail::getWrapper(POP3account *a)
21{ 23{
22 return new POP3wrapper(a); 24 return new POP3wrapper(a);
23} 25}
24 26
25AbstractMail* AbstractMail::getWrapper(NNTPaccount *a) 27AbstractMail* AbstractMail::getWrapper(NNTPaccount *a)
26{ 28{
27 return new NNTPwrapper(a); 29 return new NNTPwrapper(a);
28} 30}
29 31
30AbstractMail* AbstractMail::getWrapper(const QString&a,const QString&name) 32AbstractMail* AbstractMail::getWrapper(const QString&a,const QString&name)
31{ 33{
32 return new MHwrapper(a,name); 34 return new MHwrapper(a,name);
33} 35}
34 36
35AbstractMail* AbstractMail::getWrapper(Account*a) 37AbstractMail* AbstractMail::getWrapper(Account*a)
36{ 38{
37 if (!a) return 0; 39 if (!a) return 0;
38 switch (a->getType()) { 40 switch (a->getType()) {
39 case MAILLIB::A_IMAP: 41 case MAILLIB::A_IMAP:
40 return new IMAPwrapper((IMAPaccount*)a); 42 return new IMAPwrapper((IMAPaccount*)a);
41 break; 43 break;
42 case MAILLIB::A_POP3: 44 case MAILLIB::A_POP3:
43 return new POP3wrapper((POP3account*)a); 45 return new POP3wrapper((POP3account*)a);
44 break; 46 break;
45 case MAILLIB::A_NNTP: 47 case MAILLIB::A_NNTP:
46 return new NNTPwrapper((NNTPaccount*)a); 48 return new NNTPwrapper((NNTPaccount*)a);
47 break; 49 break;
48 default: 50 default:
49 return 0; 51 return 0;
50 } 52 }
51} 53}
52 54
53encodedString* AbstractMail::decode_String(const encodedString*text,const QString&enc) 55encodedString* AbstractMail::decode_String(const encodedString*text,const QString&enc)
54{ 56{
55 odebug << "Decode string start" << oendl; 57 odebug << "Decode string start" << oendl;
56 char*result_text; 58 char*result_text;
57 size_t index = 0; 59 size_t index = 0;
58 /* reset for recursive use! */ 60 /* reset for recursive use! */
59 size_t target_length = 0; 61 size_t target_length = 0;
60 result_text = 0; 62 result_text = 0;
61 int mimetype = MAILMIME_MECHANISM_7BIT; 63 int mimetype = MAILMIME_MECHANISM_7BIT;
62 if (enc.lower()=="quoted-printable") { 64 if (enc.lower()=="quoted-printable") {
63 mimetype = MAILMIME_MECHANISM_QUOTED_PRINTABLE; 65 mimetype = MAILMIME_MECHANISM_QUOTED_PRINTABLE;
64 } else if (enc.lower()=="base64") { 66 } else if (enc.lower()=="base64") {
65 mimetype = MAILMIME_MECHANISM_BASE64; 67 mimetype = MAILMIME_MECHANISM_BASE64;
66 } else if (enc.lower()=="8bit") { 68 } else if (enc.lower()=="8bit") {
67 mimetype = MAILMIME_MECHANISM_8BIT; 69 mimetype = MAILMIME_MECHANISM_8BIT;
68 } else if (enc.lower()=="binary") { 70 } else if (enc.lower()=="binary") {
69 mimetype = MAILMIME_MECHANISM_BINARY; 71 mimetype = MAILMIME_MECHANISM_BINARY;
70 } 72 }
71 73
72 int err = mailmime_part_parse(text->Content(),text->Length(),&index,mimetype, 74 int err = mailmime_part_parse(text->Content(),text->Length(),&index,mimetype,
73 &result_text,&target_length); 75 &result_text,&target_length);
74 76
75 encodedString* result = new encodedString(); 77 encodedString* result = new encodedString();
76 if (err == MAILIMF_NO_ERROR) { 78 if (err == MAILIMF_NO_ERROR) {
77 result->setContent(result_text,target_length); 79 result->setContent(result_text,target_length);
78 } 80 }
79 odebug << "Decode string finished" << oendl; 81 odebug << "Decode string finished" << oendl;
80 return result; 82 return result;
81} 83}
82 84
83QString AbstractMail::convert_String(const char*text) 85QString AbstractMail::convert_String(const char*text)
84{ 86{
85 //size_t index = 0; 87 //size_t index = 0;
86 char*res = 0; 88 char*res = 0;
87 int err = MAILIMF_NO_ERROR; 89 int err = MAILIMF_NO_ERROR;
88 90
89 QString result(text); 91 QString result(text);
90 92
91 /* due a bug in libetpan it isn't usable this moment */ 93 /* due a bug in libetpan it isn't usable this moment */
92/* int err = mailmime_encoded_phrase_parse("iso-8859-1", 94/* int err = mailmime_encoded_phrase_parse("iso-8859-1",
93 text, strlen(text),&index, "iso-8859-1",&res);*/ 95 text, strlen(text),&index, "iso-8859-1",&res);*/
94 //odebug << "Input: " << text << "" << oendl; 96 //odebug << "Input: " << text << "" << oendl;
95 if (err == MAILIMF_NO_ERROR && res && strlen(res)) { 97 if (err == MAILIMF_NO_ERROR && res && strlen(res)) {
96// result = QString(res); 98// result = QString(res);
97// odebug << "Res: " << res << ", length: " << strlen(res) << "" << oendl; 99// odebug << "Res: " << res << ", length: " << strlen(res) << "" << oendl;
98 } 100 }
99 if (res) free(res); 101 if (res) free(res);
100 return result; 102 return result;
101} 103}
102 104
103/* cp & paste from launcher */ 105/* cp & paste from launcher */
diff --git a/noncore/net/mail/libmailwrapper/generatemail.cpp b/noncore/net/mail/libmailwrapper/generatemail.cpp
index 36ec232..eb322a7 100644
--- a/noncore/net/mail/libmailwrapper/generatemail.cpp
+++ b/noncore/net/mail/libmailwrapper/generatemail.cpp
@@ -1,101 +1,103 @@
1#include "generatemail.h" 1#include "generatemail.h"
2#include "mailwrapper.h" 2#include "mailwrapper.h"
3 3
4#include <libetpan/libetpan.h> 4#include <libetpan/libetpan.h>
5 5
6#include <opie2/odebug.h>
7
6#include <qt.h> 8#include <qt.h>
7 9
8using namespace Opie::Core; 10using namespace Opie::Core;
9const char* Generatemail::USER_AGENT="OpieMail v0.6"; 11const char* Generatemail::USER_AGENT="OpieMail v0.6";
10 12
11Generatemail::Generatemail() 13Generatemail::Generatemail()
12{ 14{
13} 15}
14 16
15Generatemail::~Generatemail() 17Generatemail::~Generatemail()
16{ 18{
17} 19}
18 20
19void Generatemail::addRcpts( clist *list, mailimf_address_list *addr_list ) { 21void Generatemail::addRcpts( clist *list, mailimf_address_list *addr_list ) {
20 clistiter *it, *it2; 22 clistiter *it, *it2;
21 23
22 for ( it = clist_begin( addr_list->ad_list ); it; it = it->next ) { 24 for ( it = clist_begin( addr_list->ad_list ); it; it = it->next ) {
23 mailimf_address *addr; 25 mailimf_address *addr;
24 addr = (mailimf_address *) it->data; 26 addr = (mailimf_address *) it->data;
25 27
26 if ( addr->ad_type == MAILIMF_ADDRESS_MAILBOX ) { 28 if ( addr->ad_type == MAILIMF_ADDRESS_MAILBOX ) {
27 esmtp_address_list_add( list, addr->ad_data.ad_mailbox->mb_addr_spec, 0, NULL ); 29 esmtp_address_list_add( list, addr->ad_data.ad_mailbox->mb_addr_spec, 0, NULL );
28 } else if ( addr->ad_type == MAILIMF_ADDRESS_GROUP ) { 30 } else if ( addr->ad_type == MAILIMF_ADDRESS_GROUP ) {
29 clist *l = addr->ad_data.ad_group->grp_mb_list->mb_list; 31 clist *l = addr->ad_data.ad_group->grp_mb_list->mb_list;
30 for ( it2 = clist_begin( l ); it2; it2 = it2->next ) { 32 for ( it2 = clist_begin( l ); it2; it2 = it2->next ) {
31 mailimf_mailbox *mbox; 33 mailimf_mailbox *mbox;
32 mbox = (mailimf_mailbox *) it2->data; 34 mbox = (mailimf_mailbox *) it2->data;
33 esmtp_address_list_add( list, mbox->mb_addr_spec, 0, NULL ); 35 esmtp_address_list_add( list, mbox->mb_addr_spec, 0, NULL );
34 } 36 }
35 } 37 }
36 } 38 }
37} 39}
38 40
39char *Generatemail::getFrom( mailimf_field *ffrom) { 41char *Generatemail::getFrom( mailimf_field *ffrom) {
40 char *from = NULL; 42 char *from = NULL;
41 if ( ffrom && (ffrom->fld_type == MAILIMF_FIELD_FROM) 43 if ( ffrom && (ffrom->fld_type == MAILIMF_FIELD_FROM)
42 && ffrom->fld_data.fld_from->frm_mb_list && ffrom->fld_data.fld_from->frm_mb_list->mb_list ) { 44 && ffrom->fld_data.fld_from->frm_mb_list && ffrom->fld_data.fld_from->frm_mb_list->mb_list ) {
43 clist *cl = ffrom->fld_data.fld_from->frm_mb_list->mb_list; 45 clist *cl = ffrom->fld_data.fld_from->frm_mb_list->mb_list;
44 clistiter *it; 46 clistiter *it;
45 for ( it = clist_begin( cl ); it; it = it->next ) { 47 for ( it = clist_begin( cl ); it; it = it->next ) {
46 mailimf_mailbox *mb = (mailimf_mailbox *) it->data; 48 mailimf_mailbox *mb = (mailimf_mailbox *) it->data;
47 from = strdup( mb->mb_addr_spec ); 49 from = strdup( mb->mb_addr_spec );
48 } 50 }
49 } 51 }
50 52
51 return from; 53 return from;
52} 54}
53 55
54char *Generatemail::getFrom( mailmime *mail ) { 56char *Generatemail::getFrom( mailmime *mail ) {
55 /* no need to delete - its just a pointer to structure content */ 57 /* no need to delete - its just a pointer to structure content */
56 mailimf_field *ffrom = 0; 58 mailimf_field *ffrom = 0;
57 ffrom = getField( mail->mm_data.mm_message.mm_fields, MAILIMF_FIELD_FROM ); 59 ffrom = getField( mail->mm_data.mm_message.mm_fields, MAILIMF_FIELD_FROM );
58 return getFrom(ffrom); 60 return getFrom(ffrom);
59} 61}
60 62
61mailimf_field *Generatemail::getField( mailimf_fields *fields, int type ) { 63mailimf_field *Generatemail::getField( mailimf_fields *fields, int type ) {
62 mailimf_field *field; 64 mailimf_field *field;
63 clistiter *it; 65 clistiter *it;
64 66
65 it = clist_begin( fields->fld_list ); 67 it = clist_begin( fields->fld_list );
66 while ( it ) { 68 while ( it ) {
67 field = (mailimf_field *) it->data; 69 field = (mailimf_field *) it->data;
68 if ( field->fld_type == type ) { 70 if ( field->fld_type == type ) {
69 return field; 71 return field;
70 } 72 }
71 it = it->next; 73 it = it->next;
72 } 74 }
73 75
74 return NULL; 76 return NULL;
75} 77}
76 78
77mailimf_address_list *Generatemail::parseAddresses(const QString&addr ) { 79mailimf_address_list *Generatemail::parseAddresses(const QString&addr ) {
78 mailimf_address_list *addresses; 80 mailimf_address_list *addresses;
79 81
80 if ( addr.isEmpty() ) 82 if ( addr.isEmpty() )
81 return NULL; 83 return NULL;
82 84
83 addresses = mailimf_address_list_new_empty(); 85 addresses = mailimf_address_list_new_empty();
84 86
85 bool literal_open = false; 87 bool literal_open = false;
86 unsigned int startpos = 0; 88 unsigned int startpos = 0;
87 QStringList list; 89 QStringList list;
88 QString s; 90 QString s;
89 unsigned int i = 0; 91 unsigned int i = 0;
90 for (; i < addr.length();++i) { 92 for (; i < addr.length();++i) {
91 switch (addr[i]) { 93 switch (addr[i]) {
92 case '\"': 94 case '\"':
93 literal_open = !literal_open; 95 literal_open = !literal_open;
94 break; 96 break;
95 case ',': 97 case ',':
96 if (!literal_open) { 98 if (!literal_open) {
97 s = addr.mid(startpos,i-startpos); 99 s = addr.mid(startpos,i-startpos);
98 if (!s.isEmpty()) { 100 if (!s.isEmpty()) {
99 list.append(s); 101 list.append(s);
100 odebug << "Appended " << s.latin1() << "" << oendl; 102 odebug << "Appended " << s.latin1() << "" << oendl;
101 } 103 }
diff --git a/noncore/net/mail/libmailwrapper/genericwrapper.cpp b/noncore/net/mail/libmailwrapper/genericwrapper.cpp
index fae4c99..3e4293b 100644
--- a/noncore/net/mail/libmailwrapper/genericwrapper.cpp
+++ b/noncore/net/mail/libmailwrapper/genericwrapper.cpp
@@ -1,100 +1,102 @@
1#include "genericwrapper.h" 1#include "genericwrapper.h"
2#include <libetpan/libetpan.h> 2#include <libetpan/libetpan.h>
3#include "mailtypes.h" 3#include "mailtypes.h"
4 4
5#include <opie2/odebug.h>
6
5using namespace Opie::Core; 7using namespace Opie::Core;
6Genericwrapper::Genericwrapper() 8Genericwrapper::Genericwrapper()
7 : AbstractMail() 9 : AbstractMail()
8{ 10{
9 bodyCache.clear(); 11 bodyCache.clear();
10 m_storage = 0; 12 m_storage = 0;
11 m_folder = 0; 13 m_folder = 0;
12} 14}
13 15
14Genericwrapper::~Genericwrapper() 16Genericwrapper::~Genericwrapper()
15{ 17{
16 if (m_folder) { 18 if (m_folder) {
17 mailfolder_free(m_folder); 19 mailfolder_free(m_folder);
18 } 20 }
19 if (m_storage) { 21 if (m_storage) {
20 mailstorage_free(m_storage); 22 mailstorage_free(m_storage);
21 } 23 }
22 cleanMimeCache(); 24 cleanMimeCache();
23} 25}
24 26
25void Genericwrapper::fillSingleBody(RecPartP&target,mailmessage*,mailmime*mime) 27void Genericwrapper::fillSingleBody(RecPartP&target,mailmessage*,mailmime*mime)
26{ 28{
27 if (!mime) { 29 if (!mime) {
28 return; 30 return;
29 } 31 }
30 mailmime_field*field = 0; 32 mailmime_field*field = 0;
31 mailmime_single_fields fields; 33 mailmime_single_fields fields;
32 memset(&fields, 0, sizeof(struct mailmime_single_fields)); 34 memset(&fields, 0, sizeof(struct mailmime_single_fields));
33 if (mime->mm_mime_fields != NULL) { 35 if (mime->mm_mime_fields != NULL) {
34 mailmime_single_fields_init(&fields, mime->mm_mime_fields, 36 mailmime_single_fields_init(&fields, mime->mm_mime_fields,
35 mime->mm_content_type); 37 mime->mm_content_type);
36 } 38 }
37 39
38 mailmime_content*type = fields.fld_content; 40 mailmime_content*type = fields.fld_content;
39 clistcell*current; 41 clistcell*current;
40 if (!type) { 42 if (!type) {
41 target->setType("text"); 43 target->setType("text");
42 target->setSubtype("plain"); 44 target->setSubtype("plain");
43 } else { 45 } else {
44 target->setSubtype(type->ct_subtype); 46 target->setSubtype(type->ct_subtype);
45 switch(type->ct_type->tp_data.tp_discrete_type->dt_type) { 47 switch(type->ct_type->tp_data.tp_discrete_type->dt_type) {
46 case MAILMIME_DISCRETE_TYPE_TEXT: 48 case MAILMIME_DISCRETE_TYPE_TEXT:
47 target->setType("text"); 49 target->setType("text");
48 break; 50 break;
49 case MAILMIME_DISCRETE_TYPE_IMAGE: 51 case MAILMIME_DISCRETE_TYPE_IMAGE:
50 target->setType("image"); 52 target->setType("image");
51 break; 53 break;
52 case MAILMIME_DISCRETE_TYPE_AUDIO: 54 case MAILMIME_DISCRETE_TYPE_AUDIO:
53 target->setType("audio"); 55 target->setType("audio");
54 break; 56 break;
55 case MAILMIME_DISCRETE_TYPE_VIDEO: 57 case MAILMIME_DISCRETE_TYPE_VIDEO:
56 target->setType("video"); 58 target->setType("video");
57 break; 59 break;
58 case MAILMIME_DISCRETE_TYPE_APPLICATION: 60 case MAILMIME_DISCRETE_TYPE_APPLICATION:
59 target->setType("application"); 61 target->setType("application");
60 break; 62 break;
61 case MAILMIME_DISCRETE_TYPE_EXTENSION: 63 case MAILMIME_DISCRETE_TYPE_EXTENSION:
62 default: 64 default:
63 if (type->ct_type->tp_data.tp_discrete_type->dt_extension) { 65 if (type->ct_type->tp_data.tp_discrete_type->dt_extension) {
64 target->setType(type->ct_type->tp_data.tp_discrete_type->dt_extension); 66 target->setType(type->ct_type->tp_data.tp_discrete_type->dt_extension);
65 } 67 }
66 break; 68 break;
67 } 69 }
68 if (type->ct_parameters) { 70 if (type->ct_parameters) {
69 fillParameters(target,type->ct_parameters); 71 fillParameters(target,type->ct_parameters);
70 } 72 }
71 } 73 }
72 if (mime->mm_mime_fields && mime->mm_mime_fields->fld_list) { 74 if (mime->mm_mime_fields && mime->mm_mime_fields->fld_list) {
73 for (current=clist_begin(mime->mm_mime_fields->fld_list);current!=0;current=clist_next(current)) { 75 for (current=clist_begin(mime->mm_mime_fields->fld_list);current!=0;current=clist_next(current)) {
74 field = (mailmime_field*)current->data; 76 field = (mailmime_field*)current->data;
75 switch(field->fld_type) { 77 switch(field->fld_type) {
76 case MAILMIME_FIELD_TRANSFER_ENCODING: 78 case MAILMIME_FIELD_TRANSFER_ENCODING:
77 target->setEncoding(getencoding(field->fld_data.fld_encoding)); 79 target->setEncoding(getencoding(field->fld_data.fld_encoding));
78 break; 80 break;
79 case MAILMIME_FIELD_ID: 81 case MAILMIME_FIELD_ID:
80 target->setIdentifier(field->fld_data.fld_id); 82 target->setIdentifier(field->fld_data.fld_id);
81 break; 83 break;
82 case MAILMIME_FIELD_DESCRIPTION: 84 case MAILMIME_FIELD_DESCRIPTION:
83 target->setDescription(field->fld_data.fld_description); 85 target->setDescription(field->fld_data.fld_description);
84 break; 86 break;
85 default: 87 default:
86 break; 88 break;
87 } 89 }
88 } 90 }
89 } 91 }
90} 92}
91 93
92void Genericwrapper::fillParameters(RecPartP&target,clist*parameters) 94void Genericwrapper::fillParameters(RecPartP&target,clist*parameters)
93{ 95{
94 if (!parameters) {return;} 96 if (!parameters) {return;}
95 clistcell*current=0; 97 clistcell*current=0;
96 mailmime_parameter*param; 98 mailmime_parameter*param;
97 for (current=clist_begin(parameters);current!=0;current=clist_next(current)) { 99 for (current=clist_begin(parameters);current!=0;current=clist_next(current)) {
98 param = (mailmime_parameter*)current->data; 100 param = (mailmime_parameter*)current->data;
99 if (param) { 101 if (param) {
100 target->addParameter(QString(param->pa_name).lower(),QString(param->pa_value)); 102 target->addParameter(QString(param->pa_name).lower(),QString(param->pa_value));
diff --git a/noncore/net/mail/libmailwrapper/imapwrapper.cpp b/noncore/net/mail/libmailwrapper/imapwrapper.cpp
index 35468fe..9b7c0e0 100644
--- a/noncore/net/mail/libmailwrapper/imapwrapper.cpp
+++ b/noncore/net/mail/libmailwrapper/imapwrapper.cpp
@@ -1,100 +1,101 @@
1#include <stdlib.h> 1#include <stdlib.h>
2#include <libetpan/libetpan.h> 2#include <libetpan/libetpan.h>
3#include <qpe/global.h> 3#include <qpe/global.h>
4#include <opie2/oapplication.h> 4#include <opie2/oapplication.h>
5#include <opie2/odebug.h>
5 6
6#include "imapwrapper.h" 7#include "imapwrapper.h"
7#include "mailtypes.h" 8#include "mailtypes.h"
8#include "logindialog.h" 9#include "logindialog.h"
9 10
10using namespace Opie::Core; 11using namespace Opie::Core;
11IMAPwrapper::IMAPwrapper( IMAPaccount *a ) 12IMAPwrapper::IMAPwrapper( IMAPaccount *a )
12 : AbstractMail() 13 : AbstractMail()
13{ 14{
14 account = a; 15 account = a;
15 m_imap = 0; 16 m_imap = 0;
16 m_Lastmbox = ""; 17 m_Lastmbox = "";
17} 18}
18 19
19IMAPwrapper::~IMAPwrapper() 20IMAPwrapper::~IMAPwrapper()
20{ 21{
21 logout(); 22 logout();
22} 23}
23 24
24/* to avoid to often select statements in loops etc. 25/* to avoid to often select statements in loops etc.
25 we trust that we are logged in and connection is established!*/ 26 we trust that we are logged in and connection is established!*/
26int IMAPwrapper::selectMbox(const QString&mbox) 27int IMAPwrapper::selectMbox(const QString&mbox)
27{ 28{
28 if (mbox == m_Lastmbox) { 29 if (mbox == m_Lastmbox) {
29 return MAILIMAP_NO_ERROR; 30 return MAILIMAP_NO_ERROR;
30 } 31 }
31 int err = mailimap_select( m_imap, (char*)mbox.latin1()); 32 int err = mailimap_select( m_imap, (char*)mbox.latin1());
32 if ( err != MAILIMAP_NO_ERROR ) { 33 if ( err != MAILIMAP_NO_ERROR ) {
33 odebug << "error selecting mailbox: " << m_imap->imap_response << "" << oendl; 34 odebug << "error selecting mailbox: " << m_imap->imap_response << "" << oendl;
34 m_Lastmbox = ""; 35 m_Lastmbox = "";
35 return err; 36 return err;
36 } 37 }
37 m_Lastmbox = mbox; 38 m_Lastmbox = mbox;
38 return err; 39 return err;
39} 40}
40 41
41void IMAPwrapper::imap_progress( size_t current, size_t maximum ) 42void IMAPwrapper::imap_progress( size_t current, size_t maximum )
42{ 43{
43 qApp->processEvents(); 44 qApp->processEvents();
44 odebug << "IMAP: " << current << " of " << maximum << "" << oendl; 45 odebug << "IMAP: " << current << " of " << maximum << "" << oendl;
45} 46}
46 47
47bool IMAPwrapper::start_tls(bool force_tls) 48bool IMAPwrapper::start_tls(bool force_tls)
48{ 49{
49 int err; 50 int err;
50 bool try_tls; 51 bool try_tls;
51 mailimap_capability_data * cap_data = 0; 52 mailimap_capability_data * cap_data = 0;
52 53
53 err = mailimap_capability(m_imap,&cap_data); 54 err = mailimap_capability(m_imap,&cap_data);
54 if (err != MAILIMAP_NO_ERROR) { 55 if (err != MAILIMAP_NO_ERROR) {
55 Global::statusMessage("error getting capabilities!"); 56 Global::statusMessage("error getting capabilities!");
56 odebug << "error getting capabilities!" << oendl; 57 odebug << "error getting capabilities!" << oendl;
57 return false; 58 return false;
58 } 59 }
59 clistiter * cur; 60 clistiter * cur;
60 for(cur = clist_begin(cap_data->cap_list) ; cur != NULL;cur = clist_next(cur)) { 61 for(cur = clist_begin(cap_data->cap_list) ; cur != NULL;cur = clist_next(cur)) {
61 struct mailimap_capability * cap; 62 struct mailimap_capability * cap;
62 cap = (struct mailimap_capability *)clist_content(cur); 63 cap = (struct mailimap_capability *)clist_content(cur);
63 if (cap->cap_type == MAILIMAP_CAPABILITY_NAME) { 64 if (cap->cap_type == MAILIMAP_CAPABILITY_NAME) {
64 if (strcasecmp(cap->cap_data.cap_name, "STARTTLS") == 0) { 65 if (strcasecmp(cap->cap_data.cap_name, "STARTTLS") == 0) {
65 try_tls = true; 66 try_tls = true;
66 break; 67 break;
67 } 68 }
68 } 69 }
69 } 70 }
70 if (cap_data) { 71 if (cap_data) {
71 mailimap_capability_data_free(cap_data); 72 mailimap_capability_data_free(cap_data);
72 } 73 }
73 if (try_tls) { 74 if (try_tls) {
74 err = mailimap_starttls(m_imap); 75 err = mailimap_starttls(m_imap);
75 if (err != MAILIMAP_NO_ERROR && force_tls) { 76 if (err != MAILIMAP_NO_ERROR && force_tls) {
76 Global::statusMessage(tr("Server has no TLS support!")); 77 Global::statusMessage(tr("Server has no TLS support!"));
77 odebug << "Server has no TLS support!" << oendl; 78 odebug << "Server has no TLS support!" << oendl;
78 try_tls = false; 79 try_tls = false;
79 } else { 80 } else {
80 mailstream_low * low; 81 mailstream_low * low;
81 mailstream_low * new_low; 82 mailstream_low * new_low;
82 low = mailstream_get_low(m_imap->imap_stream); 83 low = mailstream_get_low(m_imap->imap_stream);
83 if (!low) { 84 if (!low) {
84 try_tls = false; 85 try_tls = false;
85 } else { 86 } else {
86 int fd = mailstream_low_get_fd(low); 87 int fd = mailstream_low_get_fd(low);
87 if (fd > -1 && (new_low = mailstream_low_ssl_open(fd))!=0) { 88 if (fd > -1 && (new_low = mailstream_low_ssl_open(fd))!=0) {
88 mailstream_low_free(low); 89 mailstream_low_free(low);
89 mailstream_set_low(m_imap->imap_stream, new_low); 90 mailstream_set_low(m_imap->imap_stream, new_low);
90 } else { 91 } else {
91 try_tls = false; 92 try_tls = false;
92 } 93 }
93 } 94 }
94 } 95 }
95 } 96 }
96 return try_tls; 97 return try_tls;
97} 98}
98 99
99void IMAPwrapper::login() 100void IMAPwrapper::login()
100{ 101{
diff --git a/noncore/net/mail/libmailwrapper/logindialog.cpp b/noncore/net/mail/libmailwrapper/logindialog.cpp
index c9ae190..ce705b2 100644
--- a/noncore/net/mail/libmailwrapper/logindialog.cpp
+++ b/noncore/net/mail/libmailwrapper/logindialog.cpp
@@ -1,29 +1,33 @@
1#include <qlineedit.h> 1#include <qlineedit.h>
2 2
3#include "logindialog.h" 3#include "logindialog.h"
4 4
5#include <opie2/odebug.h>
6
7using namespace Opie::Core;
8
5LoginDialog::LoginDialog(const QString&user,const QString&pass, QWidget *parent, const char *name, bool modal, WFlags flags ) 9LoginDialog::LoginDialog(const QString&user,const QString&pass, QWidget *parent, const char *name, bool modal, WFlags flags )
6 : LoginDialogUI( parent, name, modal, flags ) 10 : LoginDialogUI( parent, name, modal, flags )
7{ 11{
8 userLine->setText( (user.isEmpty()?QString(""):user) ); 12 userLine->setText( (user.isEmpty()?QString(""):user) );
9 passLine->setText( (pass.isEmpty()?QString(""):pass) ); 13 passLine->setText( (pass.isEmpty()?QString(""):pass) );
10 _user = user; 14 _user = user;
11 _pass = pass; 15 _pass = pass;
12 16
13 if ( user.isEmpty() ) { 17 if ( user.isEmpty() ) {
14 userLine->setFocus(); 18 userLine->setFocus();
15 } else { 19 } else {
16 passLine->setFocus(); 20 passLine->setFocus();
17 } 21 }
18} 22}
19 23
20void LoginDialog::accept() 24void LoginDialog::accept()
21{ 25{
22 //_user.replace( 0, _user.length(), userLine->text() ); 26 //_user.replace( 0, _user.length(), userLine->text() );
23 //_pass.replace( 0, _pass.length(), passLine->text() ); 27 //_pass.replace( 0, _pass.length(), passLine->text() );
24 _user = userLine->text(); 28 _user = userLine->text();
25 _pass = passLine->text(); 29 _pass = passLine->text();
26 30
27 odebug << "User im accept: |" << _user.latin1() << "|" << oendl; 31 odebug << "User im accept: |" << _user.latin1() << "|" << oendl;
28 QDialog::accept(); 32 QDialog::accept();
29} 33}
diff --git a/noncore/net/mail/libmailwrapper/mailtypes.cpp b/noncore/net/mail/libmailwrapper/mailtypes.cpp
index 6d44db4..d4395a2 100644
--- a/noncore/net/mail/libmailwrapper/mailtypes.cpp
+++ b/noncore/net/mail/libmailwrapper/mailtypes.cpp
@@ -1,97 +1,100 @@
1#include "mailtypes.h" 1#include "mailtypes.h"
2
3#include <opie2/odebug.h>
4
2#include <stdlib.h> 5#include <stdlib.h>
3 6
4using namespace Opie::Core; 7using namespace Opie::Core;
5RecMail::RecMail() 8RecMail::RecMail()
6 :Opie::Core::ORefCount(),subject(""),date(""),from(""),mbox(""),msg_id(""),msg_number(0),msg_size(0),msg_flags(7) 9 :Opie::Core::ORefCount(),subject(""),date(""),from(""),mbox(""),msg_id(""),msg_number(0),msg_size(0),msg_flags(7)
7{ 10{
8 init(); 11 init();
9} 12}
10 13
11RecMail::RecMail(const RecMail&old) 14RecMail::RecMail(const RecMail&old)
12 :Opie::Core::ORefCount(),subject(""),date(""),from(""),mbox(""),msg_id(""),msg_number(0),msg_flags(7) 15 :Opie::Core::ORefCount(),subject(""),date(""),from(""),mbox(""),msg_id(""),msg_number(0),msg_flags(7)
13{ 16{
14 init(); 17 init();
15 copy_old(old); 18 copy_old(old);
16 odebug << "Copy constructor RecMail" << oendl; 19 odebug << "Copy constructor RecMail" << oendl;
17} 20}
18 21
19RecMail::~RecMail() 22RecMail::~RecMail()
20{ 23{
21 wrapper = 0; 24 wrapper = 0;
22} 25}
23 26
24void RecMail::copy_old(const RecMail&old) 27void RecMail::copy_old(const RecMail&old)
25{ 28{
26 subject = old.subject; 29 subject = old.subject;
27 date = old.date; 30 date = old.date;
28 mbox = old.mbox; 31 mbox = old.mbox;
29 msg_id = old.msg_id; 32 msg_id = old.msg_id;
30 msg_size = old.msg_size; 33 msg_size = old.msg_size;
31 msg_number = old.msg_number; 34 msg_number = old.msg_number;
32 from = old.from; 35 from = old.from;
33 msg_flags = old.msg_flags; 36 msg_flags = old.msg_flags;
34 to = old.to; 37 to = old.to;
35 cc = old.cc; 38 cc = old.cc;
36 bcc = old.bcc; 39 bcc = old.bcc;
37 wrapper = old.wrapper; 40 wrapper = old.wrapper;
38 in_reply_to = old.in_reply_to; 41 in_reply_to = old.in_reply_to;
39 references = old.references; 42 references = old.references;
40 replyto = old.replyto; 43 replyto = old.replyto;
41} 44}
42 45
43void RecMail::init() 46void RecMail::init()
44{ 47{
45 to.clear(); 48 to.clear();
46 cc.clear(); 49 cc.clear();
47 bcc.clear(); 50 bcc.clear();
48 in_reply_to.clear(); 51 in_reply_to.clear();
49 references.clear(); 52 references.clear();
50 wrapper = 0; 53 wrapper = 0;
51} 54}
52 55
53void RecMail::setWrapper(AbstractMail*awrapper) 56void RecMail::setWrapper(AbstractMail*awrapper)
54{ 57{
55 wrapper = awrapper; 58 wrapper = awrapper;
56} 59}
57 60
58AbstractMail* RecMail::Wrapper() 61AbstractMail* RecMail::Wrapper()
59{ 62{
60 return wrapper; 63 return wrapper;
61} 64}
62 65
63void RecMail::setTo(const QStringList&list) 66void RecMail::setTo(const QStringList&list)
64{ 67{
65 to = list; 68 to = list;
66} 69}
67 70
68const QStringList&RecMail::To()const 71const QStringList&RecMail::To()const
69{ 72{
70 return to; 73 return to;
71} 74}
72 75
73void RecMail::setCC(const QStringList&list) 76void RecMail::setCC(const QStringList&list)
74{ 77{
75 cc = list; 78 cc = list;
76} 79}
77 80
78const QStringList&RecMail::CC()const 81const QStringList&RecMail::CC()const
79{ 82{
80 return cc; 83 return cc;
81} 84}
82 85
83void RecMail::setBcc(const QStringList&list) 86void RecMail::setBcc(const QStringList&list)
84{ 87{
85 bcc = list; 88 bcc = list;
86} 89}
87 90
88const QStringList& RecMail::Bcc()const 91const QStringList& RecMail::Bcc()const
89{ 92{
90 return bcc; 93 return bcc;
91} 94}
92 95
93void RecMail::setInreply(const QStringList&list) 96void RecMail::setInreply(const QStringList&list)
94{ 97{
95 in_reply_to = list; 98 in_reply_to = list;
96} 99}
97 100
diff --git a/noncore/net/mail/libmailwrapper/mboxwrapper.cpp b/noncore/net/mail/libmailwrapper/mboxwrapper.cpp
index df2112f..a030cca 100644
--- a/noncore/net/mail/libmailwrapper/mboxwrapper.cpp
+++ b/noncore/net/mail/libmailwrapper/mboxwrapper.cpp
@@ -1,102 +1,104 @@
1#include "mboxwrapper.h" 1#include "mboxwrapper.h"
2#include "mailtypes.h" 2#include "mailtypes.h"
3#include "mailwrapper.h" 3#include "mailwrapper.h"
4#include <libetpan/libetpan.h> 4#include <libetpan/libetpan.h>
5#include <qdir.h> 5#include <qdir.h>
6#include <stdlib.h> 6#include <stdlib.h>
7
8#include <opie2/odebug.h>
7#include <qpe/global.h> 9#include <qpe/global.h>
8 10
9using namespace Opie::Core; 11using namespace Opie::Core;
10MBOXwrapper::MBOXwrapper(const QString & mbox_dir,const QString&mbox_name) 12MBOXwrapper::MBOXwrapper(const QString & mbox_dir,const QString&mbox_name)
11 : Genericwrapper(),MBOXPath(mbox_dir),MBOXName(mbox_name) 13 : Genericwrapper(),MBOXPath(mbox_dir),MBOXName(mbox_name)
12{ 14{
13 QDir dir(MBOXPath); 15 QDir dir(MBOXPath);
14 if (!dir.exists()) { 16 if (!dir.exists()) {
15 dir.mkdir(MBOXPath); 17 dir.mkdir(MBOXPath);
16 } 18 }
17} 19}
18 20
19MBOXwrapper::~MBOXwrapper() 21MBOXwrapper::~MBOXwrapper()
20{ 22{
21} 23}
22 24
23void MBOXwrapper::listMessages(const QString & mailbox, QValueList<RecMailP> &target ) 25void MBOXwrapper::listMessages(const QString & mailbox, QValueList<RecMailP> &target )
24{ 26{
25 mailstorage*storage = mailstorage_new(NULL); 27 mailstorage*storage = mailstorage_new(NULL);
26 QString p = MBOXPath+"/"; 28 QString p = MBOXPath+"/";
27 p+=mailbox; 29 p+=mailbox;
28 30
29 int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0); 31 int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0);
30 mailfolder*folder; 32 mailfolder*folder;
31 folder = mailfolder_new( storage,(char*)p.latin1(),NULL); 33 folder = mailfolder_new( storage,(char*)p.latin1(),NULL);
32 r = mailfolder_connect(folder); 34 r = mailfolder_connect(folder);
33 if (r != MAIL_NO_ERROR) { 35 if (r != MAIL_NO_ERROR) {
34 odebug << "Error initializing mbox" << oendl; 36 odebug << "Error initializing mbox" << oendl;
35 mailfolder_free(folder); 37 mailfolder_free(folder);
36 mailstorage_free(storage); 38 mailstorage_free(storage);
37 return; 39 return;
38 } 40 }
39 41
40 parseList(target,folder->fld_session,mailbox); 42 parseList(target,folder->fld_session,mailbox);
41 43
42 mailfolder_disconnect(folder); 44 mailfolder_disconnect(folder);
43 mailfolder_free(folder); 45 mailfolder_free(folder);
44 mailstorage_free(storage); 46 mailstorage_free(storage);
45 Global::statusMessage(tr("Mailbox has %1 mail(s)").arg(target.count())); 47 Global::statusMessage(tr("Mailbox has %1 mail(s)").arg(target.count()));
46} 48}
47 49
48QValueList<Opie::Core::OSmartPointer<Folder> >* MBOXwrapper::listFolders() 50QValueList<Opie::Core::OSmartPointer<Folder> >* MBOXwrapper::listFolders()
49{ 51{
50 QValueList<Opie::Core::OSmartPointer<Folder> >* folders = new QValueList<Opie::Core::OSmartPointer<Folder> >(); 52 QValueList<Opie::Core::OSmartPointer<Folder> >* folders = new QValueList<Opie::Core::OSmartPointer<Folder> >();
51 QDir dir(MBOXPath); 53 QDir dir(MBOXPath);
52 if (!dir.exists()) return folders; 54 if (!dir.exists()) return folders;
53 dir.setFilter(QDir::Files|QDir::Writable|QDir::Readable); 55 dir.setFilter(QDir::Files|QDir::Writable|QDir::Readable);
54 QStringList entries = dir.entryList(); 56 QStringList entries = dir.entryList();
55 QStringList::ConstIterator it = entries.begin(); 57 QStringList::ConstIterator it = entries.begin();
56 for (;it!=entries.end();++it) { 58 for (;it!=entries.end();++it) {
57 FolderP inb=new Folder(*it,"/"); 59 FolderP inb=new Folder(*it,"/");
58 folders->append(inb); 60 folders->append(inb);
59 } 61 }
60 return folders; 62 return folders;
61} 63}
62 64
63void MBOXwrapper::deleteMail(const RecMailP & mail) 65void MBOXwrapper::deleteMail(const RecMailP & mail)
64{ 66{
65 mailstorage*storage = mailstorage_new(NULL); 67 mailstorage*storage = mailstorage_new(NULL);
66 QString p = MBOXPath+"/"; 68 QString p = MBOXPath+"/";
67 p+=mail->getMbox(); 69 p+=mail->getMbox();
68 int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0); 70 int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0);
69 mailfolder*folder; 71 mailfolder*folder;
70 folder = mailfolder_new( storage,(char*)p.latin1(),NULL); 72 folder = mailfolder_new( storage,(char*)p.latin1(),NULL);
71 r = mailfolder_connect(folder); 73 r = mailfolder_connect(folder);
72 if (r != MAIL_NO_ERROR) { 74 if (r != MAIL_NO_ERROR) {
73 odebug << "Error initializing mbox" << oendl; 75 odebug << "Error initializing mbox" << oendl;
74 mailfolder_free(folder); 76 mailfolder_free(folder);
75 mailstorage_free(storage); 77 mailstorage_free(storage);
76 return; 78 return;
77 } 79 }
78 r = mailsession_remove_message(folder->fld_session,mail->getNumber()); 80 r = mailsession_remove_message(folder->fld_session,mail->getNumber());
79 if (r != MAIL_NO_ERROR) { 81 if (r != MAIL_NO_ERROR) {
80 odebug << "error deleting mail" << oendl; 82 odebug << "error deleting mail" << oendl;
81 } 83 }
82 mailfolder_free(folder); 84 mailfolder_free(folder);
83 mailstorage_free(storage); 85 mailstorage_free(storage);
84} 86}
85 87
86void MBOXwrapper::answeredMail(const RecMailP&) 88void MBOXwrapper::answeredMail(const RecMailP&)
87{ 89{
88} 90}
89 91
90RecBodyP MBOXwrapper::fetchBody( const RecMailP &mail ) 92RecBodyP MBOXwrapper::fetchBody( const RecMailP &mail )
91{ 93{
92 RecBodyP body = new RecBody(); 94 RecBodyP body = new RecBody();
93 mailstorage*storage = mailstorage_new(NULL); 95 mailstorage*storage = mailstorage_new(NULL);
94 QString p = MBOXPath+"/"; 96 QString p = MBOXPath+"/";
95 p+=mail->getMbox(); 97 p+=mail->getMbox();
96 mailmessage * msg; 98 mailmessage * msg;
97 char*data=0; 99 char*data=0;
98 size_t size; 100 size_t size;
99 101
100 int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0); 102 int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0);
101 mailfolder*folder; 103 mailfolder*folder;
102 folder = mailfolder_new( storage,(char*)p.latin1(),NULL); 104 folder = mailfolder_new( storage,(char*)p.latin1(),NULL);
diff --git a/noncore/net/mail/libmailwrapper/mhwrapper.cpp b/noncore/net/mail/libmailwrapper/mhwrapper.cpp
index cd7cecb..403afcf 100644
--- a/noncore/net/mail/libmailwrapper/mhwrapper.cpp
+++ b/noncore/net/mail/libmailwrapper/mhwrapper.cpp
@@ -1,105 +1,106 @@
1#include "mhwrapper.h" 1#include "mhwrapper.h"
2#include "mailtypes.h" 2#include "mailtypes.h"
3#include "mailwrapper.h" 3#include "mailwrapper.h"
4#include <libetpan/libetpan.h> 4#include <libetpan/libetpan.h>
5#include <qdir.h> 5#include <qdir.h>
6#include <qmessagebox.h> 6#include <qmessagebox.h>
7#include <stdlib.h> 7#include <stdlib.h>
8#include <qpe/global.h> 8#include <qpe/global.h>
9#include <opie2/oprocess.h> 9#include <opie2/oprocess.h>
10#include <opie2/odebug.h>
10 11
11using namespace Opie::Core; 12using namespace Opie::Core;
12MHwrapper::MHwrapper(const QString & mbox_dir,const QString&mbox_name) 13MHwrapper::MHwrapper(const QString & mbox_dir,const QString&mbox_name)
13 : Genericwrapper(),MHPath(mbox_dir),MHName(mbox_name) 14 : Genericwrapper(),MHPath(mbox_dir),MHName(mbox_name)
14{ 15{
15 if (MHPath.length()>0) { 16 if (MHPath.length()>0) {
16 if (MHPath[MHPath.length()-1]=='/') { 17 if (MHPath[MHPath.length()-1]=='/') {
17 MHPath=MHPath.left(MHPath.length()-1); 18 MHPath=MHPath.left(MHPath.length()-1);
18 } 19 }
19 odebug << MHPath << oendl; 20 odebug << MHPath << oendl;
20 QDir dir(MHPath); 21 QDir dir(MHPath);
21 if (!dir.exists()) { 22 if (!dir.exists()) {
22 dir.mkdir(MHPath); 23 dir.mkdir(MHPath);
23 } 24 }
24 init_storage(); 25 init_storage();
25 } 26 }
26} 27}
27 28
28void MHwrapper::init_storage() 29void MHwrapper::init_storage()
29{ 30{
30 int r; 31 int r;
31 QString pre = MHPath; 32 QString pre = MHPath;
32 if (!m_storage) { 33 if (!m_storage) {
33 m_storage = mailstorage_new(NULL); 34 m_storage = mailstorage_new(NULL);
34 r = mh_mailstorage_init(m_storage,(char*)pre.latin1(),0,0,0); 35 r = mh_mailstorage_init(m_storage,(char*)pre.latin1(),0,0,0);
35 if (r != MAIL_NO_ERROR) { 36 if (r != MAIL_NO_ERROR) {
36 odebug << "error initializing storage" << oendl; 37 odebug << "error initializing storage" << oendl;
37 mailstorage_free(m_storage); 38 mailstorage_free(m_storage);
38 m_storage = 0; 39 m_storage = 0;
39 return; 40 return;
40 } 41 }
41 } 42 }
42 r = mailstorage_connect(m_storage); 43 r = mailstorage_connect(m_storage);
43 if (r!=MAIL_NO_ERROR) { 44 if (r!=MAIL_NO_ERROR) {
44 odebug << "error connecting storage" << oendl; 45 odebug << "error connecting storage" << oendl;
45 mailstorage_free(m_storage); 46 mailstorage_free(m_storage);
46 m_storage = 0; 47 m_storage = 0;
47 } 48 }
48} 49}
49 50
50void MHwrapper::clean_storage() 51void MHwrapper::clean_storage()
51{ 52{
52 if (m_storage) { 53 if (m_storage) {
53 mailstorage_disconnect(m_storage); 54 mailstorage_disconnect(m_storage);
54 mailstorage_free(m_storage); 55 mailstorage_free(m_storage);
55 m_storage = 0; 56 m_storage = 0;
56 } 57 }
57} 58}
58 59
59MHwrapper::~MHwrapper() 60MHwrapper::~MHwrapper()
60{ 61{
61 clean_storage(); 62 clean_storage();
62} 63}
63 64
64void MHwrapper::listMessages(const QString & mailbox, QValueList<Opie::Core::OSmartPointer<RecMail> > &target ) 65void MHwrapper::listMessages(const QString & mailbox, QValueList<Opie::Core::OSmartPointer<RecMail> > &target )
65{ 66{
66 init_storage(); 67 init_storage();
67 if (!m_storage) { 68 if (!m_storage) {
68 return; 69 return;
69 } 70 }
70 QString f = buildPath(mailbox); 71 QString f = buildPath(mailbox);
71 int r = mailsession_select_folder(m_storage->sto_session,(char*)f.latin1()); 72 int r = mailsession_select_folder(m_storage->sto_session,(char*)f.latin1());
72 if (r!=MAIL_NO_ERROR) { 73 if (r!=MAIL_NO_ERROR) {
73 odebug << "listMessages: error selecting folder!" << oendl; 74 odebug << "listMessages: error selecting folder!" << oendl;
74 return; 75 return;
75 } 76 }
76 parseList(target,m_storage->sto_session,f); 77 parseList(target,m_storage->sto_session,f);
77 Global::statusMessage(tr("Mailbox has %1 mail(s)").arg(target.count())); 78 Global::statusMessage(tr("Mailbox has %1 mail(s)").arg(target.count()));
78} 79}
79 80
80QValueList<Opie::Core::OSmartPointer<Folder> >* MHwrapper::listFolders() 81QValueList<Opie::Core::OSmartPointer<Folder> >* MHwrapper::listFolders()
81{ 82{
82 QValueList<Opie::Core::OSmartPointer<Folder> >* folders = new QValueList<Opie::Core::OSmartPointer<Folder> >(); 83 QValueList<Opie::Core::OSmartPointer<Folder> >* folders = new QValueList<Opie::Core::OSmartPointer<Folder> >();
83 /* this is needed! */ 84 /* this is needed! */
84 if (m_storage) mailstorage_disconnect(m_storage); 85 if (m_storage) mailstorage_disconnect(m_storage);
85 init_storage(); 86 init_storage();
86 if (!m_storage) { 87 if (!m_storage) {
87 return folders; 88 return folders;
88 } 89 }
89 mail_list*flist = 0; 90 mail_list*flist = 0;
90 clistcell*current=0; 91 clistcell*current=0;
91 int r = mailsession_list_folders(m_storage->sto_session,NULL,&flist); 92 int r = mailsession_list_folders(m_storage->sto_session,NULL,&flist);
92 if (r != MAIL_NO_ERROR || !flist) { 93 if (r != MAIL_NO_ERROR || !flist) {
93 odebug << "error getting folder list" << oendl; 94 odebug << "error getting folder list" << oendl;
94 return folders; 95 return folders;
95 } 96 }
96 for (current=clist_begin(flist->mb_list);current!=0;current=clist_next(current)) { 97 for (current=clist_begin(flist->mb_list);current!=0;current=clist_next(current)) {
97 QString t = (char*)current->data; 98 QString t = (char*)current->data;
98 t.replace(0,MHPath.length(),""); 99 t.replace(0,MHPath.length(),"");
99 folders->append(new MHFolder(t,MHPath)); 100 folders->append(new MHFolder(t,MHPath));
100 } 101 }
101 mail_list_free(flist); 102 mail_list_free(flist);
102 return folders; 103 return folders;
103} 104}
104 105
105void MHwrapper::deleteMail(const RecMailP&mail) 106void MHwrapper::deleteMail(const RecMailP&mail)
diff --git a/noncore/net/mail/libmailwrapper/nntpwrapper.cpp b/noncore/net/mail/libmailwrapper/nntpwrapper.cpp
index 5d5011a..c99b97c 100644
--- a/noncore/net/mail/libmailwrapper/nntpwrapper.cpp
+++ b/noncore/net/mail/libmailwrapper/nntpwrapper.cpp
@@ -1,106 +1,107 @@
1#include "nntpwrapper.h" 1#include "nntpwrapper.h"
2#include "logindialog.h" 2#include "logindialog.h"
3#include "mailtypes.h" 3#include "mailtypes.h"
4 4
5#include <qfile.h> 5#include <qfile.h>
6 6
7#include <stdlib.h> 7#include <stdlib.h>
8 8
9#include <libetpan/libetpan.h> 9#include <libetpan/libetpan.h>
10 10
11#include <opie2/odebug.h>
11 12
12#define HARD_MSG_SIZE_LIMIT 5242880 13#define HARD_MSG_SIZE_LIMIT 5242880
13 14
14using namespace Opie::Core; 15using namespace Opie::Core;
15NNTPwrapper::NNTPwrapper( NNTPaccount *a ) 16NNTPwrapper::NNTPwrapper( NNTPaccount *a )
16: Genericwrapper() { 17: Genericwrapper() {
17 account = a; 18 account = a;
18 m_nntp = NULL; 19 m_nntp = NULL;
19 msgTempName = a->getFileName()+"_msg_cache"; 20 msgTempName = a->getFileName()+"_msg_cache";
20 last_msg_id = 0; 21 last_msg_id = 0;
21} 22}
22 23
23NNTPwrapper::~NNTPwrapper() { 24NNTPwrapper::~NNTPwrapper() {
24 logout(); 25 logout();
25 QFile msg_cache(msgTempName); 26 QFile msg_cache(msgTempName);
26 if (msg_cache.exists()) { 27 if (msg_cache.exists()) {
27 msg_cache.remove(); 28 msg_cache.remove();
28 } 29 }
29} 30}
30 31
31void NNTPwrapper::nntp_progress( size_t current, size_t maximum ) { 32void NNTPwrapper::nntp_progress( size_t current, size_t maximum ) {
32 odebug << "NNTP: " << current << " of " << maximum << "" << oendl; 33 odebug << "NNTP: " << current << " of " << maximum << "" << oendl;
33} 34}
34 35
35 36
36RecBodyP NNTPwrapper::fetchBody( const RecMailP &mail ) { 37RecBodyP NNTPwrapper::fetchBody( const RecMailP &mail ) {
37 int err = NEWSNNTP_NO_ERROR; 38 int err = NEWSNNTP_NO_ERROR;
38 char *message = 0; 39 char *message = 0;
39 size_t length = 0; 40 size_t length = 0;
40 41
41 RecBodyP body = new RecBody(); 42 RecBodyP body = new RecBody();
42 login(); 43 login();
43 if ( !m_nntp ) { 44 if ( !m_nntp ) {
44 return body; 45 return body;
45 } 46 }
46 47
47 mailmessage * mailmsg; 48 mailmessage * mailmsg;
48 if (mail->Msgsize()>HARD_MSG_SIZE_LIMIT) { 49 if (mail->Msgsize()>HARD_MSG_SIZE_LIMIT) {
49 odebug << "Message to large: " << mail->Msgsize() << "" << oendl; 50 odebug << "Message to large: " << mail->Msgsize() << "" << oendl;
50 return body; 51 return body;
51 } 52 }
52 53
53 QFile msg_cache(msgTempName); 54 QFile msg_cache(msgTempName);
54 55
55 cleanMimeCache(); 56 cleanMimeCache();
56 57
57 if (mail->getNumber()!=last_msg_id) { 58 if (mail->getNumber()!=last_msg_id) {
58 if (msg_cache.exists()) { 59 if (msg_cache.exists()) {
59 msg_cache.remove(); 60 msg_cache.remove();
60 } 61 }
61 msg_cache.open(IO_ReadWrite|IO_Truncate); 62 msg_cache.open(IO_ReadWrite|IO_Truncate);
62 last_msg_id = mail->getNumber(); 63 last_msg_id = mail->getNumber();
63 err = mailsession_get_message(m_nntp->sto_session, mail->getNumber(), &mailmsg); 64 err = mailsession_get_message(m_nntp->sto_session, mail->getNumber(), &mailmsg);
64 err = mailmessage_fetch(mailmsg,&message,&length); 65 err = mailmessage_fetch(mailmsg,&message,&length);
65 msg_cache.writeBlock(message,length); 66 msg_cache.writeBlock(message,length);
66 } else { 67 } else {
67 QString msg=""; 68 QString msg="";
68 msg_cache.open(IO_ReadOnly); 69 msg_cache.open(IO_ReadOnly);
69 message = new char[4096]; 70 message = new char[4096];
70 memset(message,0,4096); 71 memset(message,0,4096);
71 while (msg_cache.readBlock(message,4095)>0) { 72 while (msg_cache.readBlock(message,4095)>0) {
72 msg+=message; 73 msg+=message;
73 memset(message,0,4096); 74 memset(message,0,4096);
74 } 75 }
75 delete message; 76 delete message;
76 message = (char*)malloc(msg.length()+1*sizeof(char)); 77 message = (char*)malloc(msg.length()+1*sizeof(char));
77 memset(message,0,msg.length()+1); 78 memset(message,0,msg.length()+1);
78 memcpy(message,msg.latin1(),msg.length()); 79 memcpy(message,msg.latin1(),msg.length());
79 /* transform to libetpan stuff */ 80 /* transform to libetpan stuff */
80 mailmsg = mailmessage_new(); 81 mailmsg = mailmessage_new();
81 mailmessage_init(mailmsg, NULL, data_message_driver, 0, strlen(message)); 82 mailmessage_init(mailmsg, NULL, data_message_driver, 0, strlen(message));
82 generic_message_t * msg_data; 83 generic_message_t * msg_data;
83 msg_data = (generic_message_t *)mailmsg->msg_data; 84 msg_data = (generic_message_t *)mailmsg->msg_data;
84 msg_data->msg_fetched = 1; 85 msg_data->msg_fetched = 1;
85 msg_data->msg_message = message; 86 msg_data->msg_message = message;
86 msg_data->msg_length = strlen(message); 87 msg_data->msg_length = strlen(message);
87 } 88 }
88 body = parseMail(mailmsg); 89 body = parseMail(mailmsg);
89 90
90 /* clean up */ 91 /* clean up */
91 if (mailmsg) 92 if (mailmsg)
92 mailmessage_free(mailmsg); 93 mailmessage_free(mailmsg);
93 if (message) 94 if (message)
94 free(message); 95 free(message);
95 96
96 return body; 97 return body;
97} 98}
98 99
99 100
100void NNTPwrapper::listMessages(const QString & which, QValueList<Opie::Core::OSmartPointer<RecMail> > &target ) 101void NNTPwrapper::listMessages(const QString & which, QValueList<Opie::Core::OSmartPointer<RecMail> > &target )
101{ 102{
102 login(); 103 login();
103 if (!m_nntp) 104 if (!m_nntp)
104 return; 105 return;
105 uint32_t res_messages,res_recent,res_unseen; 106 uint32_t res_messages,res_recent,res_unseen;
106 mailsession_status_folder(m_nntp->sto_session,(char*)which.latin1(),&res_messages,&res_recent,&res_unseen); 107 mailsession_status_folder(m_nntp->sto_session,(char*)which.latin1(),&res_messages,&res_recent,&res_unseen);
diff --git a/noncore/net/mail/libmailwrapper/pop3wrapper.cpp b/noncore/net/mail/libmailwrapper/pop3wrapper.cpp
index c586c29..3cfd1ee 100644
--- a/noncore/net/mail/libmailwrapper/pop3wrapper.cpp
+++ b/noncore/net/mail/libmailwrapper/pop3wrapper.cpp
@@ -1,104 +1,105 @@
1#include <stdlib.h> 1#include <stdlib.h>
2#include "pop3wrapper.h" 2#include "pop3wrapper.h"
3#include "mailtypes.h" 3#include "mailtypes.h"
4#include "logindialog.h" 4#include "logindialog.h"
5#include <libetpan/libetpan.h> 5#include <libetpan/libetpan.h>
6
7#include <opie2/odebug.h>
6#include <qpe/global.h> 8#include <qpe/global.h>
7#include <qfile.h> 9#include <qfile.h>
8//#include <qstring.h>
9 10
10/* we don't fetch messages larger than 5 MB */ 11/* we don't fetch messages larger than 5 MB */
11#define HARD_MSG_SIZE_LIMIT 5242880 12#define HARD_MSG_SIZE_LIMIT 5242880
12 13
13using namespace Opie::Core; 14using namespace Opie::Core;
14POP3wrapper::POP3wrapper( POP3account *a ) 15POP3wrapper::POP3wrapper( POP3account *a )
15: Genericwrapper() { 16: Genericwrapper() {
16 account = a; 17 account = a;
17 m_pop3 = NULL; 18 m_pop3 = NULL;
18 msgTempName = a->getFileName()+"_msg_cache"; 19 msgTempName = a->getFileName()+"_msg_cache";
19 last_msg_id = 0; 20 last_msg_id = 0;
20} 21}
21 22
22POP3wrapper::~POP3wrapper() { 23POP3wrapper::~POP3wrapper() {
23 logout(); 24 logout();
24 QFile msg_cache(msgTempName); 25 QFile msg_cache(msgTempName);
25 if (msg_cache.exists()) { 26 if (msg_cache.exists()) {
26 msg_cache.remove(); 27 msg_cache.remove();
27 } 28 }
28} 29}
29 30
30void POP3wrapper::pop3_progress( size_t current, size_t maximum ) { 31void POP3wrapper::pop3_progress( size_t current, size_t maximum ) {
31 odebug << "POP3: " << current << " of " << maximum << "" << oendl; 32 odebug << "POP3: " << current << " of " << maximum << "" << oendl;
32} 33}
33 34
34RecBodyP POP3wrapper::fetchBody( const RecMailP &mail ) { 35RecBodyP POP3wrapper::fetchBody( const RecMailP &mail ) {
35 int err = MAILPOP3_NO_ERROR; 36 int err = MAILPOP3_NO_ERROR;
36 char *message = 0; 37 char *message = 0;
37 size_t length = 0; 38 size_t length = 0;
38 39
39 RecBodyP body = new RecBody(); 40 RecBodyP body = new RecBody();
40 41
41 login(); 42 login();
42 if ( !m_pop3 ) { 43 if ( !m_pop3 ) {
43 return body; 44 return body;
44 } 45 }
45 46
46 mailmessage * mailmsg; 47 mailmessage * mailmsg;
47 if (mail->Msgsize()>HARD_MSG_SIZE_LIMIT) { 48 if (mail->Msgsize()>HARD_MSG_SIZE_LIMIT) {
48 odebug << "Message to large: " << mail->Msgsize() << "" << oendl; 49 odebug << "Message to large: " << mail->Msgsize() << "" << oendl;
49 return body; 50 return body;
50 } 51 }
51 52
52 QFile msg_cache(msgTempName); 53 QFile msg_cache(msgTempName);
53 54
54 cleanMimeCache(); 55 cleanMimeCache();
55 56
56 if (mail->getNumber()!=last_msg_id) { 57 if (mail->getNumber()!=last_msg_id) {
57 if (msg_cache.exists()) { 58 if (msg_cache.exists()) {
58 msg_cache.remove(); 59 msg_cache.remove();
59 } 60 }
60 msg_cache.open(IO_ReadWrite|IO_Truncate); 61 msg_cache.open(IO_ReadWrite|IO_Truncate);
61 last_msg_id = mail->getNumber(); 62 last_msg_id = mail->getNumber();
62 err = mailsession_get_message(m_pop3->sto_session, mail->getNumber(), &mailmsg); 63 err = mailsession_get_message(m_pop3->sto_session, mail->getNumber(), &mailmsg);
63 err = mailmessage_fetch(mailmsg,&message,&length); 64 err = mailmessage_fetch(mailmsg,&message,&length);
64 msg_cache.writeBlock(message,length); 65 msg_cache.writeBlock(message,length);
65 } else { 66 } else {
66 QString msg=""; 67 QString msg="";
67 msg_cache.open(IO_ReadOnly); 68 msg_cache.open(IO_ReadOnly);
68 message = new char[4096]; 69 message = new char[4096];
69 memset(message,0,4096); 70 memset(message,0,4096);
70 while (msg_cache.readBlock(message,4095)>0) { 71 while (msg_cache.readBlock(message,4095)>0) {
71 msg+=message; 72 msg+=message;
72 memset(message,0,4096); 73 memset(message,0,4096);
73 } 74 }
74 delete message; 75 delete message;
75 message = (char*)malloc(msg.length()+1*sizeof(char)); 76 message = (char*)malloc(msg.length()+1*sizeof(char));
76 memset(message,0,msg.length()+1); 77 memset(message,0,msg.length()+1);
77 memcpy(message,msg.latin1(),msg.length()); 78 memcpy(message,msg.latin1(),msg.length());
78 /* transform to libetpan stuff */ 79 /* transform to libetpan stuff */
79 mailmsg = mailmessage_new(); 80 mailmsg = mailmessage_new();
80 mailmessage_init(mailmsg, NULL, data_message_driver, 0, strlen(message)); 81 mailmessage_init(mailmsg, NULL, data_message_driver, 0, strlen(message));
81 generic_message_t * msg_data; 82 generic_message_t * msg_data;
82 msg_data = (generic_message_t *)mailmsg->msg_data; 83 msg_data = (generic_message_t *)mailmsg->msg_data;
83 msg_data->msg_fetched = 1; 84 msg_data->msg_fetched = 1;
84 msg_data->msg_message = message; 85 msg_data->msg_message = message;
85 msg_data->msg_length = strlen(message); 86 msg_data->msg_length = strlen(message);
86 } 87 }
87 body = parseMail(mailmsg); 88 body = parseMail(mailmsg);
88 89
89 /* clean up */ 90 /* clean up */
90 if (mailmsg) 91 if (mailmsg)
91 mailmessage_free(mailmsg); 92 mailmessage_free(mailmsg);
92 if (message) 93 if (message)
93 free(message); 94 free(message);
94 95
95 return body; 96 return body;
96} 97}
97 98
98void POP3wrapper::listMessages(const QString &, QValueList<Opie::Core::OSmartPointer<RecMail> > &target ) 99void POP3wrapper::listMessages(const QString &, QValueList<Opie::Core::OSmartPointer<RecMail> > &target )
99{ 100{
100 login(); 101 login();
101 if (!m_pop3) 102 if (!m_pop3)
102 return; 103 return;
103 uint32_t res_messages,res_recent,res_unseen; 104 uint32_t res_messages,res_recent,res_unseen;
104 mailsession_status_folder(m_pop3->sto_session,"INBOX",&res_messages,&res_recent,&res_unseen); 105 mailsession_status_folder(m_pop3->sto_session,"INBOX",&res_messages,&res_recent,&res_unseen);
diff --git a/noncore/net/mail/libmailwrapper/settings.cpp b/noncore/net/mail/libmailwrapper/settings.cpp
index de36eeb..3c9b25c 100644
--- a/noncore/net/mail/libmailwrapper/settings.cpp
+++ b/noncore/net/mail/libmailwrapper/settings.cpp
@@ -1,99 +1,100 @@
1#include <stdlib.h> 1#include <stdlib.h>
2#include <qdir.h> 2#include <qdir.h>
3 3
4#include <opie2/odebug.h>
4#include <qpe/config.h> 5#include <qpe/config.h>
5 6
6#include "settings.h" 7#include "settings.h"
7//#include "defines.h" 8//#include "defines.h"
8 9
9#define IMAP_PORT "143" 10#define IMAP_PORT "143"
10#define IMAP_SSL_PORT "993" 11#define IMAP_SSL_PORT "993"
11#define SMTP_PORT "25" 12#define SMTP_PORT "25"
12#define SMTP_SSL_PORT "465" 13#define SMTP_SSL_PORT "465"
13#define POP3_PORT "110" 14#define POP3_PORT "110"
14#define POP3_SSL_PORT "995" 15#define POP3_SSL_PORT "995"
15#define NNTP_PORT "119" 16#define NNTP_PORT "119"
16#define NNTP_SSL_PORT "563" 17#define NNTP_SSL_PORT "563"
17 18
18 19
19Settings::Settings() 20Settings::Settings()
20 : QObject() 21 : QObject()
21{ 22{
22 updateAccounts(); 23 updateAccounts();
23} 24}
24 25
25void Settings::checkDirectory() 26void Settings::checkDirectory()
26{ 27{
27 if ( !QDir( (QString) getenv( "HOME" ) + "/Applications/opiemail/" ).exists() ) { 28 if ( !QDir( (QString) getenv( "HOME" ) + "/Applications/opiemail/" ).exists() ) {
28 system( "mkdir -p $HOME/Applications/opiemail" ); 29 system( "mkdir -p $HOME/Applications/opiemail" );
29 odebug << "$HOME/Applications/opiemail created" << oendl; 30 odebug << "$HOME/Applications/opiemail created" << oendl;
30 } 31 }
31} 32}
32 33
33QList<Account> Settings::getAccounts() 34QList<Account> Settings::getAccounts()
34{ 35{
35 return accounts; 36 return accounts;
36} 37}
37 38
38void Settings::addAccount( Account *account ) 39void Settings::addAccount( Account *account )
39{ 40{
40 accounts.append( account ); 41 accounts.append( account );
41} 42}
42 43
43void Settings::delAccount( Account *account ) 44void Settings::delAccount( Account *account )
44{ 45{
45 accounts.remove( account ); 46 accounts.remove( account );
46 account->remove(); 47 account->remove();
47} 48}
48 49
49void Settings::updateAccounts() 50void Settings::updateAccounts()
50{ 51{
51 accounts.clear(); 52 accounts.clear();
52 QDir dir( (QString) getenv( "HOME" ) + "/Applications/opiemail" ); 53 QDir dir( (QString) getenv( "HOME" ) + "/Applications/opiemail" );
53 QStringList::Iterator it; 54 QStringList::Iterator it;
54 55
55 QStringList imap = dir.entryList( "imap-*" ); 56 QStringList imap = dir.entryList( "imap-*" );
56 for ( it = imap.begin(); it != imap.end(); it++ ) { 57 for ( it = imap.begin(); it != imap.end(); it++ ) {
57 odebug << "Added IMAP account" << oendl; 58 odebug << "Added IMAP account" << oendl;
58 IMAPaccount *account = new IMAPaccount( (*it).replace(0, 5, "") ); 59 IMAPaccount *account = new IMAPaccount( (*it).replace(0, 5, "") );
59 accounts.append( account ); 60 accounts.append( account );
60 } 61 }
61 62
62 QStringList pop3 = dir.entryList( "pop3-*" ); 63 QStringList pop3 = dir.entryList( "pop3-*" );
63 for ( it = pop3.begin(); it != pop3.end(); it++ ) { 64 for ( it = pop3.begin(); it != pop3.end(); it++ ) {
64 odebug << "Added POP account" << oendl; 65 odebug << "Added POP account" << oendl;
65 POP3account *account = new POP3account( (*it).replace(0, 5, "") ); 66 POP3account *account = new POP3account( (*it).replace(0, 5, "") );
66 accounts.append( account ); 67 accounts.append( account );
67 } 68 }
68 69
69 QStringList smtp = dir.entryList( "smtp-*" ); 70 QStringList smtp = dir.entryList( "smtp-*" );
70 for ( it = smtp.begin(); it != smtp.end(); it++ ) { 71 for ( it = smtp.begin(); it != smtp.end(); it++ ) {
71 odebug << "Added SMTP account" << oendl; 72 odebug << "Added SMTP account" << oendl;
72 SMTPaccount *account = new SMTPaccount( (*it).replace(0, 5, "") ); 73 SMTPaccount *account = new SMTPaccount( (*it).replace(0, 5, "") );
73 accounts.append( account ); 74 accounts.append( account );
74 } 75 }
75 76
76 QStringList nntp = dir.entryList( "nntp-*" ); 77 QStringList nntp = dir.entryList( "nntp-*" );
77 for ( it = nntp.begin(); it != nntp.end(); it++ ) { 78 for ( it = nntp.begin(); it != nntp.end(); it++ ) {
78 odebug << "Added NNTP account" << oendl; 79 odebug << "Added NNTP account" << oendl;
79 NNTPaccount *account = new NNTPaccount( (*it).replace(0, 5, "") ); 80 NNTPaccount *account = new NNTPaccount( (*it).replace(0, 5, "") );
80 accounts.append( account ); 81 accounts.append( account );
81 } 82 }
82 83
83 readAccounts(); 84 readAccounts();
84} 85}
85 86
86void Settings::saveAccounts() 87void Settings::saveAccounts()
87{ 88{
88 checkDirectory(); 89 checkDirectory();
89 Account *it; 90 Account *it;
90 91
91 for ( it = accounts.first(); it; it = accounts.next() ) { 92 for ( it = accounts.first(); it; it = accounts.next() ) {
92 it->save(); 93 it->save();
93 } 94 }
94} 95}
95 96
96void Settings::readAccounts() 97void Settings::readAccounts()
97{ 98{
98 checkDirectory(); 99 checkDirectory();
99 Account *it; 100 Account *it;
diff --git a/noncore/net/mail/libmailwrapper/smtpwrapper.cpp b/noncore/net/mail/libmailwrapper/smtpwrapper.cpp
index ba78c3b..db7a8ee 100644
--- a/noncore/net/mail/libmailwrapper/smtpwrapper.cpp
+++ b/noncore/net/mail/libmailwrapper/smtpwrapper.cpp
@@ -1,103 +1,104 @@
1#include "smtpwrapper.h" 1#include "smtpwrapper.h"
2#include "mailwrapper.h" 2#include "mailwrapper.h"
3#include "abstractmail.h" 3#include "abstractmail.h"
4#include "logindialog.h" 4#include "logindialog.h"
5#include "mailtypes.h" 5#include "mailtypes.h"
6#include "sendmailprogress.h" 6#include "sendmailprogress.h"
7 7
8#include <opie2/odebug.h>
8#include <qt.h> 9#include <qt.h>
9 10
10#include <qpe/config.h> 11#include <qpe/config.h>
11#include <qpe/qcopenvelope_qws.h> 12#include <qpe/qcopenvelope_qws.h>
12 13
13#include <libetpan/libetpan.h> 14#include <libetpan/libetpan.h>
14 15
15 16
16using namespace Opie::Core; 17using namespace Opie::Core;
17progressMailSend*SMTPwrapper::sendProgress = 0; 18progressMailSend*SMTPwrapper::sendProgress = 0;
18 19
19SMTPwrapper::SMTPwrapper(SMTPaccount * aSmtp ) 20SMTPwrapper::SMTPwrapper(SMTPaccount * aSmtp )
20 : Generatemail() 21 : Generatemail()
21{ 22{
22 m_SmtpAccount = aSmtp; 23 m_SmtpAccount = aSmtp;
23 Config cfg( "mail" ); 24 Config cfg( "mail" );
24 cfg.setGroup( "Status" ); 25 cfg.setGroup( "Status" );
25 m_queuedMail = cfg.readNumEntry( "outgoing", 0 ); 26 m_queuedMail = cfg.readNumEntry( "outgoing", 0 );
26 emit queuedMails( m_queuedMail ); 27 emit queuedMails( m_queuedMail );
27 connect( this, SIGNAL( queuedMails(int) ), this, SLOT( emitQCop(int) ) ); 28 connect( this, SIGNAL( queuedMails(int) ), this, SLOT( emitQCop(int) ) );
28 m_smtp = 0; 29 m_smtp = 0;
29} 30}
30 31
31SMTPwrapper::~SMTPwrapper() 32SMTPwrapper::~SMTPwrapper()
32{ 33{
33 disc_server(); 34 disc_server();
34} 35}
35 36
36void SMTPwrapper::emitQCop( int queued ) { 37void SMTPwrapper::emitQCop( int queued ) {
37 QCopEnvelope env( "QPE/Pim", "outgoingMails(int)" ); 38 QCopEnvelope env( "QPE/Pim", "outgoingMails(int)" );
38 env << queued; 39 env << queued;
39} 40}
40 41
41QString SMTPwrapper::mailsmtpError( int errnum ) { 42QString SMTPwrapper::mailsmtpError( int errnum ) {
42 switch ( errnum ) { 43 switch ( errnum ) {
43 case MAILSMTP_NO_ERROR: 44 case MAILSMTP_NO_ERROR:
44 return tr( "No error" ); 45 return tr( "No error" );
45 case MAILSMTP_ERROR_UNEXPECTED_CODE: 46 case MAILSMTP_ERROR_UNEXPECTED_CODE:
46 return tr( "Unexpected error code" ); 47 return tr( "Unexpected error code" );
47 case MAILSMTP_ERROR_SERVICE_NOT_AVAILABLE: 48 case MAILSMTP_ERROR_SERVICE_NOT_AVAILABLE:
48 return tr( "Service not available" ); 49 return tr( "Service not available" );
49 case MAILSMTP_ERROR_STREAM: 50 case MAILSMTP_ERROR_STREAM:
50 return tr( "Stream error" ); 51 return tr( "Stream error" );
51 case MAILSMTP_ERROR_HOSTNAME: 52 case MAILSMTP_ERROR_HOSTNAME:
52 return tr( "gethostname() failed" ); 53 return tr( "gethostname() failed" );
53 case MAILSMTP_ERROR_NOT_IMPLEMENTED: 54 case MAILSMTP_ERROR_NOT_IMPLEMENTED:
54 return tr( "Not implemented" ); 55 return tr( "Not implemented" );
55 case MAILSMTP_ERROR_ACTION_NOT_TAKEN: 56 case MAILSMTP_ERROR_ACTION_NOT_TAKEN:
56 return tr( "Error, action not taken" ); 57 return tr( "Error, action not taken" );
57 case MAILSMTP_ERROR_EXCEED_STORAGE_ALLOCATION: 58 case MAILSMTP_ERROR_EXCEED_STORAGE_ALLOCATION:
58 return tr( "Data exceeds storage allocation" ); 59 return tr( "Data exceeds storage allocation" );
59 case MAILSMTP_ERROR_IN_PROCESSING: 60 case MAILSMTP_ERROR_IN_PROCESSING:
60 return tr( "Error in processing" ); 61 return tr( "Error in processing" );
61 case MAILSMTP_ERROR_STARTTLS_NOT_SUPPORTED: 62 case MAILSMTP_ERROR_STARTTLS_NOT_SUPPORTED:
62 return tr( "Starttls not supported" ); 63 return tr( "Starttls not supported" );
63 // case MAILSMTP_ERROR_INSUFFISANT_SYSTEM_STORAGE: 64 // case MAILSMTP_ERROR_INSUFFISANT_SYSTEM_STORAGE:
64 // return tr( "Insufficient system storage" ); 65 // return tr( "Insufficient system storage" );
65 case MAILSMTP_ERROR_MAILBOX_UNAVAILABLE: 66 case MAILSMTP_ERROR_MAILBOX_UNAVAILABLE:
66 return tr( "Mailbox unavailable" ); 67 return tr( "Mailbox unavailable" );
67 case MAILSMTP_ERROR_MAILBOX_NAME_NOT_ALLOWED: 68 case MAILSMTP_ERROR_MAILBOX_NAME_NOT_ALLOWED:
68 return tr( "Mailbox name not allowed" ); 69 return tr( "Mailbox name not allowed" );
69 case MAILSMTP_ERROR_BAD_SEQUENCE_OF_COMMAND: 70 case MAILSMTP_ERROR_BAD_SEQUENCE_OF_COMMAND:
70 return tr( "Bad command sequence" ); 71 return tr( "Bad command sequence" );
71 case MAILSMTP_ERROR_USER_NOT_LOCAL: 72 case MAILSMTP_ERROR_USER_NOT_LOCAL:
72 return tr( "User not local" ); 73 return tr( "User not local" );
73 case MAILSMTP_ERROR_TRANSACTION_FAILED: 74 case MAILSMTP_ERROR_TRANSACTION_FAILED:
74 return tr( "Transaction failed" ); 75 return tr( "Transaction failed" );
75 case MAILSMTP_ERROR_MEMORY: 76 case MAILSMTP_ERROR_MEMORY:
76 return tr( "Memory error" ); 77 return tr( "Memory error" );
77 case MAILSMTP_ERROR_CONNECTION_REFUSED: 78 case MAILSMTP_ERROR_CONNECTION_REFUSED:
78 return tr( "Connection refused" ); 79 return tr( "Connection refused" );
79 default: 80 default:
80 return tr( "Unknown error code" ); 81 return tr( "Unknown error code" );
81 } 82 }
82} 83}
83 84
84 85
85void SMTPwrapper::progress( size_t current, size_t maximum ) { 86void SMTPwrapper::progress( size_t current, size_t maximum ) {
86 if (SMTPwrapper::sendProgress) { 87 if (SMTPwrapper::sendProgress) {
87 SMTPwrapper::sendProgress->setSingleMail(current, maximum ); 88 SMTPwrapper::sendProgress->setSingleMail(current, maximum );
88 qApp->processEvents(); 89 qApp->processEvents();
89 } 90 }
90} 91}
91 92
92void SMTPwrapper::storeMail(const char*mail, size_t length, const QString&box) { 93void SMTPwrapper::storeMail(const char*mail, size_t length, const QString&box) {
93 if (!mail) 94 if (!mail)
94 return; 95 return;
95 QString localfolders = AbstractMail::defaultLocalfolder(); 96 QString localfolders = AbstractMail::defaultLocalfolder();
96 AbstractMail*wrap = AbstractMail::getWrapper(localfolders); 97 AbstractMail*wrap = AbstractMail::getWrapper(localfolders);
97 wrap->createMbox(box); 98 wrap->createMbox(box);
98 wrap->storeMessage(mail,length,box); 99 wrap->storeMessage(mail,length,box);
99 delete wrap; 100 delete wrap;
100} 101}
101 102
102void SMTPwrapper::smtpSend( mailmime *mail,bool later) { 103void SMTPwrapper::smtpSend( mailmime *mail,bool later) {
103 clist *rcpts = 0; 104 clist *rcpts = 0;
diff --git a/noncore/net/mail/libmailwrapper/statusmail.cpp b/noncore/net/mail/libmailwrapper/statusmail.cpp
index 51383f6..7e14df3 100644
--- a/noncore/net/mail/libmailwrapper/statusmail.cpp
+++ b/noncore/net/mail/libmailwrapper/statusmail.cpp
@@ -1,90 +1,94 @@
1#include "statusmail.h" 1#include "statusmail.h"
2 2
3#include <opie2/odebug.h>
4
5using namespace Opie::Core;
6
3StatusMail::StatusMail(QList<Account>&list) 7StatusMail::StatusMail(QList<Account>&list)
4{ 8{
5 currentImapStat.message_count=0; 9 currentImapStat.message_count=0;
6 currentImapStat.message_unseen=0; 10 currentImapStat.message_unseen=0;
7 currentImapStat.message_recent=0; 11 currentImapStat.message_recent=0;
8 lastPop3Stat = currentImapStat; 12 lastPop3Stat = currentImapStat;
9 currentPop3Stat = currentImapStat; 13 currentPop3Stat = currentImapStat;
10 connectionList.setAutoDelete(true); 14 connectionList.setAutoDelete(true);
11 connectionList.clear(); 15 connectionList.clear();
12 initAccounts(list); 16 initAccounts(list);
13} 17}
14 18
15StatusMail::~StatusMail() 19StatusMail::~StatusMail()
16{ 20{
17} 21}
18 22
19void StatusMail::initAccounts(QList<Account>&accounts) 23void StatusMail::initAccounts(QList<Account>&accounts)
20{ 24{
21 25
22 Account *it; 26 Account *it;
23 folderStat currentStat; 27 folderStat currentStat;
24 AbstractMail * current = 0; 28 AbstractMail * current = 0;
25 currentPop3Stat.message_count=0; 29 currentPop3Stat.message_count=0;
26 currentPop3Stat.message_recent=0; 30 currentPop3Stat.message_recent=0;
27 currentPop3Stat.message_unseen=0; 31 currentPop3Stat.message_unseen=0;
28 for ( it = accounts.first(); it; it = accounts.next() ) { 32 for ( it = accounts.first(); it; it = accounts.next() ) {
29 if ( it->getType()==MAILLIB::A_IMAP && !it->getOffline() ) { 33 if ( it->getType()==MAILLIB::A_IMAP && !it->getOffline() ) {
30 IMAPaccount*ima = static_cast<IMAPaccount *>(it); 34 IMAPaccount*ima = static_cast<IMAPaccount *>(it);
31 current = AbstractMail::getWrapper(ima); 35 current = AbstractMail::getWrapper(ima);
32 connectionList.append(current); 36 connectionList.append(current);
33 current->statusFolder(currentStat); 37 current->statusFolder(currentStat);
34 currentImapStat.message_count+=currentStat.message_unseen; 38 currentImapStat.message_count+=currentStat.message_unseen;
35 currentImapStat.message_count+=currentStat.message_recent; 39 currentImapStat.message_count+=currentStat.message_recent;
36 currentImapStat.message_count+=currentStat.message_count; 40 currentImapStat.message_count+=currentStat.message_count;
37 } else if ( it->getType() == MAILLIB::A_POP3 && !it->getOffline() ) { 41 } else if ( it->getType() == MAILLIB::A_POP3 && !it->getOffline() ) {
38 POP3account *pop3 = static_cast<POP3account *>(it); 42 POP3account *pop3 = static_cast<POP3account *>(it);
39 current = AbstractMail::getWrapper(pop3); 43 current = AbstractMail::getWrapper(pop3);
40 connectionList.append(current); 44 connectionList.append(current);
41 current->statusFolder(currentStat); 45 current->statusFolder(currentStat);
42 currentPop3Stat.message_count+=currentStat.message_count; 46 currentPop3Stat.message_count+=currentStat.message_count;
43 } 47 }
44 current->logout(); 48 current->logout();
45 } 49 }
46 odebug << "Pop3 init count: " << currentPop3Stat.message_count << "" << oendl; 50 odebug << "Pop3 init count: " << currentPop3Stat.message_count << "" << oendl;
47 currentPop3Stat.message_recent = currentPop3Stat.message_unseen = 0; 51 currentPop3Stat.message_recent = currentPop3Stat.message_unseen = 0;
48 lastPop3Stat.message_unseen = currentPop3Stat.message_unseen; 52 lastPop3Stat.message_unseen = currentPop3Stat.message_unseen;
49 lastPop3Stat.message_recent = currentPop3Stat.message_recent; 53 lastPop3Stat.message_recent = currentPop3Stat.message_recent;
50 lastPop3Stat.message_count = currentPop3Stat.message_count; 54 lastPop3Stat.message_count = currentPop3Stat.message_count;
51} 55}
52 56
53void StatusMail::reset_status() 57void StatusMail::reset_status()
54{ 58{
55 lastPop3Stat = currentPop3Stat; 59 lastPop3Stat = currentPop3Stat;
56} 60}
57 61
58void StatusMail::check_current_stat(folderStat&targetStat) 62void StatusMail::check_current_stat(folderStat&targetStat)
59{ 63{
60 AbstractMail*it = 0; 64 AbstractMail*it = 0;
61 folderStat currentStat; 65 folderStat currentStat;
62 currentPop3Stat.message_recent = 0; 66 currentPop3Stat.message_recent = 0;
63 currentPop3Stat.message_count = 0; 67 currentPop3Stat.message_count = 0;
64 currentPop3Stat.message_unseen = 0; 68 currentPop3Stat.message_unseen = 0;
65 currentImapStat = currentPop3Stat; 69 currentImapStat = currentPop3Stat;
66 for ( it = connectionList.first(); it; it = connectionList.next() ) { 70 for ( it = connectionList.first(); it; it = connectionList.next() ) {
67 it->statusFolder(currentStat); 71 it->statusFolder(currentStat);
68 it->logout(); 72 it->logout();
69 if (it->getType() == MAILLIB::A_IMAP) { 73 if (it->getType() == MAILLIB::A_IMAP) {
70 currentImapStat.message_unseen+=currentStat.message_unseen; 74 currentImapStat.message_unseen+=currentStat.message_unseen;
71 currentImapStat.message_recent+=currentStat.message_recent; 75 currentImapStat.message_recent+=currentStat.message_recent;
72 currentImapStat.message_count+=currentStat.message_count; 76 currentImapStat.message_count+=currentStat.message_count;
73 } else if (it->getType() == MAILLIB::A_POP3) { 77 } else if (it->getType() == MAILLIB::A_POP3) {
74 currentPop3Stat.message_count+=currentStat.message_count; 78 currentPop3Stat.message_count+=currentStat.message_count;
75 odebug << "Pop3 count: " << currentPop3Stat.message_count << "" << oendl; 79 odebug << "Pop3 count: " << currentPop3Stat.message_count << "" << oendl;
76 } 80 }
77 } 81 }
78 odebug << "Pop3 last: " << lastPop3Stat.message_count << "" << oendl; 82 odebug << "Pop3 last: " << lastPop3Stat.message_count << "" << oendl;
79 if (currentPop3Stat.message_count > lastPop3Stat.message_count) { 83 if (currentPop3Stat.message_count > lastPop3Stat.message_count) {
80 currentPop3Stat.message_recent = currentPop3Stat.message_count - lastPop3Stat.message_count; 84 currentPop3Stat.message_recent = currentPop3Stat.message_count - lastPop3Stat.message_count;
81 currentPop3Stat.message_unseen = currentPop3Stat.message_recent; 85 currentPop3Stat.message_unseen = currentPop3Stat.message_recent;
82 } else { 86 } else {
83 lastPop3Stat.message_count = currentPop3Stat.message_count; 87 lastPop3Stat.message_count = currentPop3Stat.message_count;
84 currentPop3Stat.message_recent = currentPop3Stat.message_unseen = 0; 88 currentPop3Stat.message_recent = currentPop3Stat.message_unseen = 0;
85 } 89 }
86 targetStat = currentImapStat; 90 targetStat = currentImapStat;
87 targetStat.message_unseen+=currentPop3Stat.message_unseen; 91 targetStat.message_unseen+=currentPop3Stat.message_unseen;
88 targetStat.message_recent+=currentPop3Stat.message_recent; 92 targetStat.message_recent+=currentPop3Stat.message_recent;
89 targetStat.message_count+=currentPop3Stat.message_count; 93 targetStat.message_count+=currentPop3Stat.message_count;
90} 94}
diff --git a/noncore/net/mail/libmailwrapper/storemail.cpp b/noncore/net/mail/libmailwrapper/storemail.cpp
index 546d756..4add8a1 100644
--- a/noncore/net/mail/libmailwrapper/storemail.cpp
+++ b/noncore/net/mail/libmailwrapper/storemail.cpp
@@ -1,91 +1,91 @@
1#include "storemail.h" 1#include "storemail.h"
2#include "mailwrapper.h" 2#include "mailwrapper.h"
3#include "settings.h" 3#include "settings.h"
4#include "abstractmail.h" 4#include "abstractmail.h"
5 5
6#include <libetpan/libetpan.h> 6#include <libetpan/libetpan.h>
7 7#include <opie2/odebug.h>
8#include <qstring.h> 8#include <qstring.h>
9 9
10#include <stdlib.h> 10#include <stdlib.h>
11 11
12using namespace Opie::Core; 12using namespace Opie::Core;
13Storemail::Storemail(Account*aAccount,const QString&aFolder) 13Storemail::Storemail(Account*aAccount,const QString&aFolder)
14 : Generatemail() 14 : Generatemail()
15{ 15{
16 wrapper = 0; 16 wrapper = 0;
17 m_Account = aAccount; 17 m_Account = aAccount;
18 m_tfolder = aFolder; 18 m_tfolder = aFolder;
19 wrapper = AbstractMail::getWrapper(m_Account); 19 wrapper = AbstractMail::getWrapper(m_Account);
20 if (wrapper) { 20 if (wrapper) {
21 wrapper->createMbox(m_tfolder); 21 wrapper->createMbox(m_tfolder);
22 } 22 }
23} 23}
24 24
25Storemail::Storemail(const QString&dir,const QString&aFolder) 25Storemail::Storemail(const QString&dir,const QString&aFolder)
26 : Generatemail() 26 : Generatemail()
27{ 27{
28 wrapper = 0; 28 wrapper = 0;
29 m_Account = 0; 29 m_Account = 0;
30 m_tfolder = aFolder; 30 m_tfolder = aFolder;
31 wrapper = AbstractMail::getWrapper(dir); 31 wrapper = AbstractMail::getWrapper(dir);
32 if (wrapper) { 32 if (wrapper) {
33 wrapper->createMbox(m_tfolder); 33 wrapper->createMbox(m_tfolder);
34 } 34 }
35} 35}
36 36
37Storemail::Storemail(const QString&aFolder) 37Storemail::Storemail(const QString&aFolder)
38 : Generatemail() 38 : Generatemail()
39{ 39{
40 wrapper = 0; 40 wrapper = 0;
41 m_Account = 0; 41 m_Account = 0;
42 m_tfolder = aFolder; 42 m_tfolder = aFolder;
43 wrapper = AbstractMail::getWrapper(AbstractMail::defaultLocalfolder()); 43 wrapper = AbstractMail::getWrapper(AbstractMail::defaultLocalfolder());
44 if (wrapper) { 44 if (wrapper) {
45 wrapper->createMbox(m_tfolder); 45 wrapper->createMbox(m_tfolder);
46 } 46 }
47} 47}
48 48
49Storemail::~Storemail() 49Storemail::~Storemail()
50{ 50{
51} 51}
52 52
53int Storemail::storeMail(const Opie::Core::OSmartPointer<Mail>&mail) 53int Storemail::storeMail(const Opie::Core::OSmartPointer<Mail>&mail)
54{ 54{
55 if (!wrapper) return 0; 55 if (!wrapper) return 0;
56 int ret = 1; 56 int ret = 1;
57 57
58 mailmime * mimeMail = 0; 58 mailmime * mimeMail = 0;
59 mimeMail = createMimeMail(mail ); 59 mimeMail = createMimeMail(mail );
60 if ( mimeMail == NULL ) { 60 if ( mimeMail == NULL ) {
61 odebug << "storeMail: error creating mime mail" << oendl; 61 odebug << "storeMail: error creating mime mail" << oendl;
62 return 0; 62 return 0;
63 } 63 }
64 char *data; 64 char *data;
65 size_t size; 65 size_t size;
66 data = 0; 66 data = 0;
67 67
68 mailmessage * msg = 0; 68 mailmessage * msg = 0;
69 msg = mime_message_init(mimeMail); 69 msg = mime_message_init(mimeMail);
70 mime_message_set_tmpdir(msg,getenv( "HOME" )); 70 mime_message_set_tmpdir(msg,getenv( "HOME" ));
71 int r = mailmessage_fetch(msg,&data,&size); 71 int r = mailmessage_fetch(msg,&data,&size);
72 mime_message_detach_mime(msg); 72 mime_message_detach_mime(msg);
73 mailmessage_free(msg); 73 mailmessage_free(msg);
74 msg = 0; 74 msg = 0;
75 if (r != MAIL_NO_ERROR || !data) { 75 if (r != MAIL_NO_ERROR || !data) {
76 odebug << "Error fetching mime..." << oendl; 76 odebug << "Error fetching mime..." << oendl;
77 ret = 0; 77 ret = 0;
78 } 78 }
79 79
80 if (ret) { 80 if (ret) {
81 wrapper->storeMessage(data,size,m_tfolder); 81 wrapper->storeMessage(data,size,m_tfolder);
82 } 82 }
83 83
84 if (data) { 84 if (data) {
85 free(data); 85 free(data);
86 } 86 }
87 if (mimeMail) { 87 if (mimeMail) {
88 mailmime_free( mimeMail ); 88 mailmime_free( mimeMail );
89 } 89 }
90 return ret; 90 return ret;
91} 91}
diff --git a/noncore/net/mail/mainwindow.cpp b/noncore/net/mail/mainwindow.cpp
index 4c87d64..979b73a 100644
--- a/noncore/net/mail/mainwindow.cpp
+++ b/noncore/net/mail/mainwindow.cpp
@@ -1,107 +1,109 @@
1#include <qlabel.h> 1#include <qlabel.h>
2#include <qvbox.h> 2#include <qvbox.h>
3#include <qheader.h> 3#include <qheader.h>
4#include <qtimer.h> 4#include <qtimer.h>
5#include <qlayout.h> 5#include <qlayout.h>
6 6
7#include <opie2/odebug.h>
7#include <qpe/qpeapplication.h> 8#include <qpe/qpeapplication.h>
8 9
9#include "defines.h" 10#include "defines.h"
10#include "mainwindow.h" 11#include "mainwindow.h"
11 12
13using namespace Opie::Core;
12 14
13MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags ) 15MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags )
14 : QMainWindow( parent, name, flags ) 16 : QMainWindow( parent, name, flags )
15{ 17{
16 18
17 setCaption( tr( "Mail" ) ); 19 setCaption( tr( "Mail" ) );
18 setToolBarsMovable( false ); 20 setToolBarsMovable( false );
19 21
20 toolBar = new QToolBar( this ); 22 toolBar = new QToolBar( this );
21 menuBar = new QMenuBar( toolBar ); 23 menuBar = new QMenuBar( toolBar );
22 mailMenu = new QPopupMenu( menuBar ); 24 mailMenu = new QPopupMenu( menuBar );
23 menuBar->insertItem( tr( "Mail" ), mailMenu ); 25 menuBar->insertItem( tr( "Mail" ), mailMenu );
24 settingsMenu = new QPopupMenu( menuBar ); 26 settingsMenu = new QPopupMenu( menuBar );
25 menuBar->insertItem( tr( "Settings" ), settingsMenu ); 27 menuBar->insertItem( tr( "Settings" ), settingsMenu );
26 28
27 addToolBar( toolBar ); 29 addToolBar( toolBar );
28 toolBar->setHorizontalStretchable( true ); 30 toolBar->setHorizontalStretchable( true );
29 31
30 QLabel *spacer = new QLabel( toolBar ); 32 QLabel *spacer = new QLabel( toolBar );
31 spacer->setBackgroundMode( QWidget::PaletteButton ); 33 spacer->setBackgroundMode( QWidget::PaletteButton );
32 toolBar->setStretchableWidget( spacer ); 34 toolBar->setStretchableWidget( spacer );
33 35
34 composeMail = new QAction( tr( "Compose new mail" ), ICON_COMPOSEMAIL, 36 composeMail = new QAction( tr( "Compose new mail" ), ICON_COMPOSEMAIL,
35 0, 0, this ); 37 0, 0, this );
36 composeMail->addTo( toolBar ); 38 composeMail->addTo( toolBar );
37 composeMail->addTo( mailMenu ); 39 composeMail->addTo( mailMenu );
38 40
39 sendQueued = new QAction( tr( "Send queued mails" ), ICON_SENDQUEUED, 41 sendQueued = new QAction( tr( "Send queued mails" ), ICON_SENDQUEUED,
40 0, 0, this ); 42 0, 0, this );
41 sendQueued->addTo( toolBar ); 43 sendQueued->addTo( toolBar );
42 sendQueued->addTo( mailMenu ); 44 sendQueued->addTo( mailMenu );
43 45
44 /* 46 /*
45 syncFolders = new QAction( tr( "Sync mailfolders" ), ICON_SYNC, 47 syncFolders = new QAction( tr( "Sync mailfolders" ), ICON_SYNC,
46 0, 0, this ); 48 0, 0, this );
47 syncFolders->addTo( toolBar ); 49 syncFolders->addTo( toolBar );
48 syncFolders->addTo( mailMenu ); 50 syncFolders->addTo( mailMenu );
49 */ 51 */
50 52
51 showFolders = new QAction( tr( "Show/Hide folders" ), ICON_SHOWFOLDERS, 53 showFolders = new QAction( tr( "Show/Hide folders" ), ICON_SHOWFOLDERS,
52 0, 0, this, 0, true ); 54 0, 0, this, 0, true );
53 showFolders->addTo( toolBar ); 55 showFolders->addTo( toolBar );
54 showFolders->addTo( mailMenu ); 56 showFolders->addTo( mailMenu );
55 showFolders->setOn( true ); 57 showFolders->setOn( true );
56 connect(showFolders, SIGNAL( toggled(bool) ), 58 connect(showFolders, SIGNAL( toggled(bool) ),
57 SLOT( slotShowFolders(bool) ) ); 59 SLOT( slotShowFolders(bool) ) );
58 60
59 /* 61 /*
60 searchMails = new QAction( tr( "Search mails" ), QIconSet( Resource::loadPixmap("find") ), 62 searchMails = new QAction( tr( "Search mails" ), QIconSet( Resource::loadPixmap("find") ),
61 0, 0, this ); 63 0, 0, this );
62 searchMails->addTo( toolBar ); 64 searchMails->addTo( toolBar );
63 searchMails->addTo( mailMenu ); 65 searchMails->addTo( mailMenu );
64 */ 66 */
65 67
66 deleteMails = new QAction(tr("Delete Mail"), QIconSet( Resource::loadPixmap("trash")), 0, 0, this); 68 deleteMails = new QAction(tr("Delete Mail"), QIconSet( Resource::loadPixmap("trash")), 0, 0, this);
67 deleteMails->addTo( toolBar ); 69 deleteMails->addTo( toolBar );
68 deleteMails->addTo( mailMenu ); 70 deleteMails->addTo( mailMenu );
69 connect( deleteMails, SIGNAL( activated() ), 71 connect( deleteMails, SIGNAL( activated() ),
70 SLOT( slotDeleteMail() ) ); 72 SLOT( slotDeleteMail() ) );
71 73
72 editSettings = new QAction( tr( "Edit settings" ), QIconSet( Resource::loadPixmap("SettingsIcon") ) , 74 editSettings = new QAction( tr( "Edit settings" ), QIconSet( Resource::loadPixmap("SettingsIcon") ) ,
73 0, 0, this ); 75 0, 0, this );
74 editSettings->addTo( settingsMenu ); 76 editSettings->addTo( settingsMenu );
75 connect( editSettings, SIGNAL( activated() ), 77 connect( editSettings, SIGNAL( activated() ),
76 SLOT( slotEditSettings() ) ); 78 SLOT( slotEditSettings() ) );
77 editAccounts = new QAction( tr( "Configure accounts" ), QIconSet( Resource::loadPixmap("mail/editaccounts") ) , 79 editAccounts = new QAction( tr( "Configure accounts" ), QIconSet( Resource::loadPixmap("mail/editaccounts") ) ,
78 0, 0, this ); 80 0, 0, this );
79 editAccounts->addTo( settingsMenu ); 81 editAccounts->addTo( settingsMenu );
80 82
81 //setCentralWidget( view ); 83 //setCentralWidget( view );
82 84
83 QVBox* wrapperBox = new QVBox( this ); 85 QVBox* wrapperBox = new QVBox( this );
84 setCentralWidget( wrapperBox ); 86 setCentralWidget( wrapperBox );
85 87
86 QWidget *view = new QWidget( wrapperBox ); 88 QWidget *view = new QWidget( wrapperBox );
87 89
88 layout = new QBoxLayout ( view, QBoxLayout::LeftToRight ); 90 layout = new QBoxLayout ( view, QBoxLayout::LeftToRight );
89 91
90 folderView = new AccountView( view ); 92 folderView = new AccountView( view );
91 folderView->header()->hide(); 93 folderView->header()->hide();
92 folderView->setRootIsDecorated( true ); 94 folderView->setRootIsDecorated( true );
93 folderView->addColumn( tr( "Mailbox" ) ); 95 folderView->addColumn( tr( "Mailbox" ) );
94 96
95 layout->addWidget( folderView ); 97 layout->addWidget( folderView );
96 98
97 mailView = new QListView( view ); 99 mailView = new QListView( view );
98 mailView->addColumn( tr( "" ) ); 100 mailView->addColumn( tr( "" ) );
99 mailView->addColumn( tr( "Subject" ),QListView::Manual ); 101 mailView->addColumn( tr( "Subject" ),QListView::Manual );
100 mailView->addColumn( tr( "Sender" ),QListView::Manual ); 102 mailView->addColumn( tr( "Sender" ),QListView::Manual );
101 mailView->addColumn( tr( "Size" ),QListView::Manual); 103 mailView->addColumn( tr( "Size" ),QListView::Manual);
102 mailView->addColumn( tr( "Date" )); 104 mailView->addColumn( tr( "Date" ));
103 mailView->setAllColumnsShowFocus(true); 105 mailView->setAllColumnsShowFocus(true);
104 mailView->setSorting(-1); 106 mailView->setSorting(-1);
105 107
106 statusWidget = new StatusWidget( wrapperBox ); 108 statusWidget = new StatusWidget( wrapperBox );
107 statusWidget->hide(); 109 statusWidget->hide();
diff --git a/noncore/net/mail/nntpgroups.cpp b/noncore/net/mail/nntpgroups.cpp
index 3243ee3..d81d8b1 100644
--- a/noncore/net/mail/nntpgroups.cpp
+++ b/noncore/net/mail/nntpgroups.cpp
@@ -1,62 +1,64 @@
1#include "nntpgroups.h" 1#include "nntpgroups.h"
2 2
3#include <libmailwrapper/settings.h> 3#include <libmailwrapper/settings.h>
4 4#include <opie2/odebug.h>
5#include <qlistview.h> 5#include <qlistview.h>
6#include <qlineedit.h> 6#include <qlineedit.h>
7 7
8using namespace Opie::Core;
9
8NNTPGroups::NNTPGroups(NNTPaccount *account, QWidget* parent, const char* name, WFlags fl) 10NNTPGroups::NNTPGroups(NNTPaccount *account, QWidget* parent, const char* name, WFlags fl)
9 : NNTPGroupsUI(parent,name,fl),subscribedGroups() 11 : NNTPGroupsUI(parent,name,fl),subscribedGroups()
10{ 12{
11 m_Account = account; 13 m_Account = account;
12 fillGroups(); 14 fillGroups();
13} 15}
14 16
15NNTPGroups::~NNTPGroups() 17NNTPGroups::~NNTPGroups()
16{ 18{
17 19
18} 20}
19 21
20void NNTPGroups::slotGetNG() 22void NNTPGroups::slotGetNG()
21{ 23{
22 if (!m_Account) return; 24 if (!m_Account) return;
23 GroupListView->clear(); 25 GroupListView->clear();
24 NNTPwrapper tmp( m_Account ); 26 NNTPwrapper tmp( m_Account );
25 QString filter = Groupfilteredit->text(); 27 QString filter = Groupfilteredit->text();
26 QStringList list = tmp.listAllNewsgroups(filter); 28 QStringList list = tmp.listAllNewsgroups(filter);
27 subscribedGroupsNotListed = subscribedGroups; 29 subscribedGroupsNotListed = subscribedGroups;
28 for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) { 30 for ( QStringList::Iterator it = list.begin(); it != list.end(); ++it ) {
29 QCheckListItem *item; 31 QCheckListItem *item;
30 item = new QCheckListItem( GroupListView, (*it), QCheckListItem::CheckBox ); 32 item = new QCheckListItem( GroupListView, (*it), QCheckListItem::CheckBox );
31 if ( subscribedGroups.contains( (*it) ) >= 1 ) { 33 if ( subscribedGroups.contains( (*it) ) >= 1 ) {
32 item->setOn( true ); 34 item->setOn( true );
33 subscribedGroupsNotListed.remove((*it)); 35 subscribedGroupsNotListed.remove((*it));
34 } 36 }
35 } 37 }
36} 38}
37 39
38void NNTPGroups::fillGroups() 40void NNTPGroups::fillGroups()
39{ 41{
40 if (!m_Account) return; 42 if (!m_Account) return;
41 subscribedGroups = m_Account->getGroups(); 43 subscribedGroups = m_Account->getGroups();
42 for ( QStringList::Iterator it = subscribedGroups.begin(); it != subscribedGroups.end(); ++it ) { 44 for ( QStringList::Iterator it = subscribedGroups.begin(); it != subscribedGroups.end(); ++it ) {
43 QCheckListItem *item; 45 QCheckListItem *item;
44 item = new QCheckListItem( GroupListView, (*it), QCheckListItem::CheckBox ); 46 item = new QCheckListItem( GroupListView, (*it), QCheckListItem::CheckBox );
45 item->setOn( true ); 47 item->setOn( true );
46 } 48 }
47} 49}
48 50
49void NNTPGroups::storeValues() 51void NNTPGroups::storeValues()
50{ 52{
51 if (!m_Account) return; 53 if (!m_Account) return;
52 QListViewItemIterator list_it( GroupListView ); 54 QListViewItemIterator list_it( GroupListView );
53 subscribedGroups.clear(); 55 subscribedGroups.clear();
54 for ( ; list_it.current(); ++list_it ) { 56 for ( ; list_it.current(); ++list_it ) {
55 if ( ( (QCheckListItem*)list_it.current() )->isOn() ) { 57 if ( ( (QCheckListItem*)list_it.current() )->isOn() ) {
56 odebug << list_it.current()->text(0) << oendl; 58 odebug << list_it.current()->text(0) << oendl;
57 subscribedGroups.append( list_it.current()->text(0) ); 59 subscribedGroups.append( list_it.current()->text(0) );
58 } 60 }
59 } 61 }
60 subscribedGroups+=subscribedGroupsNotListed; 62 subscribedGroups+=subscribedGroupsNotListed;
61 m_Account->setGroups( subscribedGroups ); 63 m_Account->setGroups( subscribedGroups );
62} 64}
diff --git a/noncore/net/mail/opiemail.cpp b/noncore/net/mail/opiemail.cpp
index 0669b5a..5399c3c 100644
--- a/noncore/net/mail/opiemail.cpp
+++ b/noncore/net/mail/opiemail.cpp
@@ -1,115 +1,118 @@
1 1
2#include "settingsdialog.h" 2#include "settingsdialog.h"
3#include "opiemail.h" 3#include "opiemail.h"
4#include "editaccounts.h" 4#include "editaccounts.h"
5#include "composemail.h" 5#include "composemail.h"
6#include "mailistviewitem.h" 6#include "mailistviewitem.h"
7#include "viewmail.h" 7#include "viewmail.h"
8#include "selectstore.h" 8#include "selectstore.h"
9#include "selectsmtp.h" 9#include "selectsmtp.h"
10 10
11/* OPIE */
12#include <libmailwrapper/smtpwrapper.h> 11#include <libmailwrapper/smtpwrapper.h>
13#include <libmailwrapper/mailtypes.h> 12#include <libmailwrapper/mailtypes.h>
14#include <libmailwrapper/abstractmail.h> 13#include <libmailwrapper/abstractmail.h>
14/* OPIE */
15#include <opie2/odebug.h>
15#include <qpe/resource.h> 16#include <qpe/resource.h>
16#include <qpe/qpeapplication.h> 17#include <qpe/qpeapplication.h>
17 18
18/* QT */ 19/* QT */
19 20
21using namespace Opie::Core;
22
20OpieMail::OpieMail( QWidget *parent, const char *name, WFlags flags ) 23OpieMail::OpieMail( QWidget *parent, const char *name, WFlags flags )
21 : MainWindow( parent, name, WStyle_ContextHelp ) 24 : MainWindow( parent, name, WStyle_ContextHelp )
22{ 25{
23 settings = new Settings(); 26 settings = new Settings();
24 27
25 folderView->populate( settings->getAccounts() ); 28 folderView->populate( settings->getAccounts() );
26} 29}
27 30
28OpieMail::~OpieMail() 31OpieMail::~OpieMail()
29{ 32{
30 if (settings) delete settings; 33 if (settings) delete settings;
31} 34}
32 35
33void OpieMail::appMessage(const QCString &msg, const QByteArray &data) 36void OpieMail::appMessage(const QCString &msg, const QByteArray &data)
34{ 37{
35 // copied from old mail2 38 // copied from old mail2
36 if (msg == "writeMail(QString,QString)") 39 if (msg == "writeMail(QString,QString)")
37 { 40 {
38 QDataStream stream(data,IO_ReadOnly); 41 QDataStream stream(data,IO_ReadOnly);
39 QString name, email; 42 QString name, email;
40 stream >> name >> email; 43 stream >> name >> email;
41 // removing the whitespaces at beginning and end is needed! 44 // removing the whitespaces at beginning and end is needed!
42 slotwriteMail(name.stripWhiteSpace(),email.stripWhiteSpace()); 45 slotwriteMail(name.stripWhiteSpace(),email.stripWhiteSpace());
43 } 46 }
44 else if (msg == "newMail()") 47 else if (msg == "newMail()")
45 { 48 {
46 slotComposeMail(); 49 slotComposeMail();
47 } 50 }
48} 51}
49 52
50void OpieMail::slotwriteMail(const QString&name,const QString&email) 53void OpieMail::slotwriteMail(const QString&name,const QString&email)
51{ 54{
52 ComposeMail compose( settings, this, 0, true , WStyle_ContextHelp ); 55 ComposeMail compose( settings, this, 0, true , WStyle_ContextHelp );
53 if (!email.isEmpty()) 56 if (!email.isEmpty())
54 { 57 {
55 if (!name.isEmpty()) 58 if (!name.isEmpty())
56 { 59 {
57 compose.setTo("\"" + name + "\"" + " " + "<"+ email + ">"); 60 compose.setTo("\"" + name + "\"" + " " + "<"+ email + ">");
58 } 61 }
59 else 62 else
60 { 63 {
61 compose.setTo(email); 64 compose.setTo(email);
62 } 65 }
63 } 66 }
64 compose.slotAdjustColumns(); 67 compose.slotAdjustColumns();
65 QPEApplication::execDialog( &compose ); 68 QPEApplication::execDialog( &compose );
66} 69}
67 70
68void OpieMail::slotComposeMail() 71void OpieMail::slotComposeMail()
69{ 72{
70 odebug << "Compose Mail" << oendl; 73 odebug << "Compose Mail" << oendl;
71 slotwriteMail(0l,0l); 74 slotwriteMail(0l,0l);
72} 75}
73 76
74void OpieMail::slotSendQueued() 77void OpieMail::slotSendQueued()
75{ 78{
76 odebug << "Send Queued" << oendl; 79 odebug << "Send Queued" << oendl;
77 SMTPaccount *smtp = 0; 80 SMTPaccount *smtp = 0;
78 81
79 QList<Account> list = settings->getAccounts(); 82 QList<Account> list = settings->getAccounts();
80 QList<SMTPaccount> smtpList; 83 QList<SMTPaccount> smtpList;
81 smtpList.setAutoDelete(false); 84 smtpList.setAutoDelete(false);
82 Account *it; 85 Account *it;
83 for ( it = list.first(); it; it = list.next() ) 86 for ( it = list.first(); it; it = list.next() )
84 { 87 {
85 if ( it->getType() == MAILLIB::A_SMTP ) 88 if ( it->getType() == MAILLIB::A_SMTP )
86 { 89 {
87 smtp = static_cast<SMTPaccount *>(it); 90 smtp = static_cast<SMTPaccount *>(it);
88 smtpList.append(smtp); 91 smtpList.append(smtp);
89 } 92 }
90 } 93 }
91 if (smtpList.count()==0) 94 if (smtpList.count()==0)
92 { 95 {
93 QMessageBox::information(0,tr("Info"),tr("Define a smtp account first")); 96 QMessageBox::information(0,tr("Info"),tr("Define a smtp account first"));
94 return; 97 return;
95 } 98 }
96 if (smtpList.count()==1) 99 if (smtpList.count()==1)
97 { 100 {
98 smtp = smtpList.at(0); 101 smtp = smtpList.at(0);
99 } 102 }
100 else 103 else
101 { 104 {
102 smtp = 0; 105 smtp = 0;
103 selectsmtp selsmtp; 106 selectsmtp selsmtp;
104 selsmtp.setSelectionlist(&smtpList); 107 selsmtp.setSelectionlist(&smtpList);
105 if ( QPEApplication::execDialog( &selsmtp ) == QDialog::Accepted ) 108 if ( QPEApplication::execDialog( &selsmtp ) == QDialog::Accepted )
106 { 109 {
107 smtp = selsmtp.selected_smtp(); 110 smtp = selsmtp.selected_smtp();
108 } 111 }
109 } 112 }
110 if (smtp) 113 if (smtp)
111 { 114 {
112 SMTPwrapper * wrap = new SMTPwrapper(smtp); 115 SMTPwrapper * wrap = new SMTPwrapper(smtp);
113 if ( wrap->flushOutbox() ) 116 if ( wrap->flushOutbox() )
114 { 117 {
115 QMessageBox::information(0,tr("Info"),tr("Mail queue flushed")); 118 QMessageBox::information(0,tr("Info"),tr("Mail queue flushed"));
diff --git a/noncore/net/mail/taskbarapplet/mailapplet.cpp b/noncore/net/mail/taskbarapplet/mailapplet.cpp
index cac9048..2fc1d01 100644
--- a/noncore/net/mail/taskbarapplet/mailapplet.cpp
+++ b/noncore/net/mail/taskbarapplet/mailapplet.cpp
@@ -1,104 +1,104 @@
1#include <qpainter.h> 1#include <qpainter.h>
2#include <qtimer.h> 2#include <qtimer.h>
3 3
4#include <qpe/qcopenvelope_qws.h> 4#include <qpe/qcopenvelope_qws.h>
5#include <qpe/resource.h> 5#include <qpe/resource.h>
6#include <qpe/config.h> 6#include <qpe/config.h>
7#include <qpe/applnk.h> 7#include <qpe/applnk.h>
8 8#include <opie2/odebug.h>
9#include <opie2/odevice.h> 9#include <opie2/odevice.h>
10 10
11#include <libmailwrapper/settings.h> 11#include <libmailwrapper/settings.h>
12 12
13#include "mailapplet.h" 13#include "mailapplet.h"
14 14
15using namespace Opie::Core; 15using namespace Opie::Core;
16 16
17MailApplet::MailApplet( QWidget *parent ) 17MailApplet::MailApplet( QWidget *parent )
18: QWidget( parent ) { 18: QWidget( parent ) {
19 19
20 m_config = new Config( "mail" ); 20 m_config = new Config( "mail" );
21 m_config->setGroup( "Applet" ); 21 m_config->setGroup( "Applet" );
22 22
23 setFixedWidth( AppLnk::smallIconSize() ); 23 setFixedWidth( AppLnk::smallIconSize() );
24 setFixedHeight( AppLnk::smallIconSize() ); 24 setFixedHeight( AppLnk::smallIconSize() );
25 25
26 hide(); 26 hide();
27 27
28 m_newMails = 0; 28 m_newMails = 0;
29 m_statusMail = 0l; 29 m_statusMail = 0l;
30 30
31 if ( !m_config->readBoolEntry( "Disabled", false ) ) { 31 if ( !m_config->readBoolEntry( "Disabled", false ) ) {
32 // delay 5 sec until the whole mail backend gets started .-) 32 // delay 5 sec until the whole mail backend gets started .-)
33 QTimer::singleShot( 5000, this, SLOT( startup() ) ); 33 QTimer::singleShot( 5000, this, SLOT( startup() ) );
34 } 34 }
35 repaint( true ); 35 repaint( true );
36} 36}
37 37
38 38
39MailApplet::~MailApplet() { 39MailApplet::~MailApplet() {
40 if ( m_statusMail ) 40 if ( m_statusMail )
41 delete m_statusMail; 41 delete m_statusMail;
42 if ( m_config ) 42 if ( m_config )
43 delete m_config; 43 delete m_config;
44} 44}
45 45
46void MailApplet::paintEvent( QPaintEvent* ) { 46void MailApplet::paintEvent( QPaintEvent* ) {
47 QPainter p( this ); 47 QPainter p( this );
48 p.drawPixmap( 0, 0, Resource::loadPixmap( "mail/inbox" ) ); 48 p.drawPixmap( 0, 0, Resource::loadPixmap( "mail/inbox" ) );
49 QFont f( "vera", AppLnk::smallIconSize() ); 49 QFont f( "vera", AppLnk::smallIconSize() );
50 QFontMetrics fm( f ); 50 QFontMetrics fm( f );
51 p.setFont( f ); 51 p.setFont( f );
52 p.setPen( Qt::blue ); 52 p.setPen( Qt::blue );
53 p.drawText( AppLnk::smallIconSize()/3, AppLnk::smallIconSize() - 2, QString::number( m_newMails ) ); 53 p.drawText( AppLnk::smallIconSize()/3, AppLnk::smallIconSize() - 2, QString::number( m_newMails ) );
54 return; 54 return;
55 55
56} 56}
57 57
58void MailApplet::mouseReleaseEvent( QMouseEvent* e ) { 58void MailApplet::mouseReleaseEvent( QMouseEvent* e ) {
59 slotClicked(); 59 slotClicked();
60} 60}
61 61
62void MailApplet::slotClicked() { 62void MailApplet::slotClicked() {
63 QCopEnvelope e( "QPE/System", "execute(QString)" ); 63 QCopEnvelope e( "QPE/System", "execute(QString)" );
64 e << QString( "opiemail" ); 64 e << QString( "opiemail" );
65 65
66 ODevice *device = ODevice::inst(); 66 ODevice *device = ODevice::inst();
67 if ( !device-> ledList().isEmpty() ) { 67 if ( !device-> ledList().isEmpty() ) {
68 OLed led = ( device->ledList().contains( Led_Mail ) ) ? Led_Mail : device->ledList()[0]; 68 OLed led = ( device->ledList().contains( Led_Mail ) ) ? Led_Mail : device->ledList()[0];
69 69
70 device->setLedState( led, Led_Off ); 70 device->setLedState( led, Led_Off );
71 } 71 }
72 72
73 if (m_statusMail) 73 if (m_statusMail)
74 m_statusMail->reset_status(); 74 m_statusMail->reset_status();
75 75
76 hide(); 76 hide();
77} 77}
78 78
79void MailApplet::startup() { 79void MailApplet::startup() {
80 Settings *settings = new Settings(); 80 Settings *settings = new Settings();
81 QList<Account> ma = settings->getAccounts(); 81 QList<Account> ma = settings->getAccounts();
82 m_statusMail = new StatusMail( ma ); 82 m_statusMail = new StatusMail( ma );
83 delete settings; 83 delete settings;
84 84
85 m_intervalMs = m_config->readNumEntry( "CheckEvery", 5 ) * 60000; 85 m_intervalMs = m_config->readNumEntry( "CheckEvery", 5 ) * 60000;
86 m_intervalTimer = new QTimer(); 86 m_intervalTimer = new QTimer();
87 m_intervalTimer->start( m_intervalMs ); 87 m_intervalTimer->start( m_intervalMs );
88 connect( m_intervalTimer, SIGNAL( timeout() ), this, SLOT( slotCheck() ) ); 88 connect( m_intervalTimer, SIGNAL( timeout() ), this, SLOT( slotCheck() ) );
89} 89}
90 90
91void MailApplet::slotCheck() { 91void MailApplet::slotCheck() {
92 // Check wether the check interval has been changed. 92 // Check wether the check interval has been changed.
93 int newIntervalMs = m_config->readNumEntry( "CheckEvery", 5 ) * 60000; 93 int newIntervalMs = m_config->readNumEntry( "CheckEvery", 5 ) * 60000;
94 if ( newIntervalMs != m_intervalMs ) { 94 if ( newIntervalMs != m_intervalMs ) {
95 m_intervalTimer->changeInterval( newIntervalMs ); 95 m_intervalTimer->changeInterval( newIntervalMs );
96 m_intervalMs = newIntervalMs; 96 m_intervalMs = newIntervalMs;
97 } 97 }
98 98
99 if (m_statusMail == 0) { 99 if (m_statusMail == 0) {
100 return; 100 return;
101 } 101 }
102 102
103 folderStat stat; 103 folderStat stat;
104 m_statusMail->check_current_stat( stat ); 104 m_statusMail->check_current_stat( stat );
diff --git a/noncore/net/mail/viewmail.cpp b/noncore/net/mail/viewmail.cpp
index a574ea1..7267bcb 100644
--- a/noncore/net/mail/viewmail.cpp
+++ b/noncore/net/mail/viewmail.cpp
@@ -1,117 +1,120 @@
1#include "composemail.h" 1#include "composemail.h"
2#include "viewmail.h" 2#include "viewmail.h"
3 3
4/* OPIE */ 4/* OPIE */
5#include <libmailwrapper/settings.h> 5#include <libmailwrapper/settings.h>
6#include <libmailwrapper/abstractmail.h> 6#include <libmailwrapper/abstractmail.h>
7#include <libmailwrapper/mailtypes.h> 7#include <libmailwrapper/mailtypes.h>
8 8
9#include <opie2/odebug.h>
9#include <opie2/ofiledialog.h> 10#include <opie2/ofiledialog.h>
10#include <qpe/config.h> 11#include <qpe/config.h>
11#include <qpe/qpeapplication.h> 12#include <qpe/qpeapplication.h>
12 13
13/* QT */ 14/* QT */
14#include <qtextbrowser.h> 15#include <qtextbrowser.h>
15#include <qmessagebox.h> 16#include <qmessagebox.h>
16#include <qtextstream.h> 17#include <qtextstream.h>
17#include <qaction.h> 18#include <qaction.h>
18#include <qpopupmenu.h> 19#include <qpopupmenu.h>
19#include <qfile.h> 20#include <qfile.h>
20 21
21using namespace Opie::Ui; 22using namespace Opie::Ui;
23using namespace Opie::Core;
24
22AttachItem::AttachItem(QListView * parent,QListViewItem *after, const QString&mime,const QString&desc,const QString&file, 25AttachItem::AttachItem(QListView * parent,QListViewItem *after, const QString&mime,const QString&desc,const QString&file,
23 const QString&fsize,int num,const QValueList<int>&path) 26 const QString&fsize,int num,const QValueList<int>&path)
24 : QListViewItem(parent,after),_partNum(num) 27 : QListViewItem(parent,after),_partNum(num)
25{ 28{
26 _path=path; 29 _path=path;
27 setText(0, mime); 30 setText(0, mime);
28 setText(1, desc); 31 setText(1, desc);
29 setText(2, file); 32 setText(2, file);
30 setText(3, fsize); 33 setText(3, fsize);
31} 34}
32 35
33AttachItem::AttachItem(QListViewItem * parent,QListViewItem *after, const QString&mime,const QString&desc,const QString&file, 36AttachItem::AttachItem(QListViewItem * parent,QListViewItem *after, const QString&mime,const QString&desc,const QString&file,
34 const QString&fsize,int num,const QValueList<int>&path) 37 const QString&fsize,int num,const QValueList<int>&path)
35 : QListViewItem(parent,after),_partNum(num) 38 : QListViewItem(parent,after),_partNum(num)
36{ 39{
37 _path=path; 40 _path=path;
38 setText(0, mime); 41 setText(0, mime);
39 setText(1, desc); 42 setText(1, desc);
40 setText(2, file); 43 setText(2, file);
41 setText(3, fsize); 44 setText(3, fsize);
42} 45}
43 46
44bool AttachItem::isParentof(const QValueList<int>&path) 47bool AttachItem::isParentof(const QValueList<int>&path)
45{ 48{
46 /* if not set, then no parent */ 49 /* if not set, then no parent */
47 if (path.count()==0||_path.count()==0) return false; 50 if (path.count()==0||_path.count()==0) return false;
48 /* the parent must have one digit less then a child */ 51 /* the parent must have one digit less then a child */
49 if (path.count()!=_path.count()+1) return false; 52 if (path.count()!=_path.count()+1) return false;
50 for (unsigned int i=0; i < _path.count();++i) 53 for (unsigned int i=0; i < _path.count();++i)
51 { 54 {
52 if (_path[i]!=path[i]) return false; 55 if (_path[i]!=path[i]) return false;
53 } 56 }
54 return true; 57 return true;
55} 58}
56 59
57AttachItem* ViewMail::searchParent(const QValueList<int>&path) 60AttachItem* ViewMail::searchParent(const QValueList<int>&path)
58{ 61{
59 QListViewItemIterator it( attachments ); 62 QListViewItemIterator it( attachments );
60 for ( ; it.current(); ++it ) 63 for ( ; it.current(); ++it )
61 { 64 {
62 AttachItem*ati = (AttachItem*)it.current(); 65 AttachItem*ati = (AttachItem*)it.current();
63 if (ati->isParentof(path)) return ati; 66 if (ati->isParentof(path)) return ati;
64 } 67 }
65 return 0; 68 return 0;
66} 69}
67 70
68AttachItem* ViewMail::lastChild(AttachItem*parent) 71AttachItem* ViewMail::lastChild(AttachItem*parent)
69{ 72{
70 if (!parent) return 0; 73 if (!parent) return 0;
71 AttachItem* item = (AttachItem*)parent->firstChild(); 74 AttachItem* item = (AttachItem*)parent->firstChild();
72 if (!item) return item; 75 if (!item) return item;
73 AttachItem*temp=0; 76 AttachItem*temp=0;
74 while( (temp=(AttachItem*)item->nextSibling())) 77 while( (temp=(AttachItem*)item->nextSibling()))
75 { 78 {
76 item = temp; 79 item = temp;
77 } 80 }
78 return item; 81 return item;
79} 82}
80 83
81void ViewMail::setBody(const RecBodyP&body ) 84void ViewMail::setBody(const RecBodyP&body )
82{ 85{
83 86
84 m_body = body; 87 m_body = body;
85 m_mail[2] = body->Bodytext(); 88 m_mail[2] = body->Bodytext();
86 attachbutton->setEnabled(body->Parts().count()>0); 89 attachbutton->setEnabled(body->Parts().count()>0);
87 attachments->setEnabled(body->Parts().count()>0); 90 attachments->setEnabled(body->Parts().count()>0);
88 if (body->Parts().count()==0) 91 if (body->Parts().count()==0)
89 { 92 {
90 return; 93 return;
91 } 94 }
92 AttachItem * curItem=0; 95 AttachItem * curItem=0;
93 AttachItem * parentItem = 0; 96 AttachItem * parentItem = 0;
94 QString type=body->Description()->Type()+"/"+body->Description()->Subtype(); 97 QString type=body->Description()->Type()+"/"+body->Description()->Subtype();
95 QString desc,fsize; 98 QString desc,fsize;
96 double s = body->Description()->Size(); 99 double s = body->Description()->Size();
97 int w; 100 int w;
98 w=0; 101 w=0;
99 102
100 while (s>1024) 103 while (s>1024)
101 { 104 {
102 s/=1024; 105 s/=1024;
103 ++w; 106 ++w;
104 if (w>=2) break; 107 if (w>=2) break;
105 } 108 }
106 109
107 QString q=""; 110 QString q="";
108 switch(w) 111 switch(w)
109 { 112 {
110 case 1: 113 case 1:
111 q="k"; 114 q="k";
112 break; 115 break;
113 case 2: 116 case 2:
114 q="M"; 117 q="M";
115 break; 118 break;
116 default: 119 default:
117 break; 120 break;