summaryrefslogtreecommitdiffabout
path: root/kmicromail/composemail.cpp
Unidiff
Diffstat (limited to 'kmicromail/composemail.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kmicromail/composemail.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/kmicromail/composemail.cpp b/kmicromail/composemail.cpp
index e6f7daa..946e97d 100644
--- a/kmicromail/composemail.cpp
+++ b/kmicromail/composemail.cpp
@@ -1,478 +1,483 @@
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 <qtimer.h> 21#include <qtimer.h>
22#include <qmessagebox.h> 22#include <qmessagebox.h>
23#include <qpushbutton.h> 23#include <qpushbutton.h>
24#include <qmultilineedit.h> 24#include <qmultilineedit.h>
25#include <qlabel.h> 25#include <qlabel.h>
26#include <qtabwidget.h> 26#include <qtabwidget.h>
27#include <qlistview.h> 27#include <qlistview.h>
28#include <kabc/addresseedialog.h> 28#include <kabc/addresseedialog.h>
29#include <kabc/stdaddressbook.h> 29#include <kabc/stdaddressbook.h>
30#include <kabc/addressee.h> 30#include <kabc/addressee.h>
31#ifdef DESKTOP_VERSION 31#ifdef DESKTOP_VERSION
32#include <kabc/addresseedialog.h> 32#include <kabc/addresseedialog.h>
33#else //DESKTOP_VERSION 33#else //DESKTOP_VERSION
34#include <libkdepim/externalapphandler.h> 34#include <libkdepim/externalapphandler.h>
35#endif //DESKTOP_VERSION 35#endif //DESKTOP_VERSION
36 36
37#include "koprefs.h" 37#include "koprefs.h"
38 38
39//using namespace Opie::Core; 39//using namespace Opie::Core;
40//using namespace Opie::Ui; 40//using namespace Opie::Ui;
41ComposeMail::ComposeMail( Settings *s, QWidget *parent, const char *name, bool modal ) 41ComposeMail::ComposeMail( Settings *s, QWidget *parent, const char *name, bool modal )
42 : ComposeMailUI( parent, name, modal ) 42 : ComposeMailUI( parent, name, modal )
43{ 43{
44 mPickLineEdit = 0; 44 mPickLineEdit = 0;
45 connect(ExternalAppHandler::instance(), SIGNAL(receivedNameEmailUidListEvent(const QString&, const QStringList&, const QStringList&, const QStringList&)), 45 connect(ExternalAppHandler::instance(), SIGNAL(receivedNameEmailUidListEvent(const QString&, const QStringList&, const QStringList&, const QStringList&)),
46 this, SLOT(insertAttendees(const QString&, const QStringList&, const QStringList&, const QStringList&))); 46 this, SLOT(insertAttendees(const QString&, const QStringList&, const QStringList&, const QStringList&)));
47 settings = s; 47 settings = s;
48 m_replyid = ""; 48 m_replyid = "";
49 if ( KOPrefs::instance()->mUseKapi) { 49 if ( KOPrefs::instance()->mUseKapi) {
50 KConfig config( locateLocal("config", "kabcrc") ); 50 KConfig config( locateLocal("config", "kabcrc") );
51 config.setGroup( "General" ); 51 config.setGroup( "General" );
52 QString whoami_uid = config.readEntry( "WhoAmI" ); 52 QString whoami_uid = config.readEntry( "WhoAmI" );
53 53
54 if ( whoami_uid.isEmpty() ) { 54 if ( whoami_uid.isEmpty() ) {
55 QMessageBox::information( 0, tr( "Hint" ), 55 QMessageBox::information( 0, tr( "Hint" ),
56 tr( "Please apply\n\"Set Who Am I\"\nin KA/Pi to get the from\nfield automatically filled out!\n" ), 56 tr( "Please apply\n\"Set Who Am I\"\nin KA/Pi to get the from\nfield automatically filled out!\n" ),
57 tr( "Ok" ) ); 57 tr( "Ok" ) );
58 58
59 59
60 fillSettings(); 60 fillSettings();
61 } else 61 } else
62 ExternalAppHandler::instance()->requestDetailsFromKAPI("", "sendbacklist", whoami_uid); 62 ExternalAppHandler::instance()->requestDetailsFromKAPI("", "sendbacklist", whoami_uid);
63 63
64 64
65#ifdef DESKTOP_VERSION 65#ifdef DESKTOP_VERSION
66 KABC::Addressee con = KABC::StdAddressBook::self()->whoAmI( ); 66 KABC::Addressee con = KABC::StdAddressBook::self()->whoAmI( );
67 QStringList mails = con.emails(); 67 QStringList mails = con.emails();
68 QString defmail = con.preferredEmail(); 68 QString defmail = con.preferredEmail();
69 if ( mails.count() == 0) 69 if ( mails.count() == 0)
70 QMessageBox::information( 0, tr( "Hint" ), 70 QMessageBox::information( 0, tr( "Hint" ),
71 tr( "Please apply\n\"Set Who Am I\"\nin KA/Pi to get the from\nfield automatically filled out!\n" ), 71 tr( "Please apply\n\"Set Who Am I\"\nin KA/Pi to get the from\nfield automatically filled out!\n" ),
72 tr( "Ok" ) ); 72 tr( "Ok" ) );
73 if (defmail.length()!=0) { 73 if (defmail.length()!=0) {
74 fromBox->insertItem(defmail); 74 fromBox->insertItem(defmail);
75 } 75 }
76 QStringList::ConstIterator sit = mails.begin(); 76 QStringList::ConstIterator sit = mails.begin();
77 for (;sit!=mails.end();++sit) { 77 for (;sit!=mails.end();++sit) {
78 if ( (*sit)==defmail) 78 if ( (*sit)==defmail)
79 continue; 79 continue;
80 fromBox->insertItem((*sit)); 80 fromBox->insertItem((*sit));
81 } 81 }
82 senderNameEdit->setText(con.formattedName()); 82 senderNameEdit->setText(con.formattedName());
83#endif 83#endif
84 84
85 } else { 85 } else {
86 fillSettings(); 86 fillSettings();
87 } 87 }
88 checkBoxLater->setChecked( KOPrefs::instance()->mSendLater ); 88 checkBoxLater->setChecked( KOPrefs::instance()->mSendLater );
89 89
90 attList->addColumn( tr( "Name" ) ); 90 attList->addColumn( tr( "Name" ) );
91 attList->addColumn( tr( "Size" ) ); 91 attList->addColumn( tr( "Size" ) );
92 QList<Account> accounts = settings->getAccounts(); 92 QList<Account> accounts = settings->getAccounts();
93 93
94 if ( QApplication::desktop()->width() < 320 ) 94 if ( QApplication::desktop()->width() < 320 )
95 smtpAccountBox->setMaximumWidth( 80 ); 95 smtpAccountBox->setMaximumWidth( 80 );
96 Account *it; 96 Account *it;
97 for ( it = accounts.first(); it; it = accounts.next() ) { 97 for ( it = accounts.first(); it; it = accounts.next() ) {
98 if ( it->getType()==MAILLIB::A_SMTP ) { 98 if ( it->getType()==MAILLIB::A_SMTP ) {
99 SMTPaccount *smtp = static_cast<SMTPaccount *>(it); 99 SMTPaccount *smtp = static_cast<SMTPaccount *>(it);
100 smtpAccountBox->insertItem( smtp->getAccountName() ); 100 smtpAccountBox->insertItem( smtp->getAccountName() );
101 smtpAccounts.append( smtp ); 101 smtpAccounts.append( smtp );
102 } 102 }
103 } 103 }
104 connect( toButton, SIGNAL( clicked() ), SLOT( pickAddressTo() ) ); 104 connect( toButton, SIGNAL( clicked() ), SLOT( pickAddressTo() ) );
105 connect( ccButton, SIGNAL( clicked() ), SLOT( pickAddressCC() ) ); 105 connect( ccButton, SIGNAL( clicked() ), SLOT( pickAddressCC() ) );
106 connect( bccButton, SIGNAL( clicked() ), SLOT( pickAddressBCC() ) ); 106 connect( bccButton, SIGNAL( clicked() ), SLOT( pickAddressBCC() ) );
107 connect( replyButton, SIGNAL( clicked() ), SLOT( pickAddressReply() ) ); 107 connect( replyButton, SIGNAL( clicked() ), SLOT( pickAddressReply() ) );
108 connect( addButton, SIGNAL( clicked() ), SLOT( addAttachment() ) ); 108 connect( addButton, SIGNAL( clicked() ), SLOT( addAttachment() ) );
109 connect( deleteButton, SIGNAL( clicked() ), SLOT( removeAttachment() ) ); 109 connect( deleteButton, SIGNAL( clicked() ), SLOT( removeAttachment() ) );
110 connect( SaveButton, SIGNAL( clicked() ), SLOT( saveAsDraft()) ); 110 connect( SaveButton, SIGNAL( clicked() ), SLOT( saveAsDraft()) );
111 mMail = 0; 111 mMail = 0;
112 warnAttach = true; 112 warnAttach = true;
113 if ( smtpAccounts.count() > 0 ) { 113 if ( smtpAccounts.count() > 0 ) {
114 fillValues( smtpAccountBox->currentItem() ); 114 fillValues( smtpAccountBox->currentItem() );
115 } else { 115 } else {
116 QMessageBox::information( 0, tr( "Problem" ), 116 QMessageBox::information( 0, tr( "Problem" ),
117 tr( "Please create an SMTP account first.\nThe SMTP is needed for sending mail.\n" ), 117 tr( "Please create an SMTP account first.\nThe SMTP is needed for sending mail.\n" ),
118 tr( "Ok" ) ); 118 tr( "Ok" ) );
119 return; 119 return;
120 } 120 }
121 connect( smtpAccountBox, SIGNAL( activated(int) ), SLOT( fillValues(int) ) ); 121 connect( smtpAccountBox, SIGNAL( activated(int) ), SLOT( fillValues(int) ) );
122 message->setFont ( KOPrefs::instance()->mComposeFont ); 122 message->setFont ( KOPrefs::instance()->mComposeFont );
123 message->setWordWrap (QMultiLineEdit::WidgetWidth);
124#ifndef DESKTOP_VERSION
125 QPEApplication::setStylusOperation( message, QPEApplication::RightOnHold );
126#endif
127
123} 128}
124 129
125void ComposeMail::fillSettings() 130void ComposeMail::fillSettings()
126{ 131{
127 if ( QApplication::desktop()->width() < 320 ) 132 if ( QApplication::desktop()->width() < 320 )
128 fromBox->setMaximumWidth( 100 ); 133 fromBox->setMaximumWidth( 100 );
129 QStringList mailList = QStringList::split(";",KOPrefs::instance()->mEmail); 134 QStringList mailList = QStringList::split(";",KOPrefs::instance()->mEmail);
130 QStringList::ConstIterator sit = mailList.begin(); 135 QStringList::ConstIterator sit = mailList.begin();
131 int pref = 0; 136 int pref = 0;
132 for (;sit!=mailList.end();++sit) { 137 for (;sit!=mailList.end();++sit) {
133 fromBox->insertItem((*sit)); 138 fromBox->insertItem((*sit));
134 } 139 }
135 senderNameEdit->setText(KOPrefs::instance()->mName); 140 senderNameEdit->setText(KOPrefs::instance()->mName);
136} 141}
137 142
138 143
139void ComposeMail::saveAsDraft() 144void ComposeMail::saveAsDraft()
140{ 145{
141 146
142 Opie::Core::OSmartPointer<Mail> mail= new Mail(); 147 Opie::Core::OSmartPointer<Mail> mail= new Mail();
143 mail->setMail(fromBox->currentText()); 148 mail->setMail(fromBox->currentText());
144 mail->setTo( toLine->text() ); 149 mail->setTo( toLine->text() );
145 mail->setName(senderNameEdit->text()); 150 mail->setName(senderNameEdit->text());
146 mail->setCC( ccLine->text() ); 151 mail->setCC( ccLine->text() );
147 mail->setBCC( bccLine->text() ); 152 mail->setBCC( bccLine->text() );
148 mail->setReply( replyLine->text() ); 153 mail->setReply( replyLine->text() );
149 mail->setSubject( subjectLine->text() ); 154 mail->setSubject( subjectLine->text() );
150 if (!m_replyid.isEmpty()) { 155 if (!m_replyid.isEmpty()) {
151 QStringList ids; 156 QStringList ids;
152 ids.append(m_replyid); 157 ids.append(m_replyid);
153 mail->setInreply(ids); 158 mail->setInreply(ids);
154 } 159 }
155 QString txt = message->text(); 160 QString txt = message->text();
156 if ( !sigMultiLine->text().isEmpty() ) { 161 if ( !sigMultiLine->text().isEmpty() ) {
157 txt.append( "\n--\n" ); 162 txt.append( "\n--\n" );
158 txt.append( sigMultiLine->text() ); 163 txt.append( sigMultiLine->text() );
159 } 164 }
160 mail->setMessage( txt ); 165 mail->setMessage( txt );
161 166
162 /* only use the default drafts folder name! */ 167 /* only use the default drafts folder name! */
163 Storemail wrapper(AbstractMail::draftFolder()); 168 Storemail wrapper(AbstractMail::draftFolder());
164 wrapper.storeMail(mail); 169 wrapper.storeMail(mail);
165 170
166 AttachViewItem *it = (AttachViewItem *) attList->firstChild(); 171 AttachViewItem *it = (AttachViewItem *) attList->firstChild();
167 /* attachments we will ignore! */ 172 /* attachments we will ignore! */
168 if ( it != 0 ) { 173 if ( it != 0 ) {
169 if ( warnAttach ) 174 if ( warnAttach )
170 QMessageBox::warning(0,tr("Store message"), 175 QMessageBox::warning(0,tr("Store message"),
171 tr("<center>Attachments will not be stored in \"Draft\" folder</center>")); 176 tr("<center>Attachments will not be stored in \"Draft\" folder</center>"));
172 warnAttach = false; 177 warnAttach = false;
173 } 178 }
174 setStatus( tr("Mail saved as draft!") ); 179 setStatus( tr("Mail saved as draft!") );
175} 180}
176void ComposeMail::clearStatus() 181void ComposeMail::clearStatus()
177{ 182{
178 topLevelWidget()->setCaption( tr("Compose mail") ); 183 topLevelWidget()->setCaption( tr("Compose mail") );
179} 184}
180void ComposeMail::setStatus( QString status ) 185void ComposeMail::setStatus( QString status )
181{ 186{
182 topLevelWidget()->setCaption( status ); 187 topLevelWidget()->setCaption( status );
183 QTimer::singleShot ( 10000, this, SLOT( clearStatus() ) ) ; 188 QTimer::singleShot ( 10000, this, SLOT( clearStatus() ) ) ;
184} 189}
185void ComposeMail::pickAddress( ) 190void ComposeMail::pickAddress( )
186{ 191{
187 192
188 QLineEdit *line = mPickLineEdit; 193 QLineEdit *line = mPickLineEdit;
189 if ( line == 0 ) 194 if ( line == 0 )
190 return; 195 return;
191#ifdef DESKTOP_VERSION 196#ifdef DESKTOP_VERSION
192 //qDebug(" ComposeMail::pickAddress "); 197 //qDebug(" ComposeMail::pickAddress ");
193 QString names ;//= AddressPicker::getNames(); 198 QString names ;//= AddressPicker::getNames();
194 199
195 KABC::Addressee::List list = KABC::AddresseeDialog::getAddressees(this); 200 KABC::Addressee::List list = KABC::AddresseeDialog::getAddressees(this);
196 uint i=0; 201 uint i=0;
197 for (i=0; i < list.count(); i++) { 202 for (i=0; i < list.count(); i++) {
198 if ( !list[i].preferredEmail().isEmpty()) { 203 if ( !list[i].preferredEmail().isEmpty()) {
199 if ( ! names.isEmpty() ) 204 if ( ! names.isEmpty() )
200 names+= ","; 205 names+= ",";
201 names+= "\""+list[i].realName() +"\"<" +list[i].preferredEmail() +">"; 206 names+= "\""+list[i].realName() +"\"<" +list[i].preferredEmail() +">";
202 207
203 } 208 }
204 } 209 }
205 210
206 211
207 if ( line->text().isEmpty() ) { 212 if ( line->text().isEmpty() ) {
208 line->setText( names ); 213 line->setText( names );
209 } else if ( !names.isEmpty() ) { 214 } else if ( !names.isEmpty() ) {
210 line->setText( line->text() + ", " + names ); 215 line->setText( line->text() + ", " + names );
211 } 216 }
212#else 217#else
213 bool res = ExternalAppHandler::instance()->requestNameEmailUidListFromKAPI("QPE/Application/ompi", this->name() /* name is here the unique uid*/); 218 bool res = ExternalAppHandler::instance()->requestNameEmailUidListFromKAPI("QPE/Application/ompi", this->name() /* name is here the unique uid*/);
214 // the result should now arrive through method insertAttendees 219 // the result should now arrive through method insertAttendees
215#endif 220#endif
216} 221}
217//the map includes name/email pairs, that comes from Ka/Pi 222//the map includes name/email pairs, that comes from Ka/Pi
218void ComposeMail::insertAttendees(const QString& uid,const QStringList& nameList,const QStringList& emailList,const QStringList& uidList) 223void ComposeMail::insertAttendees(const QString& uid,const QStringList& nameList,const QStringList& emailList,const QStringList& uidList)
219{ 224{
220 //qDebug("ComposeMail::insertAttendees "); 225 //qDebug("ComposeMail::insertAttendees ");
221 raise(); 226 raise();
222 227
223 if ( mPickLineEdit == 0 ) { //whoami received 228 if ( mPickLineEdit == 0 ) { //whoami received
224 QString defmail = uidList[0]; 229 QString defmail = uidList[0];
225 if ( emailList.count() == 0 ) 230 if ( emailList.count() == 0 )
226 QMessageBox::information( 0, tr( "Hint" ), 231 QMessageBox::information( 0, tr( "Hint" ),
227 tr( "Please apply\n\"Set Who Am I\"\nin KA/Pi to get the from\nfield automatically filled out!\n" ), 232 tr( "Please apply\n\"Set Who Am I\"\nin KA/Pi to get the from\nfield automatically filled out!\n" ),
228 tr( "Ok" ) ); 233 tr( "Ok" ) );
229 if (defmail.length()!=0) { 234 if (defmail.length()!=0) {
230 fromBox->insertItem(defmail); 235 fromBox->insertItem(defmail);
231 } 236 }
232 QStringList::ConstIterator sit = emailList.begin(); 237 QStringList::ConstIterator sit = emailList.begin();
233 int pref = 0; 238 int pref = 0;
234 for (;sit!=emailList.end();++sit) { 239 for (;sit!=emailList.end();++sit) {
235 if ( (*sit)==defmail) 240 if ( (*sit)==defmail)
236 continue; 241 continue;
237 fromBox->insertItem((*sit)); 242 fromBox->insertItem((*sit));
238 } 243 }
239 senderNameEdit->setText(nameList[0]); 244 senderNameEdit->setText(nameList[0]);
240 return; 245 return;
241 } 246 }
242 QString names ; 247 QString names ;
243 QLineEdit *line = mPickLineEdit; 248 QLineEdit *line = mPickLineEdit;
244 if (uid == this->name()) 249 if (uid == this->name())
245 { 250 {
246 for ( int i = 0; i < nameList.count(); i++) 251 for ( int i = 0; i < nameList.count(); i++)
247 { 252 {
248 QString _name = nameList[i]; 253 QString _name = nameList[i];
249 QString _email = emailList[i]; 254 QString _email = emailList[i];
250 QString _uid = uidList[i]; 255 QString _uid = uidList[i];
251 if ( ! _email.isEmpty() ) { 256 if ( ! _email.isEmpty() ) {
252 if ( ! names.isEmpty() ) 257 if ( ! names.isEmpty() )
253 names+= ","; 258 names+= ",";
254 names+= "\""+_name +"\"<" +_email +">"; 259 names+= "\""+_name +"\"<" +_email +">";
255 } 260 }
256 } 261 }
257 } 262 }
258 if ( line->text().isEmpty() ) { 263 if ( line->text().isEmpty() ) {
259 line->setText( names ); 264 line->setText( names );
260 } else if ( !names.isEmpty() ) { 265 } else if ( !names.isEmpty() ) {
261 line->setText( line->text() + ", " + names ); 266 line->setText( line->text() + ", " + names );
262 } 267 }
263} 268}
264 269
265void ComposeMail::setTo( const QString & to ) 270void ComposeMail::setTo( const QString & to )
266{ 271{
267 toLine->setText( to ); 272 toLine->setText( to );
268} 273}
269 274
270void ComposeMail::setSubject( const QString & subject ) 275void ComposeMail::setSubject( const QString & subject )
271{ 276{
272 subjectLine->setText( subject ); 277 subjectLine->setText( subject );
273} 278}
274 279
275void ComposeMail::setInReplyTo( const QString & messageId ) 280void ComposeMail::setInReplyTo( const QString & messageId )
276{ 281{
277 m_replyid = messageId; 282 m_replyid = messageId;
278} 283}
279 284
280void ComposeMail::setMessage( const QString & text ) 285void ComposeMail::setMessage( const QString & text )
281{ 286{
282 message->setText( text ); 287 message->setText( text );
283} 288}
284 289
285 290
286void ComposeMail::pickAddressTo() 291void ComposeMail::pickAddressTo()
287{ 292{
288 mPickLineEdit = toLine; 293 mPickLineEdit = toLine;
289 pickAddress( ); 294 pickAddress( );
290} 295}
291 296
292void ComposeMail::pickAddressCC() 297void ComposeMail::pickAddressCC()
293{ 298{
294 mPickLineEdit = ccLine; 299 mPickLineEdit = ccLine;
295 pickAddress( ); 300 pickAddress( );
296} 301}
297 302
298void ComposeMail::pickAddressBCC() 303void ComposeMail::pickAddressBCC()
299{ 304{
300 mPickLineEdit = bccLine; 305 mPickLineEdit = bccLine;
301 pickAddress( ); 306 pickAddress( );
302} 307}
303 308
304void ComposeMail::pickAddressReply() 309void ComposeMail::pickAddressReply()
305{ 310{
306 mPickLineEdit = replyLine; 311 mPickLineEdit = replyLine;
307 pickAddress( ); 312 pickAddress( );
308} 313}
309 314
310void ComposeMail::fillValues( int ) 315void ComposeMail::fillValues( int )
311{ 316{
312#if 0 317#if 0
313 SMTPaccount *smtp = smtpAccounts.at( current ); 318 SMTPaccount *smtp = smtpAccounts.at( current );
314 ccLine->clear(); 319 ccLine->clear();
315 if ( smtp->getUseCC() ) { 320 if ( smtp->getUseCC() ) {
316 ccLine->setText( smtp->getCC() ); 321 ccLine->setText( smtp->getCC() );
317 } 322 }
318 bccLine->clear(); 323 bccLine->clear();
319 if ( smtp->getUseBCC() ) { 324 if ( smtp->getUseBCC() ) {
320 bccLine->setText( smtp->getBCC() ); 325 bccLine->setText( smtp->getBCC() );
321 } 326 }
322 replyLine->clear(); 327 replyLine->clear();
323 if ( smtp->getUseReply() ) { 328 if ( smtp->getUseReply() ) {
324 replyLine->setText( smtp->getReply() ); 329 replyLine->setText( smtp->getReply() );
325 } 330 }
326 sigMultiLine->setText( smtp->getSignature() ); 331 sigMultiLine->setText( smtp->getSignature() );
327#endif 332#endif
328} 333}
329 334
330void ComposeMail::slotAdjustColumns() 335void ComposeMail::slotAdjustColumns()
331{ 336{
332 int currPage = tabWidget->currentPageIndex(); 337 int currPage = tabWidget->currentPageIndex();
333 338
334 tabWidget->showPage( attachTab ); 339 tabWidget->showPage( attachTab );
335 attList->setColumnWidth( 0, attList->visibleWidth() - 80 ); 340 attList->setColumnWidth( 0, attList->visibleWidth() - 80 );
336 attList->setColumnWidth( 1, 80 ); 341 attList->setColumnWidth( 1, 80 );
337 342
338 tabWidget->setCurrentPage( currPage ); 343 tabWidget->setCurrentPage( currPage );
339} 344}
340 345
341void ComposeMail::addAttachment() 346void ComposeMail::addAttachment()
342{ 347{
343 QString lnk = KFileDialog::getOpenFileName( "", "Add Attachment", this ); 348 QString lnk = KFileDialog::getOpenFileName( "", "Add Attachment", this );
344 if ( !lnk.isEmpty() ) { 349 if ( !lnk.isEmpty() ) {
345 Attachment *att = new Attachment( lnk ); 350 Attachment *att = new Attachment( lnk );
346 (void) new AttachViewItem( attList, att ); 351 (void) new AttachViewItem( attList, att );
347 } 352 }
348} 353}
349 354
350void ComposeMail::removeAttachment() 355void ComposeMail::removeAttachment()
351{ 356{
352 if ( !attList->currentItem() ) { 357 if ( !attList->currentItem() ) {
353 QMessageBox::information( this, tr( "Error" ), 358 QMessageBox::information( this, tr( "Error" ),
354 tr( "<p>Please select a File.</p>" ), 359 tr( "<p>Please select a File.</p>" ),
355 tr( "Ok" ) ); 360 tr( "Ok" ) );
356 } else { 361 } else {
357 attList->takeItem( attList->currentItem() ); 362 attList->takeItem( attList->currentItem() );
358 } 363 }
359} 364}
360 365
361void ComposeMail::accept() 366void ComposeMail::accept()
362{ 367{
363 if ( smtpAccountBox->count() == 0 ) { 368 if ( smtpAccountBox->count() == 0 ) {
364 369
365 reject(); 370 reject();
366 return; 371 return;
367 } 372 }
368 373
369 if (! checkBoxLater->isChecked() ) { 374 if (! checkBoxLater->isChecked() ) {
370 int yesno = QMessageBox::warning(0,tr("Stop editing message"), 375 int yesno = QMessageBox::warning(0,tr("Stop editing message"),
371 tr("Send this message?"), 376 tr("Send this message?"),
372 tr("Yes"), 377 tr("Yes"),
373 tr("Cancel")); 378 tr("Cancel"));
374 379
375 if (yesno == 1) { 380 if (yesno == 1) {
376 return; 381 return;
377 } 382 }
378 } 383 }
379#if 0 384#if 0
380 odebug << "Sending Mail with " 385 odebug << "Sending Mail with "
381 << smtpAccounts.at( smtpAccountBox->currentItem() )->getAccountName() << oendl; 386 << smtpAccounts.at( smtpAccountBox->currentItem() )->getAccountName() << oendl;
382#endif 387#endif
383 Opie::Core::OSmartPointer<Mail> mail=new Mail; 388 Opie::Core::OSmartPointer<Mail> mail=new Mail;
384 389
385 SMTPaccount *smtp = smtpAccounts.at( smtpAccountBox->currentItem() ); 390 SMTPaccount *smtp = smtpAccounts.at( smtpAccountBox->currentItem() );
386 mail->setMail(fromBox->currentText()); 391 mail->setMail(fromBox->currentText());
387 392
388 if ( !toLine->text().isEmpty() ) { 393 if ( !toLine->text().isEmpty() ) {
389 mail->setTo( toLine->text() ); 394 mail->setTo( toLine->text() );
390 } else { 395 } else {
391 QMessageBox::warning(0,tr("Sending mail"), 396 QMessageBox::warning(0,tr("Sending mail"),
392 tr("No Receiver spezified" ) ); 397 tr("No Receiver spezified" ) );
393 return; 398 return;
394 } 399 }
395 400
396 mail->setName(senderNameEdit->text()); 401 mail->setName(senderNameEdit->text());
397 mail->setCC( ccLine->text() ); 402 mail->setCC( ccLine->text() );
398 mail->setBCC( bccLine->text() ); 403 mail->setBCC( bccLine->text() );
399 mail->setReply( replyLine->text() ); 404 mail->setReply( replyLine->text() );
400 mail->setSubject( subjectLine->text() ); 405 mail->setSubject( subjectLine->text() );
401 if (!m_replyid.isEmpty()) { 406 if (!m_replyid.isEmpty()) {
402 QStringList ids; 407 QStringList ids;
403 ids.append(m_replyid); 408 ids.append(m_replyid);
404 mail->setInreply(ids); 409 mail->setInreply(ids);
405 } 410 }
406 QString txt = message->text(); 411 QString txt = message->text();
407 if ( !sigMultiLine->text().isEmpty() ) { 412 if ( !sigMultiLine->text().isEmpty() ) {
408 txt.append( "\n--\n" ); 413 txt.append( "\n--\n" );
409 txt.append( sigMultiLine->text() ); 414 txt.append( sigMultiLine->text() );
410 } 415 }
411 mail->setMessage( txt ); 416 mail->setMessage( txt );
412 AttachViewItem *it = (AttachViewItem *) attList->firstChild(); 417 AttachViewItem *it = (AttachViewItem *) attList->firstChild();
413 while ( it != 0 ) { 418 while ( it != 0 ) {
414 mail->addAttachment( it->getAttachment() ); 419 mail->addAttachment( it->getAttachment() );
415 it = (AttachViewItem *) it->nextSibling(); 420 it = (AttachViewItem *) it->nextSibling();
416 } 421 }
417 422
418 SMTPwrapper wrapper( smtp ); 423 SMTPwrapper wrapper( smtp );
419 if ( wrapper.sendMail( mail,checkBoxLater->isChecked() ) ) 424 if ( wrapper.sendMail( mail,checkBoxLater->isChecked() ) )
420 setStatus( tr ("Mail sent")); 425 setStatus( tr ("Mail sent"));
421 else { 426 else {
422 setStatus( tr ("Error: Something went wrong. Nothing sent")); 427 setStatus( tr ("Error: Something went wrong. Nothing sent"));
423 return; 428 return;
424 } 429 }
425 430
426 431
427 QDialog::accept(); 432 QDialog::accept();
428} 433}
429 434
430void ComposeMail::reject() 435void ComposeMail::reject()
431{ 436{
432 //qDebug("ComposeMail::reject() "); 437 //qDebug("ComposeMail::reject() ");
433 int yesno = QMessageBox::warning(0,tr("Store message?"), 438 int yesno = QMessageBox::warning(0,tr("Store message?"),
434 tr("Store message into drafts?\n"), 439 tr("Store message into drafts?\n"),
435 tr("Yes"), 440 tr("Yes"),
436 tr("No")); 441 tr("No"));
437 442
438 //qDebug("button %d ", yesno); 443 //qDebug("button %d ", yesno);
439 if (yesno == 0) { 444 if (yesno == 0) {
440 if ( toLine->text().isEmpty() ) { 445 if ( toLine->text().isEmpty() ) {
441 QMessageBox::warning(0,tr("Sending mail"), 446 QMessageBox::warning(0,tr("Sending mail"),
442 tr("No Receiver spezified" ) ); 447 tr("No Receiver spezified" ) );
443 return; 448 return;
444 } 449 }
445 saveAsDraft(); 450 saveAsDraft();
446 } 451 }
447 if (yesno == 2) { 452 if (yesno == 2) {
448 qDebug("return "); 453 qDebug("return ");
449 return; 454 return;
450 } 455 }
451 QDialog::reject(); 456 QDialog::reject();
452} 457}
453 458
454ComposeMail::~ComposeMail() 459ComposeMail::~ComposeMail()
455{ 460{
456} 461}
457 462
458void ComposeMail::reEditMail(const RecMailP&current) 463void ComposeMail::reEditMail(const RecMailP&current)
459{ 464{
460 RecMailP data = current; 465 RecMailP data = current;
461 message->setText(data->Wrapper()->fetchBody(current)->Bodytext()); 466 message->setText(data->Wrapper()->fetchBody(current)->Bodytext());
462 subjectLine->setText( data->getSubject()); 467 subjectLine->setText( data->getSubject());
463 toLine->setText(data->To().join(",")); 468 toLine->setText(data->To().join(","));
464 ccLine->setText(data->CC().join(",")); 469 ccLine->setText(data->CC().join(","));
465 bccLine->setText(data->Bcc().join(",")); 470 bccLine->setText(data->Bcc().join(","));
466 replyLine->setText(data->Replyto()); 471 replyLine->setText(data->Replyto());
467} 472}
468 473
469AttachViewItem::AttachViewItem( QListView *parent, Attachment *att ) 474AttachViewItem::AttachViewItem( QListView *parent, Attachment *att )
470 : QListViewItem( parent ) 475 : QListViewItem( parent )
471{ 476{
472 attachment = att; 477 attachment = att;
473 if ( !attachment->getPixmap().isNull() ) 478 if ( !attachment->getPixmap().isNull() )
474 setPixmap( 0,attachment->getPixmap() ); 479 setPixmap( 0,attachment->getPixmap() );
475 setText( 0, att->getName().isEmpty() ? att->getFileName() : att->getName() ); 480 setText( 0, att->getName().isEmpty() ? att->getFileName() : att->getName() );
476 setText( 1, QString::number( att->getSize() ) ); 481 setText( 1, QString::number( att->getSize() ) );
477} 482}
478 483