summaryrefslogtreecommitdiffabout
path: root/kmicromail/composemail.cpp
authorzautrix <zautrix>2004-09-07 22:51:29 (UTC)
committer zautrix <zautrix>2004-09-07 22:51:29 (UTC)
commit2676646d4744ccceab1063dc02d772a26a203c61 (patch) (unidiff)
tree0a0d5261b9a804a29b61a38f68339979051282e2 /kmicromail/composemail.cpp
parent64a8ef1629f523df3006de5cb2b9882a50d96a05 (diff)
downloadkdepimpi-2676646d4744ccceab1063dc02d772a26a203c61.zip
kdepimpi-2676646d4744ccceab1063dc02d772a26a203c61.tar.gz
kdepimpi-2676646d4744ccceab1063dc02d772a26a203c61.tar.bz2
Implemented Ompi - kapi connection
Diffstat (limited to 'kmicromail/composemail.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kmicromail/composemail.cpp99
1 files changed, 88 insertions, 11 deletions
diff --git a/kmicromail/composemail.cpp b/kmicromail/composemail.cpp
index 654cfc0..5f446fa 100644
--- a/kmicromail/composemail.cpp
+++ b/kmicromail/composemail.cpp
@@ -30,5 +30,9 @@
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
@@ -39,6 +43,14 @@ ComposeMail::ComposeMail( Settings *s, QWidget *parent, const char *name, bool m
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();
@@ -58,4 +70,5 @@ ComposeMail::ComposeMail( Settings *s, QWidget *parent, const char *name, bool m
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" );
@@ -92,7 +105,10 @@ ComposeMail::ComposeMail( Settings *s, QWidget *parent, const char *name, bool m
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{
@@ -141,6 +157,11 @@ void ComposeMail::setStatus( QString 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();
@@ -150,7 +171,8 @@ void ComposeMail::pickAddress( QLineEdit *line )
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 }
@@ -162,6 +184,57 @@ void ComposeMail::pickAddress( QLineEdit *line )
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 )
@@ -188,20 +261,24 @@ void ComposeMail::setMessage( const QString & text )
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