summaryrefslogtreecommitdiffabout
path: root/kmicromail
Unidiff
Diffstat (limited to 'kmicromail') (more/less context) (ignore whitespace changes)
-rw-r--r--kmicromail/composemail.cpp13
-rw-r--r--kmicromail/kmicromail.pro77
-rw-r--r--kmicromail/libetpan/libetpan.pro274
-rw-r--r--kmicromail/libmailwrapper/generatemail.h5
-rw-r--r--kmicromail/libmailwrapper/libmailwrapper.pro64
-rw-r--r--kmicromail/libmailwrapper/mailwrapper.h2
-rw-r--r--kmicromail/libmailwrapper/mhwrapper.cpp22
-rw-r--r--kmicromail/libmailwrapper/mhwrapper.h6
-rw-r--r--kmicromail/libmailwrapper/settings.h1
-rw-r--r--kmicromail/libmailwrapper/smtpwrapper.cpp15
-rw-r--r--kmicromail/libmailwrapper/smtpwrapper.h2
-rw-r--r--kmicromail/libmailwrapper/storemail.h2
-rw-r--r--kmicromail/mainwindow.cpp4
-rw-r--r--kmicromail/mainwindow.h1
-rw-r--r--kmicromail/opiemail.cpp6
-rw-r--r--kmicromail/qpe/global.cpp12
-rw-r--r--kmicromail/qpe/global.h12
-rw-r--r--kmicromail/qpe/qpeapplication.h5
-rw-r--r--kmicromail/viewmail.cpp1
19 files changed, 488 insertions, 36 deletions
diff --git a/kmicromail/composemail.cpp b/kmicromail/composemail.cpp
index 8eb6d27..0cd0b23 100644
--- a/kmicromail/composemail.cpp
+++ b/kmicromail/composemail.cpp
@@ -1,170 +1,171 @@
1// CHANGED 2004-08-06 Lutz Rogowski 1// CHANGED 2004-08-06 Lutz Rogowski
2 2
3#include "composemail.h" 3#include "composemail.h"
4 4
5#include <libmailwrapper/smtpwrapper.h> 5#include <libmailwrapper/smtpwrapper.h>
6#include <libmailwrapper/storemail.h> 6#include <libmailwrapper/storemail.h>
7#include <libmailwrapper/abstractmail.h> 7#include <libmailwrapper/abstractmail.h>
8#include <libmailwrapper/mailtypes.h> 8#include <libmailwrapper/mailtypes.h>
9 9
10/* OPIE */ 10/* OPIE */
11//#include <opie2/ofiledialog.h> 11//#include <opie2/ofiledialog.h>
12//#include <opie2/odebug.h> 12//#include <opie2/odebug.h>
13#include <kfiledialog.h> 13#include <kfiledialog.h>
14//#include <qpe/resource.h> 14//#include <qpe/resource.h>
15#include <qpe/global.h> 15#include <qpe/global.h>
16//#include <qpe/contact.h> 16//#include <qpe/contact.h>
17 17
18 18
19#include <qcombobox.h> 19#include <qcombobox.h>
20#include <qcheckbox.h> 20#include <qcheckbox.h>
21#include <qiconset.h> 21#include <qiconset.h>
22#include <qtimer.h> 22#include <qtimer.h>
23#include <qmessagebox.h> 23#include <qmessagebox.h>
24#include <qpushbutton.h> 24#include <qpushbutton.h>
25#include <qmultilineedit.h> 25#include <qmultilineedit.h>
26#include <qlabel.h> 26#include <qlabel.h>
27#include <qtabwidget.h> 27#include <qtabwidget.h>
28#include <qlistview.h> 28#include <qlistview.h>
29#include <kabc/addresseedialog.h> 29#include <kabc/addresseedialog.h>
30#include <kabc/stdaddressbook.h> 30#include <kabc/stdaddressbook.h>
31#include <kabc/addressee.h> 31#include <kabc/addressee.h>
32#ifdef DESKTOP_VERSION 32#ifdef DESKTOP_VERSION
33#include <qapplication.h>
33#include <kabc/addresseedialog.h> 34#include <kabc/addresseedialog.h>
34#else //DESKTOP_VERSION
35#include <libkdepim/externalapphandler.h>
36#endif //DESKTOP_VERSION 35#endif //DESKTOP_VERSION
36#include <libkdepim/externalapphandler.h>
37 37
38#include "koprefs.h" 38#include "koprefs.h"
39 39
40//using namespace Opie::Core; 40//using namespace Opie::Core;
41//using namespace Opie::Ui; 41//using namespace Opie::Ui;
42ComposeMail::ComposeMail( Settings *s, QWidget *parent, const char *name, bool modal ) 42ComposeMail::ComposeMail( Settings *s, QWidget *parent, const char *name, bool modal )
43 : ComposeMailUI( parent, name, modal ) 43 : ComposeMailUI( parent, name, modal )
44{ 44{
45 mPickLineEdit = 0; 45 mPickLineEdit = 0;
46 connect(ExternalAppHandler::instance(), SIGNAL(receivedNameEmailUidListEvent(const QString&, const QStringList&, const QStringList&, const QStringList&)), 46 connect(ExternalAppHandler::instance(), SIGNAL(receivedNameEmailUidListEvent(const QString&, const QStringList&, const QStringList&, const QStringList&)),
47 this, SLOT(insertAttendees(const QString&, const QStringList&, const QStringList&, const QStringList&))); 47 this, SLOT(insertAttendees(const QString&, const QStringList&, const QStringList&, const QStringList&)));
48 settings = s; 48 settings = s;
49 m_replyid = ""; 49 m_replyid = "";
50 if ( KOPrefs::instance()->mUseKapi) { 50 if ( KOPrefs::instance()->mUseKapi) {
51 KConfig config( locateLocal("config", "kabcrc") ); 51 KConfig config( locateLocal("config", "kabcrc") );
52 config.setGroup( "General" ); 52 config.setGroup( "General" );
53 QString whoami_uid = config.readEntry( "WhoAmI" ); 53 QString whoami_uid = config.readEntry( "WhoAmI" );
54 54
55 if ( whoami_uid.isEmpty() ) { 55 if ( whoami_uid.isEmpty() ) {
56 QMessageBox::information( 0, i18n( "Hint" ), 56 QMessageBox::information( 0, i18n( "Hint" ),
57 i18n( "Please apply\n\"Set Who Am I\"\nin KA/Pi to get the from\nfield automatically filled out!\n" ), 57 i18n( "Please apply\n\"Set Who Am I\"\nin KA/Pi to get the from\nfield automatically filled out!\n" ),
58 i18n( "Ok" ) ); 58 i18n( "Ok" ) );
59 59
60 60
61 fillSettings(); 61 fillSettings();
62 } else 62 } else
63 ExternalAppHandler::instance()->requestDetailsFromKAPI("", "sendbacklist", whoami_uid); 63 ExternalAppHandler::instance()->requestDetailsFromKAPI("", "sendbacklist", whoami_uid);
64 64
65 65
66#ifdef DESKTOP_VERSION 66#ifdef DESKTOP_VERSION
67 KABC::Addressee con = KABC::StdAddressBook::self()->whoAmI( ); 67 KABC::Addressee con = KABC::StdAddressBook::self()->whoAmI( );
68 QStringList mails = con.emails(); 68 QStringList mails = con.emails();
69 QString defmail = con.preferredEmail(); 69 QString defmail = con.preferredEmail();
70 if ( mails.count() == 0) 70 if ( mails.count() == 0)
71 QMessageBox::information( 0, i18n( "Hint" ), 71 QMessageBox::information( 0, i18n( "Hint" ),
72 i18n( "Please apply\n\"Set Who Am I\"\nin KA/Pi to get the from\nfield automatically filled out!\n" ), 72 i18n( "Please apply\n\"Set Who Am I\"\nin KA/Pi to get the from\nfield automatically filled out!\n" ),
73 i18n( "Ok" ) ); 73 i18n( "Ok" ) );
74 if (defmail.length()!=0) { 74 if (defmail.length()!=0) {
75 fromBox->insertItem(defmail); 75 fromBox->insertItem(defmail);
76 } 76 }
77 QStringList::ConstIterator sit = mails.begin(); 77 QStringList::ConstIterator sit = mails.begin();
78 for (;sit!=mails.end();++sit) { 78 for (;sit!=mails.end();++sit) {
79 if ( (*sit)==defmail) 79 if ( (*sit)==defmail)
80 continue; 80 continue;
81 fromBox->insertItem((*sit)); 81 fromBox->insertItem((*sit));
82 } 82 }
83 senderNameEdit->setText(con.formattedName()); 83 senderNameEdit->setText(con.formattedName());
84#endif 84#endif
85 85
86 } else { 86 } else {
87 fillSettings(); 87 fillSettings();
88 } 88 }
89 checkBoxLater->setChecked( KOPrefs::instance()->mSendLater ); 89 checkBoxLater->setChecked( KOPrefs::instance()->mSendLater );
90 90
91 attList->addColumn( i18n( "Name" ) ); 91 attList->addColumn( i18n( "Name" ) );
92 attList->addColumn( i18n( "Size" ) ); 92 attList->addColumn( i18n( "Size" ) );
93 QList<Account> accounts = settings->getAccounts(); 93 QList<Account> accounts = settings->getAccounts();
94 94
95 if ( QApplication::desktop()->width() < 320 ) 95 if ( QApplication::desktop()->width() < 320 )
96 smtpAccountBox->setMaximumWidth( 80 ); 96 smtpAccountBox->setMaximumWidth( 80 );
97 Account *it; 97 Account *it;
98 for ( it = accounts.first(); it; it = accounts.next() ) { 98 for ( it = accounts.first(); it; it = accounts.next() ) {
99 if ( it->getType()==MAILLIB::A_SMTP ) { 99 if ( it->getType()==MAILLIB::A_SMTP ) {
100 SMTPaccount *smtp = static_cast<SMTPaccount *>(it); 100 SMTPaccount *smtp = static_cast<SMTPaccount *>(it);
101 smtpAccountBox->insertItem( smtp->getAccountName() ); 101 smtpAccountBox->insertItem( smtp->getAccountName() );
102 smtpAccounts.append( smtp ); 102 smtpAccounts.append( smtp );
103 } 103 }
104 } 104 }
105 connect( toButton, SIGNAL( clicked() ), SLOT( pickAddressTo() ) ); 105 connect( toButton, SIGNAL( clicked() ), SLOT( pickAddressTo() ) );
106 connect( ccButton, SIGNAL( clicked() ), SLOT( pickAddressCC() ) ); 106 connect( ccButton, SIGNAL( clicked() ), SLOT( pickAddressCC() ) );
107 connect( bccButton, SIGNAL( clicked() ), SLOT( pickAddressBCC() ) ); 107 connect( bccButton, SIGNAL( clicked() ), SLOT( pickAddressBCC() ) );
108 connect( replyButton, SIGNAL( clicked() ), SLOT( pickAddressReply() ) ); 108 connect( replyButton, SIGNAL( clicked() ), SLOT( pickAddressReply() ) );
109 connect( addButton, SIGNAL( clicked() ), SLOT( addAttachment() ) ); 109 connect( addButton, SIGNAL( clicked() ), SLOT( addAttachment() ) );
110 connect( deleteButton, SIGNAL( clicked() ), SLOT( removeAttachment() ) ); 110 connect( deleteButton, SIGNAL( clicked() ), SLOT( removeAttachment() ) );
111 connect( SaveButton, SIGNAL( clicked() ), SLOT( saveAsDraft()) ); 111 connect( SaveButton, SIGNAL( clicked() ), SLOT( saveAsDraft()) );
112 mMail = 0; 112 mMail = 0;
113 warnAttach = true; 113 warnAttach = true;
114 QIconSet icon; 114 QIconSet icon;
115 //icon = SmallIcon("fileexport"); 115 //icon = SmallIcon("fileexport");
116 icon = SmallIcon("filesave"); 116 icon = SmallIcon("filesave");
117 if ( QApplication::desktop()->width() < 320 ) 117 SaveButton->setIconSet (icon ) ;
118 if ( QApplication::desktop()->width() < 320 ) {
118 SaveButton->setText ("") ; 119 SaveButton->setText ("") ;
120 SaveButton->setMaximumSize ( SaveButton->sizeHint().height(),SaveButton->sizeHint().height()) ;
121 }
119 else 122 else
120 SaveButton->setText (i18n("Save")) ; 123 SaveButton->setText (i18n("Save"));
121 SaveButton->setIconSet (icon ) ;
122 SaveButton->setMaximumSize ( SaveButton->sizeHint().height(),SaveButton->sizeHint().height()) ;
123#ifndef DESKTOP_VERSION 124#ifndef DESKTOP_VERSION
124 QPEApplication::setStylusOperation( message, QPEApplication::RightOnHold ); 125 QPEApplication::setStylusOperation( message, QPEApplication::RightOnHold );
125 QPEApplication::setStylusOperation( senderNameEdit, QPEApplication::RightOnHold ); 126 QPEApplication::setStylusOperation( senderNameEdit, QPEApplication::RightOnHold );
126 QPEApplication::setStylusOperation( subjectLine, QPEApplication::RightOnHold ); 127 QPEApplication::setStylusOperation( subjectLine, QPEApplication::RightOnHold );
127#endif 128#endif
128 message->setFont ( KOPrefs::instance()->mComposeFont ); 129 message->setFont ( KOPrefs::instance()->mComposeFont );
129 message->setWordWrap (QMultiLineEdit::WidgetWidth); 130 message->setWordWrap (QMultiLineEdit::WidgetWidth);
130 if ( smtpAccounts.count() > 0 ) { 131 if ( smtpAccounts.count() > 0 ) {
131 fillValues( smtpAccountBox->currentItem() ); 132 fillValues( smtpAccountBox->currentItem() );
132 } else { 133 } else {
133 QMessageBox::information( 0, i18n( "Problem" ), 134 QMessageBox::information( 0, i18n( "Problem" ),
134 i18n( "Please create an\nSMTP account first.\nThe SMTP is needed\nfor sending mail.\n" ), 135 i18n( "Please create an\nSMTP account first.\nThe SMTP is needed\nfor sending mail.\n" ),
135 i18n( "Ok" ) ); 136 i18n( "Ok" ) );
136 return; 137 return;
137 } 138 }
138 connect( smtpAccountBox, SIGNAL( activated(int) ), SLOT( fillValues(int) ) ); 139 connect( smtpAccountBox, SIGNAL( activated(int) ), SLOT( fillValues(int) ) );
139 140
140 141
141} 142}
142 143
143void ComposeMail::fillSettings() 144void ComposeMail::fillSettings()
144{ 145{
145 if ( QApplication::desktop()->width() < 320 ) 146 if ( QApplication::desktop()->width() < 320 )
146 fromBox->setMaximumWidth( 100 ); 147 fromBox->setMaximumWidth( 100 );
147 QStringList mailList = QStringList::split(";",KOPrefs::instance()->mEmail); 148 QStringList mailList = QStringList::split(";",KOPrefs::instance()->mEmail);
148 QStringList::ConstIterator sit = mailList.begin(); 149 QStringList::ConstIterator sit = mailList.begin();
149 int pref = 0; 150 int pref = 0;
150 for (;sit!=mailList.end();++sit) { 151 for (;sit!=mailList.end();++sit) {
151 fromBox->insertItem((*sit)); 152 fromBox->insertItem((*sit));
152 } 153 }
153 senderNameEdit->setText(KOPrefs::instance()->mName); 154 senderNameEdit->setText(KOPrefs::instance()->mName);
154} 155}
155 156
156 157
157void ComposeMail::saveAsDraft() 158void ComposeMail::saveAsDraft()
158{ 159{
159 160
160 Opie::Core::OSmartPointer<Mail> mail= new Mail(); 161 Opie::Core::OSmartPointer<Mail> mail= new Mail();
161 mail->setMail(fromBox->currentText()); 162 mail->setMail(fromBox->currentText());
162 mail->setTo( toLine->text() ); 163 mail->setTo( toLine->text() );
163 mail->setName(senderNameEdit->text()); 164 mail->setName(senderNameEdit->text());
164 mail->setCC( ccLine->text() ); 165 mail->setCC( ccLine->text() );
165 mail->setBCC( bccLine->text() ); 166 mail->setBCC( bccLine->text() );
166 mail->setReply( replyLine->text() ); 167 mail->setReply( replyLine->text() );
167 mail->setSubject( subjectLine->text() ); 168 mail->setSubject( subjectLine->text() );
168 if (!m_replyid.isEmpty()) { 169 if (!m_replyid.isEmpty()) {
169 QStringList ids; 170 QStringList ids;
170 ids.append(m_replyid); 171 ids.append(m_replyid);
diff --git a/kmicromail/kmicromail.pro b/kmicromail/kmicromail.pro
new file mode 100644
index 0000000..cd5a3c1
--- a/dev/null
+++ b/kmicromail/kmicromail.pro
@@ -0,0 +1,77 @@
1CONFIG += qt warn_on
2 TEMPLATE= app
3HEADERS = defines.h \
4 editaccounts.h \
5 composemail.h \
6 accountview.h \
7 accountitem.h \
8 mainwindow.h \
9 viewmail.h \
10 viewmailbase.h \
11 opiemail.h \
12 mailistviewitem.h \
13 settingsdialog.h \
14 statuswidget.h \
15 newmaildir.h \
16 selectstore.h \
17 selectsmtp.h \
18 nntpgroups.h \
19 koprefs.h \
20 koprefsdialog.h \
21 nntpgroupsdlg.h
22
23SOURCES = main.cpp \
24 opiemail.cpp \
25 mainwindow.cpp \
26 accountview.cpp \
27 accountitem.cpp \
28 composemail.cpp \
29 editaccounts.cpp \
30 viewmail.cpp \
31 viewmailbase.cpp \
32 mailistviewitem.cpp \
33 settingsdialog.cpp \
34 statuswidget.cpp \
35 newmaildir.cpp \
36 selectstore.cpp \
37 selectsmtp.cpp \
38 nntpgroups.cpp \
39 koprefs.cpp\
40 koprefsdialog.cpp\
41 nntpgroupsdlg.cpp
42
43INTERFACES = editaccountsui.ui \
44 selectmailtypeui.ui \
45 imapconfigui.ui \
46 pop3configui.ui \
47 nntpconfigui.ui \
48 smtpconfigui.ui \
49 composemailui.ui \
50 settingsdialogui.ui \
51 statuswidgetui.ui \
52 newmaildirui.ui \
53 selectstoreui.ui \
54 nntpgroupsui.ui
55
56
57INCLUDEPATH += . .. ../libkdepim ../microkde ../microkde/kdecore libetpan/include ../microkde/kdeui
58LIBS += -L../bin -lmicromailwrapper -lmicrolibetpan -lmicrokde -lssl -lcrypto -lmicrokdepim -lmicrokabc
59
60DESTDIR= ../bin
61TARGET = ompi
62
63DEFINES += DESKTOP_VERSION
64unix : {
65OBJECTS_DIR = obj/unix
66MOC_DIR = moc/unix
67}
68win32: {
69DEFINES += _WIN32_
70LIBS += mfc71u.lib
71QMAKE_LINK += /NODEFAULTLIB:LIBC
72#QMAKE_LINK += /NODEFAULTLIB:MSVCRT
73#QMAKE_LINK += /NODEFAULTLIB:uafxcw.lib
74OBJECTS_DIR = obj/win
75MOC_DIR = moc/win
76}
77
diff --git a/kmicromail/libetpan/libetpan.pro b/kmicromail/libetpan/libetpan.pro
new file mode 100644
index 0000000..dfafa07
--- a/dev/null
+++ b/kmicromail/libetpan/libetpan.pro
@@ -0,0 +1,274 @@
1######################################################################
2# Automatically generated by qmake (1.07a) Thu Jul 1 00:54:03 2004
3######################################################################
4
5TEMPLATE = lib
6 TARGET = microlibetpan
7
8OBJECTS_DIR = obj
9MOC_DIR = moc
10DESTDIR=../../bin
11
12DEPENDPATH += generic \
13 imap \
14 imf \
15 maildir \
16 mbox \
17 mh \
18 mime \
19 nntp \
20 pop3 \
21 smtp \
22 tests \
23 tools \
24 include/libetpan
25INCLUDEPATH += . \
26 generic \
27 include \
28 tools \
29 imf \
30 imap \
31 mime \
32 maildir \
33 mbox \
34 mh \
35 nntp \
36 pop3 \
37 smtp \
38 tests
39
40# Input
41HEADERS += generic/data_message_driver.h \
42 generic/generic_cache.h \
43 generic/generic_cache_types.h \
44 generic/imapdriver.h \
45 generic/imapdriver_cached.h \
46 generic/imapdriver_cached_message.h \
47 generic/imapdriver_message.h \
48 generic/imapdriver_tools.h \
49 generic/imapdriver_types.h \
50 generic/imapstorage.h \
51 generic/imfcache.h \
52 generic/libetpan.h \
53 generic/libetpan_version.h \
54 generic/maildirdriver.h \
55 generic/maildirdriver_cached.h \
56 generic/maildirdriver_cached_message.h \
57 generic/maildirdriver_message.h \
58 generic/maildirdriver_tools.h \
59 generic/maildirdriver_types.h \
60 generic/maildirstorage.h \
61 generic/maildriver.h \
62 generic/maildriver_errors.h \
63 generic/maildriver_tools.h \
64 generic/maildriver_types.h \
65 generic/maildriver_types_helper.h \
66 generic/mailfolder.h \
67 generic/mailmessage.h \
68 generic/mailmessage_tools.h \
69 generic/mailmessage_types.h \
70 generic/mailstorage.h \
71 generic/mailstorage_tools.h \
72 generic/mailstorage_types.h \
73 generic/mailthread.h \
74 generic/mailthread_types.h \
75 generic/mboxdriver.h \
76 generic/mboxdriver_cached.h \
77 generic/mboxdriver_cached_message.h \
78 generic/mboxdriver_message.h \
79 generic/mboxdriver_tools.h \
80 generic/mboxdriver_types.h \
81 generic/mboxstorage.h \
82 generic/mhdriver.h \
83 generic/mhdriver_cached.h \
84 generic/mhdriver_cached_message.h \
85 generic/mhdriver_message.h \
86 generic/mhdriver_tools.h \
87 generic/mhdriver_types.h \
88 generic/mhstorage.h \
89 generic/mime_message_driver.h \
90 generic/nntpdriver.h \
91 generic/nntpdriver_cached.h \
92 generic/nntpdriver_cached_message.h \
93 generic/nntpdriver_message.h \
94 generic/nntpdriver_tools.h \
95 generic/nntpdriver_types.h \
96 generic/nntpstorage.h \
97 generic/pop3driver.h \
98 generic/pop3driver_cached.h \
99 generic/pop3driver_cached_message.h \
100 generic/pop3driver_message.h \
101 generic/pop3driver_tools.h \
102 generic/pop3driver_types.h \
103 generic/pop3storage.h \
104 imap/mailimap.h \
105 imap/mailimap_helper.h \
106 imap/mailimap_keywords.h \
107 imap/mailimap_parser.h \
108 imap/mailimap_print.h \
109 imap/mailimap_sender.h \
110 imap/mailimap_socket.h \
111 imap/mailimap_ssl.h \
112 imap/mailimap_types.h \
113 imap/mailimap_types_helper.h \
114 imf/mailimf.h \
115 imf/mailimf_types.h \
116 imf/mailimf_types_helper.h \
117 imf/mailimf_write.h \
118 maildir/maildir.h \
119 maildir/maildir_types.h \
120 mbox/mailmbox.h \
121 mbox/mailmbox_parse.h \
122 mbox/mailmbox_types.h \
123 mh/mailmh.h \
124 mime/mailmime.h \
125 mime/mailmime_content.h \
126 mime/mailmime_decode.h \
127 mime/mailmime_disposition.h \
128 mime/mailmime_types.h \
129 mime/mailmime_types_helper.h \
130 mime/mailmime_write.h \
131 nntp/newsnntp.h \
132 nntp/newsnntp_socket.h \
133 nntp/newsnntp_ssl.h \
134 nntp/newsnntp_types.h \
135 pop3/mailpop3.h \
136 pop3/mailpop3_helper.h \
137 pop3/mailpop3_socket.h \
138 pop3/mailpop3_ssl.h \
139 pop3/mailpop3_types.h \
140 smtp/mailsmtp.h \
141 smtp/mailsmtp_helper.h \
142 smtp/mailsmtp_socket.h \
143 smtp/mailsmtp_ssl.h \
144 smtp/mailsmtp_types.h \
145 tools/base64.h \
146 tools/carray.h \
147 tools/charconv.h \
148 tools/chash.h \
149 tools/cinthash.h \
150 tools/clist.h \
151 tools/connect.h \
152 tools/hmac-md5.h \
153 tools/mail.h \
154 tools/mail_cache_db.h \
155 tools/mail_cache_db_types.h \
156 tools/maillock.h \
157 tools/mailstream.h \
158 tools/mailstream_helper.h \
159 tools/mailstream_low.h \
160 tools/mailstream_socket.h \
161 tools/mailstream_ssl.h \
162 tools/mailstream_types.h \
163 tools/mapping.h \
164 tools/md5.h \
165 tools/md5global.h \
166 tools/mmapstring.h \
167
168SOURCES += generic/data_message_driver.c \
169 generic/generic_cache.c \
170 generic/imapdriver.c \
171 generic/imapdriver_cached.c \
172 generic/imapdriver_cached_message.c \
173 generic/imapdriver_message.c \
174 generic/imapdriver_tools.c \
175 generic/imapstorage.c \
176 generic/imfcache.c \
177 generic/libetpan_version.c \
178 generic/maildirdriver.c \
179 generic/maildirdriver_cached.c \
180 generic/maildirdriver_cached_message.c \
181 generic/maildirdriver_message.c \
182 generic/maildirdriver_tools.c \
183 generic/maildirstorage.c \
184 generic/maildriver.c \
185 generic/maildriver_tools.c \
186 generic/maildriver_types.c \
187 generic/maildriver_types_helper.c \
188 generic/mailfolder.c \
189 generic/mailmessage.c \
190 generic/mailmessage_tools.c \
191 generic/mailmessage_types.c \
192 generic/mailstorage.c \
193 generic/mailstorage_tools.c \
194 generic/mailthread.c \
195 generic/mailthread_types.c \
196 generic/mboxdriver.c \
197 generic/mboxdriver_cached.c \
198 generic/mboxdriver_cached_message.c \
199 generic/mboxdriver_message.c \
200 generic/mboxdriver_tools.c \
201 generic/mboxstorage.c \
202 generic/mhdriver.c \
203 generic/mhdriver_cached.c \
204 generic/mhdriver_cached_message.c \
205 generic/mhdriver_message.c \
206 generic/mhdriver_tools.c \
207 generic/mhstorage.c \
208 generic/mime_message_driver.c \
209 generic/nntpdriver.c \
210 generic/nntpdriver_cached.c \
211 generic/nntpdriver_cached_message.c \
212 generic/nntpdriver_message.c \
213 generic/nntpdriver_tools.c \
214 generic/nntpstorage.c \
215 generic/pop3driver.c \
216 generic/pop3driver_cached.c \
217 generic/pop3driver_cached_message.c \
218 generic/pop3driver_message.c \
219 generic/pop3driver_tools.c \
220 generic/pop3storage.c \
221 imap/mailimap.c \
222 imap/mailimap_helper.c \
223 imap/mailimap_keywords.c \
224 imap/mailimap_parser.c \
225 imap/mailimap_print.c \
226 imap/mailimap_sender.c \
227 imap/mailimap_socket.c \
228 imap/mailimap_ssl.c \
229 imap/mailimap_types.c \
230 imap/mailimap_types_helper.c \
231 imf/mailimf.c \
232 imf/mailimf_types.c \
233 imf/mailimf_types_helper.c \
234 imf/mailimf_write.c \
235 maildir/maildir.c \
236 mbox/mailmbox.c \
237 mbox/mailmbox_parse.c \
238 mbox/mailmbox_types.c \
239 mh/mailmh.c \
240 mime/mailmime.c \
241 mime/mailmime_content.c \
242 mime/mailmime_decode.c \
243 mime/mailmime_disposition.c \
244 mime/mailmime_types.c \
245 mime/mailmime_types_helper.c \
246 mime/mailmime_write.c \
247 nntp/newsnntp.c \
248 nntp/newsnntp_socket.c \
249 nntp/newsnntp_ssl.c \
250 pop3/mailpop3.c \
251 pop3/mailpop3_helper.c \
252 pop3/mailpop3_socket.c \
253 pop3/mailpop3_ssl.c \
254 smtp/mailsmtp.c \
255 smtp/mailsmtp_helper.c \
256 smtp/mailsmtp_socket.c \
257 smtp/mailsmtp_ssl.c \
258 tools/base64.c \
259 tools/carray.c \
260 tools/charconv.c \
261 tools/chash.c \
262 tools/cinthash.c \
263 tools/clist.c \
264 tools/connect.c \
265 tools/mail_cache_db.c \
266 tools/maillock.c \
267 tools/mailstream.c \
268 tools/mailstream_helper.c \
269 tools/mailstream_low.c \
270 tools/mailstream_socket.c \
271 tools/mailstream_ssl.c \
272 tools/mapping.c \
273 tools/md5.c \
274 tools/mmapstring.c
diff --git a/kmicromail/libmailwrapper/generatemail.h b/kmicromail/libmailwrapper/generatemail.h
index a767b61..b9f8285 100644
--- a/kmicromail/libmailwrapper/generatemail.h
+++ b/kmicromail/libmailwrapper/generatemail.h
@@ -1,46 +1,47 @@
1#ifndef __GENERATE_MAIL_H 1#ifndef __GENERATE_MAIL_H
2#define __GENERATE_MAIL_H 2#define __GENERATE_MAIL_H
3 3
4#include <qpe/applnk.h> 4//#include <qpe/applnk.h>
5 5
6#include <qobject.h> 6#include <qobject.h>
7#include <libetpan/clist.h> 7#include <libetpan/clist.h>
8#include "mailwrapper.h"
8 9
9#include <opie2/osmartpointer.h> 10#include <opie2/osmartpointer.h>
10 11
11class Mail; 12class Mail;
12class RecMail; 13class RecMail;
13class Attachment; 14
14struct mailimf_fields; 15struct mailimf_fields;
15struct mailimf_field; 16struct mailimf_field;
16struct mailimf_mailbox; 17struct mailimf_mailbox;
17struct mailmime; 18struct mailmime;
18struct mailimf_address_list; 19struct mailimf_address_list;
19class progressMailSend; 20class progressMailSend;
20struct mailsmtp; 21struct mailsmtp;
21 22
22class Generatemail : public QObject 23class Generatemail : public QObject
23{ 24{
24 Q_OBJECT 25 Q_OBJECT
25public: 26public:
26 Generatemail(); 27 Generatemail();
27 virtual ~Generatemail(); 28 virtual ~Generatemail();
28 29
29protected: 30protected:
30 static void addRcpts( clist *list, mailimf_address_list *addr_list ); 31 static void addRcpts( clist *list, mailimf_address_list *addr_list );
31 static char *getFrom( mailmime *mail ); 32 static char *getFrom( mailmime *mail );
32 static char *getFrom( mailimf_field *ffrom); 33 static char *getFrom( mailimf_field *ffrom);
33 static mailimf_field *getField( mailimf_fields *fields, int type ); 34 static mailimf_field *getField( mailimf_fields *fields, int type );
34 mailimf_address_list *parseAddresses(const QString&addr ); 35 mailimf_address_list *parseAddresses(const QString&addr );
35 void addFileParts( mailmime *message,const QList<Attachment>&files ); 36 void addFileParts( mailmime *message,const QList<Attachment>&files );
36 mailmime *buildFilePart(const QString&filename,const QString&mimetype,const QString&content); 37 mailmime *buildFilePart(const QString&filename,const QString&mimetype,const QString&content);
37 mailmime *buildTxtPart(const QString&str ); 38 mailmime *buildTxtPart(const QString&str );
38 mailimf_mailbox *newMailbox(const QString&name,const QString&mail ); 39 mailimf_mailbox *newMailbox(const QString&name,const QString&mail );
39 mailimf_fields *createImfFields(const Opie::Core::OSmartPointer<Mail> &mail ); 40 mailimf_fields *createImfFields(const Opie::Core::OSmartPointer<Mail> &mail );
40 mailmime *createMimeMail(const Opie::Core::OSmartPointer<Mail>&mail ); 41 mailmime *createMimeMail(const Opie::Core::OSmartPointer<Mail>&mail );
41 clist *createRcptList( mailimf_fields *fields ); 42 clist *createRcptList( mailimf_fields *fields );
42 43
43 static const char* USER_AGENT; 44 static const char* USER_AGENT;
44}; 45};
45 46
46#endif 47#endif
diff --git a/kmicromail/libmailwrapper/libmailwrapper.pro b/kmicromail/libmailwrapper/libmailwrapper.pro
new file mode 100644
index 0000000..2b005d8
--- a/dev/null
+++ b/kmicromail/libmailwrapper/libmailwrapper.pro
@@ -0,0 +1,64 @@
1TEMPLATE = lib
2CONFIG += qt warn_on
3
4HEADERS = mailwrapper.h \
5 imapwrapper.h \
6 mailtypes.h \
7 pop3wrapper.h \
8 abstractmail.h \
9 smtpwrapper.h \
10 genericwrapper.h \
11 mboxwrapper.h \
12 settings.h \
13 logindialog.h \
14 sendmailprogress.h \
15 statusmail.h \
16 mhwrapper.h \
17 nntpwrapper.h \
18 generatemail.h \
19 storemail.h \
20 ../qpe/global.h
21
22SOURCES = imapwrapper.cpp \
23 mailwrapper.cpp \
24 mailtypes.cpp \
25 pop3wrapper.cpp \
26 abstractmail.cpp \
27 smtpwrapper.cpp \
28 genericwrapper.cpp \
29 mboxwrapper.cpp \
30 settings.cpp \
31 logindialog.cpp \
32 sendmailprogress.cpp \
33 statusmail.cpp \
34 mhwrapper.cpp \
35 nntpwrapper.cpp \
36 generatemail.cpp \
37 storemail.cpp \
38 ../qpe/global.cpp
39
40INTERFACES = logindialogui.ui \
41 sendmailprogressui.ui
42
43INCLUDEPATH += .. ../../microkde ../../microkde/kdecore ../libetpan/include
44LIBS += -lssl -lcrypto
45
46#-lqpe -letpan
47
48DESTDIR = ../../bin
49TARGET = micromailwrapper
50
51DEFINES += DESKTOP_VERSION
52unix : {
53OBJECTS_DIR = obj/unix
54MOC_DIR = moc/unix
55}
56win32: {
57DEFINES += _WIN32_
58LIBS += mfc71u.lib
59QMAKE_LINK += /NODEFAULTLIB:LIBC
60#QMAKE_LINK += /NODEFAULTLIB:MSVCRT
61#QMAKE_LINK += /NODEFAULTLIB:uafxcw.lib
62OBJECTS_DIR = obj/win
63MOC_DIR = moc/win
64}
diff --git a/kmicromail/libmailwrapper/mailwrapper.h b/kmicromail/libmailwrapper/mailwrapper.h
index 2ba908b..88f10da 100644
--- a/kmicromail/libmailwrapper/mailwrapper.h
+++ b/kmicromail/libmailwrapper/mailwrapper.h
@@ -1,52 +1,52 @@
1#ifndef MAILWRAPPER_H 1#ifndef MAILWRAPPER_H
2#define MAILWRAPPER_H 2#define MAILWRAPPER_H
3 3
4#include <qpe/applnk.h> 4//#include <qpe/applnk.h>
5 5
6#include <qbitarray.h> 6#include <qbitarray.h>
7#include <qdatetime.h> 7#include <qdatetime.h>
8#include <qfileinfo.h> 8#include <qfileinfo.h>
9#include <kiconloader.h> 9#include <kiconloader.h>
10 10
11#include "settings.h" 11#include "settings.h"
12 12
13#include <opie2/osmartpointer.h> 13#include <opie2/osmartpointer.h>
14/* 14/*
15class Attachment 15class Attachment
16{ 16{
17public: 17public:
18 Attachment( DocLnk lnk ); 18 Attachment( DocLnk lnk );
19 virtual ~Attachment(){} 19 virtual ~Attachment(){}
20 const QString getFileName()const{ return doc.file(); } 20 const QString getFileName()const{ return doc.file(); }
21 const QString getName()const{ return doc.name(); } 21 const QString getName()const{ return doc.name(); }
22 const QString getMimeType()const{ return doc.type(); } 22 const QString getMimeType()const{ return doc.type(); }
23 const QPixmap getPixmap()const{ return doc.pixmap(); } 23 const QPixmap getPixmap()const{ return doc.pixmap(); }
24 const int getSize()const { return size; } 24 const int getSize()const { return size; }
25 DocLnk getDocLnk() { return doc; } 25 DocLnk getDocLnk() { return doc; }
26 26
27protected: 27protected:
28 DocLnk doc; 28 DocLnk doc;
29 int size; 29 int size;
30 30
31}; 31};
32*/ 32*/
33 33
34class Attachment 34class Attachment
35{ 35{
36public: 36public:
37 Attachment( QString lnk ); 37 Attachment( QString lnk );
38 virtual ~Attachment(){} 38 virtual ~Attachment(){}
39 const QString getFileName()const{ return doc; } 39 const QString getFileName()const{ return doc; }
40 const QString getName()const{ return QFileInfo( doc ).baseName (); } 40 const QString getName()const{ return QFileInfo( doc ).baseName (); }
41 const QString getMimeType()const{ return QFileInfo( doc ).extension(false); } 41 const QString getMimeType()const{ return QFileInfo( doc ).extension(false); }
42 const QPixmap getPixmap()const{ return mPix; } 42 const QPixmap getPixmap()const{ return mPix; }
43 const int getSize()const { return size; } 43 const int getSize()const { return size; }
44 QString getDocLnk() { return doc; } 44 QString getDocLnk() { return doc; }
45 45
46protected: 46protected:
47 QPixmap mPix; 47 QPixmap mPix;
48 QString doc; 48 QString doc;
49 int size; 49 int size;
50 50
51}; 51};
52 52
diff --git a/kmicromail/libmailwrapper/mhwrapper.cpp b/kmicromail/libmailwrapper/mhwrapper.cpp
index f4133c0..de6d220 100644
--- a/kmicromail/libmailwrapper/mhwrapper.cpp
+++ b/kmicromail/libmailwrapper/mhwrapper.cpp
@@ -1,60 +1,60 @@
1// CHANGED 2004-09-31 Lutz Rogowski 1// CHANGED 2004-09-31 Lutz Rogowski
2#include "mhwrapper.h" 2#include "mhwrapper.h"
3#include "mailtypes.h" 3#include "mailtypes.h"
4#include "mailwrapper.h" 4#include "mailwrapper.h"
5#include <libetpan/libetpan.h> 5#include <libetpan/libetpan.h>
6#include <qdir.h> 6#include <qdir.h>
7#include <qmessagebox.h> 7#include <qmessagebox.h>
8#include <stdlib.h> 8#include <stdlib.h>
9#include <qpe/global.h> 9#include <qpe/global.h>
10#include <oprocess.h>
11#include <klocale.h> 10#include <klocale.h>
12//#include <opie2/odebug.h> 11#include <kglobal.h>
12//#include <opie2/odebug.h>
13 13
14using namespace Opie::Core; 14using namespace Opie::Core;
15MHwrapper::MHwrapper(const QString & mbox_dir,const QString&mbox_name) 15MHwrapper::MHwrapper(const QString & mbox_dir,const QString&mbox_name)
16 : Genericwrapper(),MHPath(mbox_dir),MHName(mbox_name) 16 : Genericwrapper(),MHPath(mbox_dir),MHName(mbox_name)
17{ 17{
18 if (MHPath.length()>0) { 18 if (MHPath.length()>0) {
19 if (MHPath[MHPath.length()-1]=='/') { 19 if (MHPath[MHPath.length()-1]=='/') {
20 MHPath=MHPath.left(MHPath.length()-1); 20 MHPath=MHPath.left(MHPath.length()-1);
21 } 21 }
22 //odebug << MHPath << oendl; 22 //odebug << MHPath << oendl;
23 QDir dir(MHPath); 23 QDir dir(MHPath);
24 if (!dir.exists()) { 24 if (!dir.exists()) {
25 dir.mkdir(MHPath); 25 dir.mkdir(MHPath);
26 } 26 }
27 init_storage(); 27 init_storage();
28 } 28 }
29} 29}
30 30
31void MHwrapper::init_storage() 31void MHwrapper::init_storage()
32{ 32{
33 int r; 33 int r;
34 QString pre = MHPath; 34 QString pre = MHPath;
35 if (!m_storage) { 35 if (!m_storage) {
36 m_storage = mailstorage_new(NULL); 36 m_storage = mailstorage_new(NULL);
37 r = mh_mailstorage_init(m_storage,(char*)pre.latin1(),0,0,0); 37 r = mh_mailstorage_init(m_storage,(char*)pre.latin1(),0,0,0);
38 if (r != MAIL_NO_ERROR) { 38 if (r != MAIL_NO_ERROR) {
39 qDebug(" error init storage "); 39 qDebug(" error init storage ");
40 mailstorage_free(m_storage); 40 mailstorage_free(m_storage);
41 m_storage = 0; 41 m_storage = 0;
42 return; 42 return;
43 } 43 }
44 } 44 }
45 r = mailstorage_connect(m_storage); 45 r = mailstorage_connect(m_storage);
46 if (r!=MAIL_NO_ERROR) { 46 if (r!=MAIL_NO_ERROR) {
47 qDebug("error connecting storage "); 47 qDebug("error connecting storage ");
48 mailstorage_free(m_storage); 48 mailstorage_free(m_storage);
49 m_storage = 0; 49 m_storage = 0;
50 } 50 }
51} 51}
52 52
53void MHwrapper::clean_storage() 53void MHwrapper::clean_storage()
54{ 54{
55 if (m_storage) { 55 if (m_storage) {
56 mailstorage_disconnect(m_storage); 56 mailstorage_disconnect(m_storage);
57 mailstorage_free(m_storage); 57 mailstorage_free(m_storage);
58 m_storage = 0; 58 m_storage = 0;
59 } 59 }
60} 60}
@@ -270,129 +270,123 @@ int MHwrapper::deleteAllMail(const FolderP&tfolder)
270 init_storage(); 270 init_storage();
271 if (!m_storage) { 271 if (!m_storage) {
272 return 0; 272 return 0;
273 } 273 }
274 int res = 1; 274 int res = 1;
275 if (!tfolder) return 0; 275 if (!tfolder) return 0;
276 int r = mailsession_select_folder(m_storage->sto_session,(char*)tfolder->getName().latin1()); 276 int r = mailsession_select_folder(m_storage->sto_session,(char*)tfolder->getName().latin1());
277 if (r!=MAIL_NO_ERROR) { 277 if (r!=MAIL_NO_ERROR) {
278 qDebug("error selecting folder! "); 278 qDebug("error selecting folder! ");
279 return 0; 279 return 0;
280 } 280 }
281 mailmessage_list*l=0; 281 mailmessage_list*l=0;
282 r = mailsession_get_messages_list(m_storage->sto_session,&l); 282 r = mailsession_get_messages_list(m_storage->sto_session,&l);
283 if (r != MAIL_NO_ERROR) { 283 if (r != MAIL_NO_ERROR) {
284 qDebug("Error message list "); 284 qDebug("Error message list ");
285 res = 0; 285 res = 0;
286 } 286 }
287 unsigned j = 0; 287 unsigned j = 0;
288 for(unsigned int i = 0 ; l!= 0 && res==1 && i < carray_count(l->msg_tab) ; ++i) { 288 for(unsigned int i = 0 ; l!= 0 && res==1 && i < carray_count(l->msg_tab) ; ++i) {
289 mailmessage * msg; 289 mailmessage * msg;
290 msg = (mailmessage*)carray_get(l->msg_tab, i); 290 msg = (mailmessage*)carray_get(l->msg_tab, i);
291 j = msg->msg_index; 291 j = msg->msg_index;
292 r = mailsession_remove_message(m_storage->sto_session,j); 292 r = mailsession_remove_message(m_storage->sto_session,j);
293 if (r != MAIL_NO_ERROR) { 293 if (r != MAIL_NO_ERROR) {
294 Global::statusMessage(i18n("Error deleting mail %1").arg(i+1)); 294 Global::statusMessage(i18n("Error deleting mail %1").arg(i+1));
295 res = 0; 295 res = 0;
296 break; 296 break;
297 } 297 }
298 } 298 }
299 if (l) mailmessage_list_free(l); 299 if (l) mailmessage_list_free(l);
300 return res; 300 return res;
301} 301}
302 302
303int MHwrapper::deleteMbox(const FolderP&tfolder) 303int MHwrapper::deleteMbox(const FolderP&tfolder)
304{ 304{
305 init_storage(); 305 init_storage();
306 if (!m_storage) { 306 if (!m_storage) {
307 return 0; 307 return 0;
308 } 308 }
309 if (!tfolder) return 0; 309 if (!tfolder) return 0;
310 if (tfolder->getName()=="/" || tfolder->getName().isEmpty()) return 0; 310 if (tfolder->getName()=="/" || tfolder->getName().isEmpty()) return 0;
311 311
312 int r = mailsession_delete_folder(m_storage->sto_session,(char*)tfolder->getName().latin1()); 312 int r = mailsession_delete_folder(m_storage->sto_session,(char*)tfolder->getName().latin1());
313 313
314 if (r != MAIL_NO_ERROR) { 314 if (r != MAIL_NO_ERROR) {
315 qDebug("error deleting mail box "); 315 qDebug("error deleting mail box ");
316 return 0; 316 return 0;
317 } 317 }
318 QString delDir = locateLocal( "apps", "kopiemail")+ "localmail";
319 qDebug("*****************\ndel %s %s ", delDir.latin1(),tfolder->getName().latin1() );
320#if 0
318 QString cmd = "rm -rf "+tfolder->getName(); 321 QString cmd = "rm -rf "+tfolder->getName();
319 QStringList command; 322 QStringList command;
320 command << "/bin/sh"; 323 command << "/bin/sh";
321 command << "-c"; 324 command << "-c";
322 command << cmd.latin1(); 325 command << cmd.latin1();
323 OProcess *process = new OProcess(); 326 OProcess *process = new OProcess();
324 327
328 /*
325 connect(process, SIGNAL(processExited(Opie::Core::OProcess*)), 329 connect(process, SIGNAL(processExited(Opie::Core::OProcess*)),
326 this, SLOT( processEnded(Opie::Core::OProcess*))); 330 this, SLOT( processEnded(Opie::Core::OProcess*)));
327 connect(process, SIGNAL( receivedStderr(Opie::Core::OProcess*,char*,int)), 331 connect(process, SIGNAL( receivedStderr(Opie::Core::OProcess*,char*,int)),
328 this, SLOT( oprocessStderr(Opie::Core::OProcess*,char*,int))); 332 this, SLOT( oprocessStderr(Opie::Core::OProcess*,char*,int)));
329 333 */
330 *process << command; 334 *process << command;
331 removeMboxfailed = false; 335 removeMboxfailed = false;
332 if(!process->start(OProcess::Block, OProcess::All) ) { 336 if(!process->start(OProcess::Block, OProcess::All) ) {
333 qDebug("could not start process "); 337 qDebug("could not start process ");
334 return 0; 338 return 0;
335 } 339 }
340#endif
336 qDebug("mail box deleted "); 341 qDebug("mail box deleted ");
337 return 1; 342 return 1;
338} 343}
339 344
340void MHwrapper::processEnded(OProcess *p)
341{
342 if (p) delete p;
343}
344
345void MHwrapper::oprocessStderr(OProcess*, char *buffer, int )
346{
347 QString lineStr = buffer;
348 QMessageBox::warning( 0, i18n("Error"), lineStr ,i18n("Ok") );
349 removeMboxfailed = true;
350}
351 345
352void MHwrapper::statusFolder(folderStat&target_stat,const QString & mailbox) 346void MHwrapper::statusFolder(folderStat&target_stat,const QString & mailbox)
353{ 347{
354 init_storage(); 348 init_storage();
355 if (!m_storage) { 349 if (!m_storage) {
356 return; 350 return;
357 } 351 }
358 target_stat.message_count = 0; 352 target_stat.message_count = 0;
359 target_stat.message_unseen = 0; 353 target_stat.message_unseen = 0;
360 target_stat.message_recent = 0; 354 target_stat.message_recent = 0;
361 QString f = buildPath(mailbox); 355 QString f = buildPath(mailbox);
362 int r = mailsession_status_folder(m_storage->sto_session,(char*)f.latin1(),&target_stat.message_count, 356 int r = mailsession_status_folder(m_storage->sto_session,(char*)f.latin1(),&target_stat.message_count,
363 &target_stat.message_recent,&target_stat.message_unseen); 357 &target_stat.message_recent,&target_stat.message_unseen);
364 if (r != MAIL_NO_ERROR) { 358 if (r != MAIL_NO_ERROR) {
365 Global::statusMessage(i18n("Error retrieving status")); 359 Global::statusMessage(i18n("Error retrieving status"));
366 } 360 }
367} 361}
368 362
369MAILLIB::ATYPE MHwrapper::getType()const 363MAILLIB::ATYPE MHwrapper::getType()const
370{ 364{
371 return MAILLIB::A_MH; 365 return MAILLIB::A_MH;
372} 366}
373 367
374const QString&MHwrapper::getName()const 368const QString&MHwrapper::getName()const
375{ 369{
376 return MHName; 370 return MHName;
377} 371}
378void MHwrapper::mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) 372void MHwrapper::mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit)
379{ 373{
380 init_storage(); 374 init_storage();
381 if (!m_storage) { 375 if (!m_storage) {
382 return; 376 return;
383 } 377 }
384 if (targetWrapper != this) { 378 if (targetWrapper != this) {
385 qDebug("Using generic "); 379 qDebug("Using generic ");
386 Genericwrapper::mvcpMail(mail,targetFolder,targetWrapper,moveit); 380 Genericwrapper::mvcpMail(mail,targetFolder,targetWrapper,moveit);
387 return; 381 return;
388 } 382 }
389 qDebug("Using internal routines for move/copy "); 383 qDebug("Using internal routines for move/copy ");
390 QString tf = buildPath(targetFolder); 384 QString tf = buildPath(targetFolder);
391 int r = mailsession_select_folder(m_storage->sto_session,(char*)mail->getMbox().latin1()); 385 int r = mailsession_select_folder(m_storage->sto_session,(char*)mail->getMbox().latin1());
392 if (r != MAIL_NO_ERROR) { 386 if (r != MAIL_NO_ERROR) {
393 qDebug("Error selecting source mailbox "); 387 qDebug("Error selecting source mailbox ");
394 return; 388 return;
395 } 389 }
396 if (moveit) { 390 if (moveit) {
397 r = mailsession_move_message(m_storage->sto_session,mail->getNumber(),(char*)tf.latin1()); 391 r = mailsession_move_message(m_storage->sto_session,mail->getNumber(),(char*)tf.latin1());
398 } else { 392 } else {
diff --git a/kmicromail/libmailwrapper/mhwrapper.h b/kmicromail/libmailwrapper/mhwrapper.h
index d1b7d1f..87f8ca1 100644
--- a/kmicromail/libmailwrapper/mhwrapper.h
+++ b/kmicromail/libmailwrapper/mhwrapper.h
@@ -1,62 +1,58 @@
1// CHANGED 2004-09-31 Lutz Rogowski 1// CHANGED 2004-09-31 Lutz Rogowski
2#ifndef __MH_WRAPPER_H 2#ifndef __MH_WRAPPER_H
3#define __MH_WRAPPER_H 3#define __MH_WRAPPER_H
4 4
5#include "maildefines.h" 5#include "maildefines.h"
6 6
7#include "genericwrapper.h" 7#include "genericwrapper.h"
8#include <qstring.h> 8#include <qstring.h>
9 9
10class encodedString; 10class encodedString;
11struct mailmbox_folder; 11struct mailmbox_folder;
12namespace Opie {namespace Core {class OProcess;}}
13
14class MHwrapper : public Genericwrapper 12class MHwrapper : public Genericwrapper
15{ 13{
16 Q_OBJECT 14 Q_OBJECT
17public: 15public:
18 MHwrapper(const QString & dir,const QString&name); 16 MHwrapper(const QString & dir,const QString&name);
19 virtual ~MHwrapper(); 17 virtual ~MHwrapper();
20 18
21 virtual void listMessages(const QString & mailbox, QValueList<Opie::Core::OSmartPointer<RecMail> > &target, int maxSizeInKb = 0 ); 19 virtual void listMessages(const QString & mailbox, QValueList<Opie::Core::OSmartPointer<RecMail> > &target, int maxSizeInKb = 0 );
22 virtual QValueList<Opie::Core::OSmartPointer<Folder> >* listFolders(); 20 virtual QValueList<Opie::Core::OSmartPointer<Folder> >* listFolders();
23 virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX"); 21 virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX");
24 22
25 virtual void deleteMail(const RecMailP&mail); 23 virtual void deleteMail(const RecMailP&mail);
26 virtual void answeredMail(const RecMailP&mail); 24 virtual void answeredMail(const RecMailP&mail);
27 virtual void mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); 25 virtual void mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit);
28 virtual void mvcpAllMails(const Opie::Core::OSmartPointer<Folder>&fromFolder, 26 virtual void mvcpAllMails(const Opie::Core::OSmartPointer<Folder>&fromFolder,
29 const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); 27 const QString&targetFolder,AbstractMail*targetWrapper,bool moveit);
30 28
31 virtual int createMbox(const QString&folder,const Opie::Core::OSmartPointer<Folder>&f=0, 29 virtual int createMbox(const QString&folder,const Opie::Core::OSmartPointer<Folder>&f=0,
32 const QString&d="",bool s=false); 30 const QString&d="",bool s=false);
33 virtual int deleteMbox(const Opie::Core::OSmartPointer<Folder>&); 31 virtual int deleteMbox(const Opie::Core::OSmartPointer<Folder>&);
34 32
35 virtual void storeMessage(const char*msg,size_t length, const QString&folder); 33 virtual void storeMessage(const char*msg,size_t length, const QString&folder);
36 34
37 virtual RecBodyP fetchBody( const RecMailP &mail ); 35 virtual RecBodyP fetchBody( const RecMailP &mail );
38 static void mbox_progress( size_t current, size_t maximum ); 36 static void mbox_progress( size_t current, size_t maximum );
39 37
40 virtual encodedString* fetchRawBody(const RecMailP&mail); 38 virtual encodedString* fetchRawBody(const RecMailP&mail);
41 virtual void deleteMails(const QString & FolderName,const QValueList<Opie::Core::OSmartPointer<RecMail> > &target); 39 virtual void deleteMails(const QString & FolderName,const QValueList<Opie::Core::OSmartPointer<RecMail> > &target);
42 virtual int deleteAllMail(const Opie::Core::OSmartPointer<Folder>&); 40 virtual int deleteAllMail(const Opie::Core::OSmartPointer<Folder>&);
43 virtual MAILLIB::ATYPE getType()const; 41 virtual MAILLIB::ATYPE getType()const;
44 virtual const QString&getName()const; 42 virtual const QString&getName()const;
45 virtual Account* getAccount() { return 0; }; 43 virtual Account* getAccount() { return 0; };
46 44
47public slots: 45public slots:
48 /* for deleting maildirs we are using a system call */ 46
49 virtual void oprocessStderr(Opie::Core::OProcess*, char *buffer, int );
50 virtual void processEnded(Opie::Core::OProcess *);
51protected: 47protected:
52 QString buildPath(const QString&p); 48 QString buildPath(const QString&p);
53 QString MHPath; 49 QString MHPath;
54 QString MHName; 50 QString MHName;
55 51
56 void init_storage(); 52 void init_storage();
57 void clean_storage(); 53 void clean_storage();
58 54
59 bool removeMboxfailed; 55 bool removeMboxfailed;
60}; 56};
61 57
62#endif 58#endif
diff --git a/kmicromail/libmailwrapper/settings.h b/kmicromail/libmailwrapper/settings.h
index 61051dd..79567ef 100644
--- a/kmicromail/libmailwrapper/settings.h
+++ b/kmicromail/libmailwrapper/settings.h
@@ -1,58 +1,59 @@
1#ifndef SETTINGS_H 1#ifndef SETTINGS_H
2#define SETTINGS_H 2#define SETTINGS_H
3 3
4#include "maildefines.h" 4#include "maildefines.h"
5 5
6/* OPIE */ 6/* OPIE */
7 7
8/* QT */ 8/* QT */
9#include <qobject.h> 9#include <qobject.h>
10#include <qlist.h> 10#include <qlist.h>
11#include <qstringlist.h>
11#include <qdatetime.h> 12#include <qdatetime.h>
12 13
13class Account 14class Account
14{ 15{
15 16
16public: 17public:
17 Account(); 18 Account();
18 virtual ~Account() {} 19 virtual ~Account() {}
19 20
20 void remove(); 21 void remove();
21 void setAccountName( QString name ) { accountName = name; } 22 void setAccountName( QString name ) { accountName = name; }
22 const QString&getAccountName()const{ return accountName; } 23 const QString&getAccountName()const{ return accountName; }
23 MAILLIB::ATYPE getType()const{ return type; } 24 MAILLIB::ATYPE getType()const{ return type; }
24 25
25 void setServer(const QString&str){ server = str; } 26 void setServer(const QString&str){ server = str; }
26 const QString&getServer()const{ return server; } 27 const QString&getServer()const{ return server; }
27 28
28 void setLocalFolder( QString name ) { localFolder = name; } 29 void setLocalFolder( QString name ) { localFolder = name; }
29 const QString& getLocalFolder()const{ return localFolder; } 30 const QString& getLocalFolder()const{ return localFolder; }
30 31
31 void setPort(const QString&str) { port = str; } 32 void setPort(const QString&str) { port = str; }
32 const QString&getPort()const{ return port; } 33 const QString&getPort()const{ return port; }
33 34
34 void setUser(const QString&str){ user = str; } 35 void setUser(const QString&str){ user = str; }
35 const QString&getUser()const{ return user; } 36 const QString&getUser()const{ return user; }
36 37
37 void setPassword(const QString&str) { password = str; } 38 void setPassword(const QString&str) { password = str; }
38 const QString&getPassword()const { return password; } 39 const QString&getPassword()const { return password; }
39 40
40 void setPasswordList(const QStringList &str); 41 void setPasswordList(const QStringList &str);
41 QStringList getPasswordList(); 42 QStringList getPasswordList();
42 43
43 void setSSL( bool b ) { ssl = b; } 44 void setSSL( bool b ) { ssl = b; }
44 bool getSSL() { return ssl; } 45 bool getSSL() { return ssl; }
45 46
46 void setConnectionType( int x ) { connectionType = x; } 47 void setConnectionType( int x ) { connectionType = x; }
47 int ConnectionType() { return connectionType; } 48 int ConnectionType() { return connectionType; }
48 49
49 void setMaxMailSize( int x ) { maxMailSize = x; } 50 void setMaxMailSize( int x ) { maxMailSize = x; }
50 int getMaxMailSize() { return maxMailSize; } 51 int getMaxMailSize() { return maxMailSize; }
51 52
52 void setOffline(bool b) {offline = b;} 53 void setOffline(bool b) {offline = b;}
53 bool getOffline()const{return offline;} 54 bool getOffline()const{return offline;}
54 55
55 bool getLeaveOnServer(){ return leaveOnServer;} 56 bool getLeaveOnServer(){ return leaveOnServer;}
56 void setLeaveOnServer(bool b){ leaveOnServer = b;} 57 void setLeaveOnServer(bool b){ leaveOnServer = b;}
57 58
58 virtual QString getFileName() { return accountName; } 59 virtual QString getFileName() { return accountName; }
diff --git a/kmicromail/libmailwrapper/smtpwrapper.cpp b/kmicromail/libmailwrapper/smtpwrapper.cpp
index dee1477..eb07ef1 100644
--- a/kmicromail/libmailwrapper/smtpwrapper.cpp
+++ b/kmicromail/libmailwrapper/smtpwrapper.cpp
@@ -1,178 +1,183 @@
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 <opie2/odebug.h>
9//#include <qt.h> 9//#include <qt.h>
10#include <qapplication.h> 10#include <qapplication.h>
11#include <qmessagebox.h> 11#include <qmessagebox.h>
12#include <stdlib.h> 12#include <stdlib.h>
13#include <qpe/config.h> 13#ifndef DESKTOP_VERSION
14//#include <qpe/config.h>
14#include <qpe/qcopenvelope_qws.h> 15#include <qpe/qcopenvelope_qws.h>
15 16#endif
16#include <libetpan/libetpan.h> 17#include <libetpan/libetpan.h>
17#include <klocale.h> 18#include <klocale.h>
19#include <kglobal.h>
20#include <kconfig.h>
18 21
19 22
20using namespace Opie::Core; 23using namespace Opie::Core;
21progressMailSend*SMTPwrapper::sendProgress = 0; 24progressMailSend*SMTPwrapper::sendProgress = 0;
22 25
23SMTPwrapper::SMTPwrapper(SMTPaccount * aSmtp ) 26SMTPwrapper::SMTPwrapper(SMTPaccount * aSmtp )
24 : Generatemail() 27 : Generatemail()
25{ 28{
26 m_SmtpAccount = aSmtp; 29 m_SmtpAccount = aSmtp;
27 Config cfg( "mail" ); 30 KConfig cfg( locateLocal("config", "kopiemail" ) );
28 cfg.setGroup( "Status" ); 31 cfg.setGroup( "Status" );
29 m_queuedMail = cfg.readNumEntry( "outgoing", 0 ); 32 m_queuedMail = cfg.readNumEntry( "outgoing", 0 );
30 emit queuedMails( m_queuedMail ); 33 emit queuedMails( m_queuedMail );
31 connect( this, SIGNAL( queuedMails(int) ), this, SLOT( emitQCop(int) ) ); 34 connect( this, SIGNAL( queuedMails(int) ), this, SLOT( emitQCop(int) ) );
32 m_smtp = 0; 35 m_smtp = 0;
33} 36}
34 37
35SMTPwrapper::~SMTPwrapper() 38SMTPwrapper::~SMTPwrapper()
36{ 39{
37 disc_server(); 40 disc_server();
38} 41}
39 42
40void SMTPwrapper::emitQCop( int queued ) { 43void SMTPwrapper::emitQCop( int queued ) {
44#ifndef DESKTOP_VERSION
41 QCopEnvelope env( "QPE/Pim", "outgoingMails(int)" ); 45 QCopEnvelope env( "QPE/Pim", "outgoingMails(int)" );
42 env << queued; 46 env << queued;
47#endif
43} 48}
44 49
45QString SMTPwrapper::mailsmtpError( int errnum ) { 50QString SMTPwrapper::mailsmtpError( int errnum ) {
46 switch ( errnum ) { 51 switch ( errnum ) {
47 case MAILSMTP_NO_ERROR: 52 case MAILSMTP_NO_ERROR:
48 return i18n( "No error" ); 53 return i18n( "No error" );
49 case MAILSMTP_ERROR_UNEXPECTED_CODE: 54 case MAILSMTP_ERROR_UNEXPECTED_CODE:
50 return i18n( "Unexpected error code" ); 55 return i18n( "Unexpected error code" );
51 case MAILSMTP_ERROR_SERVICE_NOT_AVAILABLE: 56 case MAILSMTP_ERROR_SERVICE_NOT_AVAILABLE:
52 return i18n( "Service not available" ); 57 return i18n( "Service not available" );
53 case MAILSMTP_ERROR_STREAM: 58 case MAILSMTP_ERROR_STREAM:
54 return i18n( "Stream error" ); 59 return i18n( "Stream error" );
55 case MAILSMTP_ERROR_HOSTNAME: 60 case MAILSMTP_ERROR_HOSTNAME:
56 return i18n( "gethostname() failed" ); 61 return i18n( "gethostname() failed" );
57 case MAILSMTP_ERROR_NOT_IMPLEMENTED: 62 case MAILSMTP_ERROR_NOT_IMPLEMENTED:
58 return i18n( "Not implemented" ); 63 return i18n( "Not implemented" );
59 case MAILSMTP_ERROR_ACTION_NOT_TAKEN: 64 case MAILSMTP_ERROR_ACTION_NOT_TAKEN:
60 return i18n( "Error, action not taken" ); 65 return i18n( "Error, action not taken" );
61 case MAILSMTP_ERROR_EXCEED_STORAGE_ALLOCATION: 66 case MAILSMTP_ERROR_EXCEED_STORAGE_ALLOCATION:
62 return i18n( "Data exceeds storage allocation" ); 67 return i18n( "Data exceeds storage allocation" );
63 case MAILSMTP_ERROR_IN_PROCESSING: 68 case MAILSMTP_ERROR_IN_PROCESSING:
64 return i18n( "Error in processing" ); 69 return i18n( "Error in processing" );
65 case MAILSMTP_ERROR_STARTTLS_NOT_SUPPORTED: 70 case MAILSMTP_ERROR_STARTTLS_NOT_SUPPORTED:
66 return i18n( "Starttls not supported" ); 71 return i18n( "Starttls not supported" );
67 // case MAILSMTP_ERROR_INSUFFISANT_SYSTEM_STORAGE: 72 // case MAILSMTP_ERROR_INSUFFISANT_SYSTEM_STORAGE:
68 // return i18n( "Insufficient system storage" ); 73 // return i18n( "Insufficient system storage" );
69 case MAILSMTP_ERROR_MAILBOX_UNAVAILABLE: 74 case MAILSMTP_ERROR_MAILBOX_UNAVAILABLE:
70 return i18n( "Mailbox unavailable" ); 75 return i18n( "Mailbox unavailable" );
71 case MAILSMTP_ERROR_MAILBOX_NAME_NOT_ALLOWED: 76 case MAILSMTP_ERROR_MAILBOX_NAME_NOT_ALLOWED:
72 return i18n( "Mailbox name not allowed" ); 77 return i18n( "Mailbox name not allowed" );
73 case MAILSMTP_ERROR_BAD_SEQUENCE_OF_COMMAND: 78 case MAILSMTP_ERROR_BAD_SEQUENCE_OF_COMMAND:
74 return i18n( "Bad command sequence" ); 79 return i18n( "Bad command sequence" );
75 case MAILSMTP_ERROR_USER_NOT_LOCAL: 80 case MAILSMTP_ERROR_USER_NOT_LOCAL:
76 return i18n( "User not local" ); 81 return i18n( "User not local" );
77 case MAILSMTP_ERROR_TRANSACTION_FAILED: 82 case MAILSMTP_ERROR_TRANSACTION_FAILED:
78 return i18n( "Transaction failed" ); 83 return i18n( "Transaction failed" );
79 case MAILSMTP_ERROR_MEMORY: 84 case MAILSMTP_ERROR_MEMORY:
80 return i18n( "Memory error" ); 85 return i18n( "Memory error" );
81 case MAILSMTP_ERROR_CONNECTION_REFUSED: 86 case MAILSMTP_ERROR_CONNECTION_REFUSED:
82 return i18n( "Connection refused" ); 87 return i18n( "Connection refused" );
83 default: 88 default:
84 return i18n( "Unknown error code" ); 89 return i18n( "Unknown error code" );
85 } 90 }
86} 91}
87 92
88 93
89void SMTPwrapper::progress( size_t current, size_t maximum ) { 94void SMTPwrapper::progress( size_t current, size_t maximum ) {
90 if (SMTPwrapper::sendProgress) { 95 if (SMTPwrapper::sendProgress) {
91 SMTPwrapper::sendProgress->setSingleMail(current, maximum ); 96 SMTPwrapper::sendProgress->setSingleMail(current, maximum );
92 qApp->processEvents(); 97 qApp->processEvents();
93 } 98 }
94} 99}
95 100
96void SMTPwrapper::storeMail(const char*mail, size_t length, const QString&box) { 101void SMTPwrapper::storeMail(const char*mail, size_t length, const QString&box) {
97 if (!mail) 102 if (!mail)
98 return; 103 return;
99 QString localfolders = AbstractMail::defaultLocalfolder(); 104 QString localfolders = AbstractMail::defaultLocalfolder();
100 AbstractMail*wrap = AbstractMail::getWrapper(localfolders); 105 AbstractMail*wrap = AbstractMail::getWrapper(localfolders);
101 wrap->createMbox(box); 106 wrap->createMbox(box);
102 wrap->storeMessage(mail,length,box); 107 wrap->storeMessage(mail,length,box);
103 delete wrap; 108 delete wrap;
104} 109}
105 110
106bool SMTPwrapper::smtpSend( mailmime *mail,bool later) { 111bool SMTPwrapper::smtpSend( mailmime *mail,bool later) {
107 clist *rcpts = 0; 112 clist *rcpts = 0;
108 char *from, *data; 113 char *from, *data;
109 size_t size; 114 size_t size;
110 115
111 from = data = 0; 116 from = data = 0;
112 117
113 mailmessage * msg = 0; 118 mailmessage * msg = 0;
114 msg = mime_message_init(mail); 119 msg = mime_message_init(mail);
115 mime_message_set_tmpdir(msg,getenv( "HOME" )); 120 mime_message_set_tmpdir(msg,getenv( "HOME" ));
116 int r = mailmessage_fetch(msg,&data,&size); 121 int r = mailmessage_fetch(msg,&data,&size);
117 mime_message_detach_mime(msg); 122 mime_message_detach_mime(msg);
118 mailmessage_free(msg); 123 mailmessage_free(msg);
119 if (r != MAIL_NO_ERROR || !data) { 124 if (r != MAIL_NO_ERROR || !data) {
120 if (data) 125 if (data)
121 free(data); 126 free(data);
122 qDebug("Error fetching mime... "); 127 qDebug("Error fetching mime... ");
123 return false; 128 return false;
124 } 129 }
125 msg = 0; 130 msg = 0;
126 if (later) { 131 if (later) {
127 storeMail(data,size,"Outgoing"); 132 storeMail(data,size,"Outgoing");
128 if (data) 133 if (data)
129 free( data ); 134 free( data );
130 Config cfg( "mail" ); 135 KConfig cfg( locateLocal("config", "kopiemail" ) );
131 cfg.setGroup( "Status" ); 136 cfg.setGroup( "Status" );
132 cfg.writeEntry( "outgoing", ++m_queuedMail ); 137 cfg.writeEntry( "outgoing", ++m_queuedMail );
133 emit queuedMails( m_queuedMail ); 138 emit queuedMails( m_queuedMail );
134 return true; 139 return true;
135 } 140 }
136 from = getFrom( mail ); 141 from = getFrom( mail );
137 rcpts = createRcptList( mail->mm_data.mm_message.mm_fields ); 142 rcpts = createRcptList( mail->mm_data.mm_message.mm_fields );
138 bool result = smtpSend(from,rcpts,data,size); 143 bool result = smtpSend(from,rcpts,data,size);
139 if (data) { 144 if (data) {
140 free(data); 145 free(data);
141 } 146 }
142 if (from) { 147 if (from) {
143 free(from); 148 free(from);
144 } 149 }
145 if (rcpts) 150 if (rcpts)
146 smtp_address_list_free( rcpts ); 151 smtp_address_list_free( rcpts );
147 return result; 152 return result;
148} 153}
149 154
150void SMTPwrapper::storeFailedMail(const char*data,unsigned int size, const char*failuremessage) 155void SMTPwrapper::storeFailedMail(const char*data,unsigned int size, const char*failuremessage)
151{ 156{
152 if (data) { 157 if (data) {
153 storeMail(data,size,"Sendfailed"); 158 storeMail(data,size,"Sendfailed");
154 } 159 }
155 if (failuremessage) { 160 if (failuremessage) {
156 QMessageBox::critical(0,i18n("Error sending mail"), 161 QMessageBox::critical(0,i18n("Error sending mail"),
157 i18n("<center>%1</center>").arg(failuremessage)); 162 i18n("<center>%1</center>").arg(failuremessage));
158 } 163 }
159} 164}
160 165
161int SMTPwrapper::start_smtp_tls() 166int SMTPwrapper::start_smtp_tls()
162{ 167{
163 if (!m_smtp) { 168 if (!m_smtp) {
164 return MAILSMTP_ERROR_IN_PROCESSING; 169 return MAILSMTP_ERROR_IN_PROCESSING;
165 } 170 }
166 int err = mailesmtp_starttls(m_smtp); 171 int err = mailesmtp_starttls(m_smtp);
167 if (err != MAILSMTP_NO_ERROR) return err; 172 if (err != MAILSMTP_NO_ERROR) return err;
168 mailstream_low * low; 173 mailstream_low * low;
169 mailstream_low * new_low; 174 mailstream_low * new_low;
170 low = mailstream_get_low(m_smtp->stream); 175 low = mailstream_get_low(m_smtp->stream);
171 if (!low) { 176 if (!low) {
172 return MAILSMTP_ERROR_IN_PROCESSING; 177 return MAILSMTP_ERROR_IN_PROCESSING;
173 } 178 }
174 int fd = mailstream_low_get_fd(low); 179 int fd = mailstream_low_get_fd(low);
175 if (fd > -1 && (new_low = mailstream_low_ssl_open(fd))!=0) { 180 if (fd > -1 && (new_low = mailstream_low_ssl_open(fd))!=0) {
176 mailstream_low_free(low); 181 mailstream_low_free(low);
177 mailstream_set_low(m_smtp->stream, new_low); 182 mailstream_set_low(m_smtp->stream, new_low);
178 } else { 183 } else {
@@ -402,60 +407,60 @@ bool SMTPwrapper::flushOutbox() {
402 QValueList<RecMailP> mailsToRemove; 407 QValueList<RecMailP> mailsToRemove;
403 QString mbox("Outgoing"); 408 QString mbox("Outgoing");
404 wrap->listMessages(mbox,mailsToSend); 409 wrap->listMessages(mbox,mailsToSend);
405 if (mailsToSend.count()==0) { 410 if (mailsToSend.count()==0) {
406 delete wrap; 411 delete wrap;
407 ; // odebug << "No mails to send" << oendl; 412 ; // odebug << "No mails to send" << oendl;
408 return false; 413 return false;
409 } 414 }
410 415
411 oldPw = m_SmtpAccount->getPassword(); 416 oldPw = m_SmtpAccount->getPassword();
412 oldUser = m_SmtpAccount->getUser(); 417 oldUser = m_SmtpAccount->getUser();
413 if (m_SmtpAccount->getLogin() && (m_SmtpAccount->getUser().isEmpty() || m_SmtpAccount->getPassword().isEmpty()) ) { 418 if (m_SmtpAccount->getLogin() && (m_SmtpAccount->getUser().isEmpty() || m_SmtpAccount->getPassword().isEmpty()) ) {
414 // get'em 419 // get'em
415 QString user,pass; 420 QString user,pass;
416 LoginDialog login( m_SmtpAccount->getUser(), m_SmtpAccount->getPassword(), NULL, 0, true ); 421 LoginDialog login( m_SmtpAccount->getUser(), m_SmtpAccount->getPassword(), NULL, 0, true );
417 login.show(); 422 login.show();
418 if ( QDialog::Accepted == login.exec() ) { 423 if ( QDialog::Accepted == login.exec() ) {
419 // ok 424 // ok
420 user = login.getUser().latin1(); 425 user = login.getUser().latin1();
421 pass = login.getPassword().latin1(); 426 pass = login.getPassword().latin1();
422 reset_user_value = true; 427 reset_user_value = true;
423 m_SmtpAccount->setUser(user); 428 m_SmtpAccount->setUser(user);
424 m_SmtpAccount->setPassword(pass); 429 m_SmtpAccount->setPassword(pass);
425 } else { 430 } else {
426 return true; 431 return true;
427 } 432 }
428 } 433 }
429 434
430 435
431 sendProgress = new progressMailSend(); 436 sendProgress = new progressMailSend();
432 sendProgress->show(); 437 sendProgress->show();
433 sendProgress->setMaxMails(mailsToSend.count()); 438 sendProgress->setMaxMails(mailsToSend.count());
434 439
435 while (mailsToSend.count()>0) { 440 while (mailsToSend.count()>0) {
436 if (sendQueuedMail(wrap, (*mailsToSend.begin()))==0) { 441 if (sendQueuedMail(wrap, (*mailsToSend.begin()))==0) {
437 QMessageBox::critical(0,i18n("Error sending mail"), 442 QMessageBox::critical(0,i18n("Error sending mail"),
438 i18n("Error sending queued mail - breaking")); 443 i18n("Error sending queued mail - breaking"));
439 returnValue = false; 444 returnValue = false;
440 break; 445 break;
441 } 446 }
442 mailsToRemove.append((*mailsToSend.begin())); 447 mailsToRemove.append((*mailsToSend.begin()));
443 mailsToSend.remove(mailsToSend.begin()); 448 mailsToSend.remove(mailsToSend.begin());
444 sendProgress->setCurrentMails(mailsToRemove.count()); 449 sendProgress->setCurrentMails(mailsToRemove.count());
445 } 450 }
446 if (reset_user_value) { 451 if (reset_user_value) {
447 m_SmtpAccount->setUser(oldUser); 452 m_SmtpAccount->setUser(oldUser);
448 m_SmtpAccount->setPassword(oldPw); 453 m_SmtpAccount->setPassword(oldPw);
449 } 454 }
450 Config cfg( "mail" ); 455 KConfig cfg( locateLocal("config", "kopiemail" ) );
451 cfg.setGroup( "Status" ); 456 cfg.setGroup( "Status" );
452 m_queuedMail = 0; 457 m_queuedMail = 0;
453 cfg.writeEntry( "outgoing", m_queuedMail ); 458 cfg.writeEntry( "outgoing", m_queuedMail );
454 emit queuedMails( m_queuedMail ); 459 emit queuedMails( m_queuedMail );
455 sendProgress->hide(); 460 sendProgress->hide();
456 delete sendProgress; 461 delete sendProgress;
457 sendProgress = 0; 462 sendProgress = 0;
458 wrap->deleteMails(mbox,mailsToRemove); 463 wrap->deleteMails(mbox,mailsToRemove);
459 delete wrap; 464 delete wrap;
460 return returnValue; 465 return returnValue;
461} 466}
diff --git a/kmicromail/libmailwrapper/smtpwrapper.h b/kmicromail/libmailwrapper/smtpwrapper.h
index ec42b56..bdca000 100644
--- a/kmicromail/libmailwrapper/smtpwrapper.h
+++ b/kmicromail/libmailwrapper/smtpwrapper.h
@@ -1,53 +1,53 @@
1// -*- Mode: C++; -*- 1// -*- Mode: C++; -*-
2#ifndef SMTPwrapper_H 2#ifndef SMTPwrapper_H
3#define SMTPwrapper_H 3#define SMTPwrapper_H
4 4
5#include <qpe/applnk.h> 5//#include <qpe/applnk.h>
6 6
7#include <qbitarray.h> 7#include <qbitarray.h>
8#include <qdatetime.h> 8#include <qdatetime.h>
9#include <libetpan/clist.h> 9#include <libetpan/clist.h>
10 10
11#include "settings.h" 11#include "settings.h"
12#include "generatemail.h" 12#include "generatemail.h"
13 13
14#include <opie2/osmartpointer.h> 14#include <opie2/osmartpointer.h>
15 15
16class SMTPaccount; 16class SMTPaccount;
17class AbstractMail; 17class AbstractMail;
18 18
19class SMTPwrapper : public Generatemail 19class SMTPwrapper : public Generatemail
20{ 20{
21 Q_OBJECT 21 Q_OBJECT
22 22
23public: 23public:
24 SMTPwrapper(SMTPaccount * aSmtp); 24 SMTPwrapper(SMTPaccount * aSmtp);
25 virtual ~SMTPwrapper(); 25 virtual ~SMTPwrapper();
26 bool sendMail(const Opie::Core::OSmartPointer<Mail>& mail,bool later=false ); 26 bool sendMail(const Opie::Core::OSmartPointer<Mail>& mail,bool later=false );
27 bool flushOutbox(); 27 bool flushOutbox();
28 28
29 static progressMailSend*sendProgress; 29 static progressMailSend*sendProgress;
30 virtual Account* getAccount() { return m_SmtpAccount; }; 30 virtual Account* getAccount() { return m_SmtpAccount; };
31 31
32signals: 32signals:
33 void queuedMails( int ); 33 void queuedMails( int );
34 34
35protected: 35protected:
36 mailsmtp *m_smtp; 36 mailsmtp *m_smtp;
37 SMTPaccount * m_SmtpAccount; 37 SMTPaccount * m_SmtpAccount;
38 38
39 void connect_server(); 39 void connect_server();
40 void disc_server(); 40 void disc_server();
41 int start_smtp_tls(); 41 int start_smtp_tls();
42 42
43 43
44 bool smtpSend( mailmime *mail,bool later); 44 bool smtpSend( mailmime *mail,bool later);
45 45
46 static void storeMail(const char*mail, size_t length, const QString&box); 46 static void storeMail(const char*mail, size_t length, const QString&box);
47 static QString mailsmtpError( int err ); 47 static QString mailsmtpError( int err );
48 static void progress( size_t current, size_t maximum ); 48 static void progress( size_t current, size_t maximum );
49 49
50 int smtpSend(char*from,clist*rcpts,const char*data,size_t size); 50 int smtpSend(char*from,clist*rcpts,const char*data,size_t size);
51 51
52 void storeMail(mailmime*mail, const QString&box); 52 void storeMail(mailmime*mail, const QString&box);
53 53
diff --git a/kmicromail/libmailwrapper/storemail.h b/kmicromail/libmailwrapper/storemail.h
index 4433de0..e449f57 100644
--- a/kmicromail/libmailwrapper/storemail.h
+++ b/kmicromail/libmailwrapper/storemail.h
@@ -1,29 +1,29 @@
1#ifndef __STORE_MAIL_H 1#ifndef __STORE_MAIL_H
2#define __STORE_MAIL_H 2#define __STORE_MAIL_H
3 3
4#include <qpe/applnk.h> 4//#include <qpe/applnk.h>
5 5
6#include "generatemail.h" 6#include "generatemail.h"
7 7
8class Account; 8class Account;
9class Mail; 9class Mail;
10class AbstractMail; 10class AbstractMail;
11 11
12class Storemail : public Generatemail 12class Storemail : public Generatemail
13{ 13{
14 Q_OBJECT 14 Q_OBJECT
15public: 15public:
16 Storemail(Account*aAccount,const QString&aFolder); 16 Storemail(Account*aAccount,const QString&aFolder);
17 Storemail(const QString&dir,const QString&aFolder); 17 Storemail(const QString&dir,const QString&aFolder);
18 Storemail(const QString&aFolder); 18 Storemail(const QString&aFolder);
19 virtual ~Storemail(); 19 virtual ~Storemail();
20 20
21 int storeMail(const Opie::Core::OSmartPointer<Mail>&mail); 21 int storeMail(const Opie::Core::OSmartPointer<Mail>&mail);
22 22
23protected: 23protected:
24 Account* m_Account; 24 Account* m_Account;
25 QString m_tfolder; 25 QString m_tfolder;
26 AbstractMail*wrapper; 26 AbstractMail*wrapper;
27}; 27};
28 28
29#endif 29#endif
diff --git a/kmicromail/mainwindow.cpp b/kmicromail/mainwindow.cpp
index c77345b..b19dbbe 100644
--- a/kmicromail/mainwindow.cpp
+++ b/kmicromail/mainwindow.cpp
@@ -1,60 +1,62 @@
1 1
2// CHANGED 2004-08-06 Lutz Rogowski 2// CHANGED 2004-08-06 Lutz Rogowski
3#include <qlabel.h> 3#include <qlabel.h>
4#include <qvbox.h> 4#include <qvbox.h>
5#include <qheader.h> 5#include <qheader.h>
6#include <qtimer.h> 6#include <qtimer.h>
7#include <qlayout.h> 7#include <qlayout.h>
8#include <kdialog.h> 8#include <kdialog.h>
9#include <kiconloader.h> 9#include <kiconloader.h>
10#include <kapplication.h> 10#include <kapplication.h>
11 11
12#ifndef DESKTOP_VERSION 12#ifdef DESKTOP_VERSION
13#include <qapplication.h>
14#else
13#include <qpe/qpeapplication.h> 15#include <qpe/qpeapplication.h>
14#endif 16#endif
15#include "defines.h" 17#include "defines.h"
16#include "mainwindow.h" 18#include "mainwindow.h"
17#include <KDGanttMinimizeSplitter.h> 19#include <KDGanttMinimizeSplitter.h>
18 20
19 21
20#include <kabc/stdaddressbook.h> 22#include <kabc/stdaddressbook.h>
21 23
22MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags ) 24MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags )
23 : QMainWindow( parent, name ) //, flags ) 25 : QMainWindow( parent, name ) //, flags )
24{ 26{
25 setCaption( i18n( "KOpieMail/Pi" ) ); 27 setCaption( i18n( "KOpieMail/Pi" ) );
26 setToolBarsMovable( false ); 28 setToolBarsMovable( false );
27 //KABC::StdAddressBook::self(); 29 //KABC::StdAddressBook::self();
28 toolBar = new QToolBar( this ); 30 toolBar = new QToolBar( this );
29 menuBar = new QPEMenuBar( toolBar ); 31 menuBar = new QPEMenuBar( toolBar );
30 mailMenu = new QPopupMenu( menuBar ); 32 mailMenu = new QPopupMenu( menuBar );
31 menuBar->insertItem( i18n( "Mail" ), mailMenu ); 33 menuBar->insertItem( i18n( "Mail" ), mailMenu );
32 settingsMenu = new QPopupMenu( menuBar ); 34 settingsMenu = new QPopupMenu( menuBar );
33 menuBar->insertItem( i18n( "Settings" ), settingsMenu ); 35 menuBar->insertItem( i18n( "Settings" ), settingsMenu );
34 36
35 addToolBar( toolBar ); 37 addToolBar( toolBar );
36 toolBar->setHorizontalStretchable( true ); 38 toolBar->setHorizontalStretchable( true );
37 QAction* getMail = new QAction( i18n( "Get all new mails" ), SmallIcon("enter"), 39 QAction* getMail = new QAction( i18n( "Get all new mails" ), SmallIcon("enter"),
38 0, 0, this ); 40 0, 0, this );
39 connect(getMail, SIGNAL( activated() ), 41 connect(getMail, SIGNAL( activated() ),
40 SLOT( slotGetAllMail() ) ); 42 SLOT( slotGetAllMail() ) );
41 getMail->addTo( mailMenu ); 43 getMail->addTo( mailMenu );
42 44
43 getMail = new QAction( i18n( "Get new messages" ), SmallIcon("add"), 45 getMail = new QAction( i18n( "Get new messages" ), SmallIcon("add"),
44 0, 0, this ); 46 0, 0, this );
45 getMail->addTo( toolBar ); 47 getMail->addTo( toolBar );
46 getMail->addTo( mailMenu ); 48 getMail->addTo( mailMenu );
47 connect(getMail, SIGNAL( activated() ), 49 connect(getMail, SIGNAL( activated() ),
48 SLOT( slotGetMail() ) ); 50 SLOT( slotGetMail() ) );
49 51
50 composeMail = new QAction( i18n( "Compose new mail" ), SmallIcon("composemail"), 52 composeMail = new QAction( i18n( "Compose new mail" ), SmallIcon("composemail"),
51 0, 0, this ); 53 0, 0, this );
52 composeMail->addTo( toolBar ); 54 composeMail->addTo( toolBar );
53 composeMail->addTo( mailMenu ); 55 composeMail->addTo( mailMenu );
54 56
55 sendQueued = new QAction( i18n( "Send queued mails" ), SmallIcon("sendqueued") , 57 sendQueued = new QAction( i18n( "Send queued mails" ), SmallIcon("sendqueued") ,
56 0, 0, this ); 58 0, 0, this );
57 sendQueued->addTo( toolBar ); 59 sendQueued->addTo( toolBar );
58 sendQueued->addTo( mailMenu ); 60 sendQueued->addTo( mailMenu );
59 61
60 /* 62 /*
diff --git a/kmicromail/mainwindow.h b/kmicromail/mainwindow.h
index 35b9c8c..f5ab69b 100644
--- a/kmicromail/mainwindow.h
+++ b/kmicromail/mainwindow.h
@@ -1,60 +1,61 @@
1 1
2// CHANGED 2004-08-06 Lutz Rogowski 2// CHANGED 2004-08-06 Lutz Rogowski
3#ifndef MAINWINDOW_H 3#ifndef MAINWINDOW_H
4#define MAINWINDOW_H 4#define MAINWINDOW_H
5 5
6#include <qmainwindow.h> 6#include <qmainwindow.h>
7#include <qlistview.h> 7#include <qlistview.h>
8#include <qaction.h> 8#include <qaction.h>
9 9
10#include <qtoolbar.h> 10#include <qtoolbar.h>
11#ifdef DESKTOP_VERSION 11#ifdef DESKTOP_VERSION
12#include <qmenubar.h> 12#include <qmenubar.h>
13#define QPEMenuBar QMenuBar
13#else 14#else
14#include <qpe/qpemenubar.h> 15#include <qpe/qpemenubar.h>
15#endif 16#endif
16 17
17#include "accountview.h" 18#include "accountview.h"
18#include "statuswidget.h" 19#include "statuswidget.h"
19 20
20#include <libmailwrapper/mailtypes.h> 21#include <libmailwrapper/mailtypes.h>
21#include <opie2/osmartpointer.h> 22#include <opie2/osmartpointer.h>
22 23
23class RecMail; 24class RecMail;
24 25
25class MainWindow : public QMainWindow 26class MainWindow : public QMainWindow
26{ 27{
27 Q_OBJECT 28 Q_OBJECT
28 29
29public: 30public:
30 MainWindow( QWidget *parent = 0, const char *name = 0, WFlags flags = 0 ); 31 MainWindow( QWidget *parent = 0, const char *name = 0, WFlags flags = 0 );
31 virtual ~MainWindow(); 32 virtual ~MainWindow();
32 33
33public slots: 34public slots:
34 virtual void slotAdjustColumns(); 35 virtual void slotAdjustColumns();
35 virtual void appMessage(const QCString &msg, const QByteArray &data); 36 virtual void appMessage(const QCString &msg, const QByteArray &data);
36 virtual void slotComposeMail(); 37 virtual void slotComposeMail();
37 38
38protected slots: 39protected slots:
39 virtual void slotSendQueued(); 40 virtual void slotSendQueued();
40 virtual void slotEditAccounts(); 41 virtual void slotEditAccounts();
41 virtual void slotShowFolders( bool show ); 42 virtual void slotShowFolders( bool show );
42 virtual void refreshMailView(const QValueList<RecMailP>&); 43 virtual void refreshMailView(const QValueList<RecMailP>&);
43 virtual void displayMail(); 44 virtual void displayMail();
44 virtual void slotGetMail() = 0; 45 virtual void slotGetMail() = 0;
45 virtual void slotGetAllMail() = 0; 46 virtual void slotGetAllMail() = 0;
46 virtual void slotDeleteMail(); 47 virtual void slotDeleteMail();
47 virtual void mailHold(int, QListViewItem *,const QPoint&,int); 48 virtual void mailHold(int, QListViewItem *,const QPoint&,int);
48 virtual void slotAdjustLayout(); 49 virtual void slotAdjustLayout();
49 virtual void slotEditSettings(); 50 virtual void slotEditSettings();
50 virtual void mailLeftClicked( QListViewItem * ); 51 virtual void mailLeftClicked( QListViewItem * );
51 void showLicence(); 52 void showLicence();
52 void showAbout(); 53 void showAbout();
53 void showEtpanLicence(); 54 void showEtpanLicence();
54 55
55protected: 56protected:
56 QToolBar *toolBar; 57 QToolBar *toolBar;
57 StatusWidget *statusWidget; 58 StatusWidget *statusWidget;
58 QPEMenuBar *menuBar; 59 QPEMenuBar *menuBar;
59 QPopupMenu *mailMenu, *settingsMenu; 60 QPopupMenu *mailMenu, *settingsMenu;
60 QAction *composeMail, *sendQueued, *showFolders, *searchMails, *deleteMails, 61 QAction *composeMail, *sendQueued, *showFolders, *searchMails, *deleteMails,
diff --git a/kmicromail/opiemail.cpp b/kmicromail/opiemail.cpp
index a32983c..153c7c0 100644
--- a/kmicromail/opiemail.cpp
+++ b/kmicromail/opiemail.cpp
@@ -1,69 +1,75 @@
1// CHANGED 2004-09-31 Lutz Rogowski 1// CHANGED 2004-09-31 Lutz Rogowski
2// CHANGED 2004-08-06 Lutz Rogowski 2// CHANGED 2004-08-06 Lutz Rogowski
3 3
4#include "settingsdialog.h" 4#include "settingsdialog.h"
5#include "opiemail.h" 5#include "opiemail.h"
6#include "editaccounts.h" 6#include "editaccounts.h"
7#include "composemail.h" 7#include "composemail.h"
8#include "mailistviewitem.h" 8#include "mailistviewitem.h"
9#include "viewmail.h" 9#include "viewmail.h"
10#include "selectstore.h" 10#include "selectstore.h"
11#include "selectsmtp.h" 11#include "selectsmtp.h"
12#include "accountitem.h" 12#include "accountitem.h"
13#include "koprefsdialog.h" 13#include "koprefsdialog.h"
14#include "klocale.h" 14#include "klocale.h"
15 15
16#include <qmessagebox.h> 16#include <qmessagebox.h>
17#include <qtimer.h> 17#include <qtimer.h>
18#include <qcursor.h>
19#include <qregexp.h>
18#include <libkdepim/externalapphandler.h> 20#include <libkdepim/externalapphandler.h>
19#include <libkdepim/kpimglobalprefs.h> 21#include <libkdepim/kpimglobalprefs.h>
20 22
23#ifdef DESKTOP_VERSION
24#include <qapplication.h>
25#else
21#include <qpe/qpeapplication.h> 26#include <qpe/qpeapplication.h>
27#endif
22#include <libmailwrapper/smtpwrapper.h> 28#include <libmailwrapper/smtpwrapper.h>
23#include <libmailwrapper/mailtypes.h> 29#include <libmailwrapper/mailtypes.h>
24#include <libmailwrapper/abstractmail.h> 30#include <libmailwrapper/abstractmail.h>
25/* OPIE */ 31/* OPIE */
26//#include <qpe/resource.h> 32//#include <qpe/resource.h>
27//#include <qpe/qpeapplication.h> 33//#include <qpe/qpeapplication.h>
28 34
29/* QT */ 35/* QT */
30 36
31//using namespace Opie::Core; 37//using namespace Opie::Core;
32 38
33OpieMail::OpieMail( QWidget *parent, const char *name ) 39OpieMail::OpieMail( QWidget *parent, const char *name )
34 : MainWindow( parent, name) //, WStyle_ContextHelp ) 40 : MainWindow( parent, name) //, WStyle_ContextHelp )
35{ 41{
36 settings = new Settings(); 42 settings = new Settings();
37 43
38 folderView->populate( settings->getAccounts() ); 44 folderView->populate( settings->getAccounts() );
39 45
40} 46}
41 47
42OpieMail::~OpieMail() 48OpieMail::~OpieMail()
43{ 49{
44 if (settings) delete settings; 50 if (settings) delete settings;
45} 51}
46 52
47void OpieMail::appMessage(const QCString &msg, const QByteArray &data) 53void OpieMail::appMessage(const QCString &msg, const QByteArray &data)
48{ 54{
49 55
50} 56}
51#include <stdlib.h> 57#include <stdlib.h>
52void OpieMail::message(const QCString &msg, const QByteArray &data) 58void OpieMail::message(const QCString &msg, const QByteArray &data)
53{ 59{
54 // copied from old mail2 60 // copied from old mail2
55 static int ii = 0; 61 static int ii = 0;
56 //qDebug("QCOP CALL ############################# %d ", ii); 62 //qDebug("QCOP CALL ############################# %d ", ii);
57 //QString mess ( msg ); 63 //QString mess ( msg );
58 //qDebug("Message = %s ",mess.latin1()); 64 //qDebug("Message = %s ",mess.latin1());
59 ++ii; 65 ++ii;
60 //qDebug("KM:appMessage %d *%s* %x", ii, msg.data(), this); 66 //qDebug("KM:appMessage %d *%s* %x", ii, msg.data(), this);
61 67
62 mPendingEmail = QString::null; 68 mPendingEmail = QString::null;
63 mPendingName = QString::null; 69 mPendingName = QString::null;
64 if (msg == "writeMail(QString,QString)") 70 if (msg == "writeMail(QString,QString)")
65 { 71 {
66 //qDebug("writeMail(QString,QString) "); 72 //qDebug("writeMail(QString,QString) ");
67 QDataStream stream(data,IO_ReadOnly); 73 QDataStream stream(data,IO_ReadOnly);
68 stream >> mPendingName >> mPendingEmail; 74 stream >> mPendingName >> mPendingEmail;
69 // removing the whitespaces at beginning and end is needed! 75 // removing the whitespaces at beginning and end is needed!
diff --git a/kmicromail/qpe/global.cpp b/kmicromail/qpe/global.cpp
new file mode 100644
index 0000000..f4c6f60
--- a/dev/null
+++ b/kmicromail/qpe/global.cpp
@@ -0,0 +1,12 @@
1
2#include "global.h"
3
4namespace Global{
5
6 void statusMessage(QString message)
7 {
8
9 qDebug("statusMessage %s ", message.latin1());
10 }
11}
12
diff --git a/kmicromail/qpe/global.h b/kmicromail/qpe/global.h
new file mode 100644
index 0000000..ecc5b1b
--- a/dev/null
+++ b/kmicromail/qpe/global.h
@@ -0,0 +1,12 @@
1#ifndef __GLOBAL_H__
2#define __GLOBAL_H__
3
4#include <qstring.h>
5
6namespace Global{
7
8 void statusMessage(QString message);
9
10}
11
12#endif
diff --git a/kmicromail/qpe/qpeapplication.h b/kmicromail/qpe/qpeapplication.h
new file mode 100644
index 0000000..0eadfd1
--- a/dev/null
+++ b/kmicromail/qpe/qpeapplication.h
@@ -0,0 +1,5 @@
1
2#include <qapplication.h>
3#include <qcursor.h>
4#include <qregexp.h>
5
diff --git a/kmicromail/viewmail.cpp b/kmicromail/viewmail.cpp
index 7cf5c8e..0b4c322 100644
--- a/kmicromail/viewmail.cpp
+++ b/kmicromail/viewmail.cpp
@@ -1,77 +1,78 @@
1// CHANGED 2004-08-06 Lutz Rogowski 1// CHANGED 2004-08-06 Lutz Rogowski
2#include "composemail.h" 2#include "composemail.h"
3#include "viewmail.h" 3#include "viewmail.h"
4 4
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#include <kapplication.h> 8#include <kapplication.h>
9 9
10/* OPIE */ 10/* OPIE */
11//#include <opie2/odebug.h> 11//#include <opie2/odebug.h>
12//#include <opie2/ofiledialog.h> 12//#include <opie2/ofiledialog.h>
13//#include <opie2/oimagescrollview.h> 13//#include <opie2/oimagescrollview.h>
14 14
15#include <kfiledialog.h> 15#include <kfiledialog.h>
16#include <kdialog.h> 16#include <kdialog.h>
17 17
18#include <qpe/qpeapplication.h> 18#include <qpe/qpeapplication.h>
19 19
20/* QT */ 20/* QT */
21#include <qtextbrowser.h> 21#include <qtextbrowser.h>
22#include <qmessagebox.h> 22#include <qmessagebox.h>
23#include <qtextstream.h> 23#include <qtextstream.h>
24#include <qaction.h> 24#include <qaction.h>
25#include <qpopupmenu.h> 25#include <qpopupmenu.h>
26#include <qfile.h> 26#include <qfile.h>
27#include <qlayout.h> 27#include <qlayout.h>
28#include "koprefs.h" 28#include "koprefs.h"
29#include <klocale.h> 29#include <klocale.h>
30#include <kglobal.h>
30 31
31//using namespace Opie::Ui; 32//using namespace Opie::Ui;
32//using namespace Opie::Core; 33//using namespace Opie::Core;
33 34
34AttachItem::AttachItem(QListView * parent,QListViewItem *after, const QString&mime,const QString&desc,const QString&file, 35AttachItem::AttachItem(QListView * parent,QListViewItem *after, const QString&mime,const QString&desc,const QString&file,
35 const QString&fsize,int num,const QValueList<int>&path) 36 const QString&fsize,int num,const QValueList<int>&path)
36 : QListViewItem(parent,after),_partNum(num) 37 : QListViewItem(parent,after),_partNum(num)
37{ 38{
38 _path=path; 39 _path=path;
39 setText(0, mime); 40 setText(0, mime);
40 setText(1, desc); 41 setText(1, desc);
41 setText(2, file); 42 setText(2, file);
42 setText(3, fsize); 43 setText(3, fsize);
43} 44}
44 45
45AttachItem::AttachItem(QListViewItem * parent,QListViewItem *after, const QString&mime,const QString&desc,const QString&file, 46AttachItem::AttachItem(QListViewItem * parent,QListViewItem *after, const QString&mime,const QString&desc,const QString&file,
46 const QString&fsize,int num,const QValueList<int>&path) 47 const QString&fsize,int num,const QValueList<int>&path)
47 : QListViewItem(parent,after),_partNum(num) 48 : QListViewItem(parent,after),_partNum(num)
48{ 49{
49 _path=path; 50 _path=path;
50 setText(0, mime); 51 setText(0, mime);
51 setText(1, desc); 52 setText(1, desc);
52 setText(2, file); 53 setText(2, file);
53 setText(3, fsize); 54 setText(3, fsize);
54} 55}
55 56
56bool AttachItem::isParentof(const QValueList<int>&path) 57bool AttachItem::isParentof(const QValueList<int>&path)
57{ 58{
58 /* if not set, then no parent */ 59 /* if not set, then no parent */
59 if (path.count()==0||_path.count()==0) return false; 60 if (path.count()==0||_path.count()==0) return false;
60 /* the parent must have one digit less then a child */ 61 /* the parent must have one digit less then a child */
61 if (path.count()!=_path.count()+1) return false; 62 if (path.count()!=_path.count()+1) return false;
62 for (unsigned int i=0; i < _path.count();++i) 63 for (unsigned int i=0; i < _path.count();++i)
63 { 64 {
64 if (_path[i]!=path[i]) return false; 65 if (_path[i]!=path[i]) return false;
65 } 66 }
66 return true; 67 return true;
67} 68}
68 69
69AttachItem* ViewMail::searchParent(const QValueList<int>&path) 70AttachItem* ViewMail::searchParent(const QValueList<int>&path)
70{ 71{
71 QListViewItemIterator it( attachments ); 72 QListViewItemIterator it( attachments );
72 for ( ; it.current(); ++it ) 73 for ( ; it.current(); ++it )
73 { 74 {
74 AttachItem*ati = (AttachItem*)it.current(); 75 AttachItem*ati = (AttachItem*)it.current();
75 if (ati->isParentof(path)) return ati; 76 if (ati->isParentof(path)) return ati;
76 } 77 }
77 return 0; 78 return 0;