summaryrefslogtreecommitdiffabout
path: root/kmicromail
authorzautrix <zautrix>2004-09-07 22:51:29 (UTC)
committer zautrix <zautrix>2004-09-07 22:51:29 (UTC)
commit2676646d4744ccceab1063dc02d772a26a203c61 (patch) (unidiff)
tree0a0d5261b9a804a29b61a38f68339979051282e2 /kmicromail
parent64a8ef1629f523df3006de5cb2b9882a50d96a05 (diff)
downloadkdepimpi-2676646d4744ccceab1063dc02d772a26a203c61.zip
kdepimpi-2676646d4744ccceab1063dc02d772a26a203c61.tar.gz
kdepimpi-2676646d4744ccceab1063dc02d772a26a203c61.tar.bz2
Implemented Ompi - kapi connection
Diffstat (limited to 'kmicromail') (more/less context) (ignore whitespace changes)
-rw-r--r--kmicromail/composemail.cpp99
-rw-r--r--kmicromail/composemail.h8
-rw-r--r--kmicromail/main.cpp5
-rw-r--r--kmicromail/mainwindow.cpp2
-rw-r--r--kmicromail/opiemail.cpp1
5 files changed, 100 insertions, 15 deletions
diff --git a/kmicromail/composemail.cpp b/kmicromail/composemail.cpp
index 654cfc0..5f446fa 100644
--- a/kmicromail/composemail.cpp
+++ b/kmicromail/composemail.cpp
@@ -1,376 +1,453 @@
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/config.h> 15#include <qpe/config.h>
16#include <qpe/global.h> 16#include <qpe/global.h>
17//#include <qpe/contact.h> 17//#include <qpe/contact.h>
18 18
19 19
20#include <qcombobox.h> 20#include <qcombobox.h>
21#include <qcheckbox.h> 21#include <qcheckbox.h>
22#include <qtimer.h> 22#include <qtimer.h>
23#include <qmessagebox.h> 23#include <qmessagebox.h>
24#include <qpushbutton.h> 24#include <qpushbutton.h>
25#include <qmultilineedit.h> 25#include <qmultilineedit.h>
26#include <qlabel.h> 26#include <qlabel.h>
27#include <qtabwidget.h> 27#include <qtabwidget.h>
28#include <qlistview.h> 28#include <qlistview.h>
29#include <kabc/addresseedialog.h> 29#include <kabc/addresseedialog.h>
30#include <kabc/stdaddressbook.h> 30#include <kabc/stdaddressbook.h>
31#include <kabc/addressee.h> 31#include <kabc/addressee.h>
32 32#ifdef DESKTOP_VERSION
33#include <kabc/addresseedialog.h>
34#else //DESKTOP_VERSION
35#include <libkdepim/externalapphandler.h>
36#endif //DESKTOP_VERSION
33 37
34 38
35//using namespace Opie::Core; 39//using namespace Opie::Core;
36//using namespace Opie::Ui; 40//using namespace Opie::Ui;
37ComposeMail::ComposeMail( Settings *s, QWidget *parent, const char *name, bool modal, WFlags flags ) 41ComposeMail::ComposeMail( Settings *s, QWidget *parent, const char *name, bool modal, WFlags flags )
38 : ComposeMailUI( parent, name, modal, flags ) 42 : ComposeMailUI( parent, name, modal, flags )
39{ 43{
40 44
45 mPickLineEdit = 0;
46 connect(ExternalAppHandler::instance(), SIGNAL(receivedNameEmailUidListEvent(const QString&, const QStringList&, const QStringList&, const QStringList&)),
47 this, SLOT(insertAttendees(const QString&, const QStringList&, const QStringList&, const QStringList&)));
41 settings = s; 48 settings = s;
42 m_replyid = ""; 49 m_replyid = "";
50 KConfig config( locateLocal("config", "kabcrc") );
51 config.setGroup( "General" );
52 QString whoami_uid = config.readEntry( "WhoAmI" );
53 bool res = ExternalAppHandler::instance()->requestDetailsFromKAPI("", "sendbacklist", whoami_uid);
54#ifdef DESKTOP_VERSION
43 KABC::Addressee con = KABC::StdAddressBook::self()->whoAmI( ); 55 KABC::Addressee con = KABC::StdAddressBook::self()->whoAmI( );
44 QStringList mails = con.emails(); 56 QStringList mails = con.emails();
45 QString defmail = con.preferredEmail(); 57 QString defmail = con.preferredEmail();
46 if ( mails.count() == 0) 58 if ( mails.count() == 0)
47 QMessageBox::information( 0, tr( "Hint" ), 59 QMessageBox::information( 0, tr( "Hint" ),
48 tr( "Please apply\n\"Set Who Am I\"\nin KA/Pi to get the from\nfield automatically filled out!\n" ), 60 tr( "Please apply\n\"Set Who Am I\"\nin KA/Pi to get the from\nfield automatically filled out!\n" ),
49 tr( "Ok" ) ); 61 tr( "Ok" ) );
50 if (defmail.length()!=0) { 62 if (defmail.length()!=0) {
51 fromBox->insertItem(defmail); 63 fromBox->insertItem(defmail);
52 } 64 }
53 QStringList::ConstIterator sit = mails.begin(); 65 QStringList::ConstIterator sit = mails.begin();
54 for (;sit!=mails.end();++sit) { 66 for (;sit!=mails.end();++sit) {
55 if ( (*sit)==defmail) 67 if ( (*sit)==defmail)
56 continue; 68 continue;
57 fromBox->insertItem((*sit)); 69 fromBox->insertItem((*sit));
58 } 70 }
59 senderNameEdit->setText(con.formattedName()); 71 senderNameEdit->setText(con.formattedName());
72#endif
60 Config cfg( "mail" ); 73 Config cfg( "mail" );
61 cfg.setGroup( "Compose" ); 74 cfg.setGroup( "Compose" );
62 checkBoxLater->setChecked( cfg.readBoolEntry( "sendLater", false ) ); 75 checkBoxLater->setChecked( cfg.readBoolEntry( "sendLater", false ) );
63 76
64 attList->addColumn( tr( "Name" ) ); 77 attList->addColumn( tr( "Name" ) );
65 attList->addColumn( tr( "Size" ) ); 78 attList->addColumn( tr( "Size" ) );
66 79
67 QList<Account> accounts = settings->getAccounts(); 80 QList<Account> accounts = settings->getAccounts();
68 81
69 Account *it; 82 Account *it;
70 for ( it = accounts.first(); it; it = accounts.next() ) { 83 for ( it = accounts.first(); it; it = accounts.next() ) {
71 if ( it->getType()==MAILLIB::A_SMTP ) { 84 if ( it->getType()==MAILLIB::A_SMTP ) {
72 SMTPaccount *smtp = static_cast<SMTPaccount *>(it); 85 SMTPaccount *smtp = static_cast<SMTPaccount *>(it);
73 smtpAccountBox->insertItem( smtp->getAccountName() ); 86 smtpAccountBox->insertItem( smtp->getAccountName() );
74 smtpAccounts.append( smtp ); 87 smtpAccounts.append( smtp );
75 } 88 }
76 } 89 }
77 if ( smtpAccounts.count() > 0 ) { 90 if ( smtpAccounts.count() > 0 ) {
78 fillValues( smtpAccountBox->currentItem() ); 91 fillValues( smtpAccountBox->currentItem() );
79 } else { 92 } else {
80 QMessageBox::information( 0, tr( "Problem" ), 93 QMessageBox::information( 0, tr( "Problem" ),
81 tr( "Please create an SMTP account first.\nThe SMTP is needed for sending mail.\n" ), 94 tr( "Please create an SMTP account first.\nThe SMTP is needed for sending mail.\n" ),
82 tr( "Ok" ) ); 95 tr( "Ok" ) );
83 return; 96 return;
84 } 97 }
85 connect( smtpAccountBox, SIGNAL( activated(int) ), SLOT( fillValues(int) ) ); 98 connect( smtpAccountBox, SIGNAL( activated(int) ), SLOT( fillValues(int) ) );
86 connect( toButton, SIGNAL( clicked() ), SLOT( pickAddressTo() ) ); 99 connect( toButton, SIGNAL( clicked() ), SLOT( pickAddressTo() ) );
87 connect( ccButton, SIGNAL( clicked() ), SLOT( pickAddressCC() ) ); 100 connect( ccButton, SIGNAL( clicked() ), SLOT( pickAddressCC() ) );
88 connect( bccButton, SIGNAL( clicked() ), SLOT( pickAddressBCC() ) ); 101 connect( bccButton, SIGNAL( clicked() ), SLOT( pickAddressBCC() ) );
89 connect( replyButton, SIGNAL( clicked() ), SLOT( pickAddressReply() ) ); 102 connect( replyButton, SIGNAL( clicked() ), SLOT( pickAddressReply() ) );
90 connect( addButton, SIGNAL( clicked() ), SLOT( addAttachment() ) ); 103 connect( addButton, SIGNAL( clicked() ), SLOT( addAttachment() ) );
91 connect( deleteButton, SIGNAL( clicked() ), SLOT( removeAttachment() ) ); 104 connect( deleteButton, SIGNAL( clicked() ), SLOT( removeAttachment() ) );
92 connect( SaveButton, SIGNAL( clicked() ), SLOT( saveAsDraft()) ); 105 connect( SaveButton, SIGNAL( clicked() ), SLOT( saveAsDraft()) );
93 mMail = 0; 106 mMail = 0;
94 warnAttach = true; 107 warnAttach = true;
95 108
96} 109}
110
111
112
97void ComposeMail::saveAsDraft() 113void ComposeMail::saveAsDraft()
98{ 114{
99 115
100 Opie::Core::OSmartPointer<Mail> mail= new Mail(); 116 Opie::Core::OSmartPointer<Mail> mail= new Mail();
101 mail->setMail(fromBox->currentText()); 117 mail->setMail(fromBox->currentText());
102 mail->setTo( toLine->text() ); 118 mail->setTo( toLine->text() );
103 mail->setName(senderNameEdit->text()); 119 mail->setName(senderNameEdit->text());
104 mail->setCC( ccLine->text() ); 120 mail->setCC( ccLine->text() );
105 mail->setBCC( bccLine->text() ); 121 mail->setBCC( bccLine->text() );
106 mail->setReply( replyLine->text() ); 122 mail->setReply( replyLine->text() );
107 mail->setSubject( subjectLine->text() ); 123 mail->setSubject( subjectLine->text() );
108 if (!m_replyid.isEmpty()) { 124 if (!m_replyid.isEmpty()) {
109 QStringList ids; 125 QStringList ids;
110 ids.append(m_replyid); 126 ids.append(m_replyid);
111 mail->setInreply(ids); 127 mail->setInreply(ids);
112 } 128 }
113 QString txt = message->text(); 129 QString txt = message->text();
114 if ( !sigMultiLine->text().isEmpty() ) { 130 if ( !sigMultiLine->text().isEmpty() ) {
115 txt.append( "\n--\n" ); 131 txt.append( "\n--\n" );
116 txt.append( sigMultiLine->text() ); 132 txt.append( sigMultiLine->text() );
117 } 133 }
118 mail->setMessage( txt ); 134 mail->setMessage( txt );
119 135
120 /* only use the default drafts folder name! */ 136 /* only use the default drafts folder name! */
121 Storemail wrapper(AbstractMail::draftFolder()); 137 Storemail wrapper(AbstractMail::draftFolder());
122 wrapper.storeMail(mail); 138 wrapper.storeMail(mail);
123 139
124 AttachViewItem *it = (AttachViewItem *) attList->firstChild(); 140 AttachViewItem *it = (AttachViewItem *) attList->firstChild();
125 /* attachments we will ignore! */ 141 /* attachments we will ignore! */
126 if ( it != 0 ) { 142 if ( it != 0 ) {
127 if ( warnAttach ) 143 if ( warnAttach )
128 QMessageBox::warning(0,tr("Store message"), 144 QMessageBox::warning(0,tr("Store message"),
129 tr("<center>Attachments will not be stored in \"Draft\" folder</center>")); 145 tr("<center>Attachments will not be stored in \"Draft\" folder</center>"));
130 warnAttach = false; 146 warnAttach = false;
131 } 147 }
132 setStatus( tr("Mail saved as draft!") ); 148 setStatus( tr("Mail saved as draft!") );
133} 149}
134void ComposeMail::clearStatus() 150void ComposeMail::clearStatus()
135{ 151{
136 topLevelWidget()->setCaption( tr("Compose mail") ); 152 topLevelWidget()->setCaption( tr("Compose mail") );
137} 153}
138void ComposeMail::setStatus( QString status ) 154void ComposeMail::setStatus( QString status )
139{ 155{
140 topLevelWidget()->setCaption( status ); 156 topLevelWidget()->setCaption( status );
141 QTimer::singleShot ( 10000, this, SLOT( clearStatus() ) ) ; 157 QTimer::singleShot ( 10000, this, SLOT( clearStatus() ) ) ;
142} 158}
143void ComposeMail::pickAddress( QLineEdit *line ) 159void ComposeMail::pickAddress( )
144{ 160{
161
162 QLineEdit *line = mPickLineEdit;
163 if ( line == 0 )
164 return;
165#ifdef DESKTOP_VERSION
145 //qDebug(" ComposeMail::pickAddress "); 166 //qDebug(" ComposeMail::pickAddress ");
146 QString names ;//= AddressPicker::getNames(); 167 QString names ;//= AddressPicker::getNames();
147 168
148 KABC::Addressee::List list = KABC::AddresseeDialog::getAddressees(this); 169 KABC::Addressee::List list = KABC::AddresseeDialog::getAddressees(this);
149 uint i=0; 170 uint i=0;
150 for (i=0; i < list.count(); i++) { 171 for (i=0; i < list.count(); i++) {
151 if ( !list[i].preferredEmail().isEmpty()) { 172 if ( !list[i].preferredEmail().isEmpty()) {
152 names+= "\""+list[i].realName() +"\"<" +list[i].preferredEmail() +">"; 173 if ( ! names.isEmpty() )
153 if ( i < list.count() -1 )
154 names+= ","; 174 names+= ",";
175 names+= "\""+list[i].realName() +"\"<" +list[i].preferredEmail() +">";
176
155 } 177 }
156 } 178 }
157 179
158 180
159 if ( line->text().isEmpty() ) { 181 if ( line->text().isEmpty() ) {
160 line->setText( names ); 182 line->setText( names );
161 } else if ( !names.isEmpty() ) { 183 } else if ( !names.isEmpty() ) {
162 line->setText( line->text() + ", " + names ); 184 line->setText( line->text() + ", " + names );
163 } 185 }
186#else
187 bool res = ExternalAppHandler::instance()->requestNameEmailUidListFromKAPI("QPE/Application/ompi", this->name() /* name is here the unique uid*/);
188 // the result should now arrive through method insertAttendees
189#endif
190}
191//the map includes name/email pairs, that comes from Ka/Pi
192void ComposeMail::insertAttendees(const QString& uid,const QStringList& nameList,const QStringList& emailList,const QStringList& uidList)
193{
194 qDebug("ComposeMail::insertAttendees ");
195 raise();
196
197 if ( mPickLineEdit == 0 ) { //whoami received
198
199 QString defmail = uidList[0];
200 if ( emailList.count() == 0 )
201 QMessageBox::information( 0, tr( "Hint" ),
202 tr( "Please apply\n\"Set Who Am I\"\nin KA/Pi to get the from\nfield automatically filled out!\n" ),
203 tr( "Ok" ) );
204 if (defmail.length()!=0) {
205 fromBox->insertItem(defmail);
206 }
207 QStringList::ConstIterator sit = emailList.begin();
208 int pref = 0;
209 for (;sit!=emailList.end();++sit) {
210 if ( (*sit)==defmail)
211 continue;
212 fromBox->insertItem((*sit));
213 }
214 senderNameEdit->setText(nameList[0]);
215 return;
216 }
217 QString names ;
218 QLineEdit *line = mPickLineEdit;
219 if (uid == this->name())
220 {
221 for ( int i = 0; i < nameList.count(); i++)
222 {
223 QString _name = nameList[i];
224 QString _email = emailList[i];
225 QString _uid = uidList[i];
226 if ( ! _email.isEmpty() ) {
227 if ( ! names.isEmpty() )
228 names+= ",";
229 names+= "\""+_name +"\"<" +_email +">";
230 }
231 }
232 }
233 if ( line->text().isEmpty() ) {
234 line->setText( names );
235 } else if ( !names.isEmpty() ) {
236 line->setText( line->text() + ", " + names );
237 }
164} 238}
165
166 239
167void ComposeMail::setTo( const QString & to ) 240void ComposeMail::setTo( const QString & to )
168{ 241{
169 toLine->setText( to ); 242 toLine->setText( to );
170} 243}
171 244
172void ComposeMail::setSubject( const QString & subject ) 245void ComposeMail::setSubject( const QString & subject )
173{ 246{
174 subjectLine->setText( subject ); 247 subjectLine->setText( subject );
175} 248}
176 249
177void ComposeMail::setInReplyTo( const QString & messageId ) 250void ComposeMail::setInReplyTo( const QString & messageId )
178{ 251{
179 m_replyid = messageId; 252 m_replyid = messageId;
180} 253}
181 254
182void ComposeMail::setMessage( const QString & text ) 255void ComposeMail::setMessage( const QString & text )
183{ 256{
184 message->setText( text ); 257 message->setText( text );
185} 258}
186 259
187 260
188void ComposeMail::pickAddressTo() 261void ComposeMail::pickAddressTo()
189{ 262{
190 pickAddress( toLine ); 263 mPickLineEdit = toLine;
264 pickAddress( );
191} 265}
192 266
193void ComposeMail::pickAddressCC() 267void ComposeMail::pickAddressCC()
194{ 268{
195 pickAddress( ccLine ); 269 mPickLineEdit = ccLine;
270 pickAddress( );
196} 271}
197 272
198void ComposeMail::pickAddressBCC() 273void ComposeMail::pickAddressBCC()
199{ 274{
200 pickAddress( bccLine ); 275 mPickLineEdit = bccLine;
276 pickAddress( );
201} 277}
202 278
203void ComposeMail::pickAddressReply() 279void ComposeMail::pickAddressReply()
204{ 280{
205 pickAddress( replyLine ); 281 mPickLineEdit = replyLine;
282 pickAddress( );
206} 283}
207 284
208void ComposeMail::fillValues( int ) 285void ComposeMail::fillValues( int )
209{ 286{
210#if 0 287#if 0
211 SMTPaccount *smtp = smtpAccounts.at( current ); 288 SMTPaccount *smtp = smtpAccounts.at( current );
212 ccLine->clear(); 289 ccLine->clear();
213 if ( smtp->getUseCC() ) { 290 if ( smtp->getUseCC() ) {
214 ccLine->setText( smtp->getCC() ); 291 ccLine->setText( smtp->getCC() );
215 } 292 }
216 bccLine->clear(); 293 bccLine->clear();
217 if ( smtp->getUseBCC() ) { 294 if ( smtp->getUseBCC() ) {
218 bccLine->setText( smtp->getBCC() ); 295 bccLine->setText( smtp->getBCC() );
219 } 296 }
220 replyLine->clear(); 297 replyLine->clear();
221 if ( smtp->getUseReply() ) { 298 if ( smtp->getUseReply() ) {
222 replyLine->setText( smtp->getReply() ); 299 replyLine->setText( smtp->getReply() );
223 } 300 }
224 sigMultiLine->setText( smtp->getSignature() ); 301 sigMultiLine->setText( smtp->getSignature() );
225#endif 302#endif
226} 303}
227 304
228void ComposeMail::slotAdjustColumns() 305void ComposeMail::slotAdjustColumns()
229{ 306{
230 int currPage = tabWidget->currentPageIndex(); 307 int currPage = tabWidget->currentPageIndex();
231 308
232 tabWidget->showPage( attachTab ); 309 tabWidget->showPage( attachTab );
233 attList->setColumnWidth( 0, attList->visibleWidth() - 80 ); 310 attList->setColumnWidth( 0, attList->visibleWidth() - 80 );
234 attList->setColumnWidth( 1, 80 ); 311 attList->setColumnWidth( 1, 80 );
235 312
236 tabWidget->setCurrentPage( currPage ); 313 tabWidget->setCurrentPage( currPage );
237} 314}
238 315
239void ComposeMail::addAttachment() 316void ComposeMail::addAttachment()
240{ 317{
241 QString lnk = KFileDialog::getOpenFileName( "", "Add Attachment", this ); 318 QString lnk = KFileDialog::getOpenFileName( "", "Add Attachment", this );
242 if ( !lnk.isEmpty() ) { 319 if ( !lnk.isEmpty() ) {
243 Attachment *att = new Attachment( lnk ); 320 Attachment *att = new Attachment( lnk );
244 (void) new AttachViewItem( attList, att ); 321 (void) new AttachViewItem( attList, att );
245 } 322 }
246} 323}
247 324
248void ComposeMail::removeAttachment() 325void ComposeMail::removeAttachment()
249{ 326{
250 if ( !attList->currentItem() ) { 327 if ( !attList->currentItem() ) {
251 QMessageBox::information( this, tr( "Error" ), 328 QMessageBox::information( this, tr( "Error" ),
252 tr( "<p>Please select a File.</p>" ), 329 tr( "<p>Please select a File.</p>" ),
253 tr( "Ok" ) ); 330 tr( "Ok" ) );
254 } else { 331 } else {
255 attList->takeItem( attList->currentItem() ); 332 attList->takeItem( attList->currentItem() );
256 } 333 }
257} 334}
258 335
259void ComposeMail::accept() 336void ComposeMail::accept()
260{ 337{
261 if ( smtpAccountBox->count() == 0 ) { 338 if ( smtpAccountBox->count() == 0 ) {
262 339
263 reject(); 340 reject();
264 return; 341 return;
265 } 342 }
266 343
267 if (! checkBoxLater->isChecked() ) { 344 if (! checkBoxLater->isChecked() ) {
268 int yesno = QMessageBox::warning(0,tr("Stop editing message"), 345 int yesno = QMessageBox::warning(0,tr("Stop editing message"),
269 tr("Send this message?"), 346 tr("Send this message?"),
270 tr("Yes"), 347 tr("Yes"),
271 tr("Cancel")); 348 tr("Cancel"));
272 349
273 if (yesno == 1) { 350 if (yesno == 1) {
274 return; 351 return;
275 } 352 }
276 } 353 }
277#if 0 354#if 0
278 odebug << "Sending Mail with " 355 odebug << "Sending Mail with "
279 << smtpAccounts.at( smtpAccountBox->currentItem() )->getAccountName() << oendl; 356 << smtpAccounts.at( smtpAccountBox->currentItem() )->getAccountName() << oendl;
280#endif 357#endif
281 Opie::Core::OSmartPointer<Mail> mail=new Mail; 358 Opie::Core::OSmartPointer<Mail> mail=new Mail;
282 359
283 SMTPaccount *smtp = smtpAccounts.at( smtpAccountBox->currentItem() ); 360 SMTPaccount *smtp = smtpAccounts.at( smtpAccountBox->currentItem() );
284 mail->setMail(fromBox->currentText()); 361 mail->setMail(fromBox->currentText());
285 362
286 if ( !toLine->text().isEmpty() ) { 363 if ( !toLine->text().isEmpty() ) {
287 mail->setTo( toLine->text() ); 364 mail->setTo( toLine->text() );
288 } else { 365 } else {
289 QMessageBox::warning(0,tr("Sending mail"), 366 QMessageBox::warning(0,tr("Sending mail"),
290 tr("No Receiver spezified" ) ); 367 tr("No Receiver spezified" ) );
291 return; 368 return;
292 } 369 }
293 370
294 mail->setName(senderNameEdit->text()); 371 mail->setName(senderNameEdit->text());
295 mail->setCC( ccLine->text() ); 372 mail->setCC( ccLine->text() );
296 mail->setBCC( bccLine->text() ); 373 mail->setBCC( bccLine->text() );
297 mail->setReply( replyLine->text() ); 374 mail->setReply( replyLine->text() );
298 mail->setSubject( subjectLine->text() ); 375 mail->setSubject( subjectLine->text() );
299 if (!m_replyid.isEmpty()) { 376 if (!m_replyid.isEmpty()) {
300 QStringList ids; 377 QStringList ids;
301 ids.append(m_replyid); 378 ids.append(m_replyid);
302 mail->setInreply(ids); 379 mail->setInreply(ids);
303 } 380 }
304 QString txt = message->text(); 381 QString txt = message->text();
305 if ( !sigMultiLine->text().isEmpty() ) { 382 if ( !sigMultiLine->text().isEmpty() ) {
306 txt.append( "\n--\n" ); 383 txt.append( "\n--\n" );
307 txt.append( sigMultiLine->text() ); 384 txt.append( sigMultiLine->text() );
308 } 385 }
309 mail->setMessage( txt ); 386 mail->setMessage( txt );
310 AttachViewItem *it = (AttachViewItem *) attList->firstChild(); 387 AttachViewItem *it = (AttachViewItem *) attList->firstChild();
311 while ( it != 0 ) { 388 while ( it != 0 ) {
312 mail->addAttachment( it->getAttachment() ); 389 mail->addAttachment( it->getAttachment() );
313 it = (AttachViewItem *) it->nextSibling(); 390 it = (AttachViewItem *) it->nextSibling();
314 } 391 }
315 392
316 SMTPwrapper wrapper( smtp ); 393 SMTPwrapper wrapper( smtp );
317 if ( wrapper.sendMail( mail,checkBoxLater->isChecked() ) ) 394 if ( wrapper.sendMail( mail,checkBoxLater->isChecked() ) )
318 setStatus( tr ("Mail sent")); 395 setStatus( tr ("Mail sent"));
319 else { 396 else {
320 setStatus( tr ("Error: Something went wrong. Nothing sent")); 397 setStatus( tr ("Error: Something went wrong. Nothing sent"));
321 return; 398 return;
322 } 399 }
323 400
324 401
325 QDialog::accept(); 402 QDialog::accept();
326} 403}
327 404
328void ComposeMail::reject() 405void ComposeMail::reject()
329{ 406{
330 //qDebug("ComposeMail::reject() "); 407 //qDebug("ComposeMail::reject() ");
331 int yesno = QMessageBox::warning(0,tr("Store message?"), 408 int yesno = QMessageBox::warning(0,tr("Store message?"),
332 tr("Store message into drafts?\n"), 409 tr("Store message into drafts?\n"),
333 tr("Yes"), 410 tr("Yes"),
334 tr("No")); 411 tr("No"));
335 412
336 //qDebug("button %d ", yesno); 413 //qDebug("button %d ", yesno);
337 if (yesno == 0) { 414 if (yesno == 0) {
338 if ( toLine->text().isEmpty() ) { 415 if ( toLine->text().isEmpty() ) {
339 QMessageBox::warning(0,tr("Sending mail"), 416 QMessageBox::warning(0,tr("Sending mail"),
340 tr("No Receiver spezified" ) ); 417 tr("No Receiver spezified" ) );
341 return; 418 return;
342 } 419 }
343 saveAsDraft(); 420 saveAsDraft();
344 } 421 }
345 if (yesno == 2) { 422 if (yesno == 2) {
346 qDebug("return "); 423 qDebug("return ");
347 return; 424 return;
348 } 425 }
349 QDialog::reject(); 426 QDialog::reject();
350} 427}
351 428
352ComposeMail::~ComposeMail() 429ComposeMail::~ComposeMail()
353{ 430{
354} 431}
355 432
356void ComposeMail::reEditMail(const RecMailP&current) 433void ComposeMail::reEditMail(const RecMailP&current)
357{ 434{
358 RecMailP data = current; 435 RecMailP data = current;
359 message->setText(data->Wrapper()->fetchBody(current)->Bodytext()); 436 message->setText(data->Wrapper()->fetchBody(current)->Bodytext());
360 subjectLine->setText( data->getSubject()); 437 subjectLine->setText( data->getSubject());
361 toLine->setText(data->To().join(",")); 438 toLine->setText(data->To().join(","));
362 ccLine->setText(data->CC().join(",")); 439 ccLine->setText(data->CC().join(","));
363 bccLine->setText(data->Bcc().join(",")); 440 bccLine->setText(data->Bcc().join(","));
364 replyLine->setText(data->Replyto()); 441 replyLine->setText(data->Replyto());
365} 442}
366 443
367AttachViewItem::AttachViewItem( QListView *parent, Attachment *att ) 444AttachViewItem::AttachViewItem( QListView *parent, Attachment *att )
368 : QListViewItem( parent ) 445 : QListViewItem( parent )
369{ 446{
370 attachment = att; 447 attachment = att;
371 if ( !attachment->getPixmap().isNull() ) 448 if ( !attachment->getPixmap().isNull() )
372 setPixmap( 0,attachment->getPixmap() ); 449 setPixmap( 0,attachment->getPixmap() );
373 setText( 0, att->getName().isEmpty() ? att->getFileName() : att->getName() ); 450 setText( 0, att->getName().isEmpty() ? att->getFileName() : att->getName() );
374 setText( 1, QString::number( att->getSize() ) ); 451 setText( 1, QString::number( att->getSize() ) );
375} 452}
376 453
diff --git a/kmicromail/composemail.h b/kmicromail/composemail.h
index 876b597..657f665 100644
--- a/kmicromail/composemail.h
+++ b/kmicromail/composemail.h
@@ -1,86 +1,90 @@
1#ifndef COMPOSEMAIL_H 1#ifndef COMPOSEMAIL_H
2#define COMPOSEMAIL_H 2#define COMPOSEMAIL_H
3 3
4#include <qlineedit.h> 4#include <qlineedit.h>
5#include <qlistview.h> 5#include <qlistview.h>
6 6
7#include "composemailui.h" 7#include "composemailui.h"
8//#include "addresspickerui.h" 8//#include "addresspickerui.h"
9#include <libmailwrapper/settings.h> 9#include <libmailwrapper/settings.h>
10#include <libmailwrapper/mailwrapper.h> 10#include <libmailwrapper/mailwrapper.h>
11 11
12class RecMail; 12class RecMail;
13 13
14#include <opie2/osmartpointer.h> 14#include <opie2/osmartpointer.h>
15#if 0 15#if 0
16class AddressPicker : public AddressPickerUI 16class AddressPicker : public AddressPickerUI
17{ 17{
18 //Q_OBJECT 18 //Q_OBJECT
19 19
20public: 20public:
21 AddressPicker( QWidget *parent = 0, const char *name = 0, bool modal = false, WFlags flags = 0 ); 21 AddressPicker( QWidget *parent = 0, const char *name = 0, bool modal = false, WFlags flags = 0 );
22 static QString getNames(); 22 static QString getNames();
23 23
24protected: 24protected:
25 QString selectedNames; 25 QString selectedNames;
26 void accept(); 26 void accept();
27 27
28}; 28};
29#endif 29#endif
30class RecMail; 30class RecMail;
31 31
32class ComposeMail : public ComposeMailUI 32class ComposeMail : public ComposeMailUI
33{ 33{
34 Q_OBJECT 34 Q_OBJECT
35 35
36public: 36public:
37
37 ComposeMail( Settings *s, QWidget *parent = 0, const char *name = 0, bool modal = false, WFlags flags = 0 ); 38 ComposeMail( Settings *s, QWidget *parent = 0, const char *name = 0, bool modal = false, WFlags flags = 0 );
38 virtual ~ComposeMail(); 39 virtual ~ComposeMail();
39 40
40 void reEditMail(const Opie::Core::OSmartPointer<RecMail>&current); 41 void reEditMail(const Opie::Core::OSmartPointer<RecMail>&current);
41 42
42public slots: 43public slots:
43 void slotAdjustColumns(); 44 void slotAdjustColumns();
44 45
45 void setTo( const QString & to ); 46 void setTo( const QString & to );
46 void setSubject( const QString & subject ); 47 void setSubject( const QString & subject );
47 void setInReplyTo( const QString & messageId ); 48 void setInReplyTo( const QString & messageId );
48 void setMessage( const QString & text ); 49 void setMessage( const QString & text );
50 void insertAttendees(const QString&, const QStringList& namelist, const QStringList& emaillist, const QStringList& uidlist);
51
49 52
50protected slots: 53protected slots:
51 void accept(); 54 void accept();
52 void reject(); 55 void reject();
53 56
54private slots: 57private slots:
55 void fillValues( int current ); 58 void fillValues( int current );
56 void pickAddress( QLineEdit *line ); 59 void pickAddress();
57 void pickAddressTo(); 60 void pickAddressTo();
58 void pickAddressCC(); 61 void pickAddressCC();
59 void pickAddressBCC(); 62 void pickAddressBCC();
60 void pickAddressReply(); 63 void pickAddressReply();
61 void saveAsDraft(); 64 void saveAsDraft();
62 void addAttachment(); 65 void addAttachment();
63 void removeAttachment(); 66 void removeAttachment();
64 void clearStatus(); 67 void clearStatus();
65 void setStatus( QString ); 68 void setStatus( QString );
66 69
67protected: 70protected:
71 QLineEdit* mPickLineEdit;
68 Opie::Core::OSmartPointer<Mail> mMail; 72 Opie::Core::OSmartPointer<Mail> mMail;
69 Settings *settings; 73 Settings *settings;
70 QList<SMTPaccount> smtpAccounts; 74 QList<SMTPaccount> smtpAccounts;
71 QString m_replyid; 75 QString m_replyid;
72 bool warnAttach; 76 bool warnAttach;
73}; 77};
74 78
75class AttachViewItem : public QListViewItem 79class AttachViewItem : public QListViewItem
76{ 80{
77public: 81public:
78 AttachViewItem( QListView *parent, Attachment *att ); 82 AttachViewItem( QListView *parent, Attachment *att );
79 Attachment *getAttachment() { return attachment; } 83 Attachment *getAttachment() { return attachment; }
80 84
81private: 85private:
82 Attachment *attachment; 86 Attachment *attachment;
83 87
84}; 88};
85 89
86#endif 90#endif
diff --git a/kmicromail/main.cpp b/kmicromail/main.cpp
index 22f1200..a3e1b86 100644
--- a/kmicromail/main.cpp
+++ b/kmicromail/main.cpp
@@ -1,58 +1,61 @@
1// CHANGED 2004-08-06 Lutz Rogowski 1// CHANGED 2004-08-06 Lutz Rogowski
2 2
3
3#ifndef DESKTOP_VERSION 4#ifndef DESKTOP_VERSION
4#include <qpe/qpeapplication.h> 5#include <qpe/qpeapplication.h>
6#include <libkdepim/externalapphandler.h>
5#include <stdlib.h> 7#include <stdlib.h>
6#else 8#else
7#include <qapplication.h> 9#include <qapplication.h>
8#include <qstring.h> 10#include <qstring.h>
9#include <qwindowsstyle.h> 11#include <qwindowsstyle.h>
10#include <qplatinumstyle.h> 12#include <qplatinumstyle.h>
11#include <qsgistyle.h> 13#include <qsgistyle.h>
12#endif 14#endif
13#include "opiemail.h" 15#include "opiemail.h"
14#include <qdir.h> 16#include <qdir.h>
15#include <kstandarddirs.h> 17#include <kstandarddirs.h>
16#include <kglobal.h> 18#include <kglobal.h>
17#include <stdio.h> 19#include <stdio.h>
18#include "mainwindow.h" 20#include "mainwindow.h"
19 21
20using namespace Opie::Core; 22using namespace Opie::Core;
21int main( int argc, char **argv ) { 23int main( int argc, char **argv ) {
22 24
23#ifndef DESKTOP_VERSION 25#ifndef DESKTOP_VERSION
24 QPEApplication a( argc, argv ); 26 QPEApplication a( argc, argv );
25 a.setKeepRunning (); 27 a.setKeepRunning ();
26#else 28#else
27 QApplication a( argc, argv ); 29 QApplication a( argc, argv );
28 QApplication::setStyle( new QPlatinumStyle ()); 30 QApplication::setStyle( new QPlatinumStyle ());
29#endif 31#endif
30 32
31 KGlobal::setAppName( "kmicromail" ); 33 KGlobal::setAppName( "kmicromail" );
32 QString fileName ; 34 QString fileName ;
33#ifndef DESKTOP_VERSION 35#ifndef DESKTOP_VERSION
34 fileName = getenv("QPEDIR"); 36 fileName = getenv("QPEDIR");
35 if ( QApplication::desktop()->width() > 320 ) 37 if ( QApplication::desktop()->width() > 320 )
36 KGlobal::iconLoader()->setIconPath( fileName +"/pics/kdepim/kmicromail/icons22/"); 38 KGlobal::iconLoader()->setIconPath( fileName +"/pics/kdepim/kmicromail/icons22/");
37 else 39 else
38 KGlobal::iconLoader()->setIconPath( fileName +"/pics/kdepim/kmicromail/"); 40 KGlobal::iconLoader()->setIconPath( fileName +"/pics/kdepim/kmicromail/");
39#else 41#else
40 fileName = qApp->applicationDirPath () + "/kdepim/kmicromail/"; 42 fileName = qApp->applicationDirPath () + "/kdepim/kmicromail/";
41 KGlobal::iconLoader()->setIconPath(QDir::convertSeparators(fileName)); 43 KGlobal::iconLoader()->setIconPath(QDir::convertSeparators(fileName));
42#endif 44#endif
43 KStandardDirs::setAppDir( QDir::convertSeparators(locateLocal("data", "kmicromail"))); 45 KStandardDirs::setAppDir( QDir::convertSeparators(locateLocal("data", "kmicromail")));
44 OpieMail mw; 46 OpieMail mw;
45#ifndef DESKTOP_VERSION 47#ifndef DESKTOP_VERSION
46 //qDebug("CONNECT "); 48 //qDebug("CONNECT ");
47 QObject::connect( &a, SIGNAL (appMessage ( const QCString &, const QByteArray & )),&mw, SLOT(message( const QCString&, const QByteArray& ))); 49 QObject::connect( &a, SIGNAL (appMessage ( const QCString &, const QByteArray & )),&mw, SLOT(message( const QCString&, const QByteArray& )));
50 QObject::connect(&a, SIGNAL (appMessage ( const QCString &, const QByteArray & )), ExternalAppHandler::instance(), SLOT (appMessage ( const QCString &, const QByteArray & )));
48 a.showMainWidget(&mw ); 51 a.showMainWidget(&mw );
49#else 52#else
50 a.setMainWidget(&mw ); 53 a.setMainWidget(&mw );
51 mw.show(); 54 mw.show();
52 //m.resize( 800, 600 ); 55 //m.resize( 800, 600 );
53 QObject::connect(&a, SIGNAL(lastWindowClosed()), &a, SLOT(quit())); 56 QObject::connect(&a, SIGNAL(lastWindowClosed()), &a, SLOT(quit()));
54#endif 57#endif
55 int rv = a.exec(); 58 int rv = a.exec();
56 return rv; 59 return rv;
57 60
58} 61}
diff --git a/kmicromail/mainwindow.cpp b/kmicromail/mainwindow.cpp
index 704a9ab..6df95c6 100644
--- a/kmicromail/mainwindow.cpp
+++ b/kmicromail/mainwindow.cpp
@@ -1,292 +1,292 @@
1 1
2// CHANGED 2004-08-06 Lutz Rogowski 2// CHANGED 2004-08-06 Lutz Rogowski
3#include <qlabel.h> 3#include <qlabel.h>
4#include <qvbox.h> 4#include <qvbox.h>
5#include <qheader.h> 5#include <qheader.h>
6#include <qtimer.h> 6#include <qtimer.h>
7#include <qlayout.h> 7#include <qlayout.h>
8#include <kdialog.h> 8#include <kdialog.h>
9#include <kiconloader.h> 9#include <kiconloader.h>
10#include <kapplication.h> 10#include <kapplication.h>
11 11
12#ifndef DESKTOP_VERSION 12#ifndef DESKTOP_VERSION
13#include <qpe/qpeapplication.h> 13#include <qpe/qpeapplication.h>
14#endif 14#endif
15#include "defines.h" 15#include "defines.h"
16#include "mainwindow.h" 16#include "mainwindow.h"
17#include <KDGanttMinimizeSplitter.h> 17#include <KDGanttMinimizeSplitter.h>
18 18
19 19
20#include <kabc/stdaddressbook.h> 20#include <kabc/stdaddressbook.h>
21 21
22MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags ) 22MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags )
23 : QMainWindow( parent, name ) //, flags ) 23 : QMainWindow( parent, name ) //, flags )
24{ 24{
25 setCaption( tr( "KOpieMail/Pi" ) ); 25 setCaption( tr( "KOpieMail/Pi" ) );
26 setToolBarsMovable( false ); 26 setToolBarsMovable( false );
27 KABC::StdAddressBook::self(); 27 //KABC::StdAddressBook::self();
28 toolBar = new QToolBar( this ); 28 toolBar = new QToolBar( this );
29 menuBar = new QMenuBar( toolBar ); 29 menuBar = new QMenuBar( toolBar );
30 mailMenu = new QPopupMenu( menuBar ); 30 mailMenu = new QPopupMenu( menuBar );
31 menuBar->insertItem( tr( "Mail" ), mailMenu ); 31 menuBar->insertItem( tr( "Mail" ), mailMenu );
32 settingsMenu = new QPopupMenu( menuBar ); 32 settingsMenu = new QPopupMenu( menuBar );
33 menuBar->insertItem( tr( "Settings" ), settingsMenu ); 33 menuBar->insertItem( tr( "Settings" ), settingsMenu );
34 34
35 addToolBar( toolBar ); 35 addToolBar( toolBar );
36 toolBar->setHorizontalStretchable( true ); 36 toolBar->setHorizontalStretchable( true );
37 37
38 38
39 39
40 composeMail = new QAction( tr( "Compose new mail" ), SmallIcon("composemail"), 40 composeMail = new QAction( tr( "Compose new mail" ), SmallIcon("composemail"),
41 0, 0, this ); 41 0, 0, this );
42 composeMail->addTo( toolBar ); 42 composeMail->addTo( toolBar );
43 composeMail->addTo( mailMenu ); 43 composeMail->addTo( mailMenu );
44 44
45 sendQueued = new QAction( tr( "Send queued mails" ), SmallIcon("sendqueued") , 45 sendQueued = new QAction( tr( "Send queued mails" ), SmallIcon("sendqueued") ,
46 0, 0, this ); 46 0, 0, this );
47 sendQueued->addTo( toolBar ); 47 sendQueued->addTo( toolBar );
48 sendQueued->addTo( mailMenu ); 48 sendQueued->addTo( mailMenu );
49 49
50 /* 50 /*
51 syncFolders = new QAction( tr( "Sync mailfolders" ), ICON_SYNC, 51 syncFolders = new QAction( tr( "Sync mailfolders" ), ICON_SYNC,
52 0, 0, this ); 52 0, 0, this );
53 syncFolders->addTo( toolBar ); 53 syncFolders->addTo( toolBar );
54 syncFolders->addTo( mailMenu ); 54 syncFolders->addTo( mailMenu );
55 */ 55 */
56 56
57 showFolders = new QAction( tr( "Show/Hide folders" ), SmallIcon("showfolders") , 57 showFolders = new QAction( tr( "Show/Hide folders" ), SmallIcon("showfolders") ,
58 0, 0, this, 0, true ); 58 0, 0, this, 0, true );
59 showFolders->addTo( toolBar ); 59 showFolders->addTo( toolBar );
60 showFolders->addTo( mailMenu ); 60 showFolders->addTo( mailMenu );
61 showFolders->setOn( true ); 61 showFolders->setOn( true );
62 connect(showFolders, SIGNAL( toggled(bool) ), 62 connect(showFolders, SIGNAL( toggled(bool) ),
63 SLOT( slotShowFolders(bool) ) ); 63 SLOT( slotShowFolders(bool) ) );
64 64
65 /* 65 /*
66 searchMails = new QAction( tr( "Search mails" ), SmallIcon("find") ), 66 searchMails = new QAction( tr( "Search mails" ), SmallIcon("find") ),
67 0, 0, this ); 67 0, 0, this );
68 searchMails->addTo( toolBar ); 68 searchMails->addTo( toolBar );
69 searchMails->addTo( mailMenu ); 69 searchMails->addTo( mailMenu );
70 */ 70 */
71 71
72 deleteMails = new QAction(tr("Delete Mail"), SmallIcon("trash"), 0, 0, this); 72 deleteMails = new QAction(tr("Delete Mail"), SmallIcon("trash"), 0, 0, this);
73 deleteMails->addTo( toolBar ); 73 deleteMails->addTo( toolBar );
74 deleteMails->addTo( mailMenu ); 74 deleteMails->addTo( mailMenu );
75 connect( deleteMails, SIGNAL( activated() ), 75 connect( deleteMails, SIGNAL( activated() ),
76 SLOT( slotDeleteMail() ) ); 76 SLOT( slotDeleteMail() ) );
77 77
78 editSettings = new QAction( tr( "Edit settings" ), SmallIcon("SettingsIcon") , 78 editSettings = new QAction( tr( "Edit settings" ), SmallIcon("SettingsIcon") ,
79 0, 0, this ); 79 0, 0, this );
80 editSettings->addTo( settingsMenu ); 80 editSettings->addTo( settingsMenu );
81 connect( editSettings, SIGNAL( activated() ), 81 connect( editSettings, SIGNAL( activated() ),
82 SLOT( slotEditSettings() ) ); 82 SLOT( slotEditSettings() ) );
83 editAccounts = new QAction( tr( "Configure accounts" ), SmallIcon("editaccounts") , 83 editAccounts = new QAction( tr( "Configure accounts" ), SmallIcon("editaccounts") ,
84 0, 0, this ); 84 0, 0, this );
85 editAccounts->addTo( settingsMenu ); 85 editAccounts->addTo( settingsMenu );
86 86
87 //setCentralWidget( view ); 87 //setCentralWidget( view );
88 88
89 QVBox* wrapperBox = new QVBox( this ); 89 QVBox* wrapperBox = new QVBox( this );
90 setCentralWidget( wrapperBox ); 90 setCentralWidget( wrapperBox );
91 91
92 // QWidget *view = new QWidget( wrapperBox ); 92 // QWidget *view = new QWidget( wrapperBox );
93 KDGanttMinimizeSplitter* split = new KDGanttMinimizeSplitter( Qt::Horizontal, wrapperBox); 93 KDGanttMinimizeSplitter* split = new KDGanttMinimizeSplitter( Qt::Horizontal, wrapperBox);
94 split->setMinimizeDirection( KDGanttMinimizeSplitter::Left); 94 split->setMinimizeDirection( KDGanttMinimizeSplitter::Left);
95 //layout = new QBoxLayout ( split, QBoxLayout::LeftToRight ); 95 //layout = new QBoxLayout ( split, QBoxLayout::LeftToRight );
96 96
97 folderView = new AccountView( split ); 97 folderView = new AccountView( split );
98 folderView->header()->hide(); 98 folderView->header()->hide();
99 folderView->setRootIsDecorated( false ); 99 folderView->setRootIsDecorated( false );
100 folderView->addColumn( tr( "Mailbox" ) ); 100 folderView->addColumn( tr( "Mailbox" ) );
101 101
102 //layout->addWidget( folderView ); 102 //layout->addWidget( folderView );
103 103
104 mailView = new QListView( split ); 104 mailView = new QListView( split );
105 mailView->addColumn( tr( " " ) ); 105 mailView->addColumn( tr( " " ) );
106 mailView->addColumn( tr( "Subject" ),QListView::Manual ); 106 mailView->addColumn( tr( "Subject" ),QListView::Manual );
107 mailView->addColumn( tr( "Sender" ),QListView::Manual ); 107 mailView->addColumn( tr( "Sender" ),QListView::Manual );
108 mailView->addColumn( tr( "Size" ),QListView::Manual); 108 mailView->addColumn( tr( "Size" ),QListView::Manual);
109 mailView->addColumn( tr( "Date" ),QListView::Manual); 109 mailView->addColumn( tr( "Date" ),QListView::Manual);
110 mailView->setAllColumnsShowFocus(true); 110 mailView->setAllColumnsShowFocus(true);
111 //mailView->setSorting(-1); 111 //mailView->setSorting(-1);
112 mailView->setRootIsDecorated( false ); 112 mailView->setRootIsDecorated( false );
113 statusWidget = new StatusWidget( wrapperBox ); 113 statusWidget = new StatusWidget( wrapperBox );
114 statusWidget->hide(); 114 statusWidget->hide();
115 115
116 //layout->addWidget( mailView ); 116 //layout->addWidget( mailView );
117 //layout->setStretchFactor( folderView, 1 ); 117 //layout->setStretchFactor( folderView, 1 );
118 //layout->setStretchFactor( mailView, 2 ); 118 //layout->setStretchFactor( mailView, 2 );
119 119
120 slotAdjustLayout(); 120 slotAdjustLayout();
121#ifndef DESKTOP_VERSION 121#ifndef DESKTOP_VERSION
122 QPEApplication::setStylusOperation( mailView->viewport(),QPEApplication::RightOnHold); 122 QPEApplication::setStylusOperation( mailView->viewport(),QPEApplication::RightOnHold);
123 QPEApplication::setStylusOperation( folderView->viewport(),QPEApplication::RightOnHold); 123 QPEApplication::setStylusOperation( folderView->viewport(),QPEApplication::RightOnHold);
124#endif 124#endif
125 connect( mailView, SIGNAL( doubleClicked (QListViewItem* )),this, 125 connect( mailView, SIGNAL( doubleClicked (QListViewItem* )),this,
126 SLOT( mailLeftClicked(QListViewItem*) ) ); 126 SLOT( mailLeftClicked(QListViewItem*) ) );
127 connect( mailView, SIGNAL( returnPressed (QListViewItem* )),this, 127 connect( mailView, SIGNAL( returnPressed (QListViewItem* )),this,
128 SLOT( mailLeftClicked(QListViewItem*) ) ); 128 SLOT( mailLeftClicked(QListViewItem*) ) );
129 connect( mailView, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ),this, 129 connect( mailView, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ),this,
130 SLOT( mailHold(int,QListViewItem*,const QPoint&,int) ) ); 130 SLOT( mailHold(int,QListViewItem*,const QPoint&,int) ) );
131 connect(folderView, SIGNAL(refreshMailview(const QValueList<RecMailP>&)), 131 connect(folderView, SIGNAL(refreshMailview(const QValueList<RecMailP>&)),
132 this,SLOT(refreshMailView(const QValueList<RecMailP>&))); 132 this,SLOT(refreshMailView(const QValueList<RecMailP>&)));
133 connect( composeMail, SIGNAL( activated() ), SLOT( slotComposeMail() ) ); 133 connect( composeMail, SIGNAL( activated() ), SLOT( slotComposeMail() ) );
134 connect( sendQueued, SIGNAL( activated() ), SLOT( slotSendQueued() ) ); 134 connect( sendQueued, SIGNAL( activated() ), SLOT( slotSendQueued() ) );
135// connect( searchMails, SIGNAL( activated() ), SLOT( slotSearchMails() ) ); 135// connect( searchMails, SIGNAL( activated() ), SLOT( slotSearchMails() ) );
136 connect( editAccounts, SIGNAL( activated() ), SLOT( slotEditAccounts() ) ); 136 connect( editAccounts, SIGNAL( activated() ), SLOT( slotEditAccounts() ) );
137 //mailView->setMultiSelection ( true ); 137 //mailView->setMultiSelection ( true );
138 mailView->setSelectionMode( QListView::Extended ); 138 mailView->setSelectionMode( QListView::Extended );
139 QValueList<int> list; 139 QValueList<int> list;
140 int fw = 100; 140 int fw = 100;
141 if ( QApplication::desktop()->width() > 320 ) 141 if ( QApplication::desktop()->width() > 320 )
142 fw = 50; 142 fw = 50;
143 list.append( fw ); 143 list.append( fw );
144 list.append( 100 ); 144 list.append( 100 );
145 split->setSizes( list ); 145 split->setSizes( list );
146 QTimer::singleShot( 1000, this, SLOT( slotAdjustColumns() ) ); 146 QTimer::singleShot( 1000, this, SLOT( slotAdjustColumns() ) );
147 mailView->setShowSortIndicator ( true ); 147 mailView->setShowSortIndicator ( true );
148 QLabel *spacer = new QLabel( toolBar ); 148 QLabel *spacer = new QLabel( toolBar );
149 spacer->setBackgroundMode( QWidget::PaletteButton ); 149 spacer->setBackgroundMode( QWidget::PaletteButton );
150 toolBar->setStretchableWidget( spacer ); 150 toolBar->setStretchableWidget( spacer );
151 151
152 QAction* closeMail = new QAction(tr("Close"),SmallIcon("exit"), 0, 0, this); 152 QAction* closeMail = new QAction(tr("Close"),SmallIcon("exit"), 0, 0, this);
153 connect( closeMail, SIGNAL( activated() ), SLOT( close() ) ); 153 connect( closeMail, SIGNAL( activated() ), SLOT( close() ) );
154 closeMail->addTo(toolBar); 154 closeMail->addTo(toolBar);
155 closeMail->addTo(mailMenu); 155 closeMail->addTo(mailMenu);
156 156
157 157
158 QPopupMenu* helpMenu = new QPopupMenu( menuBar ); 158 QPopupMenu* helpMenu = new QPopupMenu( menuBar );
159 menuBar->insertItem( tr( "Help" ), helpMenu ); 159 menuBar->insertItem( tr( "Help" ), helpMenu );
160 QAction* li = new QAction(tr("About"), QPixmap(), 0, 0, this); 160 QAction* li = new QAction(tr("About"), QPixmap(), 0, 0, this);
161 connect( li, SIGNAL( activated() ), SLOT( showAbout()) ); 161 connect( li, SIGNAL( activated() ), SLOT( showAbout()) );
162 li->addTo(helpMenu); 162 li->addTo(helpMenu);
163 li = new QAction(tr("Licence"),QPixmap(), 0, 0, this); 163 li = new QAction(tr("Licence"),QPixmap(), 0, 0, this);
164 connect( li, SIGNAL( activated() ), SLOT( showLicence()) ); 164 connect( li, SIGNAL( activated() ), SLOT( showLicence()) );
165 li->addTo(helpMenu); 165 li->addTo(helpMenu);
166 li = new QAction(tr("LibEtPan Licence"), QPixmap(), 0, 0, this); 166 li = new QAction(tr("LibEtPan Licence"), QPixmap(), 0, 0, this);
167 connect( li, SIGNAL( activated() ), SLOT( showEtpanLicence()) ); 167 connect( li, SIGNAL( activated() ), SLOT( showEtpanLicence()) );
168 li->addTo(helpMenu); 168 li->addTo(helpMenu);
169} 169}
170 170
171MainWindow::~MainWindow() 171MainWindow::~MainWindow()
172{ 172{
173} 173}
174 174
175void MainWindow::showLicence() 175void MainWindow::showLicence()
176{ 176{
177 KApplication::showLicence(); 177 KApplication::showLicence();
178} 178}
179void MainWindow::showAbout() 179void MainWindow::showAbout()
180{ 180{
181 QString version; 181 QString version;
182#include <../version> 182#include <../version>
183 183
184 QString cap = "About KOpieMail/Pi"; 184 QString cap = "About KOpieMail/Pi";
185 QString text =i18n("KOpieMail/Platform-independent\n") + 185 QString text =i18n("KOpieMail/Platform-independent\n") +
186 "(OM/Pi) " + version + " - " 186 "(OM/Pi) " + version + " - "
187 187
188#ifdef DESKTOP_VERSION 188#ifdef DESKTOP_VERSION
189 "Desktop Edition\n" 189 "Desktop Edition\n"
190#else 190#else
191 "PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n" 191 "PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n"
192#endif 192#endif
193 "www.pi-sync.net\n\n" 193 "www.pi-sync.net\n\n"
194 194
195 195
196 196
197"Copyright (c) 2004 Lutz Rogowski <lutz@pi-sync.net>\n" 197"Copyright (c) 2004 Lutz Rogowski <lutz@pi-sync.net>\n"
198 "KOpieMail/Pi is based on Opie Mail\n" 198 "KOpieMail/Pi is based on Opie Mail\n"
199 "Copyright (c) Rajko Albrecht and the Opie team\n" 199 "Copyright (c) Rajko Albrecht and the Opie team\n"
200 "KOpieMail/Pi is licensed under the GPL\n" 200 "KOpieMail/Pi is licensed under the GPL\n"
201 "\n" 201 "\n"
202 "KOpieMail/Pi uses LibEtPan - a mail stuff library\n" 202 "KOpieMail/Pi uses LibEtPan - a mail stuff library\n"
203 "Copyright (C) 2001, 2002 - DINH Viet Hoa\n" 203 "Copyright (C) 2001, 2002 - DINH Viet Hoa\n"
204 "libEtPan has its own licence - see LibEtPan licence\n"; 204 "libEtPan has its own licence - see LibEtPan licence\n";
205 205
206 KApplication::showText( cap, text ); 206 KApplication::showText( cap, text );
207} 207}
208void MainWindow::showEtpanLicence() 208void MainWindow::showEtpanLicence()
209{ 209{
210 KApplication::showFile( "LibEtPan licence", "kdepim/kmicromail/COPYRIGHTlibetpan" ); 210 KApplication::showFile( "LibEtPan licence", "kdepim/kmicromail/COPYRIGHTlibetpan" );
211 211
212} 212}
213void MainWindow::appMessage(const QCString &, const QByteArray &) 213void MainWindow::appMessage(const QCString &, const QByteArray &)
214{ 214{
215 qDebug("appMessage implemented by subclass"); 215 qDebug("appMessage implemented by subclass");
216} 216}
217 217
218void MainWindow::slotAdjustLayout() { 218void MainWindow::slotAdjustLayout() {
219 219
220 /* 220 /*
221 QWidget *d = QApplication::desktop(); 221 QWidget *d = QApplication::desktop();
222 222
223 if ( d->width() < d->height() ) { 223 if ( d->width() < d->height() ) {
224 layout->setDirection( QBoxLayout::TopToBottom ); 224 layout->setDirection( QBoxLayout::TopToBottom );
225 } else { 225 } else {
226 layout->setDirection( QBoxLayout::LeftToRight ); 226 layout->setDirection( QBoxLayout::LeftToRight );
227 } 227 }
228 */ 228 */
229} 229}
230 230
231void MainWindow::slotAdjustColumns() 231void MainWindow::slotAdjustColumns()
232{ 232{
233 bool hidden = folderView->isHidden(); 233 bool hidden = folderView->isHidden();
234 if ( hidden ) folderView->show(); 234 if ( hidden ) folderView->show();
235 folderView->setColumnWidth( 0, folderView->visibleWidth() ); 235 folderView->setColumnWidth( 0, folderView->visibleWidth() );
236 if ( hidden ) folderView->hide(); 236 if ( hidden ) folderView->hide();
237 237
238 mailView->setColumnWidth( 0, 10 ); 238 mailView->setColumnWidth( 0, 10 );
239 mailView->setColumnWidth( 1, 100 ); 239 mailView->setColumnWidth( 1, 100 );
240 mailView->setColumnWidth( 2, 100 ); 240 mailView->setColumnWidth( 2, 100 );
241 mailView->setColumnWidth( 3, 50 ); 241 mailView->setColumnWidth( 3, 50 );
242 mailView->setColumnWidth( 4, 120 ); 242 mailView->setColumnWidth( 4, 120 );
243} 243}
244 244
245void MainWindow::slotEditSettings() 245void MainWindow::slotEditSettings()
246{ 246{
247} 247}
248 248
249void MainWindow::slotShowFolders( bool ) 249void MainWindow::slotShowFolders( bool )
250{ 250{
251 qDebug("not implemented: "); 251 qDebug("not implemented: ");
252} 252}
253 253
254void MainWindow::refreshMailView(const QValueList<RecMailP>&) 254void MainWindow::refreshMailView(const QValueList<RecMailP>&)
255{ 255{
256 qDebug("not implemented: "); 256 qDebug("not implemented: ");
257} 257}
258 258
259void MainWindow::mailLeftClicked(QListViewItem * ) 259void MainWindow::mailLeftClicked(QListViewItem * )
260{ 260{
261 qDebug("not implemented: "); 261 qDebug("not implemented: ");
262} 262}
263 263
264void MainWindow::displayMail() 264void MainWindow::displayMail()
265{ 265{
266 qDebug("not implemented: "); 266 qDebug("not implemented: ");
267} 267}
268 268
269void MainWindow::slotDeleteMail() 269void MainWindow::slotDeleteMail()
270{ 270{
271 qDebug("not implemented: "); 271 qDebug("not implemented: ");
272} 272}
273 273
274void MainWindow::mailHold(int, QListViewItem *,const QPoint&,int ) 274void MainWindow::mailHold(int, QListViewItem *,const QPoint&,int )
275{ 275{
276 qDebug("not implemented: "); 276 qDebug("not implemented: ");
277} 277}
278 278
279void MainWindow::slotSendQueued() 279void MainWindow::slotSendQueued()
280{ 280{
281 qDebug("not implemented: "); 281 qDebug("not implemented: ");
282} 282}
283 283
284void MainWindow::slotEditAccounts() 284void MainWindow::slotEditAccounts()
285{ 285{
286 qDebug("not implemented: "); 286 qDebug("not implemented: ");
287} 287}
288 288
289void MainWindow::slotComposeMail() 289void MainWindow::slotComposeMail()
290{ 290{
291 qDebug("not implemented: "); 291 qDebug("not implemented: ");
292} 292}
diff --git a/kmicromail/opiemail.cpp b/kmicromail/opiemail.cpp
index 251f15a..3e560c5 100644
--- a/kmicromail/opiemail.cpp
+++ b/kmicromail/opiemail.cpp
@@ -1,421 +1,422 @@
1// CHANGED 2004-09-31 Lutz Rogowski 1// CHANGED 2004-09-31 Lutz Rogowski
2// CHANGED 2004-08-06 Lutz Rogowski 2// CHANGED 2004-08-06 Lutz Rogowski
3 3
4#include "settingsdialog.h" 4#include "settingsdialog.h"
5#include "opiemail.h" 5#include "opiemail.h"
6#include "editaccounts.h" 6#include "editaccounts.h"
7#include "composemail.h" 7#include "composemail.h"
8#include "mailistviewitem.h" 8#include "mailistviewitem.h"
9#include "viewmail.h" 9#include "viewmail.h"
10#include "selectstore.h" 10#include "selectstore.h"
11#include "selectsmtp.h" 11#include "selectsmtp.h"
12 12
13#include <qmessagebox.h> 13#include <qmessagebox.h>
14 14
15#include <qpe/qpeapplication.h> 15#include <qpe/qpeapplication.h>
16#include <libmailwrapper/smtpwrapper.h> 16#include <libmailwrapper/smtpwrapper.h>
17#include <libmailwrapper/mailtypes.h> 17#include <libmailwrapper/mailtypes.h>
18#include <libmailwrapper/abstractmail.h> 18#include <libmailwrapper/abstractmail.h>
19/* OPIE */ 19/* OPIE */
20//#include <qpe/resource.h> 20//#include <qpe/resource.h>
21//#include <qpe/qpeapplication.h> 21//#include <qpe/qpeapplication.h>
22 22
23/* QT */ 23/* QT */
24 24
25using namespace Opie::Core; 25using namespace Opie::Core;
26 26
27OpieMail::OpieMail( QWidget *parent, const char *name, WFlags flags ) 27OpieMail::OpieMail( QWidget *parent, const char *name, WFlags flags )
28 : MainWindow( parent, name) //, WStyle_ContextHelp ) 28 : MainWindow( parent, name) //, WStyle_ContextHelp )
29{ 29{
30 settings = new Settings(); 30 settings = new Settings();
31 31
32 folderView->populate( settings->getAccounts() ); 32 folderView->populate( settings->getAccounts() );
33 33
34} 34}
35 35
36OpieMail::~OpieMail() 36OpieMail::~OpieMail()
37{ 37{
38 if (settings) delete settings; 38 if (settings) delete settings;
39} 39}
40 40
41void OpieMail::appMessage(const QCString &msg, const QByteArray &data) 41void OpieMail::appMessage(const QCString &msg, const QByteArray &data)
42{ 42{
43 43
44} 44}
45#include <stdlib.h> 45#include <stdlib.h>
46void OpieMail::message(const QCString &msg, const QByteArray &data) 46void OpieMail::message(const QCString &msg, const QByteArray &data)
47{ 47{
48 // copied from old mail2 48 // copied from old mail2
49 static int ii = 0; 49 static int ii = 0;
50 50
51 // block second call 51 // block second call
52 if ( ii < 2 ) { 52 if ( ii < 2 ) {
53 ++ii; 53 ++ii;
54 if ( ii > 1 ) { 54 if ( ii > 1 ) {
55 qDebug("qcop call blocked "); 55 qDebug("qcop call blocked ");
56 return; 56 return;
57 } 57 }
58 } 58 }
59 //qDebug("KM:appMessage %d *%s* %x", ii, msg.data(), this); 59 //qDebug("KM:appMessage %d *%s* %x", ii, msg.data(), this);
60 if (msg == "writeMail(QString,QString)") 60 if (msg == "writeMail(QString,QString)")
61 { 61 {
62 QDataStream stream(data,IO_ReadOnly); 62 QDataStream stream(data,IO_ReadOnly);
63 QString name, email; 63 QString name, email;
64 stream >> name >> email; 64 stream >> name >> email;
65 // removing the whitespaces at beginning and end is needed! 65 // removing the whitespaces at beginning and end is needed!
66 slotwriteMail(name.stripWhiteSpace(),email.stripWhiteSpace()); 66 slotwriteMail(name.stripWhiteSpace(),email.stripWhiteSpace());
67 } 67 }
68 else if (msg == "newMail()") 68 else if (msg == "newMail()")
69 { 69 {
70 slotComposeMail(); 70 slotComposeMail();
71 } 71 }
72 else if (msg == "newMail(QString)") 72 else if (msg == "newMail(QString)")
73 { 73 {
74 QDataStream stream(data,IO_ReadOnly); 74 QDataStream stream(data,IO_ReadOnly);
75 QString nameemail; 75 QString nameemail;
76 stream >> nameemail; 76 stream >> nameemail;
77 // the format is 77 // the format is
78 // NAME <EMAIL>:SUBJECT 78 // NAME <EMAIL>:SUBJECT
79 //qDebug("message %s ", nameemail.latin1()); 79 //qDebug("message %s ", nameemail.latin1());
80 80
81 slotwriteMail2( nameemail ); 81 slotwriteMail2( nameemail );
82 } 82 }
83} 83}
84void OpieMail::slotwriteMail2(const QString& namemail ) 84void OpieMail::slotwriteMail2(const QString& namemail )
85{ 85{
86 // qDebug("OpieMail::slotwriteMail2 "); 86 // qDebug("OpieMail::slotwriteMail2 ");
87 qApp->processEvents(); 87 qApp->processEvents();
88 ComposeMail compose( settings, this, 0, true ); 88 ComposeMail compose( settings, this, 0, true );
89 if ( !namemail.isEmpty() ) { 89 if ( !namemail.isEmpty() ) {
90 QString to = namemail; 90 QString to = namemail;
91 if ( namemail.find( " <") > 1 ) { 91 if ( namemail.find( " <") > 1 ) {
92 to = "\"" +to.replace( QRegExp( " <"), "\" <") ; 92 to = "\"" +to.replace( QRegExp( " <"), "\" <") ;
93 } else 93 } else
94 if ( namemail.find( "<") > 1 ) { 94 if ( namemail.find( "<") > 1 ) {
95 to = "\"" +to.replace( QRegExp( "<"), "\" <") ; 95 to = "\"" +to.replace( QRegExp( "<"), "\" <") ;
96 } 96 }
97 int sub = to.find( ">:"); 97 int sub = to.find( ">:");
98 if ( sub > 0 ) { 98 if ( sub > 0 ) {
99 compose.setTo( to.left(sub+1) ); 99 compose.setTo( to.left(sub+1) );
100 compose.setSubject( to.mid(sub+2) ); 100 compose.setSubject( to.mid(sub+2) );
101 } else 101 } else
102 compose.setTo( to ); 102 compose.setTo( to );
103 } 103 }
104 compose.slotAdjustColumns(); 104 compose.slotAdjustColumns();
105 compose.showMaximized(); 105 compose.showMaximized();
106 compose.exec(); 106 compose.exec();
107 raise();
107 //qDebug("retttich "); 108 //qDebug("retttich ");
108} 109}
109void OpieMail::slotwriteMail(const QString&name,const QString&email) 110void OpieMail::slotwriteMail(const QString&name,const QString&email)
110{ 111{
111 // qDebug("OpieMail::slotwriteMail "); 112 // qDebug("OpieMail::slotwriteMail ");
112 ComposeMail compose( settings, this, 0, true , WStyle_ContextHelp ); 113 ComposeMail compose( settings, this, 0, true , WStyle_ContextHelp );
113 if (!email.isEmpty()) 114 if (!email.isEmpty())
114 { 115 {
115 if (!name.isEmpty()) 116 if (!name.isEmpty())
116 { 117 {
117 compose.setTo("\"" + name + "\"" + " " + "<"+ email + ">"); 118 compose.setTo("\"" + name + "\"" + " " + "<"+ email + ">");
118 } 119 }
119 else 120 else
120 { 121 {
121 compose.setTo(email); 122 compose.setTo(email);
122 } 123 }
123 } 124 }
124 compose.slotAdjustColumns(); 125 compose.slotAdjustColumns();
125 compose.showMaximized(); 126 compose.showMaximized();
126 compose.exec(); 127 compose.exec();
127} 128}
128 129
129void OpieMail::slotComposeMail() 130void OpieMail::slotComposeMail()
130{ 131{
131 slotwriteMail2( QString () ); 132 slotwriteMail2( QString () );
132 //slotwriteMail(0l,0l); 133 //slotwriteMail(0l,0l);
133} 134}
134 135
135void OpieMail::slotSendQueued() 136void OpieMail::slotSendQueued()
136{ 137{
137 SMTPaccount *smtp = 0; 138 SMTPaccount *smtp = 0;
138 139
139 QList<Account> list = settings->getAccounts(); 140 QList<Account> list = settings->getAccounts();
140 QList<SMTPaccount> smtpList; 141 QList<SMTPaccount> smtpList;
141 smtpList.setAutoDelete(false); 142 smtpList.setAutoDelete(false);
142 Account *it; 143 Account *it;
143 for ( it = list.first(); it; it = list.next() ) 144 for ( it = list.first(); it; it = list.next() )
144 { 145 {
145 if ( it->getType() == MAILLIB::A_SMTP ) 146 if ( it->getType() == MAILLIB::A_SMTP )
146 { 147 {
147 smtp = static_cast<SMTPaccount *>(it); 148 smtp = static_cast<SMTPaccount *>(it);
148 smtpList.append(smtp); 149 smtpList.append(smtp);
149 } 150 }
150 } 151 }
151 if (smtpList.count()==0) 152 if (smtpList.count()==0)
152 { 153 {
153 QMessageBox::information(0,tr("Info"),tr("Define a smtp account first!\n")); 154 QMessageBox::information(0,tr("Info"),tr("Define a smtp account first!\n"));
154 return; 155 return;
155 } 156 }
156 if (smtpList.count()==1) 157 if (smtpList.count()==1)
157 { 158 {
158 smtp = smtpList.at(0); 159 smtp = smtpList.at(0);
159 } 160 }
160 else 161 else
161 { 162 {
162 smtp = 0; 163 smtp = 0;
163 selectsmtp selsmtp; 164 selectsmtp selsmtp;
164 selsmtp.setSelectionlist(&smtpList); 165 selsmtp.setSelectionlist(&smtpList);
165 selsmtp.showMaximized(); 166 selsmtp.showMaximized();
166 if ( selsmtp.exec() == QDialog::Accepted ) 167 if ( selsmtp.exec() == QDialog::Accepted )
167 { 168 {
168 smtp = selsmtp.selected_smtp(); 169 smtp = selsmtp.selected_smtp();
169 } 170 }
170 } 171 }
171 if (smtp) 172 if (smtp)
172 { 173 {
173 SMTPwrapper * wrap = new SMTPwrapper(smtp); 174 SMTPwrapper * wrap = new SMTPwrapper(smtp);
174 if ( wrap->flushOutbox() ) 175 if ( wrap->flushOutbox() )
175 { 176 {
176 QMessageBox::information(0,tr("Info"),tr("Mail queue flushed")); 177 QMessageBox::information(0,tr("Info"),tr("Mail queue flushed"));
177 } 178 }
178 delete wrap; 179 delete wrap;
179 } 180 }
180} 181}
181 182
182void OpieMail::slotSearchMails() 183void OpieMail::slotSearchMails()
183{ 184{
184 qDebug("OpieMail::slotSearchMails():not implemented "); 185 qDebug("OpieMail::slotSearchMails():not implemented ");
185} 186}
186 187
187void OpieMail::slotEditSettings() 188void OpieMail::slotEditSettings()
188{ 189{
189 SettingsDialog settingsDialog( this, 0, true, WStyle_ContextHelp ); 190 SettingsDialog settingsDialog( this, 0, true, WStyle_ContextHelp );
190 settingsDialog.showMaximized(); 191 settingsDialog.showMaximized();
191 settingsDialog.exec(); 192 settingsDialog.exec();
192} 193}
193 194
194void OpieMail::slotEditAccounts() 195void OpieMail::slotEditAccounts()
195{ 196{
196 EditAccounts eaDialog( settings, this, 0, true, WStyle_ContextHelp ); 197 EditAccounts eaDialog( settings, this, 0, true, WStyle_ContextHelp );
197 eaDialog.slotAdjustColumns(); 198 eaDialog.slotAdjustColumns();
198 eaDialog.showMaximized(); 199 eaDialog.showMaximized();
199 eaDialog.exec(); 200 eaDialog.exec();
200 if ( settings ) delete settings; 201 if ( settings ) delete settings;
201 settings = new Settings(); 202 settings = new Settings();
202 203
203 folderView->populate( settings->getAccounts() ); 204 folderView->populate( settings->getAccounts() );
204} 205}
205 206
206void OpieMail::displayMail() 207void OpieMail::displayMail()
207{ 208{
208 QListViewItem*item = mailView->currentItem(); 209 QListViewItem*item = mailView->currentItem();
209 if (!item) return; 210 if (!item) return;
210 RecMailP mail = ((MailListViewItem*)item)->data(); 211 RecMailP mail = ((MailListViewItem*)item)->data();
211 RecBodyP body = folderView->fetchBody(mail); 212 RecBodyP body = folderView->fetchBody(mail);
212 ViewMail readMail( this,"", Qt::WType_Modal | WStyle_ContextHelp ); 213 ViewMail readMail( this,"", Qt::WType_Modal | WStyle_ContextHelp );
213 readMail.setBody( body ); 214 readMail.setBody( body );
214 readMail.setMail( mail ); 215 readMail.setMail( mail );
215 readMail.showMaximized(); 216 readMail.showMaximized();
216 readMail.exec(); 217 readMail.exec();
217 218
218 if ( readMail.deleted ) 219 if ( readMail.deleted )
219 { 220 {
220 folderView->refreshCurrent(); 221 folderView->refreshCurrent();
221 } 222 }
222 else 223 else
223 { 224 {
224 ( (MailListViewItem*)item )->setPixmap( 0, QPixmap() ); 225 ( (MailListViewItem*)item )->setPixmap( 0, QPixmap() );
225 } 226 }
226} 227}
227 228
228void OpieMail::slotDeleteMail() 229void OpieMail::slotDeleteMail()
229{ 230{
230 if (!mailView->currentItem()) return; 231 if (!mailView->currentItem()) return;
231 RecMailP mail = ((MailListViewItem*)mailView->currentItem() )->data(); 232 RecMailP mail = ((MailListViewItem*)mailView->currentItem() )->data();
232 if ( QMessageBox::warning(this, tr("Delete Mail"), QString( tr("<p>Do you really want to delete this mail? <br><br>" ) + mail->getFrom() + " - " + mail->getSubject() ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes ) 233 if ( QMessageBox::warning(this, tr("Delete Mail"), QString( tr("<p>Do you really want to delete this mail? <br><br>" ) + mail->getFrom() + " - " + mail->getSubject() ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes )
233 { 234 {
234 mail->Wrapper()->deleteMail( mail ); 235 mail->Wrapper()->deleteMail( mail );
235 folderView->refreshCurrent(); 236 folderView->refreshCurrent();
236 } 237 }
237} 238}
238void OpieMail::slotDeleteAllMail() 239void OpieMail::slotDeleteAllMail()
239{ 240{
240 241
241 QValueList<RecMailP> t; 242 QValueList<RecMailP> t;
242 if ( QMessageBox::warning(this, tr("Delete All Mails"), tr("Do you really want to delete\nall selected mails?" ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes ) 243 if ( QMessageBox::warning(this, tr("Delete All Mails"), tr("Do you really want to delete\nall selected mails?" ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes )
243 { 244 {
244 MailListViewItem* item = (MailListViewItem*)mailView->firstChild (); 245 MailListViewItem* item = (MailListViewItem*)mailView->firstChild ();
245 while ( item ) { 246 while ( item ) {
246 if ( item->isSelected() ) { 247 if ( item->isSelected() ) {
247 t.append( item->data() ); 248 t.append( item->data() );
248 } 249 }
249 item = (MailListViewItem*)item->nextSibling(); 250 item = (MailListViewItem*)item->nextSibling();
250 } 251 }
251 } 252 }
252 else 253 else
253 return; 254 return;
254 if ( t.count() == 0 ) 255 if ( t.count() == 0 )
255 return; 256 return;
256 RecMailP mail = t.first(); 257 RecMailP mail = t.first();
257 mail->Wrapper()->deleteMailList(t); 258 mail->Wrapper()->deleteMailList(t);
258 folderView->refreshCurrent(); 259 folderView->refreshCurrent();
259 260
260 261
261} 262}
262void OpieMail::clearSelection() 263void OpieMail::clearSelection()
263{ 264{
264 mailView->clearSelection(); 265 mailView->clearSelection();
265 266
266} 267}
267 268
268void OpieMail::mailHold(int button, QListViewItem *item,const QPoint&,int ) 269void OpieMail::mailHold(int button, QListViewItem *item,const QPoint&,int )
269{ 270{
270 if (!mailView->currentItem()) return; 271 if (!mailView->currentItem()) return;
271 MAILLIB::ATYPE mailtype = ((MailListViewItem*)mailView->currentItem() )->wrapperType(); 272 MAILLIB::ATYPE mailtype = ((MailListViewItem*)mailView->currentItem() )->wrapperType();
272 /* just the RIGHT button - or hold on pda */ 273 /* just the RIGHT button - or hold on pda */
273 if (button!=2) {return;} 274 if (button!=2) {return;}
274 if (!item) return; 275 if (!item) return;
275 QPopupMenu *m = new QPopupMenu(0); 276 QPopupMenu *m = new QPopupMenu(0);
276 if (m) 277 if (m)
277 { 278 {
278 if (mailtype==MAILLIB::A_NNTP) { 279 if (mailtype==MAILLIB::A_NNTP) {
279 m->insertItem(tr("Read this posting"),this,SLOT(displayMail())); 280 m->insertItem(tr("Read this posting"),this,SLOT(displayMail()));
280// m->insertItem(tr("Copy this posting"),this,SLOT(slotMoveCopyMail())); 281// m->insertItem(tr("Copy this posting"),this,SLOT(slotMoveCopyMail()));
281 } else { 282 } else {
282 if (folderView->currentisDraft()) { 283 if (folderView->currentisDraft()) {
283 m->insertItem(tr("Edit this mail"),this,SLOT(reEditMail())); 284 m->insertItem(tr("Edit this mail"),this,SLOT(reEditMail()));
284 } 285 }
285 m->insertItem(tr("Read this mail"),this,SLOT(displayMail())); 286 m->insertItem(tr("Read this mail"),this,SLOT(displayMail()));
286 m->insertItem(tr("Move/Copy this mail"),this,SLOT(slotMoveCopyMail())); 287 m->insertItem(tr("Move/Copy this mail"),this,SLOT(slotMoveCopyMail()));
287 m->insertItem(tr("Delete this mail"),this,SLOT(slotDeleteMail())); 288 m->insertItem(tr("Delete this mail"),this,SLOT(slotDeleteMail()));
288 m->insertSeparator(); 289 m->insertSeparator();
289 m->insertItem(tr("Move/Copy all selected mail"),this,SLOT(slotMoveCopyAllMail())); 290 m->insertItem(tr("Move/Copy all selected mail"),this,SLOT(slotMoveCopyAllMail()));
290 m->insertItem(tr("Delete all selected mails"),this,SLOT(slotDeleteAllMail())); 291 m->insertItem(tr("Delete all selected mails"),this,SLOT(slotDeleteAllMail()));
291 m->insertItem(tr("Clear selection"),this,SLOT(clearSelection())); 292 m->insertItem(tr("Clear selection"),this,SLOT(clearSelection()));
292 } 293 }
293 m->setFocus(); 294 m->setFocus();
294 m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y()) ); 295 m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y()) );
295 delete m; 296 delete m;
296 } 297 }
297} 298}
298 299
299void OpieMail::slotShowFolders( bool show ) 300void OpieMail::slotShowFolders( bool show )
300{ 301{
301 if ( show && folderView->isHidden() ) 302 if ( show && folderView->isHidden() )
302 { 303 {
303 folderView->show(); 304 folderView->show();
304 } 305 }
305 else if ( !show && !folderView->isHidden() ) 306 else if ( !show && !folderView->isHidden() )
306 { 307 {
307 folderView->hide(); 308 folderView->hide();
308 } 309 }
309} 310}
310 311
311void OpieMail::refreshMailView(const QValueList<RecMailP>&list) 312void OpieMail::refreshMailView(const QValueList<RecMailP>&list)
312{ 313{
313 MailListViewItem*item = 0; 314 MailListViewItem*item = 0;
314 mailView->clear(); 315 mailView->clear();
315 316
316 QValueList<RecMailP>::ConstIterator it; 317 QValueList<RecMailP>::ConstIterator it;
317 for (it = list.begin(); it != list.end();++it) 318 for (it = list.begin(); it != list.end();++it)
318 { 319 {
319 item = new MailListViewItem(mailView,item); 320 item = new MailListViewItem(mailView,item);
320 item->storeData((*it)); 321 item->storeData((*it));
321 item->showEntry(); 322 item->showEntry();
322 } 323 }
323} 324}
324 325
325void OpieMail::mailLeftClicked( QListViewItem *item ) 326void OpieMail::mailLeftClicked( QListViewItem *item )
326{ 327{
327 mailView->clearSelection(); 328 mailView->clearSelection();
328 /* just LEFT button - or tap with stylus on pda */ 329 /* just LEFT button - or tap with stylus on pda */
329 //if (button!=1) return; 330 //if (button!=1) return;
330 if (!item) return; 331 if (!item) return;
331 if (folderView->currentisDraft()) { 332 if (folderView->currentisDraft()) {
332 reEditMail(); 333 reEditMail();
333 } else { 334 } else {
334 displayMail(); 335 displayMail();
335 } 336 }
336} 337}
337 338
338void OpieMail::slotMoveCopyMail() 339void OpieMail::slotMoveCopyMail()
339{ 340{
340 if (!mailView->currentItem()) return; 341 if (!mailView->currentItem()) return;
341 RecMailP mail = ((MailListViewItem*)mailView->currentItem() )->data(); 342 RecMailP mail = ((MailListViewItem*)mailView->currentItem() )->data();
342 AbstractMail*targetMail = 0; 343 AbstractMail*targetMail = 0;
343 QString targetFolder = ""; 344 QString targetFolder = "";
344 Selectstore sels; 345 Selectstore sels;
345 folderView->setupFolderselect(&sels); 346 folderView->setupFolderselect(&sels);
346 if (!sels.exec()) return; 347 if (!sels.exec()) return;
347 targetMail = sels.currentMail(); 348 targetMail = sels.currentMail();
348 targetFolder = sels.currentFolder(); 349 targetFolder = sels.currentFolder();
349 if ( (mail->Wrapper()==targetMail && mail->getMbox()==targetFolder) || 350 if ( (mail->Wrapper()==targetMail && mail->getMbox()==targetFolder) ||
350 targetFolder.isEmpty()) 351 targetFolder.isEmpty())
351 { 352 {
352 return; 353 return;
353 } 354 }
354 if (sels.newFolder() && !targetMail->createMbox(targetFolder)) 355 if (sels.newFolder() && !targetMail->createMbox(targetFolder))
355 { 356 {
356 QMessageBox::critical(0,tr("Error creating new Folder"), 357 QMessageBox::critical(0,tr("Error creating new Folder"),
357 tr("<center>Error while creating<br>new folder - breaking.</center>")); 358 tr("<center>Error while creating<br>new folder - breaking.</center>"));
358 return; 359 return;
359 } 360 }
360 sels.hide(); 361 sels.hide();
361 qApp->processEvents(); 362 qApp->processEvents();
362 // qDebug("hiding sels "); 363 // qDebug("hiding sels ");
363 mail->Wrapper()->mvcpMail(mail,targetFolder,targetMail,sels.moveMails()); 364 mail->Wrapper()->mvcpMail(mail,targetFolder,targetMail,sels.moveMails());
364 folderView->refreshCurrent(); 365 folderView->refreshCurrent();
365} 366}
366 367
367void OpieMail::slotMoveCopyAllMail() 368void OpieMail::slotMoveCopyAllMail()
368{ 369{
369 370
370 if (!mailView->currentItem()) return; 371 if (!mailView->currentItem()) return;
371 QValueList<RecMailP> t; 372 QValueList<RecMailP> t;
372 // if ( QMessageBox::warning(this, tr("Move/Copy all selected mails"), tr("Do you really want to copy/move\nall selected mails?" ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes ) 373 // if ( QMessageBox::warning(this, tr("Move/Copy all selected mails"), tr("Do you really want to copy/move\nall selected mails?" ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes )
373 { 374 {
374 MailListViewItem* item = (MailListViewItem*)mailView->firstChild (); 375 MailListViewItem* item = (MailListViewItem*)mailView->firstChild ();
375 while ( item ) { 376 while ( item ) {
376 if ( item->isSelected() ) { 377 if ( item->isSelected() ) {
377 t.append( item->data() ); 378 t.append( item->data() );
378 } 379 }
379 item = (MailListViewItem*)item->nextSibling(); 380 item = (MailListViewItem*)item->nextSibling();
380 } 381 }
381 } 382 }
382 // else 383 // else
383 // return; 384 // return;
384 if ( t.count() == 0 ) 385 if ( t.count() == 0 )
385 return; 386 return;
386 RecMailP mail = t.first(); 387 RecMailP mail = t.first();
387 AbstractMail*targetMail = 0; 388 AbstractMail*targetMail = 0;
388 QString targetFolder = ""; 389 QString targetFolder = "";
389 Selectstore sels; 390 Selectstore sels;
390 folderView->setupFolderselect(&sels); 391 folderView->setupFolderselect(&sels);
391 if (!sels.exec()) return; 392 if (!sels.exec()) return;
392 targetMail = sels.currentMail(); 393 targetMail = sels.currentMail();
393 targetFolder = sels.currentFolder(); 394 targetFolder = sels.currentFolder();
394 if ( (mail->Wrapper()==targetMail && mail->getMbox()==targetFolder) || 395 if ( (mail->Wrapper()==targetMail && mail->getMbox()==targetFolder) ||
395 targetFolder.isEmpty()) 396 targetFolder.isEmpty())
396 { 397 {
397 return; 398 return;
398 } 399 }
399 if (sels.newFolder() && !targetMail->createMbox(targetFolder)) 400 if (sels.newFolder() && !targetMail->createMbox(targetFolder))
400 { 401 {
401 QMessageBox::critical(0,tr("Error creating new Folder"), 402 QMessageBox::critical(0,tr("Error creating new Folder"),
402 tr("<center>Error while creating<br>new folder - breaking.</center>")); 403 tr("<center>Error while creating<br>new folder - breaking.</center>"));
403 return; 404 return;
404 } 405 }
405 sels.hide(); 406 sels.hide();
406 qApp->processEvents(); 407 qApp->processEvents();
407 //qDebug("hiding sels "); 408 //qDebug("hiding sels ");
408 mail->Wrapper()->mvcpMailList(t,targetFolder,targetMail,sels.moveMails()); 409 mail->Wrapper()->mvcpMailList(t,targetFolder,targetMail,sels.moveMails());
409 folderView->refreshCurrent(); 410 folderView->refreshCurrent();
410} 411}
411 412
412void OpieMail::reEditMail() 413void OpieMail::reEditMail()
413{ 414{
414 if (!mailView->currentItem()) return; 415 if (!mailView->currentItem()) return;
415 416
416 ComposeMail compose( settings, this, 0, true , WStyle_ContextHelp ); 417 ComposeMail compose( settings, this, 0, true , WStyle_ContextHelp );
417 compose.reEditMail(((MailListViewItem*)mailView->currentItem() )->data()); 418 compose.reEditMail(((MailListViewItem*)mailView->currentItem() )->data());
418 compose.slotAdjustColumns(); 419 compose.slotAdjustColumns();
419 compose.showMaximized(); 420 compose.showMaximized();
420 compose.exec(); 421 compose.exec();
421} 422}