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 | ||
18 | using namespace Opie::Core; | 19 | using 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 | */ |
23 | POP3viewItem::POP3viewItem( POP3account *a, AccountView *parent ) | 24 | POP3viewItem::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 | ||
43 | POP3viewItem::~POP3viewItem() | 44 | POP3viewItem::~POP3viewItem() |
44 | { | 45 | { |
45 | delete wrapper; | 46 | delete wrapper; |
46 | } | 47 | } |
47 | 48 | ||
48 | AbstractMail *POP3viewItem::getWrapper() | 49 | AbstractMail *POP3viewItem::getWrapper() |
49 | { | 50 | { |
50 | return wrapper; | 51 | return wrapper; |
51 | } | 52 | } |
52 | 53 | ||
53 | void POP3viewItem::refresh(QValueList<Opie::Core::OSmartPointer<RecMail> > & ) | 54 | void POP3viewItem::refresh(QValueList<Opie::Core::OSmartPointer<RecMail> > & ) |
54 | { | 55 | { |
55 | refresh(); | 56 | refresh(); |
56 | } | 57 | } |
57 | 58 | ||
58 | void POP3viewItem::refresh() | 59 | void 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 | ||
79 | RECBODYP POP3viewItem::fetchBody( const RecMailP &mail ) | 80 | RECBODYP 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 | ||
85 | QPopupMenu * POP3viewItem::getContextMenu() | 86 | QPopupMenu * 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 | ||
103 | void POP3viewItem::disconnect() | 104 | void 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 | ||
17 | using namespace Opie::Core; | 19 | using namespace Opie::Core; |
18 | AccountView::AccountView( QWidget *parent, const char *name, WFlags flags ) | 20 | AccountView::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 | ||
28 | AccountView::~AccountView() | 30 | AccountView::~AccountView() |
29 | { | 31 | { |
30 | imapAccounts.clear(); | 32 | imapAccounts.clear(); |
31 | mhAccounts.clear(); | 33 | mhAccounts.clear(); |
32 | } | 34 | } |
33 | 35 | ||
34 | void AccountView::slotContextMenu(int id) | 36 | void 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 | ||
41 | void AccountView::slotHold(int button, QListViewItem * item,const QPoint&,int) | 43 | void 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 | ||
54 | void AccountView::populate( QList<Account> list ) | 56 | void 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 | ||
89 | void AccountView::refresh(QListViewItem *item) | 91 | void 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 | ||
103 | void AccountView::refreshCurrent() | 105 | void 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 | ||
16 | using namespace Opie::Core; | 17 | using namespace Opie::Core; |
17 | using namespace Opie::Ui; | 18 | using namespace Opie::Ui; |
18 | ComposeMail::ComposeMail( Settings *s, QWidget *parent, const char *name, bool modal, WFlags flags ) | 19 | ComposeMail::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 | ||
80 | void ComposeMail::pickAddress( QLineEdit *line ) | 81 | void 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 | ||
91 | void ComposeMail::setTo( const QString & to ) | 92 | void ComposeMail::setTo( const QString & to ) |
92 | { | 93 | { |
93 | toLine->setText( to ); | 94 | toLine->setText( to ); |
94 | } | 95 | } |
95 | 96 | ||
96 | void ComposeMail::setSubject( const QString & subject ) | 97 | void 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 | ||
15 | using namespace Opie::Core; | ||
16 | |||
14 | AccountListItem::AccountListItem( QListView *parent, Account *a) | 17 | AccountListItem::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 | ||
40 | EditAccounts::EditAccounts( Settings *s, QWidget *parent, const char *name, bool modal, WFlags flags ) | 43 | EditAccounts::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 | ||
61 | void EditAccounts::slotFillLists() | 64 | void 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 | ||
81 | void EditAccounts::slotNewMail() | 84 | void 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 | ||
93 | void EditAccounts::slotNewAccount( const QString &type ) | 96 | void 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 | ||
14 | using namespace Opie::Core; | 16 | using namespace Opie::Core; |
15 | AbstractMail* AbstractMail::getWrapper(IMAPaccount *a) | 17 | AbstractMail* AbstractMail::getWrapper(IMAPaccount *a) |
16 | { | 18 | { |
17 | return new IMAPwrapper(a); | 19 | return new IMAPwrapper(a); |
18 | } | 20 | } |
19 | 21 | ||
20 | AbstractMail* AbstractMail::getWrapper(POP3account *a) | 22 | AbstractMail* AbstractMail::getWrapper(POP3account *a) |
21 | { | 23 | { |
22 | return new POP3wrapper(a); | 24 | return new POP3wrapper(a); |
23 | } | 25 | } |
24 | 26 | ||
25 | AbstractMail* AbstractMail::getWrapper(NNTPaccount *a) | 27 | AbstractMail* AbstractMail::getWrapper(NNTPaccount *a) |
26 | { | 28 | { |
27 | return new NNTPwrapper(a); | 29 | return new NNTPwrapper(a); |
28 | } | 30 | } |
29 | 31 | ||
30 | AbstractMail* AbstractMail::getWrapper(const QString&a,const QString&name) | 32 | AbstractMail* 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 | ||
35 | AbstractMail* AbstractMail::getWrapper(Account*a) | 37 | AbstractMail* 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 | ||
53 | encodedString* AbstractMail::decode_String(const encodedString*text,const QString&enc) | 55 | encodedString* 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 | ||
83 | QString AbstractMail::convert_String(const char*text) | 85 | QString 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 | ||
8 | using namespace Opie::Core; | 10 | using namespace Opie::Core; |
9 | const char* Generatemail::USER_AGENT="OpieMail v0.6"; | 11 | const char* Generatemail::USER_AGENT="OpieMail v0.6"; |
10 | 12 | ||
11 | Generatemail::Generatemail() | 13 | Generatemail::Generatemail() |
12 | { | 14 | { |
13 | } | 15 | } |
14 | 16 | ||
15 | Generatemail::~Generatemail() | 17 | Generatemail::~Generatemail() |
16 | { | 18 | { |
17 | } | 19 | } |
18 | 20 | ||
19 | void Generatemail::addRcpts( clist *list, mailimf_address_list *addr_list ) { | 21 | void 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 | ||
39 | char *Generatemail::getFrom( mailimf_field *ffrom) { | 41 | char *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 | ||
54 | char *Generatemail::getFrom( mailmime *mail ) { | 56 | char *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 | ||
61 | mailimf_field *Generatemail::getField( mailimf_fields *fields, int type ) { | 63 | mailimf_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 | ||
77 | mailimf_address_list *Generatemail::parseAddresses(const QString&addr ) { | 79 | mailimf_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 | |||
5 | using namespace Opie::Core; | 7 | using namespace Opie::Core; |
6 | Genericwrapper::Genericwrapper() | 8 | Genericwrapper::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 | ||
14 | Genericwrapper::~Genericwrapper() | 16 | Genericwrapper::~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 | ||
25 | void Genericwrapper::fillSingleBody(RecPartP&target,mailmessage*,mailmime*mime) | 27 | void 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 | ||
92 | void Genericwrapper::fillParameters(RecPartP&target,clist*parameters) | 94 | void 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 | ||
10 | using namespace Opie::Core; | 11 | using namespace Opie::Core; |
11 | IMAPwrapper::IMAPwrapper( IMAPaccount *a ) | 12 | IMAPwrapper::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 | ||
19 | IMAPwrapper::~IMAPwrapper() | 20 | IMAPwrapper::~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!*/ |
26 | int IMAPwrapper::selectMbox(const QString&mbox) | 27 | int 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 | ||
41 | void IMAPwrapper::imap_progress( size_t current, size_t maximum ) | 42 | void 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 | ||
47 | bool IMAPwrapper::start_tls(bool force_tls) | 48 | bool 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 | ||
99 | void IMAPwrapper::login() | 100 | void 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 | |||
7 | using namespace Opie::Core; | ||
8 | |||
5 | LoginDialog::LoginDialog(const QString&user,const QString&pass, QWidget *parent, const char *name, bool modal, WFlags flags ) | 9 | LoginDialog::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 | ||
20 | void LoginDialog::accept() | 24 | void 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 | ||
4 | using namespace Opie::Core; | 7 | using namespace Opie::Core; |
5 | RecMail::RecMail() | 8 | RecMail::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 | ||
11 | RecMail::RecMail(const RecMail&old) | 14 | RecMail::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 | ||
19 | RecMail::~RecMail() | 22 | RecMail::~RecMail() |
20 | { | 23 | { |
21 | wrapper = 0; | 24 | wrapper = 0; |
22 | } | 25 | } |
23 | 26 | ||
24 | void RecMail::copy_old(const RecMail&old) | 27 | void 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 | ||
43 | void RecMail::init() | 46 | void 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 | ||
53 | void RecMail::setWrapper(AbstractMail*awrapper) | 56 | void RecMail::setWrapper(AbstractMail*awrapper) |
54 | { | 57 | { |
55 | wrapper = awrapper; | 58 | wrapper = awrapper; |
56 | } | 59 | } |
57 | 60 | ||
58 | AbstractMail* RecMail::Wrapper() | 61 | AbstractMail* RecMail::Wrapper() |
59 | { | 62 | { |
60 | return wrapper; | 63 | return wrapper; |
61 | } | 64 | } |
62 | 65 | ||
63 | void RecMail::setTo(const QStringList&list) | 66 | void RecMail::setTo(const QStringList&list) |
64 | { | 67 | { |
65 | to = list; | 68 | to = list; |
66 | } | 69 | } |
67 | 70 | ||
68 | const QStringList&RecMail::To()const | 71 | const QStringList&RecMail::To()const |
69 | { | 72 | { |
70 | return to; | 73 | return to; |
71 | } | 74 | } |
72 | 75 | ||
73 | void RecMail::setCC(const QStringList&list) | 76 | void RecMail::setCC(const QStringList&list) |
74 | { | 77 | { |
75 | cc = list; | 78 | cc = list; |
76 | } | 79 | } |
77 | 80 | ||
78 | const QStringList&RecMail::CC()const | 81 | const QStringList&RecMail::CC()const |
79 | { | 82 | { |
80 | return cc; | 83 | return cc; |
81 | } | 84 | } |
82 | 85 | ||
83 | void RecMail::setBcc(const QStringList&list) | 86 | void RecMail::setBcc(const QStringList&list) |
84 | { | 87 | { |
85 | bcc = list; | 88 | bcc = list; |
86 | } | 89 | } |
87 | 90 | ||
88 | const QStringList& RecMail::Bcc()const | 91 | const QStringList& RecMail::Bcc()const |
89 | { | 92 | { |
90 | return bcc; | 93 | return bcc; |
91 | } | 94 | } |
92 | 95 | ||
93 | void RecMail::setInreply(const QStringList&list) | 96 | void 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 | ||
9 | using namespace Opie::Core; | 11 | using namespace Opie::Core; |
10 | MBOXwrapper::MBOXwrapper(const QString & mbox_dir,const QString&mbox_name) | 12 | MBOXwrapper::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 | ||
19 | MBOXwrapper::~MBOXwrapper() | 21 | MBOXwrapper::~MBOXwrapper() |
20 | { | 22 | { |
21 | } | 23 | } |
22 | 24 | ||
23 | void MBOXwrapper::listMessages(const QString & mailbox, QValueList<RecMailP> &target ) | 25 | void 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 | ||
48 | QValueList<Opie::Core::OSmartPointer<Folder> >* MBOXwrapper::listFolders() | 50 | QValueList<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 | ||
63 | void MBOXwrapper::deleteMail(const RecMailP & mail) | 65 | void 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 | ||
86 | void MBOXwrapper::answeredMail(const RecMailP&) | 88 | void MBOXwrapper::answeredMail(const RecMailP&) |
87 | { | 89 | { |
88 | } | 90 | } |
89 | 91 | ||
90 | RecBodyP MBOXwrapper::fetchBody( const RecMailP &mail ) | 92 | RecBodyP 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 | ||
11 | using namespace Opie::Core; | 12 | using namespace Opie::Core; |
12 | MHwrapper::MHwrapper(const QString & mbox_dir,const QString&mbox_name) | 13 | MHwrapper::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 | ||
28 | void MHwrapper::init_storage() | 29 | void 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 | ||
50 | void MHwrapper::clean_storage() | 51 | void 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 | ||
59 | MHwrapper::~MHwrapper() | 60 | MHwrapper::~MHwrapper() |
60 | { | 61 | { |
61 | clean_storage(); | 62 | clean_storage(); |
62 | } | 63 | } |
63 | 64 | ||
64 | void MHwrapper::listMessages(const QString & mailbox, QValueList<Opie::Core::OSmartPointer<RecMail> > &target ) | 65 | void 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 | ||
80 | QValueList<Opie::Core::OSmartPointer<Folder> >* MHwrapper::listFolders() | 81 | QValueList<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 | ||
105 | void MHwrapper::deleteMail(const RecMailP&mail) | 106 | void 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 | ||
14 | using namespace Opie::Core; | 15 | using namespace Opie::Core; |
15 | NNTPwrapper::NNTPwrapper( NNTPaccount *a ) | 16 | NNTPwrapper::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 | ||
23 | NNTPwrapper::~NNTPwrapper() { | 24 | NNTPwrapper::~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 | ||
31 | void NNTPwrapper::nntp_progress( size_t current, size_t maximum ) { | 32 | void 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 | ||
36 | RecBodyP NNTPwrapper::fetchBody( const RecMailP &mail ) { | 37 | RecBodyP 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 | ||
100 | void NNTPwrapper::listMessages(const QString & which, QValueList<Opie::Core::OSmartPointer<RecMail> > &target ) | 101 | void 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 | ||
13 | using namespace Opie::Core; | 14 | using namespace Opie::Core; |
14 | POP3wrapper::POP3wrapper( POP3account *a ) | 15 | POP3wrapper::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 | ||
22 | POP3wrapper::~POP3wrapper() { | 23 | POP3wrapper::~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 | ||
30 | void POP3wrapper::pop3_progress( size_t current, size_t maximum ) { | 31 | void 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 | ||
34 | RecBodyP POP3wrapper::fetchBody( const RecMailP &mail ) { | 35 | RecBodyP 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 | ||
98 | void POP3wrapper::listMessages(const QString &, QValueList<Opie::Core::OSmartPointer<RecMail> > &target ) | 99 | void 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 | ||
19 | Settings::Settings() | 20 | Settings::Settings() |
20 | : QObject() | 21 | : QObject() |
21 | { | 22 | { |
22 | updateAccounts(); | 23 | updateAccounts(); |
23 | } | 24 | } |
24 | 25 | ||
25 | void Settings::checkDirectory() | 26 | void 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 | ||
33 | QList<Account> Settings::getAccounts() | 34 | QList<Account> Settings::getAccounts() |
34 | { | 35 | { |
35 | return accounts; | 36 | return accounts; |
36 | } | 37 | } |
37 | 38 | ||
38 | void Settings::addAccount( Account *account ) | 39 | void Settings::addAccount( Account *account ) |
39 | { | 40 | { |
40 | accounts.append( account ); | 41 | accounts.append( account ); |
41 | } | 42 | } |
42 | 43 | ||
43 | void Settings::delAccount( Account *account ) | 44 | void Settings::delAccount( Account *account ) |
44 | { | 45 | { |
45 | accounts.remove( account ); | 46 | accounts.remove( account ); |
46 | account->remove(); | 47 | account->remove(); |
47 | } | 48 | } |
48 | 49 | ||
49 | void Settings::updateAccounts() | 50 | void 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 | ||
86 | void Settings::saveAccounts() | 87 | void 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 | ||
96 | void Settings::readAccounts() | 97 | void 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 | ||
16 | using namespace Opie::Core; | 17 | using namespace Opie::Core; |
17 | progressMailSend*SMTPwrapper::sendProgress = 0; | 18 | progressMailSend*SMTPwrapper::sendProgress = 0; |
18 | 19 | ||
19 | SMTPwrapper::SMTPwrapper(SMTPaccount * aSmtp ) | 20 | SMTPwrapper::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 | ||
31 | SMTPwrapper::~SMTPwrapper() | 32 | SMTPwrapper::~SMTPwrapper() |
32 | { | 33 | { |
33 | disc_server(); | 34 | disc_server(); |
34 | } | 35 | } |
35 | 36 | ||
36 | void SMTPwrapper::emitQCop( int queued ) { | 37 | void 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 | ||
41 | QString SMTPwrapper::mailsmtpError( int errnum ) { | 42 | QString 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 | ||
85 | void SMTPwrapper::progress( size_t current, size_t maximum ) { | 86 | void 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 | ||
92 | void SMTPwrapper::storeMail(const char*mail, size_t length, const QString&box) { | 93 | void 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 | ||
102 | void SMTPwrapper::smtpSend( mailmime *mail,bool later) { | 103 | void 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 | |||
5 | using namespace Opie::Core; | ||
6 | |||
3 | StatusMail::StatusMail(QList<Account>&list) | 7 | StatusMail::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 | ||
15 | StatusMail::~StatusMail() | 19 | StatusMail::~StatusMail() |
16 | { | 20 | { |
17 | } | 21 | } |
18 | 22 | ||
19 | void StatusMail::initAccounts(QList<Account>&accounts) | 23 | void 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 | ||
53 | void StatusMail::reset_status() | 57 | void StatusMail::reset_status() |
54 | { | 58 | { |
55 | lastPop3Stat = currentPop3Stat; | 59 | lastPop3Stat = currentPop3Stat; |
56 | } | 60 | } |
57 | 61 | ||
58 | void StatusMail::check_current_stat(folderStat&targetStat) | 62 | void 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 | ||
12 | using namespace Opie::Core; | 12 | using namespace Opie::Core; |
13 | Storemail::Storemail(Account*aAccount,const QString&aFolder) | 13 | Storemail::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 | ||
25 | Storemail::Storemail(const QString&dir,const QString&aFolder) | 25 | Storemail::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 | ||
37 | Storemail::Storemail(const QString&aFolder) | 37 | Storemail::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 | ||
49 | Storemail::~Storemail() | 49 | Storemail::~Storemail() |
50 | { | 50 | { |
51 | } | 51 | } |
52 | 52 | ||
53 | int Storemail::storeMail(const Opie::Core::OSmartPointer<Mail>&mail) | 53 | int 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 | ||
13 | using namespace Opie::Core; | ||
12 | 14 | ||
13 | MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags ) | 15 | MainWindow::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 | ||
8 | using namespace Opie::Core; | ||
9 | |||
8 | NNTPGroups::NNTPGroups(NNTPaccount *account, QWidget* parent, const char* name, WFlags fl) | 10 | NNTPGroups::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 | ||
15 | NNTPGroups::~NNTPGroups() | 17 | NNTPGroups::~NNTPGroups() |
16 | { | 18 | { |
17 | 19 | ||
18 | } | 20 | } |
19 | 21 | ||
20 | void NNTPGroups::slotGetNG() | 22 | void 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 | ||
38 | void NNTPGroups::fillGroups() | 40 | void 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 | ||
49 | void NNTPGroups::storeValues() | 51 | void 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 | ||
21 | using namespace Opie::Core; | ||
22 | |||
20 | OpieMail::OpieMail( QWidget *parent, const char *name, WFlags flags ) | 23 | OpieMail::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 | ||
28 | OpieMail::~OpieMail() | 31 | OpieMail::~OpieMail() |
29 | { | 32 | { |
30 | if (settings) delete settings; | 33 | if (settings) delete settings; |
31 | } | 34 | } |
32 | 35 | ||
33 | void OpieMail::appMessage(const QCString &msg, const QByteArray &data) | 36 | void 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 | ||
50 | void OpieMail::slotwriteMail(const QString&name,const QString&email) | 53 | void 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 | ||
68 | void OpieMail::slotComposeMail() | 71 | void 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 | ||
74 | void OpieMail::slotSendQueued() | 77 | void 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 | ||
15 | using namespace Opie::Core; | 15 | using namespace Opie::Core; |
16 | 16 | ||
17 | MailApplet::MailApplet( QWidget *parent ) | 17 | MailApplet::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 | ||
39 | MailApplet::~MailApplet() { | 39 | MailApplet::~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 | ||
46 | void MailApplet::paintEvent( QPaintEvent* ) { | 46 | void 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 | ||
58 | void MailApplet::mouseReleaseEvent( QMouseEvent* e ) { | 58 | void MailApplet::mouseReleaseEvent( QMouseEvent* e ) { |
59 | slotClicked(); | 59 | slotClicked(); |
60 | } | 60 | } |
61 | 61 | ||
62 | void MailApplet::slotClicked() { | 62 | void 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 | ||
79 | void MailApplet::startup() { | 79 | void 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 | ||
91 | void MailApplet::slotCheck() { | 91 | void 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 | ||
21 | using namespace Opie::Ui; | 22 | using namespace Opie::Ui; |
23 | using namespace Opie::Core; | ||
24 | |||
22 | AttachItem::AttachItem(QListView * parent,QListViewItem *after, const QString&mime,const QString&desc,const QString&file, | 25 | AttachItem::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 | ||
33 | AttachItem::AttachItem(QListViewItem * parent,QListViewItem *after, const QString&mime,const QString&desc,const QString&file, | 36 | AttachItem::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 | ||
44 | bool AttachItem::isParentof(const QValueList<int>&path) | 47 | bool 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 | ||
57 | AttachItem* ViewMail::searchParent(const QValueList<int>&path) | 60 | AttachItem* 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 | ||
68 | AttachItem* ViewMail::lastChild(AttachItem*parent) | 71 | AttachItem* 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 | ||
81 | void ViewMail::setBody(const RecBodyP&body ) | 84 | void 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; |