-rw-r--r-- | kmicromail/koprefsdialog.cpp | 7 | ||||
-rw-r--r-- | kmicromail/libmailwrapper/generatemail.cpp | 16 | ||||
-rw-r--r-- | kmicromail/libmailwrapper/generatemail.h | 1 | ||||
-rw-r--r-- | kmicromail/libmailwrapper/genericwrapper.cpp | 3 | ||||
-rw-r--r-- | kmicromail/libmailwrapper/imapwrapper.cpp | 4 | ||||
-rw-r--r-- | kmicromail/libmailwrapper/mailwrapper.h | 2 | ||||
-rw-r--r-- | kmicromail/mainwindow.cpp | 3 |
7 files changed, 23 insertions, 13 deletions
diff --git a/kmicromail/koprefsdialog.cpp b/kmicromail/koprefsdialog.cpp index 4abf859..13d6681 100644 --- a/kmicromail/koprefsdialog.cpp +++ b/kmicromail/koprefsdialog.cpp | |||
@@ -86,187 +86,188 @@ KOPrefsDialog::KOPrefsDialog(QWidget *parent, char *name, bool modal) : | |||
86 | setupViewsTab(); | 86 | setupViewsTab(); |
87 | //setupSyncTab(); | 87 | //setupSyncTab(); |
88 | //setupSyncAlgTab(); | 88 | //setupSyncAlgTab(); |
89 | //setupPrinterTab(); | 89 | //setupPrinterTab(); |
90 | //setupGroupSchedulingTab(); | 90 | //setupGroupSchedulingTab(); |
91 | //setupGroupAutomationTab(); | 91 | //setupGroupAutomationTab(); |
92 | #endif | 92 | #endif |
93 | } | 93 | } |
94 | 94 | ||
95 | #include "kpimglobalprefs.h" | 95 | #include "kpimglobalprefs.h" |
96 | 96 | ||
97 | KOPrefsDialog::~KOPrefsDialog() | 97 | KOPrefsDialog::~KOPrefsDialog() |
98 | { | 98 | { |
99 | } | 99 | } |
100 | void KOPrefsDialog::setupGlobalTab() | 100 | void KOPrefsDialog::setupGlobalTab() |
101 | { | 101 | { |
102 | QFrame *topFrame = addPage(i18n("Global"),0,0); | 102 | QFrame *topFrame = addPage(i18n("Global"),0,0); |
103 | kdelibcfg = new KDEPIMConfigWidget( KPimGlobalPrefs::instance(), topFrame, "KCMKdeLibConfig" ); | 103 | kdelibcfg = new KDEPIMConfigWidget( KPimGlobalPrefs::instance(), topFrame, "KCMKdeLibConfig" ); |
104 | QVBoxLayout *topLayout = new QVBoxLayout(topFrame); | 104 | QVBoxLayout *topLayout = new QVBoxLayout(topFrame); |
105 | topLayout->addWidget( kdelibcfg ); | 105 | topLayout->addWidget( kdelibcfg ); |
106 | 106 | ||
107 | 107 | ||
108 | } | 108 | } |
109 | void KOPrefsDialog::setupMainTab() | 109 | void KOPrefsDialog::setupMainTab() |
110 | { | 110 | { |
111 | QFrame *topFrame = addPage(i18n("General"),0,0); | 111 | QFrame *topFrame = addPage(i18n("General"),0,0); |
112 | 112 | ||
113 | QGridLayout *topLayout = new QGridLayout(topFrame,6,2); | 113 | QGridLayout *topLayout = new QGridLayout(topFrame,6,2); |
114 | topLayout->setSpacing(spacingHint()); | 114 | topLayout->setSpacing(spacingHint()); |
115 | topLayout->setMargin(marginHint()); | 115 | topLayout->setMargin(marginHint()); |
116 | 116 | ||
117 | 117 | ||
118 | mNameEdit = new QLineEdit(topFrame); | 118 | mNameEdit = new QLineEdit(topFrame); |
119 | mNameLabel = new QLabel(mNameEdit, i18n("Full &name:"), topFrame); | 119 | mNameLabel = new QLabel(mNameEdit, i18n("Full &name:"), topFrame); |
120 | topLayout->addWidget(mNameLabel,0,0); | 120 | topLayout->addWidget(mNameLabel,0,0); |
121 | topLayout->addWidget(mNameEdit,0,1); | 121 | topLayout->addWidget(mNameEdit,0,1); |
122 | 122 | ||
123 | mEmailEdit = new QLineEdit(topFrame); | 123 | mEmailEdit = new QLineEdit(topFrame); |
124 | mEmailLabel = new QLabel(mEmailEdit, i18n("E&mail address:"),topFrame); | 124 | mEmailLabel = new QLabel(mEmailEdit, i18n("E&mail address:"),topFrame); |
125 | topLayout->addWidget(mEmailLabel,1,0); | 125 | topLayout->addWidget(mEmailLabel,1,0); |
126 | topLayout->addWidget(mEmailEdit,1,1); | 126 | topLayout->addWidget(mEmailEdit,1,1); |
127 | QLabel *lab = new QLabel( i18n("HINT: Separate multiple\neMail addresses by \";\""), topFrame); | 127 | QLabel *lab = new QLabel( i18n("HINT: Separate multiple\neMail addresses by \";\""), topFrame); |
128 | topLayout->addMultiCellWidget(lab,2,2,0,1); | 128 | topLayout->addMultiCellWidget(lab,2,2,0,1); |
129 | KPrefsDialogWidBool* ttt = addWidBool(i18n("Ignore above settings and\nuse KA/Pi \"Who am I\" instead!"), | 129 | KPrefsDialogWidBool* ttt = addWidBool(i18n("Ignore above settings and\nuse KA/Pi \"Who am I\" instead!"), |
130 | &(KOPrefs::instance()->mUseKapi),topFrame); | 130 | &(KOPrefs::instance()->mUseKapi),topFrame); |
131 | topLayout->addMultiCellWidget(ttt->checkBox(),3,3,0,1); | 131 | topLayout->addMultiCellWidget(ttt->checkBox(),3,3,0,1); |
132 | } | 132 | } |
133 | 133 | ||
134 | void KOPrefsDialog::setupMailTab() | 134 | void KOPrefsDialog::setupMailTab() |
135 | { | 135 | { |
136 | QFrame *topFrame = addPage(i18n("Mail"),0,0); | 136 | QFrame *topFrame = addPage(i18n("Mail"),0,0); |
137 | 137 | ||
138 | QGridLayout *topLayout = new QGridLayout(topFrame,4,2); | 138 | QGridLayout *topLayout = new QGridLayout(topFrame,4,2); |
139 | topLayout->setSpacing(spacingHint()); | 139 | topLayout->setSpacing(spacingHint()); |
140 | topLayout->setMargin(marginHint()); | 140 | topLayout->setMargin(marginHint()); |
141 | 141 | ||
142 | KPrefsDialogWidBool* ttt = addWidBool(i18n("View mail as html"), | 142 | KPrefsDialogWidBool* ttt = addWidBool(i18n("View mail as html"), |
143 | &(KOPrefs::instance()->mViewAsHtml),topFrame); | 143 | &(KOPrefs::instance()->mViewAsHtml),topFrame); |
144 | topLayout->addMultiCellWidget(ttt->checkBox(),0,0,0,1); | 144 | topLayout->addMultiCellWidget(ttt->checkBox(),0,0,0,1); |
145 | 145 | ||
146 | 146 | ||
147 | ttt = addWidBool(i18n("Send mails later"), | 147 | ttt = addWidBool(i18n("Send mails later"), |
148 | &(KOPrefs::instance()->mSendLater),topFrame); | 148 | &(KOPrefs::instance()->mSendLater),topFrame); |
149 | topLayout->addMultiCellWidget(ttt->checkBox(),1,1,0,1); | 149 | topLayout->addMultiCellWidget(ttt->checkBox(),1,1,0,1); |
150 | /* | ||
150 | mCodecEdit = new QLineEdit(topFrame); | 151 | mCodecEdit = new QLineEdit(topFrame); |
151 | topLayout->addMultiCellWidget( new QLabel(mCodecEdit, i18n("User defined codec for new mails:"), topFrame),2,2,0,1); | 152 | topLayout->addMultiCellWidget( new QLabel(mCodecEdit, i18n("User defined codec for new mails:"), topFrame),2,2,0,1); |
152 | topLayout->addMultiCellWidget(mCodecEdit,3,3,0,1); | 153 | topLayout->addMultiCellWidget(mCodecEdit,3,3,0,1); |
153 | topLayout->addMultiCellWidget( new QLabel(0, i18n("Example: iso-8859-15"), topFrame),4,4,0,1); | 154 | topLayout->addMultiCellWidget( new QLabel(0, i18n("Example: iso-8859-15"), topFrame),4,4,0,1); |
154 | 155 | */ | |
155 | } | 156 | } |
156 | void KOPrefsDialog::setupFontsTab() | 157 | void KOPrefsDialog::setupFontsTab() |
157 | { | 158 | { |
158 | 159 | ||
159 | QFrame *topFrame = addPage(i18n("Fonts"),0,0); | 160 | QFrame *topFrame = addPage(i18n("Fonts"),0,0); |
160 | // DesktopIcon("fonts",KIcon::SizeMedium)); | 161 | // DesktopIcon("fonts",KIcon::SizeMedium)); |
161 | 162 | ||
162 | QGridLayout *topLayout = new QGridLayout(topFrame,7,3); | 163 | QGridLayout *topLayout = new QGridLayout(topFrame,7,3); |
163 | topLayout->setSpacing(1); | 164 | topLayout->setSpacing(1); |
164 | topLayout->setMargin(3); | 165 | topLayout->setMargin(3); |
165 | KPrefsDialogWidFont * tVFont; | 166 | KPrefsDialogWidFont * tVFont; |
166 | int i = 0; | 167 | int i = 0; |
167 | KPrefsDialogWidFont *timeLabelsFont = | 168 | KPrefsDialogWidFont *timeLabelsFont = |
168 | addWidFont(i18n("OK"),i18n("Application(nr)"), | 169 | addWidFont(i18n("OK"),i18n("Application(nr)"), |
169 | &(KOPrefs::instance()->mAppFont),topFrame); | 170 | &(KOPrefs::instance()->mAppFont),topFrame); |
170 | topLayout->addWidget(timeLabelsFont->label(),i,0); | 171 | topLayout->addWidget(timeLabelsFont->label(),i,0); |
171 | topLayout->addWidget(timeLabelsFont->preview(),i,1); | 172 | topLayout->addWidget(timeLabelsFont->preview(),i,1); |
172 | topLayout->addWidget(timeLabelsFont->button(),i,2); | 173 | topLayout->addWidget(timeLabelsFont->button(),i,2); |
173 | ++i; | 174 | ++i; |
174 | 175 | ||
175 | 176 | ||
176 | timeLabelsFont = | 177 | timeLabelsFont = |
177 | addWidFont(i18n("Dear Mr."),i18n("Compose mail:"), | 178 | addWidFont(i18n("Dear Mr."),i18n("Compose mail:"), |
178 | &(KOPrefs::instance()->mComposeFont),topFrame); | 179 | &(KOPrefs::instance()->mComposeFont),topFrame); |
179 | topLayout->addWidget(timeLabelsFont->label(),i,0); | 180 | topLayout->addWidget(timeLabelsFont->label(),i,0); |
180 | topLayout->addWidget(timeLabelsFont->preview(),i,1); | 181 | topLayout->addWidget(timeLabelsFont->preview(),i,1); |
181 | topLayout->addWidget(timeLabelsFont->button(),i,2); | 182 | topLayout->addWidget(timeLabelsFont->button(),i,2); |
182 | ++i; | 183 | ++i; |
183 | 184 | ||
184 | KPrefsDialogWidFont *timeBarFont = | 185 | KPrefsDialogWidFont *timeBarFont = |
185 | addWidFont(i18n("Hello"),i18n("Read mail:"), | 186 | addWidFont(i18n("Hello"),i18n("Read mail:"), |
186 | &(KOPrefs::instance()->mReadFont),topFrame); | 187 | &(KOPrefs::instance()->mReadFont),topFrame); |
187 | topLayout->addWidget(timeBarFont->label(),i,0); | 188 | topLayout->addWidget(timeBarFont->label(),i,0); |
188 | topLayout->addWidget(timeBarFont->preview(),i,1); | 189 | topLayout->addWidget(timeBarFont->preview(),i,1); |
189 | topLayout->addWidget(timeBarFont->button(),i,2); | 190 | topLayout->addWidget(timeBarFont->button(),i,2); |
190 | ++i; | 191 | ++i; |
191 | 192 | ||
192 | topLayout->setColStretch(1,1); | 193 | topLayout->setColStretch(1,1); |
193 | topLayout->setRowStretch(4,1); | 194 | topLayout->setRowStretch(4,1); |
194 | 195 | ||
195 | } | 196 | } |
196 | void KOPrefsDialog::usrReadConfig() | 197 | void KOPrefsDialog::usrReadConfig() |
197 | { | 198 | { |
198 | 199 | ||
199 | mNameEdit->setText(KOPrefs::instance()->mName); | 200 | mNameEdit->setText(KOPrefs::instance()->mName); |
200 | mEmailEdit->setText(KOPrefs::instance()->mEmail); | 201 | mEmailEdit->setText(KOPrefs::instance()->mEmail); |
201 | mCodecEdit->setText(KOPrefs::instance()->mSendCodec); | 202 | //mCodecEdit->setText(KOPrefs::instance()->mSendCodec); |
202 | kdelibcfg->readConfig(); | 203 | kdelibcfg->readConfig(); |
203 | } | 204 | } |
204 | void KOPrefsDialog::usrWriteConfig() | 205 | void KOPrefsDialog::usrWriteConfig() |
205 | { | 206 | { |
206 | KOPrefs::instance()->mName = mNameEdit->text(); | 207 | KOPrefs::instance()->mName = mNameEdit->text(); |
207 | KOPrefs::instance()->mEmail = mEmailEdit->text(); | 208 | KOPrefs::instance()->mEmail = mEmailEdit->text(); |
208 | KOPrefs::instance()->mSendCodec = mCodecEdit->text(); | 209 | //KOPrefs::instance()->mSendCodec = mCodecEdit->text(); |
209 | kdelibcfg->writeConfig(); | 210 | kdelibcfg->writeConfig(); |
210 | 211 | ||
211 | 212 | ||
212 | } | 213 | } |
213 | 214 | ||
214 | #if 0 | 215 | #if 0 |
215 | void KOPrefsDialog::setupLocaleDateTab() | 216 | void KOPrefsDialog::setupLocaleDateTab() |
216 | { | 217 | { |
217 | QFrame *topFrame = addPage(i18n("Date Format"),0,0); | 218 | QFrame *topFrame = addPage(i18n("Date Format"),0,0); |
218 | QGridLayout *topLayout = new QGridLayout(topFrame,3,2); | 219 | QGridLayout *topLayout = new QGridLayout(topFrame,3,2); |
219 | topLayout->setSpacing(spacingHint()); | 220 | topLayout->setSpacing(spacingHint()); |
220 | topLayout->setMargin(marginHint()); | 221 | topLayout->setMargin(marginHint()); |
221 | int iii = 0; | 222 | int iii = 0; |
222 | 223 | ||
223 | 224 | ||
224 | KPrefsWidRadios *syncPrefsGroup = | 225 | KPrefsWidRadios *syncPrefsGroup = |
225 | addWidRadios(i18n("Date Format:"),&(KOPrefs::instance()->mPreferredDate),topFrame); | 226 | addWidRadios(i18n("Date Format:"),&(KOPrefs::instance()->mPreferredDate),topFrame); |
226 | QString format; | 227 | QString format; |
227 | if ( QApplication::desktop()->width() < 480 ) | 228 | if ( QApplication::desktop()->width() < 480 ) |
228 | format = "(%d.%m.%Y)"; | 229 | format = "(%d.%m.%Y)"; |
229 | else | 230 | else |
230 | format = "(%d.%m.%Y|%A %d %B %Y)"; | 231 | format = "(%d.%m.%Y|%A %d %B %Y)"; |
231 | syncPrefsGroup->addRadio(i18n("24.03.2004 "+format)); | 232 | syncPrefsGroup->addRadio(i18n("24.03.2004 "+format)); |
232 | if ( QApplication::desktop()->width() < 480 ) | 233 | if ( QApplication::desktop()->width() < 480 ) |
233 | format = "(%m.%d.%Y)"; | 234 | format = "(%m.%d.%Y)"; |
234 | else | 235 | else |
235 | format = "(%m.%d.%Y|%A %B %d %Y)"; | 236 | format = "(%m.%d.%Y|%A %B %d %Y)"; |
236 | syncPrefsGroup->addRadio(i18n("03.24.2004 "+format)); | 237 | syncPrefsGroup->addRadio(i18n("03.24.2004 "+format)); |
237 | if ( QApplication::desktop()->width() < 480 ) | 238 | if ( QApplication::desktop()->width() < 480 ) |
238 | format = "(%Y-%m-%d)"; | 239 | format = "(%Y-%m-%d)"; |
239 | else | 240 | else |
240 | format = "(%Y-%m-%d|%A %Y %B %d)"; | 241 | format = "(%Y-%m-%d|%A %Y %B %d)"; |
241 | syncPrefsGroup->addRadio(i18n("2004-03-24 "+format)); | 242 | syncPrefsGroup->addRadio(i18n("2004-03-24 "+format)); |
242 | syncPrefsGroup->addRadio(i18n("User defined")); | 243 | syncPrefsGroup->addRadio(i18n("User defined")); |
243 | topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1); | 244 | topLayout->addMultiCellWidget( syncPrefsGroup->groupBox(),iii,iii,0,1); |
244 | ++iii; | 245 | ++iii; |
245 | ++iii; | 246 | ++iii; |
246 | QLabel * lab; | 247 | QLabel * lab; |
247 | mUserDateFormatLong = new QLineEdit(topFrame); | 248 | mUserDateFormatLong = new QLineEdit(topFrame); |
248 | lab = new QLabel(mUserDateFormatLong, i18n("User long date:"), topFrame); | 249 | lab = new QLabel(mUserDateFormatLong, i18n("User long date:"), topFrame); |
249 | topLayout->addWidget(lab ,iii,0); | 250 | topLayout->addWidget(lab ,iii,0); |
250 | topLayout->addWidget(mUserDateFormatLong,iii,1); | 251 | topLayout->addWidget(mUserDateFormatLong,iii,1); |
251 | ++iii; | 252 | ++iii; |
252 | mUserDateFormatShort = new QLineEdit(topFrame); | 253 | mUserDateFormatShort = new QLineEdit(topFrame); |
253 | lab = new QLabel(mUserDateFormatShort, i18n("User short date:"), topFrame); | 254 | lab = new QLabel(mUserDateFormatShort, i18n("User short date:"), topFrame); |
254 | topLayout->addWidget(lab ,iii,0); | 255 | topLayout->addWidget(lab ,iii,0); |
255 | topLayout->addWidget(mUserDateFormatShort,iii,1); | 256 | topLayout->addWidget(mUserDateFormatShort,iii,1); |
256 | ++iii; | 257 | ++iii; |
257 | lab = new QLabel( i18n("Monday 19 April 2004: %A %d %B %Y"), topFrame); | 258 | lab = new QLabel( i18n("Monday 19 April 2004: %A %d %B %Y"), topFrame); |
258 | topLayout->addMultiCellWidget(lab ,iii,iii,0,1); | 259 | topLayout->addMultiCellWidget(lab ,iii,iii,0,1); |
259 | ++iii; | 260 | ++iii; |
260 | lab = new QLabel( i18n("Mon 19.04.04: %a %d.%m.%y"), topFrame); | 261 | lab = new QLabel( i18n("Mon 19.04.04: %a %d.%m.%y"), topFrame); |
261 | topLayout->addMultiCellWidget(lab ,iii,iii,0,1); | 262 | topLayout->addMultiCellWidget(lab ,iii,iii,0,1); |
262 | ++iii; | 263 | ++iii; |
263 | lab = new QLabel( i18n("Mon, 19.Apr.04: %a, %d.%b.%y"), topFrame); | 264 | lab = new QLabel( i18n("Mon, 19.Apr.04: %a, %d.%b.%y"), topFrame); |
264 | topLayout->addMultiCellWidget(lab ,iii,iii,0,1); | 265 | topLayout->addMultiCellWidget(lab ,iii,iii,0,1); |
265 | ++iii; | 266 | ++iii; |
266 | 267 | ||
267 | } | 268 | } |
268 | 269 | ||
269 | void KOPrefsDialog::setupLocaleTab() | 270 | void KOPrefsDialog::setupLocaleTab() |
270 | { | 271 | { |
271 | QFrame *topFrame = addPage(i18n("Locale"),0,0); | 272 | QFrame *topFrame = addPage(i18n("Locale"),0,0); |
272 | QGridLayout *topLayout = new QGridLayout(topFrame,4,2); | 273 | QGridLayout *topLayout = new QGridLayout(topFrame,4,2); |
diff --git a/kmicromail/libmailwrapper/generatemail.cpp b/kmicromail/libmailwrapper/generatemail.cpp index 32311d7..2d213fe 100644 --- a/kmicromail/libmailwrapper/generatemail.cpp +++ b/kmicromail/libmailwrapper/generatemail.cpp | |||
@@ -1,79 +1,80 @@ | |||
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 <qt.h> | 6 | //#include <qt.h> |
7 | 7 | ||
8 | #include <stdlib.h> | 8 | #include <stdlib.h> |
9 | #include <qfileinfo.h> | 9 | #include <qfileinfo.h> |
10 | 10 | ||
11 | using namespace Opie::Core; | 11 | using namespace Opie::Core; |
12 | const char* Generatemail::USER_AGENT="KOpieMail 33 1/3"; | 12 | const char* Generatemail::USER_AGENT="KOpieMail 33 1/3"; |
13 | 13 | ||
14 | Generatemail::Generatemail() | 14 | Generatemail::Generatemail() |
15 | { | 15 | { |
16 | mCharset = "iso-8859-1"; | ||
16 | } | 17 | } |
17 | 18 | ||
18 | Generatemail::~Generatemail() | 19 | Generatemail::~Generatemail() |
19 | { | 20 | { |
20 | } | 21 | } |
21 | 22 | ||
22 | void Generatemail::addRcpts( clist *list, mailimf_address_list *addr_list ) { | 23 | void Generatemail::addRcpts( clist *list, mailimf_address_list *addr_list ) { |
23 | clistiter *it, *it2; | 24 | clistiter *it, *it2; |
24 | 25 | ||
25 | for ( it = clist_begin( addr_list->ad_list ); it; it = it->next ) { | 26 | for ( it = clist_begin( addr_list->ad_list ); it; it = it->next ) { |
26 | mailimf_address *addr; | 27 | mailimf_address *addr; |
27 | addr = (mailimf_address *) it->data; | 28 | addr = (mailimf_address *) it->data; |
28 | 29 | ||
29 | if ( addr->ad_type == MAILIMF_ADDRESS_MAILBOX ) { | 30 | if ( addr->ad_type == MAILIMF_ADDRESS_MAILBOX ) { |
30 | esmtp_address_list_add( list, addr->ad_data.ad_mailbox->mb_addr_spec, 0, NULL ); | 31 | esmtp_address_list_add( list, addr->ad_data.ad_mailbox->mb_addr_spec, 0, NULL ); |
31 | } else if ( addr->ad_type == MAILIMF_ADDRESS_GROUP ) { | 32 | } else if ( addr->ad_type == MAILIMF_ADDRESS_GROUP ) { |
32 | clist *l = addr->ad_data.ad_group->grp_mb_list->mb_list; | 33 | clist *l = addr->ad_data.ad_group->grp_mb_list->mb_list; |
33 | for ( it2 = clist_begin( l ); it2; it2 = it2->next ) { | 34 | for ( it2 = clist_begin( l ); it2; it2 = it2->next ) { |
34 | mailimf_mailbox *mbox; | 35 | mailimf_mailbox *mbox; |
35 | mbox = (mailimf_mailbox *) it2->data; | 36 | mbox = (mailimf_mailbox *) it2->data; |
36 | esmtp_address_list_add( list, mbox->mb_addr_spec, 0, NULL ); | 37 | esmtp_address_list_add( list, mbox->mb_addr_spec, 0, NULL ); |
37 | } | 38 | } |
38 | } | 39 | } |
39 | } | 40 | } |
40 | } | 41 | } |
41 | 42 | ||
42 | char *Generatemail::getFrom( mailimf_field *ffrom) { | 43 | char *Generatemail::getFrom( mailimf_field *ffrom) { |
43 | char *from = NULL; | 44 | char *from = NULL; |
44 | if ( ffrom && (ffrom->fld_type == MAILIMF_FIELD_FROM) | 45 | if ( ffrom && (ffrom->fld_type == MAILIMF_FIELD_FROM) |
45 | && ffrom->fld_data.fld_from->frm_mb_list && ffrom->fld_data.fld_from->frm_mb_list->mb_list ) { | 46 | && ffrom->fld_data.fld_from->frm_mb_list && ffrom->fld_data.fld_from->frm_mb_list->mb_list ) { |
46 | clist *cl = ffrom->fld_data.fld_from->frm_mb_list->mb_list; | 47 | clist *cl = ffrom->fld_data.fld_from->frm_mb_list->mb_list; |
47 | clistiter *it; | 48 | clistiter *it; |
48 | for ( it = clist_begin( cl ); it; it = it->next ) { | 49 | for ( it = clist_begin( cl ); it; it = it->next ) { |
49 | mailimf_mailbox *mb = (mailimf_mailbox *) it->data; | 50 | mailimf_mailbox *mb = (mailimf_mailbox *) it->data; |
50 | from = strdup( mb->mb_addr_spec ); | 51 | from = strdup( mb->mb_addr_spec ); |
51 | } | 52 | } |
52 | } | 53 | } |
53 | 54 | ||
54 | return from; | 55 | return from; |
55 | } | 56 | } |
56 | 57 | ||
57 | char *Generatemail::getFrom( mailmime *mail ) { | 58 | char *Generatemail::getFrom( mailmime *mail ) { |
58 | /* no need to delete - its just a pointer to structure content */ | 59 | /* no need to delete - its just a pointer to structure content */ |
59 | mailimf_field *ffrom = 0; | 60 | mailimf_field *ffrom = 0; |
60 | ffrom = getField( mail->mm_data.mm_message.mm_fields, MAILIMF_FIELD_FROM ); | 61 | ffrom = getField( mail->mm_data.mm_message.mm_fields, MAILIMF_FIELD_FROM ); |
61 | return getFrom(ffrom); | 62 | return getFrom(ffrom); |
62 | } | 63 | } |
63 | 64 | ||
64 | mailimf_field *Generatemail::getField( mailimf_fields *fields, int type ) { | 65 | mailimf_field *Generatemail::getField( mailimf_fields *fields, int type ) { |
65 | mailimf_field *field; | 66 | mailimf_field *field; |
66 | clistiter *it; | 67 | clistiter *it; |
67 | 68 | ||
68 | it = clist_begin( fields->fld_list ); | 69 | it = clist_begin( fields->fld_list ); |
69 | while ( it ) { | 70 | while ( it ) { |
70 | field = (mailimf_field *) it->data; | 71 | field = (mailimf_field *) it->data; |
71 | if ( field->fld_type == type ) { | 72 | if ( field->fld_type == type ) { |
72 | return field; | 73 | return field; |
73 | } | 74 | } |
74 | it = it->next; | 75 | it = it->next; |
75 | } | 76 | } |
76 | 77 | ||
77 | return NULL; | 78 | return NULL; |
78 | } | 79 | } |
79 | 80 | ||
@@ -84,233 +85,236 @@ mailimf_address_list *Generatemail::parseAddresses(const QString&addr ) { | |||
84 | return NULL; | 85 | return NULL; |
85 | 86 | ||
86 | addresses = mailimf_address_list_new_empty(); | 87 | addresses = mailimf_address_list_new_empty(); |
87 | 88 | ||
88 | bool literal_open = false; | 89 | bool literal_open = false; |
89 | unsigned int startpos = 0; | 90 | unsigned int startpos = 0; |
90 | QStringList list; | 91 | QStringList list; |
91 | QString s; | 92 | QString s; |
92 | unsigned int i = 0; | 93 | unsigned int i = 0; |
93 | for (; i < addr.length();++i) { | 94 | for (; i < addr.length();++i) { |
94 | switch (addr[i]) { | 95 | switch (addr[i]) { |
95 | case '\"': | 96 | case '\"': |
96 | literal_open = !literal_open; | 97 | literal_open = !literal_open; |
97 | break; | 98 | break; |
98 | case ',': | 99 | case ',': |
99 | if (!literal_open) { | 100 | if (!literal_open) { |
100 | s = addr.mid(startpos,i-startpos); | 101 | s = addr.mid(startpos,i-startpos); |
101 | if (!s.isEmpty()) { | 102 | if (!s.isEmpty()) { |
102 | list.append(s); | 103 | list.append(s); |
103 | } | 104 | } |
104 | // !!!! this is a MUST BE! | 105 | // !!!! this is a MUST BE! |
105 | startpos = ++i; | 106 | startpos = ++i; |
106 | } | 107 | } |
107 | break; | 108 | break; |
108 | default: | 109 | default: |
109 | break; | 110 | break; |
110 | } | 111 | } |
111 | } | 112 | } |
112 | s = addr.mid(startpos,i-startpos); | 113 | s = addr.mid(startpos,i-startpos); |
113 | if (!s.isEmpty()) { | 114 | if (!s.isEmpty()) { |
114 | list.append(s); | 115 | list.append(s); |
115 | } | 116 | } |
116 | QStringList::Iterator it; | 117 | QStringList::Iterator it; |
117 | for ( it = list.begin(); it != list.end(); it++ ) { | 118 | for ( it = list.begin(); it != list.end(); it++ ) { |
118 | int err = mailimf_address_list_add_parse( addresses, (char*)(*it).latin1() ); | 119 | int err = mailimf_address_list_add_parse( addresses, (char*)(*it).latin1() ); |
119 | if ( err != MAILIMF_NO_ERROR ) { | 120 | if ( err != MAILIMF_NO_ERROR ) { |
120 | qDebug(" Error parsing"); // *it | 121 | qDebug(" Error parsing"); // *it |
121 | } else { | 122 | } else { |
122 | } | 123 | } |
123 | } | 124 | } |
124 | return addresses; | 125 | return addresses; |
125 | } | 126 | } |
126 | 127 | ||
127 | mailmime *Generatemail::buildFilePart(const QString&filename,const QString&mimetype,const QString&TextContent ) { | 128 | mailmime *Generatemail::buildFilePart(const QString&filename,const QString&mimetype,const QString&TextContent ) { |
128 | mailmime * filePart = 0; | 129 | mailmime * filePart = 0; |
129 | mailmime_fields * fields = 0; | 130 | mailmime_fields * fields = 0; |
130 | mailmime_content * content = 0; | 131 | mailmime_content * content = 0; |
131 | mailmime_parameter * param = 0; | 132 | mailmime_parameter * param = 0; |
132 | char*name = 0; | 133 | char*name = 0; |
133 | char*file = 0; | 134 | char*file = 0; |
134 | int err; | 135 | int err; |
135 | int pos = filename.findRev( '/' ); | 136 | int pos = filename.findRev( '/' ); |
136 | 137 | ||
137 | if (filename.length()>0) { | 138 | if (filename.length()>0) { |
138 | QString tmp = filename.right( filename.length() - ( pos + 1 ) ); | 139 | QString tmp = filename.right( filename.length() - ( pos + 1 ) ); |
139 | name = strdup( tmp.latin1() ); // just filename | 140 | name = strdup( tmp.latin1() ); // just filename |
140 | file = strdup( filename.latin1() ); // full name with path | 141 | file = strdup( filename.latin1() ); // full name with path |
141 | } | 142 | } |
142 | 143 | ||
143 | int disptype = MAILMIME_DISPOSITION_TYPE_ATTACHMENT; | 144 | int disptype = MAILMIME_DISPOSITION_TYPE_ATTACHMENT; |
144 | int mechanism = MAILMIME_MECHANISM_BASE64; | 145 | int mechanism = MAILMIME_MECHANISM_BASE64; |
145 | 146 | ||
146 | if ( mimetype.startsWith( "text/" ) ) { | 147 | if ( mimetype.startsWith( "text/" ) ) { |
147 | param = mailmime_parameter_new( strdup( "charset" ), | 148 | param = mailmime_parameter_new( strdup( "charset" ), |
148 | strdup( "iso-8859-1" ) ); | 149 | strdup( mCharset.latin1() ) ); |
149 | mechanism = MAILMIME_MECHANISM_QUOTED_PRINTABLE; | 150 | mechanism = MAILMIME_MECHANISM_QUOTED_PRINTABLE; |
150 | } | 151 | } |
151 | 152 | ||
152 | fields = mailmime_fields_new_filename( | 153 | fields = mailmime_fields_new_filename( |
153 | disptype, name, | 154 | disptype, name, |
154 | mechanism ); | 155 | mechanism ); |
155 | content = mailmime_content_new_with_str( (char*)mimetype.latin1() ); | 156 | content = mailmime_content_new_with_str( (char*)mimetype.latin1() ); |
156 | if (content!=0 && fields != 0) { | 157 | if (content!=0 && fields != 0) { |
157 | if (param) { | 158 | if (param) { |
158 | clist_append(content->ct_parameters,param); | 159 | clist_append(content->ct_parameters,param); |
159 | param = 0; | 160 | param = 0; |
160 | } | 161 | } |
161 | if (filename.length()>0) { | 162 | if (filename.length()>0) { |
162 | QFileInfo f(filename); | 163 | QFileInfo f(filename); |
163 | param = mailmime_parameter_new(strdup("name"),strdup(f.fileName().latin1())); | 164 | param = mailmime_parameter_new(strdup("name"),strdup(f.fileName().latin1())); |
164 | clist_append(content->ct_parameters,param); | 165 | clist_append(content->ct_parameters,param); |
165 | param = 0; | 166 | param = 0; |
166 | } | 167 | } |
167 | filePart = mailmime_new_empty( content, fields ); | 168 | filePart = mailmime_new_empty( content, fields ); |
168 | } | 169 | } |
169 | if (filePart) { | 170 | if (filePart) { |
170 | if (filename.length()>0) { | 171 | if (filename.length()>0) { |
171 | err = mailmime_set_body_file( filePart, file ); | 172 | err = mailmime_set_body_file( filePart, file ); |
172 | } else { | 173 | } else { |
173 | err = mailmime_set_body_text(filePart,strdup( TextContent.utf8()),TextContent.utf8().length()); | 174 | err = mailmime_set_body_text(filePart,strdup( TextContent.utf8().data()),TextContent.utf8().length()); |
175 | //err = mailmime_set_body_text(filePart,strdup( TextContent.latin1()),TextContent.length()); | ||
174 | } | 176 | } |
175 | if (err != MAILIMF_NO_ERROR) { | 177 | if (err != MAILIMF_NO_ERROR) { |
176 | qDebug("Error setting body with file "); | 178 | qDebug("Error setting body with file "); |
177 | mailmime_free( filePart ); | 179 | mailmime_free( filePart ); |
178 | filePart = 0; | 180 | filePart = 0; |
179 | } | 181 | } |
180 | } | 182 | } |
181 | 183 | ||
182 | if (!filePart) { | 184 | if (!filePart) { |
183 | if ( param != NULL ) { | 185 | if ( param != NULL ) { |
184 | mailmime_parameter_free( param ); | 186 | mailmime_parameter_free( param ); |
185 | } | 187 | } |
186 | if (content) { | 188 | if (content) { |
187 | mailmime_content_free( content ); | 189 | mailmime_content_free( content ); |
188 | } | 190 | } |
189 | if (fields) { | 191 | if (fields) { |
190 | mailmime_fields_free( fields ); | 192 | mailmime_fields_free( fields ); |
191 | } else { | 193 | } else { |
192 | if (name) { | 194 | if (name) { |
193 | free( name ); | 195 | free( name ); |
194 | } | 196 | } |
195 | if (file) { | 197 | if (file) { |
196 | free( file ); | 198 | free( file ); |
197 | } | 199 | } |
198 | } | 200 | } |
199 | } | 201 | } |
200 | return filePart; // Success :) | 202 | return filePart; // Success :) |
201 | 203 | ||
202 | } | 204 | } |
203 | 205 | ||
204 | void Generatemail::addFileParts( mailmime *message,const QList<Attachment>&files ) { | 206 | void Generatemail::addFileParts( mailmime *message,const QList<Attachment>&files ) { |
205 | const Attachment *it; | 207 | const Attachment *it; |
206 | unsigned int count = files.count(); | 208 | unsigned int count = files.count(); |
207 | for ( unsigned int i = 0; i < count; ++i ) { | 209 | for ( unsigned int i = 0; i < count; ++i ) { |
208 | mailmime *filePart; | 210 | mailmime *filePart; |
209 | int err; | 211 | int err; |
210 | it = ((QList<Attachment>)files).at(i); | 212 | it = ((QList<Attachment>)files).at(i); |
211 | 213 | ||
212 | filePart = buildFilePart( it->getFileName(), it->getMimeType(),"" ); | 214 | filePart = buildFilePart( it->getFileName(), it->getMimeType(),"" ); |
213 | if ( filePart == NULL ) { | 215 | if ( filePart == NULL ) { |
214 | continue; | 216 | continue; |
215 | } | 217 | } |
216 | err = mailmime_smart_add_part( message, filePart ); | 218 | err = mailmime_smart_add_part( message, filePart ); |
217 | if ( err != MAILIMF_NO_ERROR ) { | 219 | if ( err != MAILIMF_NO_ERROR ) { |
218 | mailmime_free( filePart ); | 220 | mailmime_free( filePart ); |
219 | } | 221 | } |
220 | } | 222 | } |
221 | } | 223 | } |
222 | 224 | ||
223 | mailmime *Generatemail::buildTxtPart(const QString&str ) { | 225 | mailmime *Generatemail::buildTxtPart(const QString&str ) { |
224 | mailmime *txtPart; | 226 | mailmime *txtPart; |
225 | mailmime_fields *fields; | 227 | mailmime_fields *fields; |
226 | mailmime_content *content; | 228 | mailmime_content *content; |
227 | mailmime_parameter *param; | 229 | mailmime_parameter *param; |
228 | int err; | 230 | int err; |
229 | QCString __str; | 231 | QCString __str; |
232 | //qDebug(" Generatemail::buildTxtPart %s", str.latin1()); | ||
230 | param = mailmime_parameter_new( strdup( "charset" ), | 233 | param = mailmime_parameter_new( strdup( "charset" ), |
231 | strdup( "iso-8859-1" ) ); | 234 | strdup( mCharset.latin1() ) ); |
232 | if ( param == NULL ) | 235 | if ( param == NULL ) |
233 | goto err_free; | 236 | goto err_free; |
234 | 237 | ||
235 | content = mailmime_content_new_with_str( "text/plain" ); | 238 | content = mailmime_content_new_with_str( "text/plain" ); |
236 | if ( content == NULL ) | 239 | if ( content == NULL ) |
237 | goto err_free_param; | 240 | goto err_free_param; |
238 | 241 | ||
239 | err = clist_append( content->ct_parameters, param ); | 242 | err = clist_append( content->ct_parameters, param ); |
240 | if ( err != MAILIMF_NO_ERROR ) | 243 | if ( err != MAILIMF_NO_ERROR ) |
241 | goto err_free_content; | 244 | goto err_free_content; |
242 | 245 | ||
243 | fields = mailmime_fields_new_encoding(MAILMIME_MECHANISM_8BIT); | 246 | fields = mailmime_fields_new_encoding(MAILMIME_MECHANISM_8BIT); |
244 | if ( fields == NULL ) | 247 | if ( fields == NULL ) |
245 | goto err_free_content; | 248 | goto err_free_content; |
246 | 249 | ||
247 | txtPart = mailmime_new_empty( content, fields ); | 250 | txtPart = mailmime_new_empty( content, fields ); |
248 | if ( txtPart == NULL ) | 251 | if ( txtPart == NULL ) |
249 | goto err_free_fields; | 252 | goto err_free_fields; |
250 | { | 253 | { |
251 | __str = str.utf8(); | 254 | //__str = str.utf8(); |
252 | err = mailmime_set_body_text( txtPart, __str.data(), __str.length() ); | 255 | __str = QCString (str.latin1()); |
256 | err = mailmime_set_body_text( txtPart, strdup(__str.data()), __str.length() ); | ||
253 | } | 257 | } |
254 | if ( err != MAILIMF_NO_ERROR ) | 258 | if ( err != MAILIMF_NO_ERROR ) |
255 | goto err_free_txtPart; | 259 | goto err_free_txtPart; |
256 | 260 | ||
257 | return txtPart; // Success :) | 261 | return txtPart; // Success :) |
258 | 262 | ||
259 | err_free_txtPart: | 263 | err_free_txtPart: |
260 | mailmime_free( txtPart ); | 264 | mailmime_free( txtPart ); |
261 | err_free_fields: | 265 | err_free_fields: |
262 | mailmime_fields_free( fields ); | 266 | mailmime_fields_free( fields ); |
263 | err_free_content: | 267 | err_free_content: |
264 | mailmime_content_free( content ); | 268 | mailmime_content_free( content ); |
265 | err_free_param: | 269 | err_free_param: |
266 | mailmime_parameter_free( param ); | 270 | mailmime_parameter_free( param ); |
267 | err_free: | 271 | err_free: |
268 | ; | 272 | ; |
269 | 273 | ||
270 | return NULL; // Error :( | 274 | return NULL; // Error :( |
271 | } | 275 | } |
272 | 276 | ||
273 | mailimf_mailbox *Generatemail::newMailbox(const QString&name, const QString&mail ) { | 277 | mailimf_mailbox *Generatemail::newMailbox(const QString&name, const QString&mail ) { |
274 | return mailimf_mailbox_new( strdup( name.latin1() ), | 278 | return mailimf_mailbox_new( strdup( name.latin1() ), |
275 | strdup( mail.latin1() ) ); | 279 | strdup( mail.latin1() ) ); |
276 | } | 280 | } |
277 | 281 | ||
278 | mailimf_fields *Generatemail::createImfFields(const Opie::Core::OSmartPointer<Mail>&mail ) | 282 | mailimf_fields *Generatemail::createImfFields(const Opie::Core::OSmartPointer<Mail>&mail ) |
279 | { | 283 | { |
280 | mailimf_fields *fields = NULL; | 284 | mailimf_fields *fields = NULL; |
281 | mailimf_field *xmailer = NULL; | 285 | mailimf_field *xmailer = NULL; |
282 | mailimf_mailbox *sender=0,*fromBox=0; | 286 | mailimf_mailbox *sender=0,*fromBox=0; |
283 | mailimf_mailbox_list *from=0; | 287 | mailimf_mailbox_list *from=0; |
284 | mailimf_address_list *to=0, *cc=0, *bcc=0, *reply=0; | 288 | mailimf_address_list *to=0, *cc=0, *bcc=0, *reply=0; |
285 | clist*in_reply_to = 0; | 289 | clist*in_reply_to = 0; |
286 | char *subject = strdup( mail->getSubject().latin1() ); | 290 | char *subject = strdup( mail->getSubject().latin1() ); |
287 | int err; | 291 | int err; |
288 | int res = 1; | 292 | int res = 1; |
289 | 293 | ||
290 | sender = newMailbox( mail->getName(), mail->getMail() ); | 294 | sender = newMailbox( mail->getName(), mail->getMail() ); |
291 | if ( sender == NULL ) { | 295 | if ( sender == NULL ) { |
292 | res = 0; | 296 | res = 0; |
293 | } | 297 | } |
294 | 298 | ||
295 | if (res) { | 299 | if (res) { |
296 | fromBox = newMailbox( mail->getName(), mail->getMail() ); | 300 | fromBox = newMailbox( mail->getName(), mail->getMail() ); |
297 | } | 301 | } |
298 | if ( fromBox == NULL ) { | 302 | if ( fromBox == NULL ) { |
299 | res = 0; | 303 | res = 0; |
300 | } | 304 | } |
301 | 305 | ||
302 | if (res) { | 306 | if (res) { |
303 | from = mailimf_mailbox_list_new_empty(); | 307 | from = mailimf_mailbox_list_new_empty(); |
304 | } | 308 | } |
305 | if ( from == NULL ) { | 309 | if ( from == NULL ) { |
306 | res = 0; | 310 | res = 0; |
307 | } | 311 | } |
308 | 312 | ||
309 | if (res && from) { | 313 | if (res && from) { |
310 | err = mailimf_mailbox_list_add( from, fromBox ); | 314 | err = mailimf_mailbox_list_add( from, fromBox ); |
311 | if ( err != MAILIMF_NO_ERROR ) { | 315 | if ( err != MAILIMF_NO_ERROR ) { |
312 | res = 0; | 316 | res = 0; |
313 | } | 317 | } |
314 | } | 318 | } |
315 | 319 | ||
316 | if (res) to = parseAddresses( mail->getTo() ); | 320 | if (res) to = parseAddresses( mail->getTo() ); |
@@ -337,125 +341,127 @@ mailimf_fields *Generatemail::createImfFields(const Opie::Core::OSmartPointer<Ma | |||
337 | nsize = strlen(h.latin1()); | 341 | nsize = strlen(h.latin1()); |
338 | /* yes! must be malloc! */ | 342 | /* yes! must be malloc! */ |
339 | c_reply = (char*)malloc( (nsize+1)*sizeof(char)); | 343 | c_reply = (char*)malloc( (nsize+1)*sizeof(char)); |
340 | memset(c_reply,0,nsize+1); | 344 | memset(c_reply,0,nsize+1); |
341 | memcpy(c_reply,h.latin1(),nsize); | 345 | memcpy(c_reply,h.latin1(),nsize); |
342 | clist_append(in_reply_to,c_reply); | 346 | clist_append(in_reply_to,c_reply); |
343 | } | 347 | } |
344 | } | 348 | } |
345 | 349 | ||
346 | if (res) { | 350 | if (res) { |
347 | fields = mailimf_fields_new_with_data( from, sender, reply, to, cc, bcc, | 351 | fields = mailimf_fields_new_with_data( from, sender, reply, to, cc, bcc, |
348 | in_reply_to, NULL, subject ); | 352 | in_reply_to, NULL, subject ); |
349 | if ( fields == NULL ) { | 353 | if ( fields == NULL ) { |
350 | res = 0; | 354 | res = 0; |
351 | } | 355 | } |
352 | } | 356 | } |
353 | if (res) xmailer = mailimf_field_new_custom( strdup( "User-Agent" ), | 357 | if (res) xmailer = mailimf_field_new_custom( strdup( "User-Agent" ), |
354 | strdup( USER_AGENT ) ); | 358 | strdup( USER_AGENT ) ); |
355 | if ( xmailer == NULL ) { | 359 | if ( xmailer == NULL ) { |
356 | res = 0; | 360 | res = 0; |
357 | } else { | 361 | } else { |
358 | err = mailimf_fields_add( fields, xmailer ); | 362 | err = mailimf_fields_add( fields, xmailer ); |
359 | if ( err != MAILIMF_NO_ERROR ) { | 363 | if ( err != MAILIMF_NO_ERROR ) { |
360 | res = 0; | 364 | res = 0; |
361 | } | 365 | } |
362 | } | 366 | } |
363 | if (!res ) { | 367 | if (!res ) { |
364 | if (xmailer) { | 368 | if (xmailer) { |
365 | mailimf_field_free( xmailer ); | 369 | mailimf_field_free( xmailer ); |
366 | xmailer = NULL; | 370 | xmailer = NULL; |
367 | } | 371 | } |
368 | if (fields) { | 372 | if (fields) { |
369 | mailimf_fields_free( fields ); | 373 | mailimf_fields_free( fields ); |
370 | fields = NULL; | 374 | fields = NULL; |
371 | } else { | 375 | } else { |
372 | if (reply) | 376 | if (reply) |
373 | mailimf_address_list_free( reply ); | 377 | mailimf_address_list_free( reply ); |
374 | if (bcc) | 378 | if (bcc) |
375 | mailimf_address_list_free( bcc ); | 379 | mailimf_address_list_free( bcc ); |
376 | if (cc) | 380 | if (cc) |
377 | mailimf_address_list_free( cc ); | 381 | mailimf_address_list_free( cc ); |
378 | if (to) | 382 | if (to) |
379 | mailimf_address_list_free( to ); | 383 | mailimf_address_list_free( to ); |
380 | if (fromBox) { | 384 | if (fromBox) { |
381 | mailimf_mailbox_free( fromBox ); | 385 | mailimf_mailbox_free( fromBox ); |
382 | } else if (from) { | 386 | } else if (from) { |
383 | mailimf_mailbox_list_free( from ); | 387 | mailimf_mailbox_list_free( from ); |
384 | } | 388 | } |
385 | if (sender) { | 389 | if (sender) { |
386 | mailimf_mailbox_free( sender ); | 390 | mailimf_mailbox_free( sender ); |
387 | } | 391 | } |
388 | if (subject) { | 392 | if (subject) { |
389 | free( subject ); | 393 | free( subject ); |
390 | } | 394 | } |
391 | } | 395 | } |
392 | } | 396 | } |
393 | return fields; | 397 | return fields; |
394 | } | 398 | } |
395 | 399 | ||
396 | mailmime *Generatemail::createMimeMail(const Opie::Core::OSmartPointer<Mail> &mail ) { | 400 | mailmime *Generatemail::createMimeMail(const Opie::Core::OSmartPointer<Mail> &mail ) { |
397 | mailmime *message, *txtPart; | 401 | mailmime *message, *txtPart; |
398 | mailimf_fields *fields; | 402 | mailimf_fields *fields; |
399 | int err; | 403 | int err; |
400 | 404 | ||
405 | //LR disabled for now | ||
406 | //mCharset = mail->getCharset().lower(); | ||
401 | fields = createImfFields( mail ); | 407 | fields = createImfFields( mail ); |
402 | if ( fields == NULL ) | 408 | if ( fields == NULL ) |
403 | goto err_free; | 409 | goto err_free; |
404 | 410 | ||
405 | message = mailmime_new_message_data( NULL ); | 411 | message = mailmime_new_message_data( NULL ); |
406 | if ( message == NULL ) | 412 | if ( message == NULL ) |
407 | goto err_free_fields; | 413 | goto err_free_fields; |
408 | 414 | ||
409 | mailmime_set_imf_fields( message, fields ); | 415 | mailmime_set_imf_fields( message, fields ); |
410 | 416 | ||
411 | txtPart = buildTxtPart( mail->getMessage() ); | 417 | txtPart = buildTxtPart( mail->getMessage() ); |
412 | 418 | ||
413 | if ( txtPart == NULL ) | 419 | if ( txtPart == NULL ) |
414 | goto err_free_message; | 420 | goto err_free_message; |
415 | 421 | ||
416 | err = mailmime_smart_add_part( message, txtPart ); | 422 | err = mailmime_smart_add_part( message, txtPart ); |
417 | if ( err != MAILIMF_NO_ERROR ) | 423 | if ( err != MAILIMF_NO_ERROR ) |
418 | goto err_free_txtPart; | 424 | goto err_free_txtPart; |
419 | 425 | ||
420 | addFileParts( message, mail->getAttachments() ); | 426 | addFileParts( message, mail->getAttachments() ); |
421 | 427 | ||
422 | return message; // Success :) | 428 | return message; // Success :) |
423 | 429 | ||
424 | err_free_txtPart: | 430 | err_free_txtPart: |
425 | mailmime_free( txtPart ); | 431 | mailmime_free( txtPart ); |
426 | err_free_message: | 432 | err_free_message: |
427 | mailmime_free( message ); | 433 | mailmime_free( message ); |
428 | err_free_fields: | 434 | err_free_fields: |
429 | mailimf_fields_free( fields ); | 435 | mailimf_fields_free( fields ); |
430 | err_free: | 436 | err_free: |
431 | ; | 437 | ; |
432 | 438 | ||
433 | return NULL; // Error :( | 439 | return NULL; // Error :( |
434 | } | 440 | } |
435 | 441 | ||
436 | clist *Generatemail::createRcptList( mailimf_fields *fields ) { | 442 | clist *Generatemail::createRcptList( mailimf_fields *fields ) { |
437 | clist *rcptList; | 443 | clist *rcptList; |
438 | mailimf_field *field; | 444 | mailimf_field *field; |
439 | 445 | ||
440 | rcptList = esmtp_address_list_new(); | 446 | rcptList = esmtp_address_list_new(); |
441 | 447 | ||
442 | field = getField( fields, MAILIMF_FIELD_TO ); | 448 | field = getField( fields, MAILIMF_FIELD_TO ); |
443 | if ( field && (field->fld_type == MAILIMF_FIELD_TO) | 449 | if ( field && (field->fld_type == MAILIMF_FIELD_TO) |
444 | && field->fld_data.fld_to->to_addr_list ) { | 450 | && field->fld_data.fld_to->to_addr_list ) { |
445 | addRcpts( rcptList, field->fld_data.fld_to->to_addr_list ); | 451 | addRcpts( rcptList, field->fld_data.fld_to->to_addr_list ); |
446 | } | 452 | } |
447 | 453 | ||
448 | field = getField( fields, MAILIMF_FIELD_CC ); | 454 | field = getField( fields, MAILIMF_FIELD_CC ); |
449 | if ( field && (field->fld_type == MAILIMF_FIELD_CC) | 455 | if ( field && (field->fld_type == MAILIMF_FIELD_CC) |
450 | && field->fld_data.fld_cc->cc_addr_list ) { | 456 | && field->fld_data.fld_cc->cc_addr_list ) { |
451 | addRcpts( rcptList, field->fld_data.fld_cc->cc_addr_list ); | 457 | addRcpts( rcptList, field->fld_data.fld_cc->cc_addr_list ); |
452 | } | 458 | } |
453 | 459 | ||
454 | field = getField( fields, MAILIMF_FIELD_BCC ); | 460 | field = getField( fields, MAILIMF_FIELD_BCC ); |
455 | if ( field && (field->fld_type == MAILIMF_FIELD_BCC) | 461 | if ( field && (field->fld_type == MAILIMF_FIELD_BCC) |
456 | && field->fld_data.fld_bcc->bcc_addr_list ) { | 462 | && field->fld_data.fld_bcc->bcc_addr_list ) { |
457 | addRcpts( rcptList, field->fld_data.fld_bcc->bcc_addr_list ); | 463 | addRcpts( rcptList, field->fld_data.fld_bcc->bcc_addr_list ); |
458 | } | 464 | } |
459 | 465 | ||
460 | return rcptList; | 466 | return rcptList; |
461 | } | 467 | } |
diff --git a/kmicromail/libmailwrapper/generatemail.h b/kmicromail/libmailwrapper/generatemail.h index b9f8285..a9fb648 100644 --- a/kmicromail/libmailwrapper/generatemail.h +++ b/kmicromail/libmailwrapper/generatemail.h | |||
@@ -1,47 +1,48 @@ | |||
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 | #include "mailwrapper.h" |
9 | 9 | ||
10 | #include <opie2/osmartpointer.h> | 10 | #include <opie2/osmartpointer.h> |
11 | 11 | ||
12 | class Mail; | 12 | class Mail; |
13 | class RecMail; | 13 | class RecMail; |
14 | 14 | ||
15 | struct mailimf_fields; | 15 | struct mailimf_fields; |
16 | struct mailimf_field; | 16 | struct mailimf_field; |
17 | struct mailimf_mailbox; | 17 | struct mailimf_mailbox; |
18 | struct mailmime; | 18 | struct mailmime; |
19 | struct mailimf_address_list; | 19 | struct mailimf_address_list; |
20 | class progressMailSend; | 20 | class progressMailSend; |
21 | struct mailsmtp; | 21 | struct mailsmtp; |
22 | 22 | ||
23 | class Generatemail : public QObject | 23 | class Generatemail : public QObject |
24 | { | 24 | { |
25 | Q_OBJECT | 25 | Q_OBJECT |
26 | public: | 26 | public: |
27 | Generatemail(); | 27 | Generatemail(); |
28 | virtual ~Generatemail(); | 28 | virtual ~Generatemail(); |
29 | 29 | ||
30 | protected: | 30 | protected: |
31 | static void addRcpts( clist *list, mailimf_address_list *addr_list ); | 31 | static void addRcpts( clist *list, mailimf_address_list *addr_list ); |
32 | static char *getFrom( mailmime *mail ); | 32 | static char *getFrom( mailmime *mail ); |
33 | static char *getFrom( mailimf_field *ffrom); | 33 | static char *getFrom( mailimf_field *ffrom); |
34 | static mailimf_field *getField( mailimf_fields *fields, int type ); | 34 | static mailimf_field *getField( mailimf_fields *fields, int type ); |
35 | mailimf_address_list *parseAddresses(const QString&addr ); | 35 | mailimf_address_list *parseAddresses(const QString&addr ); |
36 | void addFileParts( mailmime *message,const QList<Attachment>&files ); | 36 | void addFileParts( mailmime *message,const QList<Attachment>&files ); |
37 | mailmime *buildFilePart(const QString&filename,const QString&mimetype,const QString&content); | 37 | mailmime *buildFilePart(const QString&filename,const QString&mimetype,const QString&content); |
38 | mailmime *buildTxtPart(const QString&str ); | 38 | mailmime *buildTxtPart(const QString&str ); |
39 | mailimf_mailbox *newMailbox(const QString&name,const QString&mail ); | 39 | mailimf_mailbox *newMailbox(const QString&name,const QString&mail ); |
40 | mailimf_fields *createImfFields(const Opie::Core::OSmartPointer<Mail> &mail ); | 40 | mailimf_fields *createImfFields(const Opie::Core::OSmartPointer<Mail> &mail ); |
41 | mailmime *createMimeMail(const Opie::Core::OSmartPointer<Mail>&mail ); | 41 | mailmime *createMimeMail(const Opie::Core::OSmartPointer<Mail>&mail ); |
42 | clist *createRcptList( mailimf_fields *fields ); | 42 | clist *createRcptList( mailimf_fields *fields ); |
43 | 43 | ||
44 | static const char* USER_AGENT; | 44 | static const char* USER_AGENT; |
45 | QString mCharset; | ||
45 | }; | 46 | }; |
46 | 47 | ||
47 | #endif | 48 | #endif |
diff --git a/kmicromail/libmailwrapper/genericwrapper.cpp b/kmicromail/libmailwrapper/genericwrapper.cpp index 28d45ce..eac05e5 100644 --- a/kmicromail/libmailwrapper/genericwrapper.cpp +++ b/kmicromail/libmailwrapper/genericwrapper.cpp | |||
@@ -164,129 +164,130 @@ QString Genericwrapper::getencoding(mailmime_mechanism*aEnc) | |||
164 | enc = "8bit"; | 164 | enc = "8bit"; |
165 | break; | 165 | break; |
166 | case MAILMIME_MECHANISM_BINARY: | 166 | case MAILMIME_MECHANISM_BINARY: |
167 | enc = "binary"; | 167 | enc = "binary"; |
168 | break; | 168 | break; |
169 | case MAILMIME_MECHANISM_QUOTED_PRINTABLE: | 169 | case MAILMIME_MECHANISM_QUOTED_PRINTABLE: |
170 | enc = "quoted-printable"; | 170 | enc = "quoted-printable"; |
171 | break; | 171 | break; |
172 | case MAILMIME_MECHANISM_BASE64: | 172 | case MAILMIME_MECHANISM_BASE64: |
173 | enc = "base64"; | 173 | enc = "base64"; |
174 | break; | 174 | break; |
175 | case MAILMIME_MECHANISM_TOKEN: | 175 | case MAILMIME_MECHANISM_TOKEN: |
176 | default: | 176 | default: |
177 | if (aEnc->enc_token) { | 177 | if (aEnc->enc_token) { |
178 | enc = QString(aEnc->enc_token); | 178 | enc = QString(aEnc->enc_token); |
179 | } | 179 | } |
180 | break; | 180 | break; |
181 | } | 181 | } |
182 | return enc; | 182 | return enc; |
183 | } | 183 | } |
184 | 184 | ||
185 | void Genericwrapper::traverseBody(RecBodyP&target,mailmessage*message,mailmime*mime,QValueList<int>recList,unsigned int current_rec,int current_count) | 185 | void Genericwrapper::traverseBody(RecBodyP&target,mailmessage*message,mailmime*mime,QValueList<int>recList,unsigned int current_rec,int current_count) |
186 | { | 186 | { |
187 | if (current_rec >= 10) { | 187 | if (current_rec >= 10) { |
188 | ; // odebug << "too deep recursion!" << oendl; | 188 | ; // odebug << "too deep recursion!" << oendl; |
189 | } | 189 | } |
190 | if (!message || !mime) { | 190 | if (!message || !mime) { |
191 | return; | 191 | return; |
192 | } | 192 | } |
193 | int r; | 193 | int r; |
194 | char*data = 0; | 194 | char*data = 0; |
195 | size_t len; | 195 | size_t len; |
196 | clistiter * cur = 0; | 196 | clistiter * cur = 0; |
197 | QString b; | 197 | QString b; |
198 | RecPartP part = new RecPart(); | 198 | RecPartP part = new RecPart(); |
199 | 199 | ||
200 | switch (mime->mm_type) { | 200 | switch (mime->mm_type) { |
201 | case MAILMIME_SINGLE: | 201 | case MAILMIME_SINGLE: |
202 | { | 202 | { |
203 | QValueList<int>countlist = recList; | 203 | QValueList<int>countlist = recList; |
204 | countlist.append(current_count); | 204 | countlist.append(current_count); |
205 | r = mailmessage_fetch_section(message,mime,&data,&len); | 205 | r = mailmessage_fetch_section(message,mime,&data,&len); |
206 | part->setSize(len); | 206 | part->setSize(len); |
207 | part->setPositionlist(countlist); | 207 | part->setPositionlist(countlist); |
208 | b = gen_attachment_id(); | 208 | b = gen_attachment_id(); |
209 | part->setIdentifier(b); | 209 | part->setIdentifier(b); |
210 | fillSingleBody(part,message,mime); | 210 | fillSingleBody(part,message,mime); |
211 | if (part->Type()=="text" && target->Bodytext().isNull()) { | 211 | if (part->Type()=="text" && target->Bodytext().isNull()) { |
212 | encodedString*rs = new encodedString(); | 212 | encodedString*rs = new encodedString(); |
213 | rs->setContent(data,len); | 213 | rs->setContent(data,len); |
214 | encodedString*res = decode_String(rs,part->Encoding()); | 214 | encodedString*res = decode_String(rs,part->Encoding()); |
215 | if (countlist.count()>2) { | 215 | if (countlist.count()>2) { |
216 | bodyCache[b]=rs; | 216 | bodyCache[b]=rs; |
217 | target->addPart(part); | 217 | target->addPart(part); |
218 | } else { | 218 | } else { |
219 | delete rs; | 219 | delete rs; |
220 | } | 220 | } |
221 | b = QString(res->Content()); | 221 | b = QString(res->Content()); |
222 | delete res; | 222 | delete res; |
223 | size_t index = 0; | 223 | size_t index = 0; |
224 | char*resu = 0; | 224 | char*resu = 0; |
225 | int err = MAILIMF_NO_ERROR; | 225 | int err = MAILIMF_NO_ERROR; |
226 | QString charset = part->searchParamter( "charset"); | 226 | QString charset = part->searchParamter( "charset"); |
227 | qDebug("CHARSET %s ",charset.latin1() ); | 227 | qDebug("CHARSET %s ",charset.latin1() ); |
228 | if ( !charset.isEmpty() ) { | 228 | if (false ) { |
229 | //if ( !charset.isEmpty() ) { | ||
229 | target->setCharset( charset ); | 230 | target->setCharset( charset ); |
230 | err = mailmime_encoded_phrase_parse(charset.latin1(), | 231 | err = mailmime_encoded_phrase_parse(charset.latin1(), |
231 | b.latin1(), b.length(),&index, "utf-8",&resu); | 232 | b.latin1(), b.length(),&index, "utf-8",&resu); |
232 | if (err == MAILIMF_NO_ERROR && resu && strlen(resu)) { | 233 | if (err == MAILIMF_NO_ERROR && resu && strlen(resu)) { |
233 | //qDebug("res %d %s ", index, resu); | 234 | //qDebug("res %d %s ", index, resu); |
234 | b = QString::fromUtf8(resu); | 235 | b = QString::fromUtf8(resu); |
235 | } | 236 | } |
236 | if (resu) free(resu); | 237 | if (resu) free(resu); |
237 | } | 238 | } |
238 | target->setBodytext(b); | 239 | target->setBodytext(b); |
239 | target->setDescription(part); | 240 | target->setDescription(part); |
240 | } else { | 241 | } else { |
241 | bodyCache[b]=new encodedString(data,len); | 242 | bodyCache[b]=new encodedString(data,len); |
242 | target->addPart(part); | 243 | target->addPart(part); |
243 | } | 244 | } |
244 | } | 245 | } |
245 | break; | 246 | break; |
246 | case MAILMIME_MULTIPLE: | 247 | case MAILMIME_MULTIPLE: |
247 | { | 248 | { |
248 | unsigned int ccount = 1; | 249 | unsigned int ccount = 1; |
249 | mailmime*cbody=0; | 250 | mailmime*cbody=0; |
250 | QValueList<int>countlist = recList; | 251 | QValueList<int>countlist = recList; |
251 | for (cur = clist_begin(mime->mm_data.mm_multipart.mm_mp_list) ; cur != NULL ; cur = clist_next(cur)) { | 252 | for (cur = clist_begin(mime->mm_data.mm_multipart.mm_mp_list) ; cur != NULL ; cur = clist_next(cur)) { |
252 | cbody = (mailmime*)clist_content(cur); | 253 | cbody = (mailmime*)clist_content(cur); |
253 | if (cbody->mm_type==MAILMIME_MULTIPLE) { | 254 | if (cbody->mm_type==MAILMIME_MULTIPLE) { |
254 | RecPartP targetPart = new RecPart(); | 255 | RecPartP targetPart = new RecPart(); |
255 | targetPart->setType("multipart"); | 256 | targetPart->setType("multipart"); |
256 | countlist.append(current_count); | 257 | countlist.append(current_count); |
257 | targetPart->setPositionlist(countlist); | 258 | targetPart->setPositionlist(countlist); |
258 | target->addPart(targetPart); | 259 | target->addPart(targetPart); |
259 | } | 260 | } |
260 | traverseBody(target,message, cbody,countlist,current_rec+1,ccount); | 261 | traverseBody(target,message, cbody,countlist,current_rec+1,ccount); |
261 | if (cbody->mm_type==MAILMIME_MULTIPLE) { | 262 | if (cbody->mm_type==MAILMIME_MULTIPLE) { |
262 | countlist = recList; | 263 | countlist = recList; |
263 | } | 264 | } |
264 | ++ccount; | 265 | ++ccount; |
265 | } | 266 | } |
266 | } | 267 | } |
267 | break; | 268 | break; |
268 | case MAILMIME_MESSAGE: | 269 | case MAILMIME_MESSAGE: |
269 | { | 270 | { |
270 | QValueList<int>countlist = recList; | 271 | QValueList<int>countlist = recList; |
271 | countlist.append(current_count); | 272 | countlist.append(current_count); |
272 | /* the own header is always at recursion 0 - we don't need that */ | 273 | /* the own header is always at recursion 0 - we don't need that */ |
273 | if (current_rec > 0) { | 274 | if (current_rec > 0) { |
274 | part->setPositionlist(countlist); | 275 | part->setPositionlist(countlist); |
275 | r = mailmessage_fetch_section(message,mime,&data,&len); | 276 | r = mailmessage_fetch_section(message,mime,&data,&len); |
276 | part->setSize(len); | 277 | part->setSize(len); |
277 | part->setPositionlist(countlist); | 278 | part->setPositionlist(countlist); |
278 | b = gen_attachment_id(); | 279 | b = gen_attachment_id(); |
279 | part->setIdentifier(b); | 280 | part->setIdentifier(b); |
280 | part->setType("message"); | 281 | part->setType("message"); |
281 | part->setSubtype("rfc822"); | 282 | part->setSubtype("rfc822"); |
282 | bodyCache[b]=new encodedString(data,len); | 283 | bodyCache[b]=new encodedString(data,len); |
283 | target->addPart(part); | 284 | target->addPart(part); |
284 | } | 285 | } |
285 | if (mime->mm_data.mm_message.mm_msg_mime != NULL) { | 286 | if (mime->mm_data.mm_message.mm_msg_mime != NULL) { |
286 | traverseBody(target,message,mime->mm_data.mm_message.mm_msg_mime,countlist,current_rec+1); | 287 | traverseBody(target,message,mime->mm_data.mm_message.mm_msg_mime,countlist,current_rec+1); |
287 | } | 288 | } |
288 | } | 289 | } |
289 | break; | 290 | break; |
290 | } | 291 | } |
291 | } | 292 | } |
292 | 293 | ||
diff --git a/kmicromail/libmailwrapper/imapwrapper.cpp b/kmicromail/libmailwrapper/imapwrapper.cpp index 2a54381..da7065f 100644 --- a/kmicromail/libmailwrapper/imapwrapper.cpp +++ b/kmicromail/libmailwrapper/imapwrapper.cpp | |||
@@ -698,130 +698,130 @@ encodedString*IMAPwrapper::fetchRawPart(const RecMailP&mail,const QValueList<int | |||
698 | 698 | ||
699 | clist*result = 0; | 699 | clist*result = 0; |
700 | 700 | ||
701 | err = mailimap_fetch( m_imap, set, fetchType, &result ); | 701 | err = mailimap_fetch( m_imap, set, fetchType, &result ); |
702 | mailimap_set_free( set ); | 702 | mailimap_set_free( set ); |
703 | mailimap_fetch_type_free( fetchType ); | 703 | mailimap_fetch_type_free( fetchType ); |
704 | 704 | ||
705 | if (err == MAILIMAP_NO_ERROR && (current=clist_begin(result)) ) { | 705 | if (err == MAILIMAP_NO_ERROR && (current=clist_begin(result)) ) { |
706 | mailimap_msg_att * msg_att; | 706 | mailimap_msg_att * msg_att; |
707 | msg_att = (mailimap_msg_att*)current->data; | 707 | msg_att = (mailimap_msg_att*)current->data; |
708 | mailimap_msg_att_item*msg_att_item; | 708 | mailimap_msg_att_item*msg_att_item; |
709 | for(cur = clist_begin(msg_att->att_list) ; cur != NULL ; cur = clist_next(cur)) { | 709 | for(cur = clist_begin(msg_att->att_list) ; cur != NULL ; cur = clist_next(cur)) { |
710 | msg_att_item = (mailimap_msg_att_item*)clist_content(cur); | 710 | msg_att_item = (mailimap_msg_att_item*)clist_content(cur); |
711 | if (msg_att_item->att_type == MAILIMAP_MSG_ATT_ITEM_STATIC) { | 711 | if (msg_att_item->att_type == MAILIMAP_MSG_ATT_ITEM_STATIC) { |
712 | if (msg_att_item->att_data.att_static->att_type == MAILIMAP_MSG_ATT_BODY_SECTION) { | 712 | if (msg_att_item->att_data.att_static->att_type == MAILIMAP_MSG_ATT_BODY_SECTION) { |
713 | char*text = msg_att_item->att_data.att_static->att_data.att_body_section->sec_body_part; | 713 | char*text = msg_att_item->att_data.att_static->att_data.att_body_section->sec_body_part; |
714 | /* detach - we take over the content */ | 714 | /* detach - we take over the content */ |
715 | msg_att_item->att_data.att_static->att_data.att_body_section->sec_body_part = 0L; | 715 | msg_att_item->att_data.att_static->att_data.att_body_section->sec_body_part = 0L; |
716 | res->setContent(text,msg_att_item->att_data.att_static->att_data.att_body_section->sec_length); | 716 | res->setContent(text,msg_att_item->att_data.att_static->att_data.att_body_section->sec_length); |
717 | } | 717 | } |
718 | } | 718 | } |
719 | } | 719 | } |
720 | } else { | 720 | } else { |
721 | ;//odebug << "error fetching text: " << m_imap->imap_response << "" << oendl; | 721 | ;//odebug << "error fetching text: " << m_imap->imap_response << "" << oendl; |
722 | } | 722 | } |
723 | if (result) mailimap_fetch_list_free(result); | 723 | if (result) mailimap_fetch_list_free(result); |
724 | return res; | 724 | return res; |
725 | } | 725 | } |
726 | 726 | ||
727 | /* current_recursion is for recursive calls. | 727 | /* current_recursion is for recursive calls. |
728 | current_count means the position inside the internal loop! */ | 728 | current_count means the position inside the internal loop! */ |
729 | void IMAPwrapper::traverseBody(const RecMailP&mail,mailimap_body*body,RecBodyP&target_body, | 729 | void IMAPwrapper::traverseBody(const RecMailP&mail,mailimap_body*body,RecBodyP&target_body, |
730 | int current_recursion,QValueList<int>recList,int current_count) | 730 | int current_recursion,QValueList<int>recList,int current_count) |
731 | { | 731 | { |
732 | if (!body || current_recursion>=10) { | 732 | if (!body || current_recursion>=10) { |
733 | return; | 733 | return; |
734 | } | 734 | } |
735 | switch (body->bd_type) { | 735 | switch (body->bd_type) { |
736 | case MAILIMAP_BODY_1PART: | 736 | case MAILIMAP_BODY_1PART: |
737 | { | 737 | { |
738 | QValueList<int>countlist = recList; | 738 | QValueList<int>countlist = recList; |
739 | countlist.append(current_count); | 739 | countlist.append(current_count); |
740 | RecPartP currentPart = new RecPart(); | 740 | RecPartP currentPart = new RecPart(); |
741 | mailimap_body_type_1part*part1 = body->bd_data.bd_body_1part; | 741 | mailimap_body_type_1part*part1 = body->bd_data.bd_body_1part; |
742 | QString id(""); | 742 | QString id(""); |
743 | currentPart->setPositionlist(countlist); | 743 | currentPart->setPositionlist(countlist); |
744 | for (unsigned int j = 0; j < countlist.count();++j) { | 744 | for (unsigned int j = 0; j < countlist.count();++j) { |
745 | id+=(j>0?" ":""); | 745 | id+=(j>0?" ":""); |
746 | id+=QString("%1").arg(countlist[j]); | 746 | id+=QString("%1").arg(countlist[j]); |
747 | } | 747 | } |
748 | //odebug << "ID = " << id.latin1() << "" << oendl; | 748 | //odebug << "ID = " << id.latin1() << "" << oendl; |
749 | currentPart->setIdentifier(id); | 749 | currentPart->setIdentifier(id); |
750 | fillSinglePart(currentPart,part1); | 750 | fillSinglePart(currentPart,part1); |
751 | /* important: Check for is NULL 'cause a body can be empty! | 751 | /* important: Check for is NULL 'cause a body can be empty! |
752 | And we put it only into the mail if it is the FIRST part */ | 752 | And we put it only into the mail if it is the FIRST part */ |
753 | if (part1->bd_type==MAILIMAP_BODY_TYPE_1PART_TEXT && target_body->Bodytext().isNull() && countlist[0]==1) { | 753 | if (part1->bd_type==MAILIMAP_BODY_TYPE_1PART_TEXT && target_body->Bodytext().isNull() && countlist[0]==1) { |
754 | QString body_text = fetchTextPart(mail,countlist,true,currentPart->Encoding()); | 754 | QString body_text = fetchTextPart(mail,countlist,true,currentPart->Encoding()); |
755 | 755 | ||
756 | size_t index = 0; | 756 | size_t index = 0; |
757 | char*res = 0; | 757 | char*res = 0; |
758 | int err = MAILIMF_NO_ERROR; | 758 | int err = MAILIMF_NO_ERROR; |
759 | 759 | ||
760 | QString charset = currentPart->searchParamter( "charset"); | 760 | QString charset = currentPart->searchParamter( "charset"); |
761 | qDebug("CHARSET %s ",charset.latin1() ); | 761 | qDebug("CHARSET %s ",charset.latin1() ); |
762 | //if ( false ) { | 762 | if ( false ) { |
763 | if ( !charset.isEmpty() ) { | 763 | //if ( !charset.isEmpty() ) { |
764 | target_body->setCharset( charset ); | 764 | target_body->setCharset( charset ); |
765 | //err = mailmime_encoded_phrase_parse("iso-8859-1", | 765 | //err = mailmime_encoded_phrase_parse("iso-8859-1", |
766 | // text, strlen(text),&index, "iso-8859-1",&res); | 766 | // text, strlen(text),&index, "iso-8859-1",&res); |
767 | err = mailmime_encoded_phrase_parse(charset.latin1(), | 767 | err = mailmime_encoded_phrase_parse(charset.latin1(), |
768 | body_text.latin1(), body_text.length(),&index, "utf-8",&res); | 768 | body_text.latin1(), body_text.length(),&index, "utf-8",&res); |
769 | if (err == MAILIMF_NO_ERROR && res && strlen(res)) { | 769 | if (err == MAILIMF_NO_ERROR && res && strlen(res)) { |
770 | //qDebug("res %d %s ", index, res); | 770 | //qDebug("res %d %s ", index, res); |
771 | body_text = QString::fromUtf8(res); | 771 | body_text = QString::fromUtf8(res); |
772 | } | 772 | } |
773 | if (res) free(res); | 773 | if (res) free(res); |
774 | } | 774 | } |
775 | //qDebug("encoding %d text %s ",currentPart->Encoding().latin1(), body_text.latin1() ); | 775 | //qDebug("encoding %d text %s ",currentPart->Encoding().latin1(), body_text.latin1() ); |
776 | target_body->setDescription(currentPart); | 776 | target_body->setDescription(currentPart); |
777 | target_body->setBodytext(body_text); | 777 | target_body->setBodytext(body_text); |
778 | if (countlist.count()>1) { | 778 | if (countlist.count()>1) { |
779 | target_body->addPart(currentPart); | 779 | target_body->addPart(currentPart); |
780 | } | 780 | } |
781 | } else { | 781 | } else { |
782 | target_body->addPart(currentPart); | 782 | target_body->addPart(currentPart); |
783 | } | 783 | } |
784 | if (part1->bd_type==MAILIMAP_BODY_TYPE_1PART_MSG) { | 784 | if (part1->bd_type==MAILIMAP_BODY_TYPE_1PART_MSG) { |
785 | traverseBody(mail,part1->bd_data.bd_type_msg->bd_body,target_body,current_recursion+1,countlist); | 785 | traverseBody(mail,part1->bd_data.bd_type_msg->bd_body,target_body,current_recursion+1,countlist); |
786 | } | 786 | } |
787 | } | 787 | } |
788 | break; | 788 | break; |
789 | case MAILIMAP_BODY_MPART: | 789 | case MAILIMAP_BODY_MPART: |
790 | { | 790 | { |
791 | QValueList<int>countlist = recList; | 791 | QValueList<int>countlist = recList; |
792 | clistcell*current=0; | 792 | clistcell*current=0; |
793 | mailimap_body*current_body=0; | 793 | mailimap_body*current_body=0; |
794 | unsigned int ccount = 1; | 794 | unsigned int ccount = 1; |
795 | mailimap_body_type_mpart*mailDescription = body->bd_data.bd_body_mpart; | 795 | mailimap_body_type_mpart*mailDescription = body->bd_data.bd_body_mpart; |
796 | for (current=clist_begin(mailDescription->bd_list);current!=0;current=clist_next(current)) { | 796 | for (current=clist_begin(mailDescription->bd_list);current!=0;current=clist_next(current)) { |
797 | current_body = (mailimap_body*)current->data; | 797 | current_body = (mailimap_body*)current->data; |
798 | if (current_body->bd_type==MAILIMAP_BODY_MPART) { | 798 | if (current_body->bd_type==MAILIMAP_BODY_MPART) { |
799 | RecPartP targetPart = new RecPart(); | 799 | RecPartP targetPart = new RecPart(); |
800 | targetPart->setType("multipart"); | 800 | targetPart->setType("multipart"); |
801 | fillMultiPart(targetPart,mailDescription); | 801 | fillMultiPart(targetPart,mailDescription); |
802 | countlist.append(current_count); | 802 | countlist.append(current_count); |
803 | targetPart->setPositionlist(countlist); | 803 | targetPart->setPositionlist(countlist); |
804 | target_body->addPart(targetPart); | 804 | target_body->addPart(targetPart); |
805 | QString id(""); | 805 | QString id(""); |
806 | for (unsigned int j = 0; j < countlist.count();++j) { | 806 | for (unsigned int j = 0; j < countlist.count();++j) { |
807 | id+=(j>0?" ":""); | 807 | id+=(j>0?" ":""); |
808 | id+=QString("%1").arg(countlist[j]); | 808 | id+=QString("%1").arg(countlist[j]); |
809 | } | 809 | } |
810 | // odebug << "ID(mpart) = " << id.latin1() << "" << oendl; | 810 | // odebug << "ID(mpart) = " << id.latin1() << "" << oendl; |
811 | } | 811 | } |
812 | traverseBody(mail,current_body,target_body,current_recursion+1,countlist,ccount); | 812 | traverseBody(mail,current_body,target_body,current_recursion+1,countlist,ccount); |
813 | if (current_body->bd_type==MAILIMAP_BODY_MPART) { | 813 | if (current_body->bd_type==MAILIMAP_BODY_MPART) { |
814 | countlist = recList; | 814 | countlist = recList; |
815 | } | 815 | } |
816 | ++ccount; | 816 | ++ccount; |
817 | } | 817 | } |
818 | } | 818 | } |
819 | break; | 819 | break; |
820 | default: | 820 | default: |
821 | break; | 821 | break; |
822 | } | 822 | } |
823 | } | 823 | } |
824 | 824 | ||
825 | void IMAPwrapper::fillSinglePart(RecPartP&target_part,mailimap_body_type_1part*Description) | 825 | void IMAPwrapper::fillSinglePart(RecPartP&target_part,mailimap_body_type_1part*Description) |
826 | { | 826 | { |
827 | if (!Description) { | 827 | if (!Description) { |
diff --git a/kmicromail/libmailwrapper/mailwrapper.h b/kmicromail/libmailwrapper/mailwrapper.h index ea6bf36..3e8b51f 100644 --- a/kmicromail/libmailwrapper/mailwrapper.h +++ b/kmicromail/libmailwrapper/mailwrapper.h | |||
@@ -22,110 +22,110 @@ public: | |||
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 | ||
27 | protected: | 27 | protected: |
28 | DocLnk doc; | 28 | DocLnk doc; |
29 | int size; | 29 | int size; |
30 | 30 | ||
31 | }; | 31 | }; |
32 | */ | 32 | */ |
33 | 33 | ||
34 | class Attachment | 34 | class Attachment |
35 | { | 35 | { |
36 | public: | 36 | public: |
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 | ||
46 | protected: | 46 | protected: |
47 | QPixmap mPix; | 47 | QPixmap mPix; |
48 | QString doc; | 48 | QString doc; |
49 | int size; | 49 | int size; |
50 | 50 | ||
51 | }; | 51 | }; |
52 | 52 | ||
53 | class Mail:public Opie::Core::ORefCount | 53 | class Mail:public Opie::Core::ORefCount |
54 | { | 54 | { |
55 | public: | 55 | public: |
56 | Mail(); | 56 | Mail(); |
57 | /* Possible that this destructor must not be declared virtual | 57 | /* Possible that this destructor must not be declared virtual |
58 | * 'cause it seems that it will never have some child classes. | 58 | * 'cause it seems that it will never have some child classes. |
59 | * in this case this object will not get a virtual table -> memory and | 59 | * in this case this object will not get a virtual table -> memory and |
60 | * speed will be a little bit better? | 60 | * speed will be a little bit better? |
61 | */ | 61 | */ |
62 | virtual ~Mail(){} | 62 | virtual ~Mail(){} |
63 | void addAttachment( Attachment *att ) { attList.append( att ); } | 63 | void addAttachment( Attachment *att ) { attList.append( att ); } |
64 | const QList<Attachment>& getAttachments()const { return attList; } | 64 | const QList<Attachment>& getAttachments()const { return attList; } |
65 | void removeAttachment( Attachment *att ) { attList.remove( att ); } | 65 | void removeAttachment( Attachment *att ) { attList.remove( att ); } |
66 | const QString&getName()const { return name; } | 66 | const QString&getName()const { return name; } |
67 | void setName( QString s ) { name = s; } | 67 | void setName( QString s ) { name = s; } |
68 | const QString&getMail()const{ return mail; } | 68 | const QString&getMail()const{ return mail; } |
69 | void setMail( const QString&s ) { mail = s; } | 69 | void setMail( const QString&s ) { mail = s; } |
70 | const QString&getTo()const{ return to; } | 70 | const QString&getTo()const{ return to; } |
71 | void setTo( const QString&s ) { to = s; } | 71 | void setTo( const QString&s ) { to = s; } |
72 | const QString&getCC()const{ return cc; } | 72 | const QString&getCC()const{ return cc; } |
73 | void setCC( const QString&s ) { cc = s; } | 73 | void setCC( const QString&s ) { cc = s; } |
74 | const QString&getBCC()const { return bcc; } | 74 | const QString&getBCC()const { return bcc; } |
75 | void setBCC( const QString&s ) { bcc = s; } | 75 | void setBCC( const QString&s ) { bcc = s; } |
76 | const QString&getMessage()const { return message; } | 76 | const QString&getMessage()const { return message; } |
77 | void setMessage( const QString&s ) { message = s; } | 77 | void setMessage( const QString&s ) { message = s; } |
78 | const QString&getSubject()const { return subject; } | 78 | const QString&getSubject()const { return subject; } |
79 | void setSubject( const QString&s ) { subject = s; } | 79 | void setSubject( const QString&s ) { subject = s; } |
80 | const QString&getReply()const{ return reply; } | 80 | const QString&getReply()const{ return reply; } |
81 | void setReply( const QString&a ) { reply = a; } | 81 | void setReply( const QString&a ) { reply = a; } |
82 | void setInreply(const QStringList&list){m_in_reply_to = list;} | 82 | void setInreply(const QStringList&list){m_in_reply_to = list;} |
83 | const QStringList&Inreply()const{return m_in_reply_to;} | 83 | const QStringList&Inreply()const{return m_in_reply_to;} |
84 | 84 | ||
85 | void setCharset( const QString&a ) { charset= a; } | 85 | void setCharset( const QString&a ) { charset= a; } |
86 | const QString& getCharset() { return charset; } | 86 | const QString& getCharset() const { return charset; } |
87 | 87 | ||
88 | private: | 88 | private: |
89 | QList<Attachment> attList; | 89 | QList<Attachment> attList; |
90 | QString name, mail, to, cc, bcc, reply, subject, message, charset; | 90 | QString name, mail, to, cc, bcc, reply, subject, message, charset; |
91 | QStringList m_in_reply_to; | 91 | QStringList m_in_reply_to; |
92 | }; | 92 | }; |
93 | 93 | ||
94 | class Folder:public Opie::Core::ORefCount | 94 | class Folder:public Opie::Core::ORefCount |
95 | { | 95 | { |
96 | public: | 96 | public: |
97 | Folder( const QString&init_name,const QString&sep ); | 97 | Folder( const QString&init_name,const QString&sep ); |
98 | virtual ~Folder(); | 98 | virtual ~Folder(); |
99 | const QString&getDisplayName()const { return nameDisplay; } | 99 | const QString&getDisplayName()const { return nameDisplay; } |
100 | const QString&getName()const { return name; } | 100 | const QString&getName()const { return name; } |
101 | const QString&getPrefix()const{return prefix; } | 101 | const QString&getPrefix()const{return prefix; } |
102 | virtual bool may_select()const{return true;} | 102 | virtual bool may_select()const{return true;} |
103 | virtual bool no_inferior()const{return true;} | 103 | virtual bool no_inferior()const{return true;} |
104 | const QString&Separator()const; | 104 | const QString&Separator()const; |
105 | 105 | ||
106 | protected: | 106 | protected: |
107 | QString nameDisplay, name, separator,prefix; | 107 | QString nameDisplay, name, separator,prefix; |
108 | }; | 108 | }; |
109 | 109 | ||
110 | typedef Opie::Core::OSmartPointer<Folder> FolderP; | 110 | typedef Opie::Core::OSmartPointer<Folder> FolderP; |
111 | 111 | ||
112 | class MHFolder : public Folder | 112 | class MHFolder : public Folder |
113 | { | 113 | { |
114 | public: | 114 | public: |
115 | MHFolder(const QString&disp_name,const QString&mbox); | 115 | MHFolder(const QString&disp_name,const QString&mbox); |
116 | virtual ~MHFolder(); | 116 | virtual ~MHFolder(); |
117 | }; | 117 | }; |
118 | 118 | ||
119 | class IMAPFolder : public Folder | 119 | class IMAPFolder : public Folder |
120 | { | 120 | { |
121 | public: | 121 | public: |
122 | IMAPFolder(const QString&name, const QString&sep, bool select=true,bool noinf=false,const QString&prefix="" ); | 122 | IMAPFolder(const QString&name, const QString&sep, bool select=true,bool noinf=false,const QString&prefix="" ); |
123 | virtual ~IMAPFolder(); | 123 | virtual ~IMAPFolder(); |
124 | virtual bool may_select()const{return m_MaySelect;} | 124 | virtual bool may_select()const{return m_MaySelect;} |
125 | virtual bool no_inferior()const{return m_NoInferior;} | 125 | virtual bool no_inferior()const{return m_NoInferior;} |
126 | static QString decodeFolderName( const QString &name ); | 126 | static QString decodeFolderName( const QString &name ); |
127 | private: | 127 | private: |
128 | bool m_MaySelect,m_NoInferior; | 128 | bool m_MaySelect,m_NoInferior; |
129 | }; | 129 | }; |
130 | 130 | ||
131 | #endif | 131 | #endif |
diff --git a/kmicromail/mainwindow.cpp b/kmicromail/mainwindow.cpp index 3013931..8c0a4cb 100644 --- a/kmicromail/mainwindow.cpp +++ b/kmicromail/mainwindow.cpp | |||
@@ -46,129 +46,130 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags ) | |||
46 | connect(getMail, SIGNAL( activated() ), | 46 | connect(getMail, SIGNAL( activated() ), |
47 | SLOT( slotGetAllMail() ) ); | 47 | SLOT( slotGetAllMail() ) ); |
48 | getMail->addTo( mailMenu ); | 48 | getMail->addTo( mailMenu ); |
49 | 49 | ||
50 | getMail = new QAction( i18n( "Get new messages" ), SmallIcon("add"), | 50 | getMail = new QAction( i18n( "Get new messages" ), SmallIcon("add"), |
51 | 0, 0, this ); | 51 | 0, 0, this ); |
52 | getMail->addTo( toolBar ); | 52 | getMail->addTo( toolBar ); |
53 | getMail->addTo( mailMenu ); | 53 | getMail->addTo( mailMenu ); |
54 | connect(getMail, SIGNAL( activated() ), | 54 | connect(getMail, SIGNAL( activated() ), |
55 | SLOT( slotGetMail() ) ); | 55 | SLOT( slotGetMail() ) ); |
56 | 56 | ||
57 | composeMail = new QAction( i18n( "Compose new mail" ), SmallIcon("composemail"), | 57 | composeMail = new QAction( i18n( "Compose new mail" ), SmallIcon("composemail"), |
58 | 0, 0, this ); | 58 | 0, 0, this ); |
59 | composeMail->addTo( toolBar ); | 59 | composeMail->addTo( toolBar ); |
60 | composeMail->addTo( mailMenu ); | 60 | composeMail->addTo( mailMenu ); |
61 | 61 | ||
62 | sendQueued = new QAction( i18n( "Send queued mails" ), SmallIcon("sendqueued") , | 62 | sendQueued = new QAction( i18n( "Send queued mails" ), SmallIcon("sendqueued") , |
63 | 0, 0, this ); | 63 | 0, 0, this ); |
64 | sendQueued->addTo( toolBar ); | 64 | sendQueued->addTo( toolBar ); |
65 | sendQueued->addTo( mailMenu ); | 65 | sendQueued->addTo( mailMenu ); |
66 | 66 | ||
67 | /* | 67 | /* |
68 | syncFolders = new QAction( i18n( "Sync mailfolders" ), ICON_SYNC, | 68 | syncFolders = new QAction( i18n( "Sync mailfolders" ), ICON_SYNC, |
69 | 0, 0, this ); | 69 | 0, 0, this ); |
70 | syncFolders->addTo( toolBar ); | 70 | syncFolders->addTo( toolBar ); |
71 | syncFolders->addTo( mailMenu ); | 71 | syncFolders->addTo( mailMenu ); |
72 | */ | 72 | */ |
73 | 73 | ||
74 | showFolders = new QAction( i18n( "Show/Hide folders" ), SmallIcon("showfolders") , | 74 | showFolders = new QAction( i18n( "Show/Hide folders" ), SmallIcon("showfolders") , |
75 | 0, 0, this, 0, true ); | 75 | 0, 0, this, 0, true ); |
76 | showFolders->addTo( toolBar ); | 76 | showFolders->addTo( toolBar ); |
77 | showFolders->addTo( mailMenu ); | 77 | showFolders->addTo( mailMenu ); |
78 | showFolders->setOn( true ); | 78 | showFolders->setOn( true ); |
79 | connect(showFolders, SIGNAL( toggled(bool) ), | 79 | connect(showFolders, SIGNAL( toggled(bool) ), |
80 | SLOT( slotShowFolders(bool) ) ); | 80 | SLOT( slotShowFolders(bool) ) ); |
81 | 81 | ||
82 | /* | 82 | /* |
83 | searchMails = new QAction( i18n( "Search mails" ), SmallIcon("find") ), | 83 | searchMails = new QAction( i18n( "Search mails" ), SmallIcon("find") ), |
84 | 0, 0, this ); | 84 | 0, 0, this ); |
85 | searchMails->addTo( toolBar ); | 85 | searchMails->addTo( toolBar ); |
86 | searchMails->addTo( mailMenu ); | 86 | searchMails->addTo( mailMenu ); |
87 | */ | 87 | */ |
88 | 88 | ||
89 | deleteMails = new QAction(i18n("Delete Mail"), SmallIcon("trash"), 0, 0, this); | 89 | deleteMails = new QAction(i18n("Delete Mail"), SmallIcon("trash"), 0, 0, this); |
90 | deleteMails->addTo( toolBar ); | 90 | deleteMails->addTo( toolBar ); |
91 | deleteMails->addTo( mailMenu ); | 91 | deleteMails->addTo( mailMenu ); |
92 | connect( deleteMails, SIGNAL( activated() ), | 92 | connect( deleteMails, SIGNAL( activated() ), |
93 | SLOT( slotDeleteMail() ) ); | 93 | SLOT( slotDeleteMail() ) ); |
94 | 94 | ||
95 | editSettings = new QAction( i18n( "Edit settings" ), SmallIcon("SettingsIcon") , | 95 | editSettings = new QAction( i18n( "Edit settings" ), SmallIcon("SettingsIcon") , |
96 | 0, 0, this ); | 96 | 0, 0, this ); |
97 | editSettings->addTo( settingsMenu ); | 97 | editSettings->addTo( settingsMenu ); |
98 | connect( editSettings, SIGNAL( activated() ), | 98 | connect( editSettings, SIGNAL( activated() ), |
99 | SLOT( slotEditSettings() ) ); | 99 | SLOT( slotEditSettings() ) ); |
100 | editAccounts = new QAction( i18n( "Configure accounts" ), SmallIcon("editaccounts") , | 100 | editAccounts = new QAction( i18n( "Configure accounts" ), SmallIcon("editaccounts") , |
101 | 0, 0, this ); | 101 | 0, 0, this ); |
102 | editAccounts->addTo( settingsMenu ); | 102 | editAccounts->addTo( settingsMenu ); |
103 | codecMenu = new QPopupMenu( menuBar ); | 103 | codecMenu = new QPopupMenu( menuBar ); |
104 | codecMenu->insertItem( "Western (iso-8859-1)",0,0); | 104 | codecMenu->insertItem( "Western (iso-8859-1)",0,0); |
105 | codecMenu->insertItem( "Cyrillic (iso-8859-5)",1,1); | 105 | codecMenu->insertItem( "Cyrillic (iso-8859-5)",1,1); |
106 | codecMenu->insertItem( "Western (iso-8859-15)",2,2); | 106 | codecMenu->insertItem( "Western (iso-8859-15)",2,2); |
107 | codecMenu->insertItem( "Chinese (big-5)",3,3); | 107 | codecMenu->insertItem( "Chinese (big-5)",3,3); |
108 | codecMenu->insertItem( "Unicode (utf-8)",4,4); | 108 | codecMenu->insertItem( "Unicode (utf-8)",4,4); |
109 | codecMenu->insertItem( "Userdefined ("+KOPrefs::instance()->mSendCodec+")",5,5); | 109 | codecMenu->insertItem( "Userdefined ("+KOPrefs::instance()->mSendCodec+")",5,5); |
110 | settingsMenu->insertItem( i18n("Codec for new mails"), codecMenu); | 110 | //disabled |
111 | //settingsMenu->insertItem( i18n("Codec for new mails"), codecMenu); | ||
111 | //setCentralWidget( view ); | 112 | //setCentralWidget( view ); |
112 | 113 | ||
113 | QVBox* wrapperBox = new QVBox( this ); | 114 | QVBox* wrapperBox = new QVBox( this ); |
114 | setCentralWidget( wrapperBox ); | 115 | setCentralWidget( wrapperBox ); |
115 | 116 | ||
116 | // QWidget *view = new QWidget( wrapperBox ); | 117 | // QWidget *view = new QWidget( wrapperBox ); |
117 | KDGanttMinimizeSplitter* split = new KDGanttMinimizeSplitter( Qt::Horizontal, wrapperBox); | 118 | KDGanttMinimizeSplitter* split = new KDGanttMinimizeSplitter( Qt::Horizontal, wrapperBox); |
118 | split->setMinimizeDirection( KDGanttMinimizeSplitter::Left); | 119 | split->setMinimizeDirection( KDGanttMinimizeSplitter::Left); |
119 | //layout = new QBoxLayout ( split, QBoxLayout::LeftToRight ); | 120 | //layout = new QBoxLayout ( split, QBoxLayout::LeftToRight ); |
120 | 121 | ||
121 | folderView = new AccountView( split ); | 122 | folderView = new AccountView( split ); |
122 | folderView->header()->hide(); | 123 | folderView->header()->hide(); |
123 | folderView->setRootIsDecorated( false ); | 124 | folderView->setRootIsDecorated( false ); |
124 | folderView->addColumn( i18n( "Mailbox" ) ); | 125 | folderView->addColumn( i18n( "Mailbox" ) ); |
125 | 126 | ||
126 | //layout->addWidget( folderView ); | 127 | //layout->addWidget( folderView ); |
127 | 128 | ||
128 | mailView = new QListView( split ); | 129 | mailView = new QListView( split ); |
129 | mailView->addColumn( i18n( " " ) ); | 130 | mailView->addColumn( i18n( " " ) ); |
130 | mailView->addColumn( i18n( "Subject" ),QListView::Manual ); | 131 | mailView->addColumn( i18n( "Subject" ),QListView::Manual ); |
131 | mailView->addColumn( i18n( "Sender" ),QListView::Manual ); | 132 | mailView->addColumn( i18n( "Sender" ),QListView::Manual ); |
132 | mailView->addColumn( i18n( "Size" ),QListView::Manual); | 133 | mailView->addColumn( i18n( "Size" ),QListView::Manual); |
133 | mailView->addColumn( i18n( "Date" ),QListView::Manual); | 134 | mailView->addColumn( i18n( "Date" ),QListView::Manual); |
134 | mailView->setAllColumnsShowFocus(true); | 135 | mailView->setAllColumnsShowFocus(true); |
135 | //mailView->setSorting(-1); | 136 | //mailView->setSorting(-1); |
136 | mailView->setRootIsDecorated( false ); | 137 | mailView->setRootIsDecorated( false ); |
137 | statusWidget = new StatusWidget( wrapperBox ); | 138 | statusWidget = new StatusWidget( wrapperBox ); |
138 | statusWidget->hide(); | 139 | statusWidget->hide(); |
139 | 140 | ||
140 | //layout->addWidget( mailView ); | 141 | //layout->addWidget( mailView ); |
141 | //layout->setStretchFactor( folderView, 1 ); | 142 | //layout->setStretchFactor( folderView, 1 ); |
142 | //layout->setStretchFactor( mailView, 2 ); | 143 | //layout->setStretchFactor( mailView, 2 ); |
143 | 144 | ||
144 | slotAdjustLayout(); | 145 | slotAdjustLayout(); |
145 | #ifndef DESKTOP_VERSION | 146 | #ifndef DESKTOP_VERSION |
146 | QPEApplication::setStylusOperation( mailView->viewport(),QPEApplication::RightOnHold); | 147 | QPEApplication::setStylusOperation( mailView->viewport(),QPEApplication::RightOnHold); |
147 | QPEApplication::setStylusOperation( folderView->viewport(),QPEApplication::RightOnHold); | 148 | QPEApplication::setStylusOperation( folderView->viewport(),QPEApplication::RightOnHold); |
148 | #endif | 149 | #endif |
149 | connect( mailView, SIGNAL( doubleClicked (QListViewItem* )),this, | 150 | connect( mailView, SIGNAL( doubleClicked (QListViewItem* )),this, |
150 | SLOT( mailLeftClicked(QListViewItem*) ) ); | 151 | SLOT( mailLeftClicked(QListViewItem*) ) ); |
151 | connect( mailView, SIGNAL( returnPressed (QListViewItem* )),this, | 152 | connect( mailView, SIGNAL( returnPressed (QListViewItem* )),this, |
152 | SLOT( mailLeftClicked(QListViewItem*) ) ); | 153 | SLOT( mailLeftClicked(QListViewItem*) ) ); |
153 | connect( mailView, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ),this, | 154 | connect( mailView, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ),this, |
154 | SLOT( mailHold(int,QListViewItem*,const QPoint&,int) ) ); | 155 | SLOT( mailHold(int,QListViewItem*,const QPoint&,int) ) ); |
155 | connect(folderView, SIGNAL(refreshMailview(const QValueList<RecMailP>&)), | 156 | connect(folderView, SIGNAL(refreshMailview(const QValueList<RecMailP>&)), |
156 | this,SLOT(refreshMailView(const QValueList<RecMailP>&))); | 157 | this,SLOT(refreshMailView(const QValueList<RecMailP>&))); |
157 | connect( composeMail, SIGNAL( activated() ), SLOT( slotComposeMail() ) ); | 158 | connect( composeMail, SIGNAL( activated() ), SLOT( slotComposeMail() ) ); |
158 | connect( sendQueued, SIGNAL( activated() ), SLOT( slotSendQueued() ) ); | 159 | connect( sendQueued, SIGNAL( activated() ), SLOT( slotSendQueued() ) ); |
159 | // connect( searchMails, SIGNAL( activated() ), SLOT( slotSearchMails() ) ); | 160 | // connect( searchMails, SIGNAL( activated() ), SLOT( slotSearchMails() ) ); |
160 | connect( editAccounts, SIGNAL( activated() ), SLOT( slotEditAccounts() ) ); | 161 | connect( editAccounts, SIGNAL( activated() ), SLOT( slotEditAccounts() ) ); |
161 | //mailView->setMultiSelection ( true ); | 162 | //mailView->setMultiSelection ( true ); |
162 | mailView->setSelectionMode( QListView::Extended ); | 163 | mailView->setSelectionMode( QListView::Extended ); |
163 | QValueList<int> list; | 164 | QValueList<int> list; |
164 | int fw = 100; | 165 | int fw = 100; |
165 | if ( QApplication::desktop()->width() > 320 ) | 166 | if ( QApplication::desktop()->width() > 320 ) |
166 | fw = 50; | 167 | fw = 50; |
167 | list.append( fw ); | 168 | list.append( fw ); |
168 | list.append( 100 ); | 169 | list.append( 100 ); |
169 | split->setSizes( list ); | 170 | split->setSizes( list ); |
170 | QTimer::singleShot( 1000, this, SLOT( slotAdjustColumns() ) ); | 171 | QTimer::singleShot( 1000, this, SLOT( slotAdjustColumns() ) ); |
171 | mailView->setShowSortIndicator ( true ); | 172 | mailView->setShowSortIndicator ( true ); |
172 | QLabel *spacer = new QLabel( toolBar ); | 173 | QLabel *spacer = new QLabel( toolBar ); |
173 | spacer->setBackgroundMode( QWidget::PaletteButton ); | 174 | spacer->setBackgroundMode( QWidget::PaletteButton ); |
174 | toolBar->setStretchableWidget( spacer ); | 175 | toolBar->setStretchableWidget( spacer ); |