summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--bin/kdepim/WhatsNew.txt1
-rw-r--r--kmicromail/composemail.cpp5
-rw-r--r--kmicromail/mailistviewitem.cpp3
-rw-r--r--kmicromail/mailistviewitem.h4
-rw-r--r--kmicromail/mainwindow.cpp16
-rw-r--r--kmicromail/mainwindow.h4
6 files changed, 20 insertions, 13 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt
index 6e8a8a7..761fcf7 100644
--- a/bin/kdepim/WhatsNew.txt
+++ b/bin/kdepim/WhatsNew.txt
@@ -1,56 +1,57 @@
1Info about the changes in new versions of KDE-Pim/Pi 1Info about the changes in new versions of KDE-Pim/Pi
2 2
3********** VERSION 2.2.3 ************ 3********** VERSION 2.2.3 ************
4 4
5KO/Pi: 5KO/Pi:
6Fixed a problem with (non empty) exception dates in the exception date edit dialog of recurring events for newly created events. 6Fixed a problem with (non empty) exception dates in the exception date edit dialog of recurring events for newly created events.
7 7
8Fixed usability problem in KA/Pi: 8Fixed usability problem in KA/Pi:
9Now searching works for "all phone numbers and all addresses" if "all fields" is selected as search option. 9Now searching works for "all phone numbers and all addresses" if "all fields" is selected as search option.
10 10
11Changed some behaviour in OM/Pi mail management to make it more usable.
11 12
12 13
13********** VERSION 2.2.2 ************ 14********** VERSION 2.2.2 ************
14 15
15KO/Pi: 16KO/Pi:
16Fixed a problem with the sort order of last modified date in list view. 17Fixed a problem with the sort order of last modified date in list view.
17KA/Pi: 18KA/Pi:
18Fixed a resource config read problem on windows. 19Fixed a resource config read problem on windows.
19 20
20 21
21********** VERSION 2.2.1 ************ 22********** VERSION 2.2.1 ************
22 23
23KO/Pi: 24KO/Pi:
24Fixed a problem displaying very long allday events in agenda view in single day mode. 25Fixed a problem displaying very long allday events in agenda view in single day mode.
25Fixed a problem with the default settings for new todos. 26Fixed a problem with the default settings for new todos.
26Added an error message dialog if saving of calendar files is not possible. 27Added an error message dialog if saving of calendar files is not possible.
27Made it impossible to close KO/Pi if saving fails. 28Made it impossible to close KO/Pi if saving fails.
28Fixed a problem adding calendars on windows such that these calendars can be used on the memory stick. 29Fixed a problem adding calendars on windows such that these calendars can be used on the memory stick.
29Added config options for conflict detection. 30Added config options for conflict detection.
30 31
31KA/Pi: 32KA/Pi:
32Added a config option to turn on asking before a contact is deleted. 33Added a config option to turn on asking before a contact is deleted.
33Fixed a problem with the default view and view selection at startup. 34Fixed a problem with the default view and view selection at startup.
34Formatted name is now set on import, if formatted name is empty. 35Formatted name is now set on import, if formatted name is empty.
35Fixed a problem of displaying images in the contact details view: 36Fixed a problem of displaying images in the contact details view:
36Now the wid/hei ratio is not changed. 37Now the wid/hei ratio is not changed.
37I a picture is larger than 128 pixels in wid or hei it is downscaled to 38I a picture is larger than 128 pixels in wid or hei it is downscaled to
38max 128 pixels wid/hei. 39max 128 pixels wid/hei.
39 40
40********** VERSION 2.2.0 ************ 41********** VERSION 2.2.0 ************
41 42
42New stable release! 43New stable release!
43Fixed some minor usability problems. 44Fixed some minor usability problems.
44Added writing of next alarm to a file for usage on pdaXrom. 45Added writing of next alarm to a file for usage on pdaXrom.
45 46
46 47
47************************************* 48*************************************
48 49
49You can find the complete changelog 50You can find the complete changelog
50from version 1.7.7 to 2.2.0 51from version 1.7.7 to 2.2.0
51in the source package or on 52in the source package or on
52 53
53http://www.pi-sync.net/html/changelog.html 54http://www.pi-sync.net/html/changelog.html
54 55
55 56
56 57
diff --git a/kmicromail/composemail.cpp b/kmicromail/composemail.cpp
index 7b609fc..4bc4441 100644
--- a/kmicromail/composemail.cpp
+++ b/kmicromail/composemail.cpp
@@ -1,322 +1,323 @@
1// CHANGED 2004-08-06 Lutz Rogowski 1// CHANGED 2004-08-06 Lutz Rogowski
2 2
3 3
4#ifdef DESKTOP_VERSION 4#ifdef DESKTOP_VERSION
5#include <qapplication.h> 5#include <qapplication.h>
6#include <kabc/addresseedialog.h> 6#include <kabc/addresseedialog.h>
7#include <kabc/stdaddressbook.h> 7#include <kabc/stdaddressbook.h>
8#include <kabc/addressee.h> 8#include <kabc/addressee.h>
9#else 9#else
10#include <qpe/qpeapplication.h> 10#include <qpe/qpeapplication.h>
11#endif //DESKTOP_VERSION 11#endif //DESKTOP_VERSION
12#include <libkdepim/externalapphandler.h> 12#include <libkdepim/externalapphandler.h>
13 13
14#include "koprefs.h" 14#include "koprefs.h"
15#include <klocale.h> 15#include <klocale.h>
16#include <kglobal.h> 16#include <kglobal.h>
17 17
18#ifdef MINIKDE_KDIALOG_H 18#ifdef MINIKDE_KDIALOG_H
19#undef MINIKDE_KDIALOG_H 19#undef MINIKDE_KDIALOG_H
20#endif 20#endif
21 21
22 22
23#include "composemail.h" 23#include "composemail.h"
24 24
25#include <libmailwrapper/smtpwrapper.h> 25#include <libmailwrapper/smtpwrapper.h>
26#include <libmailwrapper/storemail.h> 26#include <libmailwrapper/storemail.h>
27#include <libmailwrapper/abstractmail.h> 27#include <libmailwrapper/abstractmail.h>
28#include <libmailwrapper/mailtypes.h> 28#include <libmailwrapper/mailtypes.h>
29 29
30/* OPIE */ 30/* OPIE */
31//#include <opie2/ofiledialog.h> 31//#include <opie2/ofiledialog.h>
32//#include <opie2/odebug.h> 32//#include <opie2/odebug.h>
33#include <kfiledialog.h> 33#include <kfiledialog.h>
34//#include <qpe/resource.h> 34//#include <qpe/resource.h>
35#include <qpe/global.h> 35#include <qpe/global.h>
36//#include <qpe/contact.h> 36//#include <qpe/contact.h>
37 37
38 38
39#include <qcombobox.h> 39#include <qcombobox.h>
40#include <qcheckbox.h> 40#include <qcheckbox.h>
41#include <qiconset.h> 41#include <qiconset.h>
42#include <qtimer.h> 42#include <qtimer.h>
43#include <qmessagebox.h> 43#include <qmessagebox.h>
44#include <qpushbutton.h> 44#include <qpushbutton.h>
45#include <qmultilineedit.h> 45#include <qmultilineedit.h>
46#include <qlabel.h> 46#include <qlabel.h>
47#include <qtabwidget.h> 47#include <qtabwidget.h>
48#include <qlistview.h> 48#include <qlistview.h>
49 49
50//using namespace Opie::Core; 50//using namespace Opie::Core;
51//using namespace Opie::Ui; 51//using namespace Opie::Ui;
52ComposeMail::ComposeMail( Settings *sett, QWidget *parent, const char *name, bool modal ) 52ComposeMail::ComposeMail( Settings *sett, QWidget *parent, const char *name, bool modal )
53 : ComposeMailUI( parent, name, modal ) 53 : ComposeMailUI( parent, name, modal )
54{ 54{
55 55
56 topLevelWidget()->setCaption( i18n("Compose mail - Click OK to send ->") );
56 mPickLineEdit = 0; 57 mPickLineEdit = 0;
57 mEncoding = KOPrefs::instance()->mCurrentCodeName; 58 mEncoding = KOPrefs::instance()->mCurrentCodeName;
58 //managed from opiemail now 59 //managed from opiemail now
59 //connect(ExternalAppHandler::instance(), SIGNAL(receivedNameEmailUidListEvent(const QString&, const QStringList&, const QStringList&, const QStringList&)), 60 //connect(ExternalAppHandler::instance(), SIGNAL(receivedNameEmailUidListEvent(const QString&, const QStringList&, const QStringList&, const QStringList&)),
60 // this, SLOT(insertAttendees(const QString&, const QStringList&, const QStringList&, const QStringList&))); 61 // this, SLOT(insertAttendees(const QString&, const QStringList&, const QStringList&, const QStringList&)));
61 settings = sett; 62 settings = sett;
62 m_replyid = ""; 63 m_replyid = "";
63 if ( KOPrefs::instance()->mUseKapi) { 64 if ( KOPrefs::instance()->mUseKapi) {
64 KConfig config( locateLocal("config", "kabcrc") ); 65 KConfig config( locateLocal("config", "kabcrc") );
65 config.setGroup( "General" ); 66 config.setGroup( "General" );
66 QString whoami_uid = config.readEntry( "WhoAmI" ); 67 QString whoami_uid = config.readEntry( "WhoAmI" );
67 68
68 if ( whoami_uid.isEmpty() ) { 69 if ( whoami_uid.isEmpty() ) {
69 QMessageBox::information( 0, i18n( "Hint" ), 70 QMessageBox::information( 0, i18n( "Hint" ),
70 i18n( "Please apply\n\"Set Who Am I\"\nin KA/Pi to get the from\nfield automatically filled out!\n" ), 71 i18n( "Please apply\n\"Set Who Am I\"\nin KA/Pi to get the from\nfield automatically filled out!\n" ),
71 i18n( "Ok" ) ); 72 i18n( "Ok" ) );
72 73
73 74
74 fillSettings(); 75 fillSettings();
75 } else 76 } else
76 ExternalAppHandler::instance()->requestDetailsFromKAPI("", "sendbacklist", whoami_uid); 77 ExternalAppHandler::instance()->requestDetailsFromKAPI("", "sendbacklist", whoami_uid);
77 78
78 79
79#ifdef DESKTOP_VERSION 80#ifdef DESKTOP_VERSION
80 KABC::Addressee con = KABC::StdAddressBook::self()->whoAmI( ); 81 KABC::Addressee con = KABC::StdAddressBook::self()->whoAmI( );
81 QStringList mails = con.emails(); 82 QStringList mails = con.emails();
82 QString defmail = con.preferredEmail(); 83 QString defmail = con.preferredEmail();
83 if ( mails.count() == 0) 84 if ( mails.count() == 0)
84 QMessageBox::information( 0, i18n( "Hint" ), 85 QMessageBox::information( 0, i18n( "Hint" ),
85 i18n( "Please apply\n\"Set Who Am I\"\nin KA/Pi to get the from\nfield automatically filled out!\n" ), 86 i18n( "Please apply\n\"Set Who Am I\"\nin KA/Pi to get the from\nfield automatically filled out!\n" ),
86 i18n( "Ok" ) ); 87 i18n( "Ok" ) );
87 if (defmail.length()!=0) { 88 if (defmail.length()!=0) {
88 fromBox->insertItem(defmail); 89 fromBox->insertItem(defmail);
89 } 90 }
90 QStringList::ConstIterator sit = mails.begin(); 91 QStringList::ConstIterator sit = mails.begin();
91 for (;sit!=mails.end();++sit) { 92 for (;sit!=mails.end();++sit) {
92 if ( (*sit)==defmail) 93 if ( (*sit)==defmail)
93 continue; 94 continue;
94 fromBox->insertItem((*sit)); 95 fromBox->insertItem((*sit));
95 } 96 }
96 senderNameEdit->setText(con.formattedName()); 97 senderNameEdit->setText(con.formattedName());
97#endif 98#endif
98 99
99 } else { 100 } else {
100 fillSettings(); 101 fillSettings();
101 } 102 }
102 checkBoxLater->setChecked( KOPrefs::instance()->mSendLater ); 103 checkBoxLater->setChecked( KOPrefs::instance()->mSendLater );
103 104
104 attList->addColumn( i18n( "Name" ) ); 105 attList->addColumn( i18n( "Name" ) );
105 attList->addColumn( i18n( "Size" ) ); 106 attList->addColumn( i18n( "Size" ) );
106 QList<Account> accounts = settings->getAccounts(); 107 QList<Account> accounts = settings->getAccounts();
107 108
108 if ( QApplication::desktop()->width() < 320 ) 109 if ( QApplication::desktop()->width() < 320 )
109 smtpAccountBox->setMaximumWidth( 80 ); 110 smtpAccountBox->setMaximumWidth( 80 );
110 Account *it; 111 Account *it;
111 for ( it = accounts.first(); it; it = accounts.next() ) { 112 for ( it = accounts.first(); it; it = accounts.next() ) {
112 if ( it->getType()==MAILLIB::A_SMTP ) { 113 if ( it->getType()==MAILLIB::A_SMTP ) {
113 SMTPaccount *smtp = static_cast<SMTPaccount *>(it); 114 SMTPaccount *smtp = static_cast<SMTPaccount *>(it);
114 smtpAccountBox->insertItem( smtp->getAccountName() ); 115 smtpAccountBox->insertItem( smtp->getAccountName() );
115 smtpAccounts.append( smtp ); 116 smtpAccounts.append( smtp );
116 } 117 }
117 } 118 }
118 connect( toButton, SIGNAL( clicked() ), SLOT( pickAddressTo() ) ); 119 connect( toButton, SIGNAL( clicked() ), SLOT( pickAddressTo() ) );
119 connect( ccButton, SIGNAL( clicked() ), SLOT( pickAddressCC() ) ); 120 connect( ccButton, SIGNAL( clicked() ), SLOT( pickAddressCC() ) );
120 connect( bccButton, SIGNAL( clicked() ), SLOT( pickAddressBCC() ) ); 121 connect( bccButton, SIGNAL( clicked() ), SLOT( pickAddressBCC() ) );
121 connect( replyButton, SIGNAL( clicked() ), SLOT( pickAddressReply() ) ); 122 connect( replyButton, SIGNAL( clicked() ), SLOT( pickAddressReply() ) );
122 connect( addButton, SIGNAL( clicked() ), SLOT( addAttachment() ) ); 123 connect( addButton, SIGNAL( clicked() ), SLOT( addAttachment() ) );
123 connect( deleteButton, SIGNAL( clicked() ), SLOT( removeAttachment() ) ); 124 connect( deleteButton, SIGNAL( clicked() ), SLOT( removeAttachment() ) );
124 connect( SaveButton, SIGNAL( clicked() ), SLOT( saveAsDraft()) ); 125 connect( SaveButton, SIGNAL( clicked() ), SLOT( saveAsDraft()) );
125 mMail = 0; 126 mMail = 0;
126 warnAttach = true; 127 warnAttach = true;
127 QIconSet icon; 128 QIconSet icon;
128 //icon = SmallIcon("fileexport"); 129 //icon = SmallIcon("fileexport");
129 icon = SmallIcon("filesave"); 130 icon = SmallIcon("filesave");
130 SaveButton->setIconSet (icon ) ; 131 SaveButton->setIconSet (icon ) ;
131 if ( QApplication::desktop()->width() < 320 ) { 132 if ( QApplication::desktop()->width() < 320 ) {
132 SaveButton->setText ("") ; 133 SaveButton->setText ("") ;
133 SaveButton->setMaximumSize ( SaveButton->sizeHint().height(),SaveButton->sizeHint().height()) ; 134 SaveButton->setMaximumSize ( SaveButton->sizeHint().height(),SaveButton->sizeHint().height()) ;
134 } 135 }
135 else 136 else
136 SaveButton->setText (i18n("Save")); 137 SaveButton->setText (i18n("Save"));
137#ifndef DESKTOP_VERSION 138#ifndef DESKTOP_VERSION
138 QPEApplication::setStylusOperation( message, QPEApplication::RightOnHold ); 139 QPEApplication::setStylusOperation( message, QPEApplication::RightOnHold );
139 QPEApplication::setStylusOperation( senderNameEdit, QPEApplication::RightOnHold ); 140 QPEApplication::setStylusOperation( senderNameEdit, QPEApplication::RightOnHold );
140 QPEApplication::setStylusOperation( subjectLine, QPEApplication::RightOnHold ); 141 QPEApplication::setStylusOperation( subjectLine, QPEApplication::RightOnHold );
141#endif 142#endif
142 message->setFont ( KOPrefs::instance()->mComposeFont ); 143 message->setFont ( KOPrefs::instance()->mComposeFont );
143 message->setWordWrap (QMultiLineEdit::WidgetWidth); 144 message->setWordWrap (QMultiLineEdit::WidgetWidth);
144 if ( smtpAccounts.count() > 0 ) { 145 if ( smtpAccounts.count() > 0 ) {
145 fillValues( smtpAccountBox->currentItem() ); 146 fillValues( smtpAccountBox->currentItem() );
146 } else { 147 } else {
147 QMessageBox::information( 0, i18n( "Problem" ), 148 QMessageBox::information( 0, i18n( "Problem" ),
148 i18n( "Please create an\nSMTP account first.\nThe SMTP is needed\nfor sending mail.\n" ), 149 i18n( "Please create an\nSMTP account first.\nThe SMTP is needed\nfor sending mail.\n" ),
149 i18n( "Ok" ) ); 150 i18n( "Ok" ) );
150 return; 151 return;
151 } 152 }
152 connect( smtpAccountBox, SIGNAL( activated(int) ), SLOT( fillValues(int) ) ); 153 connect( smtpAccountBox, SIGNAL( activated(int) ), SLOT( fillValues(int) ) );
153 connect( SaveSigButton, SIGNAL( clicked() ), SLOT( saveSig()) ); 154 connect( SaveSigButton, SIGNAL( clicked() ), SLOT( saveSig()) );
154 if ( smtpAccountBox->count()) 155 if ( smtpAccountBox->count())
155 fillValues(0); 156 fillValues(0);
156#ifdef DESKTOP_VERSION 157#ifdef DESKTOP_VERSION
157 if ( QApplication::desktop()->width() <= 800 ) { 158 if ( QApplication::desktop()->width() <= 800 ) {
158 resize( QApplication::desktop()->size() ); 159 resize( QApplication::desktop()->size() );
159 } else 160 } else
160 resize( 800, 600 ); 161 resize( 800, 600 );
161 if ( QApplication::desktop()->width() >= 640 ) 162 if ( QApplication::desktop()->width() >= 640 )
162 senderNameEdit->setFixedWidth( 200 ); 163 senderNameEdit->setFixedWidth( 200 );
163#endif 164#endif
164} 165}
165 166
166void ComposeMail::fillSettings() 167void ComposeMail::fillSettings()
167{ 168{
168 if ( QApplication::desktop()->width() < 320 ) 169 if ( QApplication::desktop()->width() < 320 )
169 fromBox->setMaximumWidth( 100 ); 170 fromBox->setMaximumWidth( 100 );
170 QStringList mailList = QStringList::split(";",KOPrefs::instance()->mEmail); 171 QStringList mailList = QStringList::split(";",KOPrefs::instance()->mEmail);
171 QStringList::ConstIterator sit = mailList.begin(); 172 QStringList::ConstIterator sit = mailList.begin();
172 int pref = 0; 173 int pref = 0;
173 for (;sit!=mailList.end();++sit) { 174 for (;sit!=mailList.end();++sit) {
174 fromBox->insertItem((*sit)); 175 fromBox->insertItem((*sit));
175 } 176 }
176 senderNameEdit->setText(KOPrefs::instance()->mName); 177 senderNameEdit->setText(KOPrefs::instance()->mName);
177} 178}
178void ComposeMail::saveSig() 179void ComposeMail::saveSig()
179{ 180{
180 if ( smtpAccountBox->count()) { 181 if ( smtpAccountBox->count()) {
181 int cur = smtpAccountBox->currentItem (); 182 int cur = smtpAccountBox->currentItem ();
182 SMTPaccount *smtp = smtpAccounts.at( cur ); 183 SMTPaccount *smtp = smtpAccounts.at( cur );
183 if ( smtp ) 184 if ( smtp )
184 smtp->setSignature( sigMultiLine->text()); 185 smtp->setSignature( sigMultiLine->text());
185 } 186 }
186} 187}
187void ComposeMail::saveAsDraft() 188void ComposeMail::saveAsDraft()
188{ 189{
189 190
190 Opie::Core::OSmartPointer<Mail> mail= new Mail(); 191 Opie::Core::OSmartPointer<Mail> mail= new Mail();
191 mail->setMail(fromBox->currentText()); 192 mail->setMail(fromBox->currentText());
192 mail->setTo( toLine->text() ); 193 mail->setTo( toLine->text() );
193 mail->setName(senderNameEdit->text()); 194 mail->setName(senderNameEdit->text());
194 mail->setCC( ccLine->text() ); 195 mail->setCC( ccLine->text() );
195 mail->setBCC( bccLine->text() ); 196 mail->setBCC( bccLine->text() );
196 mail->setReply( replyLine->text() ); 197 mail->setReply( replyLine->text() );
197 mail->setSubject( subjectLine->text() ); 198 mail->setSubject( subjectLine->text() );
198 if (!m_replyid.isEmpty()) { 199 if (!m_replyid.isEmpty()) {
199 QStringList ids; 200 QStringList ids;
200 ids.append(m_replyid); 201 ids.append(m_replyid);
201 mail->setInreply(ids); 202 mail->setInreply(ids);
202 } 203 }
203 QString txt = message->text(); 204 QString txt = message->text();
204 if ( !sigMultiLine->text().isEmpty() ) { 205 if ( !sigMultiLine->text().isEmpty() ) {
205 txt.append( "\n--\n" ); 206 txt.append( "\n--\n" );
206 txt.append( sigMultiLine->text() ); 207 txt.append( sigMultiLine->text() );
207 } 208 }
208 mail->setMessage( txt ); 209 mail->setMessage( txt );
209 mail->setCharset (mEncoding); 210 mail->setCharset (mEncoding);
210 /* only use the default drafts folder name! */ 211 /* only use the default drafts folder name! */
211 Storemail wrapper(AbstractMail::draftFolder()); 212 Storemail wrapper(AbstractMail::draftFolder());
212 wrapper.storeMail(mail); 213 wrapper.storeMail(mail);
213 214
214 AttachViewItem *it = (AttachViewItem *) attList->firstChild(); 215 AttachViewItem *it = (AttachViewItem *) attList->firstChild();
215 /* attachments we will ignore! */ 216 /* attachments we will ignore! */
216 if ( it != 0 ) { 217 if ( it != 0 ) {
217 if ( warnAttach ) 218 if ( warnAttach )
218 QMessageBox::warning(0,i18n("Store message"), 219 QMessageBox::warning(0,i18n("Store message"),
219 i18n("<center>Attachments will not be stored in \"Draft\" folder</center>")); 220 i18n("<center>Attachments will not be stored in \"Draft\" folder</center>"));
220 warnAttach = false; 221 warnAttach = false;
221 } 222 }
222 setStatus( i18n("Mail saved as draft!") ); 223 setStatus( i18n("Mail saved as draft!") );
223} 224}
224void ComposeMail::clearStatus() 225void ComposeMail::clearStatus()
225{ 226{
226 topLevelWidget()->setCaption( i18n("Compose mail") ); 227 topLevelWidget()->setCaption( i18n("Compose mail - Click OK to send ->") );
227} 228}
228void ComposeMail::setStatus( QString status ) 229void ComposeMail::setStatus( QString status )
229{ 230{
230 topLevelWidget()->setCaption( status ); 231 topLevelWidget()->setCaption( status );
231 QTimer::singleShot ( 10000, this, SLOT( clearStatus() ) ) ; 232 QTimer::singleShot ( 10000, this, SLOT( clearStatus() ) ) ;
232} 233}
233void ComposeMail::pickAddress( ) 234void ComposeMail::pickAddress( )
234{ 235{
235 236
236 QLineEdit *line = mPickLineEdit; 237 QLineEdit *line = mPickLineEdit;
237 if ( line == 0 ) 238 if ( line == 0 )
238 return; 239 return;
239#ifdef DESKTOP_VERSION 240#ifdef DESKTOP_VERSION
240 //qDebug(" ComposeMail::pickAddress "); 241 //qDebug(" ComposeMail::pickAddress ");
241 QString names ;//= AddressPicker::getNames(); 242 QString names ;//= AddressPicker::getNames();
242 243
243 KABC::Addressee::List list = KABC::AddresseeDialog::getAddressees(this); 244 KABC::Addressee::List list = KABC::AddresseeDialog::getAddressees(this);
244 uint i=0; 245 uint i=0;
245 for (i=0; i < list.count(); i++) { 246 for (i=0; i < list.count(); i++) {
246 if ( !list[i].preferredEmail().isEmpty()) { 247 if ( !list[i].preferredEmail().isEmpty()) {
247 if ( ! names.isEmpty() ) 248 if ( ! names.isEmpty() )
248 names+= ","; 249 names+= ",";
249 names+= "\""+list[i].realName() +"\"<" +list[i].preferredEmail() +">"; 250 names+= "\""+list[i].realName() +"\"<" +list[i].preferredEmail() +">";
250 251
251 } 252 }
252 } 253 }
253 254
254 255
255 if ( line->text().isEmpty() ) { 256 if ( line->text().isEmpty() ) {
256 line->setText( names ); 257 line->setText( names );
257 } else if ( !names.isEmpty() ) { 258 } else if ( !names.isEmpty() ) {
258 line->setText( line->text() + ", " + names ); 259 line->setText( line->text() + ", " + names );
259 } 260 }
260#else 261#else
261 bool res = ExternalAppHandler::instance()->requestNameEmailUidListFromKAPI("QPE/Application/ompi", this->name() /* name is here the unique uid*/); 262 bool res = ExternalAppHandler::instance()->requestNameEmailUidListFromKAPI("QPE/Application/ompi", this->name() /* name is here the unique uid*/);
262 // the result should now arrive through method insertAttendees 263 // the result should now arrive through method insertAttendees
263#endif 264#endif
264} 265}
265//the map includes name/email pairs, that comes from Ka/Pi 266//the map includes name/email pairs, that comes from Ka/Pi
266void ComposeMail::insertAttendees(const QString& uid,const QStringList& nameList,const QStringList& emailList,const QStringList& uidList) 267void ComposeMail::insertAttendees(const QString& uid,const QStringList& nameList,const QStringList& emailList,const QStringList& uidList)
267{ 268{
268 //qDebug("ComposeMail::insertAttendees "); 269 //qDebug("ComposeMail::insertAttendees ");
269 raise(); 270 raise();
270 271
271 QString UID = uid; 272 QString UID = uid;
272 if ( uid.left( 18 ) == (this->name() +QString("pick2")) ) { 273 if ( uid.left( 18 ) == (this->name() +QString("pick2")) ) {
273 mPickLineEdit = toLine; 274 mPickLineEdit = toLine;
274 UID = this->name(); 275 UID = this->name();
275 subjectLine->setText( uid.mid( 18 ) ); 276 subjectLine->setText( uid.mid( 18 ) );
276 } 277 }
277 //qDebug("ccc %s %s ", uid.latin1(), this->name()); 278 //qDebug("ccc %s %s ", uid.latin1(), this->name());
278 if ( mPickLineEdit == 0 ) { //whoami received 279 if ( mPickLineEdit == 0 ) { //whoami received
279 QString defmail = uidList[0]; 280 QString defmail = uidList[0];
280 if ( emailList.count() == 0 ) 281 if ( emailList.count() == 0 )
281 QMessageBox::information( 0, i18n( "Hint" ), 282 QMessageBox::information( 0, i18n( "Hint" ),
282 i18n( "Please apply\n\"Set Who Am I\"\nin KA/Pi to get the from\nfield automatically filled out!\n" ), 283 i18n( "Please apply\n\"Set Who Am I\"\nin KA/Pi to get the from\nfield automatically filled out!\n" ),
283 i18n( "Ok" ) ); 284 i18n( "Ok" ) );
284 if (defmail.length()!=0) { 285 if (defmail.length()!=0) {
285 fromBox->insertItem(defmail); 286 fromBox->insertItem(defmail);
286 } 287 }
287 QStringList::ConstIterator sit = emailList.begin(); 288 QStringList::ConstIterator sit = emailList.begin();
288 int pref = 0; 289 int pref = 0;
289 for (;sit!=emailList.end();++sit) { 290 for (;sit!=emailList.end();++sit) {
290 if ( (*sit)==defmail) 291 if ( (*sit)==defmail)
291 continue; 292 continue;
292 fromBox->insertItem((*sit)); 293 fromBox->insertItem((*sit));
293 } 294 }
294 senderNameEdit->setText(nameList[0]); 295 senderNameEdit->setText(nameList[0]);
295 return; 296 return;
296 } 297 }
297 QString names ; 298 QString names ;
298 QLineEdit *line = mPickLineEdit; 299 QLineEdit *line = mPickLineEdit;
299 if (UID == this->name()) 300 if (UID == this->name())
300 { 301 {
301 for ( int i = 0; i < nameList.count(); i++) 302 for ( int i = 0; i < nameList.count(); i++)
302 { 303 {
303 QString _name = nameList[i]; 304 QString _name = nameList[i];
304 QString _email = emailList[i]; 305 QString _email = emailList[i];
305 QString _uid = uidList[i]; 306 QString _uid = uidList[i];
306 if ( ! _email.isEmpty() ) { 307 if ( ! _email.isEmpty() ) {
307 if ( ! names.isEmpty() ) 308 if ( ! names.isEmpty() )
308 names+= ","; 309 names+= ",";
309 names+= "\""+_name +"\"<" +_email +">"; 310 names+= "\""+_name +"\"<" +_email +">";
310 } 311 }
311 } 312 }
312 } 313 }
313 if ( line->text().isEmpty() ) { 314 if ( line->text().isEmpty() ) {
314 line->setText( names ); 315 line->setText( names );
315 } else if ( !names.isEmpty() ) { 316 } else if ( !names.isEmpty() ) {
316 line->setText( line->text() + ", " + names ); 317 line->setText( line->text() + ", " + names );
317 } 318 }
318} 319}
319 320
320void ComposeMail::setTo( const QString & to ) 321void ComposeMail::setTo( const QString & to )
321{ 322{
322 toLine->setText( to ); 323 toLine->setText( to );
@@ -331,193 +332,193 @@ void ComposeMail::setInReplyTo( const QString & messageId )
331{ 332{
332 m_replyid = messageId; 333 m_replyid = messageId;
333} 334}
334 335
335void ComposeMail::setMessage( const QString & text ) 336void ComposeMail::setMessage( const QString & text )
336{ 337{
337 message->setText( text ); 338 message->setText( text );
338} 339}
339 340
340 341
341void ComposeMail::pickAddressTo() 342void ComposeMail::pickAddressTo()
342{ 343{
343 mPickLineEdit = toLine; 344 mPickLineEdit = toLine;
344 pickAddress( ); 345 pickAddress( );
345} 346}
346 347
347void ComposeMail::pickAddressCC() 348void ComposeMail::pickAddressCC()
348{ 349{
349 mPickLineEdit = ccLine; 350 mPickLineEdit = ccLine;
350 pickAddress( ); 351 pickAddress( );
351} 352}
352 353
353void ComposeMail::pickAddressBCC() 354void ComposeMail::pickAddressBCC()
354{ 355{
355 mPickLineEdit = bccLine; 356 mPickLineEdit = bccLine;
356 pickAddress( ); 357 pickAddress( );
357} 358}
358 359
359void ComposeMail::pickAddressReply() 360void ComposeMail::pickAddressReply()
360{ 361{
361 mPickLineEdit = replyLine; 362 mPickLineEdit = replyLine;
362 pickAddress( ); 363 pickAddress( );
363} 364}
364 365
365void ComposeMail::fillValues( int current ) 366void ComposeMail::fillValues( int current )
366{ 367{
367#if 0 368#if 0
368 SMTPaccount *smtp = smtpAccounts.at( current ); 369 SMTPaccount *smtp = smtpAccounts.at( current );
369 ccLine->clear(); 370 ccLine->clear();
370 if ( smtp->getUseCC() ) { 371 if ( smtp->getUseCC() ) {
371 ccLine->setText( smtp->getCC() ); 372 ccLine->setText( smtp->getCC() );
372 } 373 }
373 bccLine->clear(); 374 bccLine->clear();
374 if ( smtp->getUseBCC() ) { 375 if ( smtp->getUseBCC() ) {
375 bccLine->setText( smtp->getBCC() ); 376 bccLine->setText( smtp->getBCC() );
376 } 377 }
377 replyLine->clear(); 378 replyLine->clear();
378 if ( smtp->getUseReply() ) { 379 if ( smtp->getUseReply() ) {
379 replyLine->setText( smtp->getReply() ); 380 replyLine->setText( smtp->getReply() );
380 } 381 }
381#endif 382#endif
382 SMTPaccount *smtp = smtpAccounts.at( current ); 383 SMTPaccount *smtp = smtpAccounts.at( current );
383 if ( smtp ) 384 if ( smtp )
384 sigMultiLine->setText( smtp->getSignature() ); 385 sigMultiLine->setText( smtp->getSignature() );
385} 386}
386 387
387void ComposeMail::slotAdjustColumns() 388void ComposeMail::slotAdjustColumns()
388{ 389{
389 int currPage = tabWidget->currentPageIndex(); 390 int currPage = tabWidget->currentPageIndex();
390 391
391 tabWidget->showPage( attachTab ); 392 tabWidget->showPage( attachTab );
392 attList->setColumnWidth( 0, attList->visibleWidth() - 80 ); 393 attList->setColumnWidth( 0, attList->visibleWidth() - 80 );
393 attList->setColumnWidth( 1, 80 ); 394 attList->setColumnWidth( 1, 80 );
394 395
395 tabWidget->setCurrentPage( currPage ); 396 tabWidget->setCurrentPage( currPage );
396} 397}
397 398
398void ComposeMail::addAttachment() 399void ComposeMail::addAttachment()
399{ 400{
400 QString lnk = KFileDialog::getOpenFileName( "", "Add Attachment", this ); 401 QString lnk = KFileDialog::getOpenFileName( "", "Add Attachment", this );
401 if ( !lnk.isEmpty() ) { 402 if ( !lnk.isEmpty() ) {
402 Attachment *att = new Attachment( lnk ); 403 Attachment *att = new Attachment( lnk );
403 (void) new AttachViewItem( attList, att ); 404 (void) new AttachViewItem( attList, att );
404 } 405 }
405} 406}
406 407
407void ComposeMail::removeAttachment() 408void ComposeMail::removeAttachment()
408{ 409{
409 if ( !attList->currentItem() ) { 410 if ( !attList->currentItem() ) {
410 QMessageBox::information( this, i18n( "Error" ), 411 QMessageBox::information( this, i18n( "Error" ),
411 i18n( "<p>Please select a File.</p>" ), 412 i18n( "<p>Please select a File.</p>" ),
412 i18n( "Ok" ) ); 413 i18n( "Ok" ) );
413 } else { 414 } else {
414 attList->takeItem( attList->currentItem() ); 415 attList->takeItem( attList->currentItem() );
415 } 416 }
416} 417}
417 418
418void ComposeMail::accept() 419void ComposeMail::accept()
419{ 420{
420 if ( smtpAccountBox->count() == 0 ) { 421 if ( smtpAccountBox->count() == 0 ) {
421 422
422 reject(); 423 reject();
423 return; 424 return;
424 } 425 }
425 426
426 if (! checkBoxLater->isChecked() ) { 427 if (! checkBoxLater->isChecked() ) {
427 int yesno = QMessageBox::warning(0,i18n("Stop editing message"), 428 int yesno = QMessageBox::warning(0, subjectLine->text().left ( 25 ),
428 i18n("Send this message?"), 429 i18n("Send this message?"),
429 i18n("Yes"), 430 i18n("Yes"),
430 i18n("Cancel")); 431 i18n("Cancel"));
431 432
432 if (yesno == 1) { 433 if (yesno == 1) {
433 return; 434 return;
434 } 435 }
435 } 436 }
436#if 0 437#if 0
437 odebug << "Sending Mail with " 438 odebug << "Sending Mail with "
438 << smtpAccounts.at( smtpAccountBox->currentItem() )->getAccountName() << oendl; 439 << smtpAccounts.at( smtpAccountBox->currentItem() )->getAccountName() << oendl;
439#endif 440#endif
440 Opie::Core::OSmartPointer<Mail> mail=new Mail; 441 Opie::Core::OSmartPointer<Mail> mail=new Mail;
441 442
442 SMTPaccount *smtp = smtpAccounts.at( smtpAccountBox->currentItem() ); 443 SMTPaccount *smtp = smtpAccounts.at( smtpAccountBox->currentItem() );
443 mail->setMail(fromBox->currentText()); 444 mail->setMail(fromBox->currentText());
444 445
445 if ( !toLine->text().isEmpty() ) { 446 if ( !toLine->text().isEmpty() ) {
446 mail->setTo( toLine->text() ); 447 mail->setTo( toLine->text() );
447 } else { 448 } else {
448 QMessageBox::warning(0,i18n("Sending mail"), 449 QMessageBox::warning(0,i18n("Sending mail"),
449 i18n("No Receiver spezified" ) ); 450 i18n("No Receiver spezified" ) );
450 return; 451 return;
451 } 452 }
452 453
453 mail->setName(senderNameEdit->text()); 454 mail->setName(senderNameEdit->text());
454 mail->setCC( ccLine->text() ); 455 mail->setCC( ccLine->text() );
455 mail->setBCC( bccLine->text() ); 456 mail->setBCC( bccLine->text() );
456 mail->setReply( replyLine->text() ); 457 mail->setReply( replyLine->text() );
457 mail->setSubject( subjectLine->text() ); 458 mail->setSubject( subjectLine->text() );
458 if (!m_replyid.isEmpty()) { 459 if (!m_replyid.isEmpty()) {
459 QStringList ids; 460 QStringList ids;
460 ids.append(m_replyid); 461 ids.append(m_replyid);
461 mail->setInreply(ids); 462 mail->setInreply(ids);
462 } 463 }
463 QString txt = message->text(); 464 QString txt = message->text();
464 if ( !sigMultiLine->text().isEmpty() ) { 465 if ( !sigMultiLine->text().isEmpty() ) {
465 txt.append( "\n--\n" ); 466 txt.append( "\n--\n" );
466 txt.append( sigMultiLine->text() ); 467 txt.append( sigMultiLine->text() );
467 } 468 }
468 mail->setMessage( txt ); 469 mail->setMessage( txt );
469 mail->setCharset (mEncoding); 470 mail->setCharset (mEncoding);
470 AttachViewItem *it = (AttachViewItem *) attList->firstChild(); 471 AttachViewItem *it = (AttachViewItem *) attList->firstChild();
471 while ( it != 0 ) { 472 while ( it != 0 ) {
472 mail->addAttachment( it->getAttachment() ); 473 mail->addAttachment( it->getAttachment() );
473 it = (AttachViewItem *) it->nextSibling(); 474 it = (AttachViewItem *) it->nextSibling();
474 } 475 }
475 476
476 SMTPwrapper wrapper( smtp ); 477 SMTPwrapper wrapper( smtp );
477 if ( wrapper.sendMail( mail,checkBoxLater->isChecked() ) ) 478 if ( wrapper.sendMail( mail,checkBoxLater->isChecked() ) )
478 setStatus( tr ("Mail sent")); 479 setStatus( tr ("Mail sent"));
479 else { 480 else {
480 setStatus( tr ("Error: Something went wrong. Nothing sent")); 481 setStatus( tr ("Error: Something went wrong. Nothing sent"));
481 return; 482 return;
482 } 483 }
483 484
484 485
485 QDialog::accept(); 486 QDialog::accept();
486} 487}
487 488
488void ComposeMail::reject() 489void ComposeMail::reject()
489{ 490{
490 //qDebug("ComposeMail::reject() "); 491 //qDebug("ComposeMail::reject() ");
491 int yesno = QMessageBox::warning(0,i18n("Store message?"), 492 int yesno = QMessageBox::warning(0,i18n("Store message?"),
492 i18n("Store message into drafts?\n"), 493 i18n("Store message into drafts?\n"),
493 i18n("Yes"), 494 i18n("Yes"),
494 i18n("No")); 495 i18n("No"));
495 496
496 //qDebug("button %d ", yesno); 497 //qDebug("button %d ", yesno);
497 if (yesno == 0) { 498 if (yesno == 0) {
498 if ( toLine->text().isEmpty() ) { 499 if ( toLine->text().isEmpty() ) {
499 QMessageBox::warning(0,i18n("Sending mail"), 500 QMessageBox::warning(0,i18n("Sending mail"),
500 i18n("No Receiver spezified" ) ); 501 i18n("No Receiver spezified" ) );
501 return; 502 return;
502 } 503 }
503 saveAsDraft(); 504 saveAsDraft();
504 } 505 }
505 if (yesno == 2) { 506 if (yesno == 2) {
506 qDebug("return "); 507 qDebug("return ");
507 return; 508 return;
508 } 509 }
509 QDialog::reject(); 510 QDialog::reject();
510} 511}
511 512
512void ComposeMail::setCharset(const QString& charset) 513void ComposeMail::setCharset(const QString& charset)
513{ 514{
514 if ( !charset.isEmpty() ) 515 if ( !charset.isEmpty() )
515 mEncoding = charset; 516 mEncoding = charset;
516 qDebug("ComposeMail::setCharset %s ", mEncoding.latin1()); 517 qDebug("ComposeMail::setCharset %s ", mEncoding.latin1());
517} 518}
518ComposeMail::~ComposeMail() 519ComposeMail::~ComposeMail()
519{ 520{
520} 521}
521 522
522void ComposeMail::reEditMail(const RecMailP&current) 523void ComposeMail::reEditMail(const RecMailP&current)
523{ 524{
diff --git a/kmicromail/mailistviewitem.cpp b/kmicromail/mailistviewitem.cpp
index 5119744..15fa148 100644
--- a/kmicromail/mailistviewitem.cpp
+++ b/kmicromail/mailistviewitem.cpp
@@ -1,98 +1,99 @@
1// CHANGED 2004-08-06 Lutz Rogowski 1// CHANGED 2004-08-06 Lutz Rogowski
2#include "mailistviewitem.h" 2#include "mailistviewitem.h"
3#include <libmailwrapper/abstractmail.h> 3#include <libmailwrapper/abstractmail.h>
4#include <qtextstream.h> 4#include <qtextstream.h>
5#include <kiconloader.h> 5#include <kiconloader.h>
6#include "koprefs.h" 6#include "koprefs.h"
7//#include <qpe/resource.h> 7//#include <qpe/resource.h>
8 8
9MailListViewItem::MailListViewItem(QListView * parent, MailListViewItem * item ) 9MailListViewItem::MailListViewItem(QListView * parent, MailListViewItem * item )
10 :QListViewItem(parent,item),mail_data() 10 :KListViewItem(parent,item),mail_data()
11{ 11{
12} 12}
13 13
14void MailListViewItem::showEntry() 14void MailListViewItem::showEntry()
15{ 15{
16 if ( mail_data->getFlags().testBit( FLAG_ANSWERED ) == true) { 16 if ( mail_data->getFlags().testBit( FLAG_ANSWERED ) == true) {
17 setPixmap( 0, SmallIcon ( "kmmsgreplied") ); 17 setPixmap( 0, SmallIcon ( "kmmsgreplied") );
18 mKeyMap.insert(0, "r" ); 18 mKeyMap.insert(0, "r" );
19 } else if ( mail_data->getFlags().testBit( FLAG_SEEN ) == true ) { 19 } else if ( mail_data->getFlags().testBit( FLAG_SEEN ) == true ) {
20 /* I think it looks nicer if there are not such a log of icons but only on mails 20 /* I think it looks nicer if there are not such a log of icons but only on mails
21 replied or new - Alwin*/ 21 replied or new - Alwin*/
22 //setPixmap( 0,SmallIcon ("kmmsgunseen") ); 22 //setPixmap( 0,SmallIcon ("kmmsgunseen") );
23 mKeyMap.insert(0, "s" ); 23 mKeyMap.insert(0, "s" );
24 } else { 24 } else {
25 setPixmap( 0,SmallIcon ( "kmmsgnew") ); 25 setPixmap( 0,SmallIcon ( "kmmsgnew") );
26 mKeyMap.insert(0, "u" ); 26 mKeyMap.insert(0, "u" );
27 } 27 }
28 QString fsize = mail_data->MsgsizeString(); 28 QString fsize = mail_data->MsgsizeString();
29 // 1.23 29 // 1.23
30 // 11.23 30 // 11.23
31 // 111.23 31 // 111.23
32 // 999.23 maxlen 32 // 999.23 maxlen
33 QString fsort; 33 QString fsort;
34 switch(fsize.length() ) { 34 switch(fsize.length() ) {
35 case 6: 35 case 6:
36 fsort = "00" + fsize ; 36 fsort = "00" + fsize ;
37 break; 37 break;
38 case 7: 38 case 7:
39 fsort = "0" + fsize ; 39 fsort = "0" + fsize ;
40 break; 40 break;
41 default: 41 default:
42 fsort = fsize ; 42 fsort = fsize ;
43 break; 43 break;
44 44
45 } 45 }
46
46 setText(3, fsize ); 47 setText(3, fsize );
47 //qDebug("fsize *%s* ",fsize.latin1() ); 48 //qDebug("fsize *%s* ",fsize.latin1() );
48 //qDebug("fsort *%s* ",fsort.latin1() ); 49 //qDebug("fsort *%s* ",fsort.latin1() );
49 if ( fsize.right(2) == "kB" ) { 50 if ( fsize.right(2) == "kB" ) {
50 mKeyMap.insert(3, "k" + fsort); 51 mKeyMap.insert(3, "k" + fsort);
51 } else { 52 } else {
52 mKeyMap.insert(3, "M" +fsort ); 53 mKeyMap.insert(3, "M" +fsort );
53 } 54 }
54 setText(1,mail_data->getSubject()); 55 setText(1,mail_data->getSubject());
55 setText(2,mail_data->getFrom()); 56 setText(2,mail_data->getFrom());
56 mKeyMap.insert(4,mail_data->getIsoDate()); 57 mKeyMap.insert(4,mail_data->getIsoDate());
57 setText(4,mail_data->getDate()); 58 setText(4,mail_data->getDate());
58 if ( KOPrefs::instance()->mShowToField ) 59 if ( KOPrefs::instance()->mShowToField )
59 setText(5,mail_data->To()[0]); 60 setText(5,mail_data->To()[0]);
60} 61}
61 62
62void MailListViewItem::storeData(const RecMailP&data) 63void MailListViewItem::storeData(const RecMailP&data)
63{ 64{
64 mail_data = data; 65 mail_data = data;
65} 66}
66void MailListViewItem::setSortKey(int column,const QString &key) 67void MailListViewItem::setSortKey(int column,const QString &key)
67{ 68{
68 mKeyMap.insert(column,key); 69 mKeyMap.insert(column,key);
69} 70}
70QString MailListViewItem::key(int column, bool) const 71QString MailListViewItem::key(int column, bool) const
71{ 72{
72 // to make is fast, we use here special cases 73 // to make is fast, we use here special cases
73 if ( column == 3 || column == 4 || column == 0) { 74 if ( column == 3 || column == 4 || column == 0) {
74 return *mKeyMap.find(column); 75 return *mKeyMap.find(column);
75 } 76 }
76 if ( column == 1 ) { 77 if ( column == 1 ) {
77 if ( text(1).left(4).lower() == "re: " ) 78 if ( text(1).left(4).lower() == "re: " )
78 return text(1).mid(4); 79 return text(1).mid(4);
79 80
80 } 81 }
81 return text(column); 82 return text(column);
82 /* 83 /*
83 QMap<int,QString>::ConstIterator it = mKeyMap.find(column); 84 QMap<int,QString>::ConstIterator it = mKeyMap.find(column);
84 if (it == mKeyMap.end()) return text(column); 85 if (it == mKeyMap.end()) return text(column);
85 else return *it; 86 else return *it;
86 */ 87 */
87} 88}
88 89
89const RecMailP& MailListViewItem::data()const 90const RecMailP& MailListViewItem::data()const
90{ 91{
91 return mail_data; 92 return mail_data;
92} 93}
93 94
94MAILLIB::ATYPE MailListViewItem::wrapperType() 95MAILLIB::ATYPE MailListViewItem::wrapperType()
95{ 96{
96 if (!mail_data->Wrapper()) return MAILLIB::A_UNDEFINED; 97 if (!mail_data->Wrapper()) return MAILLIB::A_UNDEFINED;
97 return mail_data->Wrapper()->getType(); 98 return mail_data->Wrapper()->getType();
98} 99}
diff --git a/kmicromail/mailistviewitem.h b/kmicromail/mailistviewitem.h
index 0fd44d3..b409c9d 100644
--- a/kmicromail/mailistviewitem.h
+++ b/kmicromail/mailistviewitem.h
@@ -1,27 +1,27 @@
1// CHANGED 2004-08-06 Lutz Rogowski 1// CHANGED 2004-08-06 Lutz Rogowski
2#ifndef __MAILLISTVIEWITEM_H 2#ifndef __MAILLISTVIEWITEM_H
3#define __MAILLISTVIEWITEM_H 3#define __MAILLISTVIEWITEM_H
4 4
5#include <qlistview.h> 5#include <klistview.h>
6#include <libmailwrapper/mailtypes.h> 6#include <libmailwrapper/mailtypes.h>
7#include <libmailwrapper/maildefines.h> 7#include <libmailwrapper/maildefines.h>
8 8
9class MailListViewItem:public QListViewItem 9class MailListViewItem:public KListViewItem
10{ 10{
11public: 11public:
12 MailListViewItem(QListView * parent, MailListViewItem * after ); 12 MailListViewItem(QListView * parent, MailListViewItem * after );
13 virtual ~MailListViewItem(){} 13 virtual ~MailListViewItem(){}
14 14
15 void storeData(const RecMailP&data); 15 void storeData(const RecMailP&data);
16 const RecMailP&data()const; 16 const RecMailP&data()const;
17 void showEntry(); 17 void showEntry();
18 MAILLIB::ATYPE wrapperType(); 18 MAILLIB::ATYPE wrapperType();
19 QString key(int column, bool) const; 19 QString key(int column, bool) const;
20 void setSortKey(int column,const QString &key); 20 void setSortKey(int column,const QString &key);
21protected: 21protected:
22 RecMailP mail_data; 22 RecMailP mail_data;
23 private: 23 private:
24 QMap<int,QString> mKeyMap; 24 QMap<int,QString> mKeyMap;
25}; 25};
26 26
27#endif 27#endif
diff --git a/kmicromail/mainwindow.cpp b/kmicromail/mainwindow.cpp
index e3c5ec3..82a915e 100644
--- a/kmicromail/mainwindow.cpp
+++ b/kmicromail/mainwindow.cpp
@@ -1,429 +1,433 @@
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#ifdef DESKTOP_VERSION 12#ifdef DESKTOP_VERSION
13#include <qapplication.h> 13#include <qapplication.h>
14#include <qstatusbar.h> 14#include <qstatusbar.h>
15#include <kabc/stdaddressbook.h> 15#include <kabc/stdaddressbook.h>
16extern QStatusBar* globalSstatusBarMainWindow; 16extern QStatusBar* globalSstatusBarMainWindow;
17#else 17#else
18#include <qpe/qpeapplication.h> 18#include <qpe/qpeapplication.h>
19#include <klocale.h> 19#include <klocale.h>
20#endif 20#endif
21#include "defines.h" 21#include "defines.h"
22#include "koprefs.h" 22#include "koprefs.h"
23#include "mainwindow.h" 23#include "mainwindow.h"
24#include "mailistviewitem.h" 24#include "mailistviewitem.h"
25#include <KDGanttMinimizeSplitter.h> 25#include <KDGanttMinimizeSplitter.h>
26#include <libkdepim/kpimglobalprefs.h>
26 27
27#include "koprefs.h" 28#include "koprefs.h"
28 29
29MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags ) 30MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags )
30 : QMainWindow( parent, name ) //, flags ) 31 : QMainWindow( parent, name ) //, flags )
31{ 32{
32#ifdef DESKTOP_VERSION 33#ifdef DESKTOP_VERSION
33 globalSstatusBarMainWindow = statusBar(); 34 globalSstatusBarMainWindow = statusBar();
34#endif 35#endif
35 setCaption( i18n( "KOpieMail/Pi" ) ); 36 setCaption( i18n( "KOpieMail/Pi" ) );
36 setToolBarsMovable( false ); 37 setToolBarsMovable( false );
37 //KABC::StdAddressBook::self(); 38 //KABC::StdAddressBook::self();
38 toolBar = new QToolBar( this ); 39 toolBar = new QToolBar( this );
39 menuBar = new QPEMenuBar( toolBar ); 40 menuBar = new QPEMenuBar( toolBar );
40 mailMenu = new QPopupMenu( menuBar ); 41 mailMenu = new QPopupMenu( menuBar );
41 menuBar->insertItem( i18n( "Mail" ), mailMenu ); 42 menuBar->insertItem( i18n( "Mail" ), mailMenu );
42 settingsMenu = new QPopupMenu( menuBar ); 43 settingsMenu = new QPopupMenu( menuBar );
43 menuBar->insertItem( i18n( "Settings" ), settingsMenu ); 44 menuBar->insertItem( i18n( "Settings" ), settingsMenu );
44 45
45 addToolBar( toolBar ); 46 addToolBar( toolBar );
46 toolBar->setHorizontalStretchable( true ); 47 toolBar->setHorizontalStretchable( true );
47 QAction* getMail = new QAction( i18n( "Get all new mails" ), SmallIcon("enter"), 48 QAction* getMail = new QAction( i18n( "Get all new mails" ), SmallIcon("enter"),
48 0, 0, this ); 49 0, 0, this );
49 connect(getMail, SIGNAL( activated() ), 50 connect(getMail, SIGNAL( activated() ),
50 SLOT( slotGetAllMail() ) ); 51 SLOT( slotGetAllMail() ) );
51 getMail->addTo( mailMenu ); 52 getMail->addTo( mailMenu );
52 53
53 getMail = new QAction( i18n( "Get new messages" ), SmallIcon("add"), 54 getMail = new QAction( i18n( "Get new messages" ), SmallIcon("add"),
54 0, 0, this ); 55 0, 0, this );
55 getMail->addTo( toolBar ); 56 getMail->addTo( toolBar );
56 getMail->addTo( mailMenu ); 57 getMail->addTo( mailMenu );
57 connect(getMail, SIGNAL( activated() ), 58 connect(getMail, SIGNAL( activated() ),
58 SLOT( slotGetMail() ) ); 59 SLOT( slotGetMail() ) );
59 60
60 composeMail = new QAction( i18n( "Compose new mail" ), SmallIcon("composemail"), 61 composeMail = new QAction( i18n( "Compose new mail" ), SmallIcon("composemail"),
61 0, 0, this ); 62 0, 0, this );
62 composeMail->addTo( toolBar ); 63 composeMail->addTo( toolBar );
63 composeMail->addTo( mailMenu ); 64 composeMail->addTo( mailMenu );
64 65
65 sendQueued = new QAction( i18n( "Send queued mails" ), SmallIcon("sendqueued") , 66 sendQueued = new QAction( i18n( "Send queued mails" ), SmallIcon("sendqueued") ,
66 0, 0, this ); 67 0, 0, this );
67 sendQueued->addTo( toolBar ); 68 sendQueued->addTo( toolBar );
68 sendQueued->addTo( mailMenu ); 69 sendQueued->addTo( mailMenu );
69 70
70 /* 71 /*
71 syncFolders = new QAction( i18n( "Sync mailfolders" ), ICON_SYNC, 72 syncFolders = new QAction( i18n( "Sync mailfolders" ), ICON_SYNC,
72 0, 0, this ); 73 0, 0, this );
73 syncFolders->addTo( toolBar ); 74 syncFolders->addTo( toolBar );
74 syncFolders->addTo( mailMenu ); 75 syncFolders->addTo( mailMenu );
75 */ 76 */
76 77
77 showFolders = new QAction( i18n( "Show/Hide folders" ), SmallIcon("showfolders") , 78 showFolders = new QAction( i18n( "Show/Hide folders" ), SmallIcon("showfolders") ,
78 0, 0, this, 0, true ); 79 0, 0, this, 0, true );
79 showFolders->addTo( toolBar ); 80 showFolders->addTo( toolBar );
80 showFolders->addTo( mailMenu ); 81 showFolders->addTo( mailMenu );
81 showFolders->setOn( true ); 82 showFolders->setOn( true );
82 connect(showFolders, SIGNAL( toggled(bool) ), 83 connect(showFolders, SIGNAL( toggled(bool) ),
83 SLOT( slotShowFolders(bool) ) ); 84 SLOT( slotShowFolders(bool) ) );
84 85
85 /* 86 /*
86 searchMails = new QAction( i18n( "Search mails" ), SmallIcon("find") ), 87 searchMails = new QAction( i18n( "Search mails" ), SmallIcon("find") ),
87 0, 0, this ); 88 0, 0, this );
88 searchMails->kopddTo( toolBar ); 89 searchMails->kopddTo( toolBar );
89 searchMails->addTo( mailMenu ); 90 searchMails->addTo( mailMenu );
90 */ 91 */
91 92
92 deleteMails = new QAction(i18n("Delete Mail"), SmallIcon("trash"), 0, 0, this); 93 deleteMails = new QAction(i18n("Delete Mail"), SmallIcon("trash"), 0, 0, this);
93 deleteMails->addTo( toolBar ); 94 deleteMails->addTo( toolBar );
94 deleteMails->addTo( mailMenu ); 95 deleteMails->addTo( mailMenu );
95 connect( deleteMails, SIGNAL( activated() ), 96 connect( deleteMails, SIGNAL( activated() ),
96 SLOT( slotDeleteAllMail() ) ); 97 SLOT( slotDeleteAllMail() ) );
97 98
98 editSettings = new QAction( i18n( "Configure OM/Pi..." ), SmallIcon("SettingsIcon") , 99 editSettings = new QAction( i18n( "Configure OM/Pi..." ), SmallIcon("SettingsIcon") ,
99 0, 0, this ); 100 0, 0, this );
100 editSettings->addTo( settingsMenu ); 101 editSettings->addTo( settingsMenu );
101 connect( editSettings, SIGNAL( activated() ), 102 connect( editSettings, SIGNAL( activated() ),
102 SLOT( slotEditSettings() ) ); 103 SLOT( slotEditSettings() ) );
103 104
104 105
105 QAction * editSettings2 = new QAction( i18n( "Global Settings..." ), SmallIcon("SettingsIcon") , 106 QAction * editSettings2 = new QAction( i18n( "Global Settings..." ), SmallIcon("SettingsIcon") ,
106 0, 0, this ); 107 0, 0, this );
107 editSettings2->addTo( settingsMenu ); 108 editSettings2->addTo( settingsMenu );
108 connect( editSettings2, SIGNAL( activated() ), 109 connect( editSettings2, SIGNAL( activated() ),
109 SLOT( slotEditGlobalSettings() ) ); 110 SLOT( slotEditGlobalSettings() ) );
110 111
111 112
112 113
113 editAccounts = new QAction( i18n( "Configure accounts" ), SmallIcon("editaccounts") , 114 editAccounts = new QAction( i18n( "Configure accounts" ), SmallIcon("editaccounts") ,
114 0, 0, this ); 115 0, 0, this );
115 editAccounts->addTo( settingsMenu ); 116 editAccounts->addTo( settingsMenu );
116 codecMenu = new QPopupMenu( menuBar ); 117 codecMenu = new QPopupMenu( menuBar );
117 codecMenu->insertItem( "Western (iso-8859-1)",0,0); 118 codecMenu->insertItem( "Western (iso-8859-1)",0,0);
118 codecMenu->insertItem( "Cyrillic (iso-8859-5)",1,1); 119 codecMenu->insertItem( "Cyrillic (iso-8859-5)",1,1);
119 codecMenu->insertItem( "Western (iso-8859-15)",2,2); 120 codecMenu->insertItem( "Western (iso-8859-15)",2,2);
120 codecMenu->insertItem( "Chinese (big-5)",3,3); 121 codecMenu->insertItem( "Chinese (big-5)",3,3);
121 codecMenu->insertItem( "Unicode (utf-8)",4,4); 122 codecMenu->insertItem( "Unicode (utf-8)",4,4);
122 codecMenu->insertItem( "Userdefined ("+KOPrefs::instance()->mSendCodec+")",5,5); 123 codecMenu->insertItem( "Userdefined ("+KOPrefs::instance()->mSendCodec+")",5,5);
123 //disabled 124 //disabled
124 //settingsMenu->insertItem( i18n("Codec for new mails"), codecMenu); 125 //settingsMenu->insertItem( i18n("Codec for new mails"), codecMenu);
125 //setCentralWidget( view ); 126 //setCentralWidget( view );
126 127
127 QVBox* wrapperBox = new QVBox( this ); 128 QVBox* wrapperBox = new QVBox( this );
128 setCentralWidget( wrapperBox ); 129 setCentralWidget( wrapperBox );
129 130
130 // QWidget *view = new QWidget( wrapperBox ); 131 // QWidget *view = new QWidget( wrapperBox );
131 KDGanttMinimizeSplitter* splithor = new KDGanttMinimizeSplitter( Qt::Vertical, wrapperBox); 132 KDGanttMinimizeSplitter* splithor = new KDGanttMinimizeSplitter( Qt::Vertical, wrapperBox);
132 splithor->setMinimizeDirection( KDGanttMinimizeSplitter::Down); 133 splithor->setMinimizeDirection( KDGanttMinimizeSplitter::Down);
133 KDGanttMinimizeSplitter* split = new KDGanttMinimizeSplitter( Qt::Horizontal, splithor); 134 KDGanttMinimizeSplitter* split = new KDGanttMinimizeSplitter( Qt::Horizontal, splithor);
134 split->setMinimizeDirection( KDGanttMinimizeSplitter::Left); 135 split->setMinimizeDirection( KDGanttMinimizeSplitter::Left);
135 //layout = new QBoxLayout ( split, QBoxLayout::LeftToRight ); 136 //layout = new QBoxLayout ( split, QBoxLayout::LeftToRight );
136 subLE = 0; 137 subLE = 0;
137 fromLE = 0; 138 fromLE = 0;
138 toLE = 0; 139 toLE = 0;
139 if ( KOPrefs::instance()->mShowInfoSub || KOPrefs::instance()->mShowInfoFrom || KOPrefs::instance()->mShowInfoTo ) { 140 if ( KOPrefs::instance()->mShowInfoSub || KOPrefs::instance()->mShowInfoFrom || KOPrefs::instance()->mShowInfoTo ) {
140 QWidget* infoBox = new QWidget( splithor ); 141 QWidget* infoBox = new QWidget( splithor );
141 QGridLayout *griLay = new QGridLayout( infoBox, 2,2); 142 QGridLayout *griLay = new QGridLayout( infoBox, 2,2);
142 if ( KOPrefs::instance()->mShowInfoSub ) { 143 if ( KOPrefs::instance()->mShowInfoSub ) {
143 griLay->addWidget( new QLabel ( i18n("Su:"), infoBox ),0,0 ); 144 griLay->addWidget( new QLabel ( i18n("Su:"), infoBox ),0,0 );
144 griLay->addWidget( subLE = new QLineEdit( infoBox ),0,1) ; 145 griLay->addWidget( subLE = new QLineEdit( infoBox ),0,1) ;
145 } 146 }
146 if ( KOPrefs::instance()->mShowInfoFrom ) { 147 if ( KOPrefs::instance()->mShowInfoFrom ) {
147 griLay->addWidget( new QLabel ( i18n("Fr:"), infoBox ),1,0 ); 148 griLay->addWidget( new QLabel ( i18n("Fr:"), infoBox ),1,0 );
148 griLay->addWidget( fromLE = new QLineEdit( infoBox ),1,1) ; 149 griLay->addWidget( fromLE = new QLineEdit( infoBox ),1,1) ;
149 } 150 }
150 if ( KOPrefs::instance()->mShowInfoTo ) { 151 if ( KOPrefs::instance()->mShowInfoTo ) {
151 griLay->addWidget( new QLabel ( i18n("To:"), infoBox ),2,0 ); 152 griLay->addWidget( new QLabel ( i18n("To:"), infoBox ),2,0 );
152 griLay->addWidget( toLE = new QLineEdit( infoBox ),2,1) ; 153 griLay->addWidget( toLE = new QLineEdit( infoBox ),2,1) ;
153 } 154 }
154 infoBox->setMaximumHeight( infoBox->sizeHint().height() ); 155 infoBox->setMaximumHeight( infoBox->sizeHint().height() );
155 if ( !KOPrefs::instance()->mShowInfoStart ) { 156 if ( !KOPrefs::instance()->mShowInfoStart ) {
156 QTimer::singleShot( 1,splithor, SLOT ( toggle() ) ); 157 QTimer::singleShot( 1,splithor, SLOT ( toggle() ) );
157 } 158 }
158 } 159 }
159 160
160 161
161 folderView = new AccountView( split ); 162 folderView = new AccountView( split );
162 folderView->header()->hide(); 163 folderView->header()->hide();
163 folderView->setRootIsDecorated( false ); 164 folderView->setRootIsDecorated( false );
164 folderView->addColumn( i18n( "Mailbox" ) ); 165 folderView->addColumn( i18n( "Mailbox" ) );
165 166
166 //layout->addWidget( folderView ); 167 //layout->addWidget( folderView );
167 168
168 mailView = new QListView( split ); 169 mailView = new KListView( split );
169 mailView->addColumn( i18n( " " ) ); 170 mailView->addColumn( i18n( " " ) );
170 mailView->addColumn( i18n( "Subject" ),QListView::Manual ); 171 mailView->addColumn( i18n( "Subject" ),QListView::Manual );
171 mailView->addColumn( i18n( "Sender" ),QListView::Manual ); 172 mailView->addColumn( i18n( "Sender" ),QListView::Manual );
172 mailView->addColumn( i18n( "Size" ),QListView::Manual); 173 mailView->addColumn( i18n( "Size" ),QListView::Manual);
173 mailView->addColumn( i18n( "Date" ),QListView::Manual); 174 mailView->addColumn( i18n( "Date" ),QListView::Manual);
174 if ( KOPrefs::instance()->mShowToField ) 175 if ( KOPrefs::instance()->mShowToField )
175 mailView->addColumn( i18n( "To" ),QListView::Manual); 176 mailView->addColumn( i18n( "To" ),QListView::Manual);
176 mailView->setAllColumnsShowFocus(true); 177 mailView->setAllColumnsShowFocus(true);
177 //mailView->setSorting(-1); 178 //mailView->setSorting(-1);
178 mailView->setRootIsDecorated( false ); 179 mailView->setRootIsDecorated( false );
179 statusWidget = new StatusWidget( wrapperBox ); 180 statusWidget = new StatusWidget( wrapperBox );
180 statusWidget->hide(); 181 statusWidget->hide();
181 182 mailView->setSelectionMode( QListView::Multi );
183 mailView->setMultiSelection( true);
184 mailView->setAlternateBackground(KPimGlobalPrefs::instance()->mAlternateColor );
182 //layout->addWidget( mailView ); 185 //layout->addWidget( mailView );
183 //layout->setStretchFactor( folderView, 1 ); 186 //layout->setStretchFactor( folderView, 1 );
184 //layout->setStretchFactor( mailView, 2 ); 187 //layout->setStretchFactor( mailView, 2 );
185 188
186 slotAdjustLayout(); 189 slotAdjustLayout();
187#ifndef DESKTOP_VERSION 190#ifndef DESKTOP_VERSION
188 QPEApplication::setStylusOperation( mailView->viewport(),QPEApplication::RightOnHold); 191 QPEApplication::setStylusOperation( mailView->viewport(),QPEApplication::RightOnHold);
189 QPEApplication::setStylusOperation( folderView->viewport(),QPEApplication::RightOnHold); 192 QPEApplication::setStylusOperation( folderView->viewport(),QPEApplication::RightOnHold);
190 if ( subLE ) 193 if ( subLE )
191 QPEApplication::setStylusOperation( subLE ,QPEApplication::RightOnHold); 194 QPEApplication::setStylusOperation( subLE ,QPEApplication::RightOnHold);
192 if ( fromLE ) 195 if ( fromLE )
193 QPEApplication::setStylusOperation( fromLE ,QPEApplication::RightOnHold); 196 QPEApplication::setStylusOperation( fromLE ,QPEApplication::RightOnHold);
194 if ( toLE ) 197 if ( toLE )
195 QPEApplication::setStylusOperation( toLE ,QPEApplication::RightOnHold); 198 QPEApplication::setStylusOperation( toLE ,QPEApplication::RightOnHold);
196#endif 199#endif
197 connect( mailView, SIGNAL( doubleClicked (QListViewItem* )),this, 200 connect( mailView, SIGNAL( doubleClicked (QListViewItem* )),this,
198 SLOT( mailLeftClicked(QListViewItem*) ) ); 201 SLOT( mailLeftClicked(QListViewItem*) ) );
199 connect( mailView, SIGNAL( returnPressed (QListViewItem* )),this, 202 connect( mailView, SIGNAL( returnPressed (QListViewItem* )),this,
200 SLOT( mailLeftClicked(QListViewItem*) ) ); 203 SLOT( mailLeftClicked(QListViewItem*) ) );
201 connect( mailView, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ),this, 204 connect( mailView, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ),this,
202 SLOT( mailHold(int,QListViewItem*,const QPoint&,int) ) ); 205 SLOT( mailHold(int,QListViewItem*,const QPoint&,int) ) );
203 connect(folderView, SIGNAL(refreshMailview(const QValueList<RecMailP>&)), 206 connect(folderView, SIGNAL(refreshMailview(const QValueList<RecMailP>&)),
204 this,SLOT(refreshMailView(const QValueList<RecMailP>&))); 207 this,SLOT(refreshMailView(const QValueList<RecMailP>&)));
205 208
206 connect( mailView, SIGNAL( currentChanged (QListViewItem* )),this, 209 connect( mailView, SIGNAL( currentChanged (QListViewItem* )),this,
207 SLOT( setInfoFields(QListViewItem*) ) ); 210 SLOT( setInfoFields(QListViewItem*) ) );
208 211
209 connect( composeMail, SIGNAL( activated() ), SLOT( slotComposeMail() ) ); 212 connect( composeMail, SIGNAL( activated() ), SLOT( slotComposeMail() ) );
210 connect( sendQueued, SIGNAL( activated() ), SLOT( slotSendQueued() ) ); 213 connect( sendQueued, SIGNAL( activated() ), SLOT( slotSendQueued() ) );
211// connect( searchMails, SIGNAL( activated() ), SLOT( slotSearchMails() ) ); 214// connect( searchMails, SIGNAL( activated() ), SLOT( slotSearchMails() ) );
212 connect( editAccounts, SIGNAL( activated() ), SLOT( slotEditAccounts() ) ); 215 connect( editAccounts, SIGNAL( activated() ), SLOT( slotEditAccounts() ) );
213 //mailView->setMultiSelection ( true ); 216 //mailView->setMultiSelection ( true );
214 mailView->setSelectionMode( QListView::Extended ); 217 //mailView->setSelectionMode( QListView::Extended );
215 QValueList<int> list; 218 QValueList<int> list;
216 int fw = 100; 219 int fw = 100;
217 if ( QApplication::desktop()->width() > 320 ) 220 if ( QApplication::desktop()->width() > 320 )
218 fw = 50; 221 fw = 50;
219 list.append( fw ); 222 list.append( fw );
220 list.append( 100 ); 223 list.append( 100 );
221 split->setSizes( list ); 224 split->setSizes( list );
222 QTimer::singleShot( 1000, this, SLOT( slotAdjustColumns() ) ); 225 QTimer::singleShot( 100, this, SLOT( slotAdjustColumns() ) );
223 mailView->setShowSortIndicator ( true ); 226 mailView->setShowSortIndicator ( true );
224 QLabel *spacer = new QLabel( toolBar ); 227 QLabel *spacer = new QLabel( toolBar );
225 spacer->setBackgroundMode( QWidget::PaletteButton ); 228 spacer->setBackgroundMode( QWidget::PaletteButton );
226 toolBar->setStretchableWidget( spacer ); 229 toolBar->setStretchableWidget( spacer );
227 230
228 QAction* closeMail = new QAction(i18n("Close"),SmallIcon("exit"), 0, 0, this); 231 QAction* closeMail = new QAction(i18n("Close"),SmallIcon("exit"), 0, 0, this);
229 connect( closeMail, SIGNAL( activated() ), SLOT( close() ) ); 232 connect( closeMail, SIGNAL( activated() ), SLOT( close() ) );
230 if ( QApplication::desktop()->width() > 320 ) 233 if ( QApplication::desktop()->width() > 320 )
231 closeMail->addTo(toolBar); 234 closeMail->addTo(toolBar);
232 closeMail->addTo(mailMenu); 235 closeMail->addTo(mailMenu);
233 236
234 237
235 QPopupMenu* helpMenu = new QPopupMenu( menuBar ); 238 QPopupMenu* helpMenu = new QPopupMenu( menuBar );
236 menuBar->insertItem( i18n( "Help" ), helpMenu ); 239 menuBar->insertItem( i18n( "Help" ), helpMenu );
237 QAction* li = new QAction(i18n("About"), QPixmap(), 0, 0, this); 240 QAction* li = new QAction(i18n("About"), QPixmap(), 0, 0, this);
238 connect( li, SIGNAL( activated() ), SLOT( showAbout()) ); 241 connect( li, SIGNAL( activated() ), SLOT( showAbout()) );
239 li->addTo(helpMenu); 242 li->addTo(helpMenu);
240 li = new QAction(i18n("Licence"),QPixmap(), 0, 0, this); 243 li = new QAction(i18n("Licence"),QPixmap(), 0, 0, this);
241 connect( li, SIGNAL( activated() ), SLOT( showLicence()) ); 244 connect( li, SIGNAL( activated() ), SLOT( showLicence()) );
242 li->addTo(helpMenu); 245 li->addTo(helpMenu);
243 li = new QAction(i18n("LibEtPan Licence"), QPixmap(), 0, 0, this); 246 li = new QAction(i18n("LibEtPan Licence"), QPixmap(), 0, 0, this);
244 connect( li, SIGNAL( activated() ), SLOT( showEtpanLicence()) ); 247 connect( li, SIGNAL( activated() ), SLOT( showEtpanLicence()) );
245 li->addTo(helpMenu); 248 li->addTo(helpMenu);
246 connect( codecMenu, SIGNAL( activated(int) ), this, SLOT( slotSetCodec( int )) ); 249 connect( codecMenu, SIGNAL( activated(int) ), this, SLOT( slotSetCodec( int )) );
247 slotSetCodec( KOPrefs::instance()->mCurrentCodec ); 250 slotSetCodec( KOPrefs::instance()->mCurrentCodec );
248 menuBar->setMaximumWidth( menuBar->sizeHint().width()); 251 menuBar->setMaximumWidth( menuBar->sizeHint().width());
249 //menuBar->setMaximumSize( menuBar->sizeHint()); 252 //menuBar->setMaximumSize( menuBar->sizeHint());
250#ifdef DESKTOP_VERSION 253#ifdef DESKTOP_VERSION
251 resize ( 640, 480 ); 254 resize ( 640, 480 );
252#endif 255#endif
253} 256}
254 257
255MainWindow::~MainWindow() 258MainWindow::~MainWindow()
256{ 259{
257} 260}
258 261
259void MainWindow::setInfoFields(QListViewItem* item ) 262void MainWindow::setInfoFields(QListViewItem* item )
260{ 263{
261 if ( item == 0) { 264 if ( item == 0) {
262 if ( subLE ) subLE->setText(""); 265 if ( subLE ) subLE->setText("");
263 if ( fromLE ) fromLE->setText(""); 266 if ( fromLE ) fromLE->setText("");
264 if ( toLE ) toLE->setText(""); 267 if ( toLE ) toLE->setText("");
265 return; 268 return;
266 } 269 }
267 RecMailP mail = ((MailListViewItem*)item)->data(); 270 RecMailP mail = ((MailListViewItem*)item)->data();
268 if ( subLE ) subLE->setText(mail->getSubject()); 271 if ( subLE ) subLE->setText(mail->getSubject());
269 if ( fromLE ) fromLE->setText(mail->getFrom()); 272 if ( fromLE ) fromLE->setText(mail->getFrom());
270 if ( toLE ) toLE->setText(mail->To().join(";" )); 273 if ( toLE ) toLE->setText(mail->To().join(";" ));
271 if ( subLE ) subLE->setCursorPosition(0); 274 if ( subLE ) subLE->setCursorPosition(0);
272 if ( fromLE ) fromLE->setCursorPosition(0); 275 if ( fromLE ) fromLE->setCursorPosition(0);
273 if ( toLE ) toLE->setCursorPosition(0); 276 if ( toLE ) toLE->setCursorPosition(0);
274 277
275} 278}
276void MainWindow::slotSetCodec( int codec ) 279void MainWindow::slotSetCodec( int codec )
277{ 280{
278 codecMenu->setItemChecked(KOPrefs::instance()->mCurrentCodec, false ); 281 codecMenu->setItemChecked(KOPrefs::instance()->mCurrentCodec, false );
279 //qDebug("codec %d ", codec); 282 //qDebug("codec %d ", codec);
280 KOPrefs::instance()->mCurrentCodec = codec; 283 KOPrefs::instance()->mCurrentCodec = codec;
281 KOPrefs::instance()->isDirty = true; 284 KOPrefs::instance()->isDirty = true;
282 QString name; 285 QString name;
283 switch ( codec ) { 286 switch ( codec ) {
284 case 0: 287 case 0:
285 name = "iso-8859-1"; 288 name = "iso-8859-1";
286 break; 289 break;
287 case 1: 290 case 1:
288 name = "iso-8859-5"; 291 name = "iso-8859-5";
289 break; 292 break;
290 case 2: 293 case 2:
291 name = "iso-8859-15"; 294 name = "iso-8859-15";
292 break; 295 break;
293 case 3: 296 case 3:
294 name = "big-5"; 297 name = "big-5";
295 break; 298 break;
296 case 4: 299 case 4:
297 name = "utf-8"; 300 name = "utf-8";
298 break; 301 break;
299 case 5: 302 case 5:
300 name = KOPrefs::instance()->mSendCodec.lower(); 303 name = KOPrefs::instance()->mSendCodec.lower();
301 break; 304 break;
302 } 305 }
303 KOPrefs::instance()->mCurrentCodeName = name ; 306 KOPrefs::instance()->mCurrentCodeName = name ;
304 codecMenu->changeItem ( 5, "Userdefined ("+KOPrefs::instance()->mSendCodec+")"); 307 codecMenu->changeItem ( 5, "Userdefined ("+KOPrefs::instance()->mSendCodec+")");
305 codecMenu->setItemChecked(KOPrefs::instance()->mCurrentCodec, true ); 308 codecMenu->setItemChecked(KOPrefs::instance()->mCurrentCodec, true );
306} 309}
307void MainWindow::showLicence() 310void MainWindow::showLicence()
308{ 311{
309 KApplication::showLicence(); 312 KApplication::showLicence();
310} 313}
311void MainWindow::showAbout() 314void MainWindow::showAbout()
312{ 315{
313 QString version; 316 QString version;
314#include <../version> 317#include <../version>
315 318
316 QString cap = "About KOpieMail/Pi"; 319 QString cap = "About KOpieMail/Pi";
317 QString text =i18n("KOpieMail/Platform-independent\n") + 320 QString text =i18n("KOpieMail/Platform-independent\n") +
318 "(OM/Pi) " + version + " - " 321 "(OM/Pi) " + version + " - "
319 322
320#ifdef DESKTOP_VERSION 323#ifdef DESKTOP_VERSION
321 "Desktop Edition\n" 324 "Desktop Edition\n"
322#else 325#else
323 "PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n" 326 "PDA-Edition\nfor: Zaurus 5x00 / 7x0 / 8x0\n"
324#endif 327#endif
325 "www.pi-sync.info\n\n" 328 "www.pi-sync.info\n\n"
326 329
327 330
328 331
329"Copyright (c) 2004 Lutz Rogowski <lutz@pi-sync.info>\n" 332"Copyright (c) 2004 Lutz Rogowski <lutz@pi-sync.info>\n"
330 "KOpieMail/Pi is based on Opie Mail\n" 333 "KOpieMail/Pi is based on Opie Mail\n"
331 "Copyright (c) Rajko Albrecht and the Opie team\n" 334 "Copyright (c) Rajko Albrecht and the Opie team\n"
332 "KOpieMail/Pi is licensed under the GPL\n" 335 "KOpieMail/Pi is licensed under the GPL\n"
333 "\n" 336 "\n"
334 "KOpieMail/Pi uses LibEtPan - a mail stuff library\n" 337 "KOpieMail/Pi uses LibEtPan - a mail stuff library\n"
335 "Copyright (C) 2001, 2002 - DINH Viet Hoa\n" 338 "Copyright (C) 2001, 2002 - DINH Viet Hoa\n"
336 "libEtPan has its own licence - see LibEtPan licence\n"; 339 "libEtPan has its own licence - see LibEtPan licence\n";
337 340
338 KApplication::showText( cap, text ); 341 KApplication::showText( cap, text );
339} 342}
340void MainWindow::showEtpanLicence() 343void MainWindow::showEtpanLicence()
341{ 344{
342 KApplication::showFile( "LibEtPan licence", "kdepim/kopiemail/COPYRIGHTlibetpan" ); 345 KApplication::showFile( "LibEtPan licence", "kdepim/kopiemail/COPYRIGHTlibetpan" );
343 346
344} 347}
345void MainWindow::appMessage(const QCString &, const QByteArray &) 348void MainWindow::appMessage(const QCString &, const QByteArray &)
346{ 349{
347 qDebug("appMessage implemented by subclass"); 350 qDebug("appMessage implemented by subclass");
348} 351}
349 352
350void MainWindow::slotAdjustLayout() { 353void MainWindow::slotAdjustLayout() {
351 354
352 /* 355 /*
353 QWidget *d = QApplication::desktop(); 356 QWidget *d = QApplication::desktop();
354 357
355 if ( d->width() < d->height() ) { 358 if ( d->width() < d->height() ) {
356 layout->setDirection( QBoxLayout::TopToBottom ); 359 layout->setDirection( QBoxLayout::TopToBottom );
357 } else { 360 } else {
358 layout->setDirection( QBoxLayout::LeftToRight ); 361 layout->setDirection( QBoxLayout::LeftToRight );
359 } 362 }
360 */ 363 */
361} 364}
362 365
363void MainWindow::slotAdjustColumns() 366void MainWindow::slotAdjustColumns()
364{ 367{
365 bool hidden = folderView->isHidden(); 368 bool hidden = folderView->isHidden();
366 if ( hidden ) folderView->show(); 369 if ( hidden ) folderView->show();
367 folderView->setColumnWidth( 0, folderView->visibleWidth() ); 370 folderView->setColumnWidth( 0, folderView->visibleWidth() );
368 if ( hidden ) folderView->hide(); 371 if ( hidden ) folderView->hide();
369 372
370 mailView->setColumnWidth( 0, 10 ); 373 mailView->setColumnWidth( 0, 10 );
371 mailView->setColumnWidth( 1, 100 ); 374 mailView->setColumnWidth( 1, 100 );
372 mailView->setColumnWidth( 2, 100 ); 375 mailView->setColumnWidth( 2, 100 );
373 mailView->setColumnWidth( 3, 50 ); 376 mailView->setColumnWidth( 3, 70 );
374 mailView->setColumnWidth( 4, 120 ); 377 mailView->setColumnWidth( 4, 170 );
375 if ( KOPrefs::instance()->mShowToField ) 378 if ( KOPrefs::instance()->mShowToField )
376 mailView->setColumnWidth( 5, 100 ); 379 mailView->setColumnWidth( 5, 100 );
380 mailView->setColumnAlignment( 3, AlignRight);
377} 381}
378 382
379void MainWindow::slotEditSettings() 383void MainWindow::slotEditSettings()
380{ 384{
381} 385}
382void MainWindow::slotEditGlobalSettings() 386void MainWindow::slotEditGlobalSettings()
383{ 387{
384} 388}
385 389
386void MainWindow::slotShowFolders( bool ) 390void MainWindow::slotShowFolders( bool )
387{ 391{
388 qDebug("not implemented: "); 392 qDebug("not implemented: ");
389} 393}
390 394
391void MainWindow::refreshMailView(const QValueList<RecMailP>&) 395void MainWindow::refreshMailView(const QValueList<RecMailP>&)
392{ 396{
393 qDebug("not implemented: "); 397 qDebug("not implemented: ");
394} 398}
395 399
396void MainWindow::mailLeftClicked(QListViewItem * ) 400void MainWindow::mailLeftClicked(QListViewItem * )
397{ 401{
398 qDebug("not implemented: "); 402 qDebug("not implemented: ");
399} 403}
400 404
401void MainWindow::displayMail() 405void MainWindow::displayMail()
402{ 406{
403 qDebug("not implemented: "); 407 qDebug("not implemented: ");
404} 408}
405 409
406void MainWindow::slotDeleteMail() 410void MainWindow::slotDeleteMail()
407{ 411{
408 qDebug("not implemented: "); 412 qDebug("not implemented: ");
409} 413}
410 414
411void MainWindow::mailHold(int, QListViewItem *,const QPoint&,int ) 415void MainWindow::mailHold(int, QListViewItem *,const QPoint&,int )
412{ 416{
413 qDebug("not implemented: "); 417 qDebug("not implemented: ");
414} 418}
415 419
416void MainWindow::slotSendQueued() 420void MainWindow::slotSendQueued()
417{ 421{
418 qDebug("not implemented: "); 422 qDebug("not implemented: ");
419} 423}
420 424
421void MainWindow::slotEditAccounts() 425void MainWindow::slotEditAccounts()
422{ 426{
423 qDebug("not implemented: "); 427 qDebug("not implemented: ");
424} 428}
425 429
426void MainWindow::slotComposeMail() 430void MainWindow::slotComposeMail()
427{ 431{
428 qDebug("not implemented: "); 432 qDebug("not implemented: ");
429} 433}
diff --git a/kmicromail/mainwindow.h b/kmicromail/mainwindow.h
index 6894039..178d2bb 100644
--- a/kmicromail/mainwindow.h
+++ b/kmicromail/mainwindow.h
@@ -1,74 +1,74 @@
1 1
2// CHANGED 2004-08-06 Lutz Rogowski 2// CHANGED 2004-08-06 Lutz Rogowski
3#ifndef MAINWINDOW_H 3#ifndef MAINWINDOW_H
4#define MAINWINDOW_H 4#define MAINWINDOW_H
5 5
6#include <qmainwindow.h> 6#include <qmainwindow.h>
7#include <qlistview.h> 7#include <klistview.h>
8#include <qaction.h> 8#include <qaction.h>
9#include <qlineedit.h> 9#include <qlineedit.h>
10 10
11#include <qtoolbar.h> 11#include <qtoolbar.h>
12#ifdef DESKTOP_VERSION 12#ifdef DESKTOP_VERSION
13#include <qmenubar.h> 13#include <qmenubar.h>
14#define QPEMenuBar QMenuBar 14#define QPEMenuBar QMenuBar
15#else 15#else
16#include <qpe/qpemenubar.h> 16#include <qpe/qpemenubar.h>
17#endif 17#endif
18 18
19#include "accountview.h" 19#include "accountview.h"
20#include "statuswidget.h" 20#include "statuswidget.h"
21 21
22#include <libmailwrapper/mailtypes.h> 22#include <libmailwrapper/mailtypes.h>
23#include <opie2/osmartpointer.h> 23#include <opie2/osmartpointer.h>
24 24
25class RecMail; 25class RecMail;
26 26
27class MainWindow : public QMainWindow 27class MainWindow : public QMainWindow
28{ 28{
29 Q_OBJECT 29 Q_OBJECT
30 30
31public: 31public:
32 MainWindow( QWidget *parent = 0, const char *name = 0, WFlags flags = 0 ); 32 MainWindow( QWidget *parent = 0, const char *name = 0, WFlags flags = 0 );
33 virtual ~MainWindow(); 33 virtual ~MainWindow();
34 34
35public slots: 35public slots:
36 virtual void slotAdjustColumns(); 36 virtual void slotAdjustColumns();
37 virtual void appMessage(const QCString &msg, const QByteArray &data); 37 virtual void appMessage(const QCString &msg, const QByteArray &data);
38 virtual void slotComposeMail(); 38 virtual void slotComposeMail();
39 39
40protected slots: 40protected slots:
41 virtual void setInfoFields(QListViewItem* ); 41 virtual void setInfoFields(QListViewItem* );
42 virtual void slotSendQueued(); 42 virtual void slotSendQueued();
43 virtual void slotEditAccounts(); 43 virtual void slotEditAccounts();
44 virtual void slotShowFolders( bool show ); 44 virtual void slotShowFolders( bool show );
45 virtual void refreshMailView(const QValueList<RecMailP>&); 45 virtual void refreshMailView(const QValueList<RecMailP>&);
46 virtual void displayMail(); 46 virtual void displayMail();
47 virtual void slotGetMail() = 0; 47 virtual void slotGetMail() = 0;
48 virtual void slotGetAllMail() = 0; 48 virtual void slotGetAllMail() = 0;
49 virtual void slotDeleteMail(); 49 virtual void slotDeleteMail();
50 virtual void slotDeleteAllMail() = 0; 50 virtual void slotDeleteAllMail() = 0;
51 virtual void slotSetCodec(int); 51 virtual void slotSetCodec(int);
52 virtual void mailHold(int, QListViewItem *,const QPoint&,int); 52 virtual void mailHold(int, QListViewItem *,const QPoint&,int);
53 virtual void slotAdjustLayout(); 53 virtual void slotAdjustLayout();
54 virtual void slotEditSettings(); 54 virtual void slotEditSettings();
55 virtual void slotEditGlobalSettings(); 55 virtual void slotEditGlobalSettings();
56 virtual void mailLeftClicked( QListViewItem * ); 56 virtual void mailLeftClicked( QListViewItem * );
57 void showLicence(); 57 void showLicence();
58 void showAbout(); 58 void showAbout();
59 void showEtpanLicence(); 59 void showEtpanLicence();
60 60
61protected: 61protected:
62 QToolBar *toolBar; 62 QToolBar *toolBar;
63 StatusWidget *statusWidget; 63 StatusWidget *statusWidget;
64 QPEMenuBar *menuBar; 64 QPEMenuBar *menuBar;
65 QPopupMenu *mailMenu, *settingsMenu, *codecMenu; 65 QPopupMenu *mailMenu, *settingsMenu, *codecMenu;
66 QAction *composeMail, *sendQueued, *showFolders, *searchMails, *deleteMails, 66 QAction *composeMail, *sendQueued, *showFolders, *searchMails, *deleteMails,
67 *editSettings, *editAccounts, *syncFolders; 67 *editSettings, *editAccounts, *syncFolders;
68 AccountView *folderView; 68 AccountView *folderView;
69 QListView *mailView; 69 KListView *mailView;
70 QLineEdit* toLE,*fromLE,*subLE; 70 QLineEdit* toLE,*fromLE,*subLE;
71 //QBoxLayout *layout; 71 //QBoxLayout *layout;
72}; 72};
73 73
74#endif 74#endif