-rw-r--r-- | korganizer/koeventviewer.cpp | 56 | ||||
-rw-r--r-- | korganizer/koeventviewer.h | 3 |
2 files changed, 56 insertions, 3 deletions
diff --git a/korganizer/koeventviewer.cpp b/korganizer/koeventviewer.cpp index 7dc1880..bf41edb 100644 --- a/korganizer/koeventviewer.cpp +++ b/korganizer/koeventviewer.cpp @@ -123,14 +123,22 @@ void KOEventViewer::setSource(const QString& n) // the result should now arrive through method insertAttendees //QString uid = "uid:"+(*it).uid(); #endif if ( n.left(6) == "mailto" ) { // qDebug("KOEventViewer::setSource %s ", n.mid(7).latin1()); #ifndef DESKTOP_VERSION + if ( n.mid(7,3) == "ALL" ) { + qDebug("all "); + mailToAttendees( true ); + } else if ( n.mid(7,4) == "RSVP" ) { + mailToAttendees( false ); + qDebug("rsvp "); + } else { QCopEnvelope e("QPE/Application/ompi", "newMail(QString)" ); e << n.mid(7); + } #endif } #ifndef KORG_NODCOP @@ -171,13 +179,32 @@ void KOEventViewer::setSource(const QString& n) } } else { //QTextBrowser::setSource(n); } #endif } +void KOEventViewer::mailToAttendees( bool all ) +{ + QPtrList<Attendee> attendees = mCurrentIncidence->attendees(); + if (attendees.count() == 0) return; + QStringList nameList; + QStringList emailList; + QStringList uidList; + Attendee* a; + for(a=attendees.first();a;a=attendees.next()) { + if ( !all && !a->RSVP() ) continue; + if (!a->email().isEmpty()) { + nameList.append (a->name() ); + emailList.append (a->email() ); + uidList.append (a->uid() ); + } + } + QString uid = "ComposeMailUIpick2"+mMailSubject; + bool res = ExternalAppHandler::instance()->returnNameEmailUidListFromKAPI("QPE/Application/ompi", uid, nameList, emailList, uidList); +} void KOEventViewer::addTag(const QString & tag,const QString & text) { int number=text.contains("\n"); QString str = "<" + tag + ">"; QString tmpText=text; QString tmpStr=str; @@ -459,12 +486,15 @@ void KOEventViewer::formatAttendees(Incidence *event) } mText.append("</li></ul>"); addTag("h3",i18n("Attendees")); Attendee *a; mText.append("<ul>"); + int a_count = 0; + int a_count_nr = 0; + for(a=attendees.first();a;a=attendees.next()) { #ifndef KORG_NOKABC #ifdef DESKTOP_VERSION if (a->name().isEmpty()) { addressList = add_book->findByEmail(a->email()); KABC::Addressee o = addressList.first(); @@ -498,25 +528,47 @@ void KOEventViewer::formatAttendees(Incidence *event) #endif if (!a->email().isEmpty()) { if (iconPath) { mText += "<a href=\"mailto:" + a->name() +" <" + a->email() + ">:" + mMailSubject + "\">"; - if ( a->RSVP() ) + if ( a->RSVP() ) { + ++a_count; mText += "<IMG src=\"" + iconPath + "\">"; - else + } + else { + ++a_count_nr; mText += "<IMG src=\"" + NOiconPath + "\">"; + } mText += "</a>\n"; } } if (a->status() != Attendee::NeedsAction ) mText +="[" + a->statusStr() + "] "; if (a->role() == Attendee::Chair ) mText +="(" + a->roleStr().left(1) + ".)"; } mText.append("</li></ul>"); + if ( a_count > 1 ) { + mText += "<a href=\"mailto:ALL\">"; + mText += i18n( "Mail to all" ); + mText += "</a> ( "; + mText += "<IMG src=\"" + iconPath + "\">"; + mText += i18n( " and " ); + mText += "<IMG src=\"" + NOiconPath + "\"> )"; + mText += "<br>\n"; + + + } + if ( a_count_nr > 1 ) { + mText += "<a href=\"mailto:RSVP\">"; + mText += i18n( "Mail to selected" ); + mText += "</a> ( "; + mText += i18n( "<IMG src=\"%1\"> only )").arg ( iconPath ); + mText += "\n"; + } } } void KOEventViewer::appendJournal(Journal *jour, int mode ) { bool shortDate = KOPrefs::instance()->mShortDateInViewer; diff --git a/korganizer/koeventviewer.h b/korganizer/koeventviewer.h index 0cd3f33..cf44284 100644 --- a/korganizer/koeventviewer.h +++ b/korganizer/koeventviewer.h @@ -48,12 +48,13 @@ class KOEventViewer : public QTextBrowser { void clearEvents(bool now=false); void addText(QString text); void setSyncMode( bool ); void setColorMode( int ); + void mailToAttendees( bool all ); protected: int mColorMode; void addTag(const QString & tag,const QString & text); void formatCategories(Incidence *event); @@ -63,12 +64,12 @@ class KOEventViewer : public QTextBrowser { private: QTextBrowser *mEventTextView; bool mSyncMode; QString mText; QString mMailSubject; - Incidence* mCurrentIncidence; + Incidence* mCurrentIncidence; signals: void launchaddressbook(QString uid); }; #endif |