summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/koeditordetails.cpp39
-rw-r--r--korganizer/koeditordetails.h7
2 files changed, 43 insertions, 3 deletions
diff --git a/korganizer/koeditordetails.cpp b/korganizer/koeditordetails.cpp
index c0e7bdd..8e2fabe 100644
--- a/korganizer/koeditordetails.cpp
+++ b/korganizer/koeditordetails.cpp
@@ -37,7 +37,13 @@
#include <kstandarddirs.h>
#include <kmessagebox.h>
#ifndef KORG_NOKABC
+
+#ifdef DESKTOP_VERSION
#include <kabc/addresseedialog.h>
+#else //DESKTOP_VERSION
+#include <externalapphandler.h>
+#endif //DESKTOP_VERSION
+
#endif
#include <libkcal/incidence.h>
@@ -84,7 +90,7 @@ KOEditorDetails::KOEditorDetails (int spacing,QWidget* parent,const char* name)
if ( KOPrefs::instance()->mCompactDialogs ) {
//mListView->setFixedHeight(78);
}
-
+
connect(mListView,SIGNAL(selectionChanged(QListViewItem *)),
SLOT(updateAttendeeInput()));
@@ -195,6 +201,11 @@ KOEditorDetails::KOEditorDetails (int spacing,QWidget* parent,const char* name)
#endif
updateAttendeeInput();
+
+//US listen for arriving address resultsets
+ connect(ExternalAppHandler::instance(), SIGNAL(receivedNameEmailUidListEvent(const QString&, const QStringList&, const QStringList&, const QStringList&)),
+ this, SLOT(insertAttendees(const QString&, const QStringList&, const QStringList&, const QStringList&)));
+
}
KOEditorDetails::~KOEditorDetails()
@@ -221,12 +232,18 @@ void KOEditorDetails::openAddressBook()
{
#ifndef KORG_NOKABC
+#ifdef DESKTOP_VERSION
KABC::Addressee::List list = KABC::AddresseeDialog::getAddressees(this);
uint i=0;
for (i=0; i < list.count(); i++) {
insertAttendee( new Attendee( list[i].realName(), list[i].preferredEmail(),false,KCal::Attendee::NeedsAction,KCal::Attendee::ReqParticipant,list[i].uid()) );
}
-
+#else
+ bool res = ExternalAppHandler::instance()->requestNameEmailUidListFromKAPI("QPE/Application/kopi", this->name() /* name is here the unique uid*/);
+ // the result should now arrive through method insertAttendees
+#endif
+
+
#if 0
KABC::Addressee a = KABC::AddresseeDialog::getAddressee(this);
if (!a.isEmpty()) {
@@ -263,6 +280,24 @@ void KOEditorDetails::addNewAttendee()
insertAttendee(a);
}
+//the map includes name/email pairs, that comes from Ka/Pi
+void KOEditorDetails::insertAttendees(const QString& uid,const QStringList& nameList,const QStringList& emailList,const QStringList& uidList)
+{
+ if (uid == this->name())
+ {
+ for ( int i = 0; i < nameList.count(); i++)
+ {
+ QString _name = nameList[i];
+ QString _email = emailList[i];
+ QString _uid = uidList[i];
+
+ Attendee *a = new Attendee(_name,_email,false,KCal::Attendee::NeedsAction,KCal::Attendee::ReqParticipant, _uid);
+ insertAttendee(a);
+ }
+ }
+
+}
+
void KOEditorDetails::insertAttendee(Attendee *a)
{
diff --git a/korganizer/koeditordetails.h b/korganizer/koeditordetails.h
index 930b296..0cc807f 100644
--- a/korganizer/koeditordetails.h
+++ b/korganizer/koeditordetails.h
@@ -23,6 +23,7 @@
#ifndef _KOEDITORDETAILS_H
#define _KOEDITORDETAILS_H
+#include <qmap.h>
#include <qframe.h>
#include <qlabel.h>
#include <qcheckbox.h>
@@ -70,6 +71,10 @@ class KOEditorDetails : public QWidget
public slots:
void insertAttendee(Attendee *);
+ // called when the app recieves a list of name/email/uid (=addresses) from another app. Usually Ka/Pi
+ // The first parameter is a uniqueid. It can be used to identify if event
+ void insertAttendees(const QString&, const QStringList& namelist, const QStringList& emaillist, const QStringList& uidlist);
+
protected slots:
void addNewAttendee();
@@ -96,7 +101,7 @@ class KOEditorDetails : public QWidget
QPushButton* mAddButton;
QPushButton* mRemoveButton;
QPushButton* mAddressBookButton;
-
+
QPtrList<Attendee> mdelAttendees;
};