1 #include "ossoabookdialog.h"
4 OssoABookDialog::OssoABookDialog(QObject *parent) :
9 QStringList OssoABookDialog::contactChooser(const QString& windowTitle, OssoABookCapsFlags caps, OssoABookContactOrder order)
12 GtkWidget* contactChooser = osso_abook_contact_chooser_new_with_capabilities (NULL, qPrintable(windowTitle), caps, order);
14 //Shows a modal dialog.
15 GList* contacts; // Do not free
16 if (gtk_dialog_run(GTK_DIALOG(contactChooser)) == GTK_RESPONSE_OK){
17 contacts = osso_abook_contact_chooser_get_selection(OSSO_ABOOK_CONTACT_CHOOSER(contactChooser));
19 EContact* eContact = E_CONTACT(contacts->data);
20 const char* id = (const char*)e_contact_get_const(eContact, E_CONTACT_UID);
21 rtn << QString::fromLatin1(id);
22 contacts = contacts->next;
25 gtk_widget_destroy(contactChooser);
30 void OssoABookDialog::contactEditor(const QString& id){
31 OssoABookContact* contact = OssoABookDialog::lookup(id);
33 OssoABookContactEditorMode mode = (contact) ? OSSO_ABOOK_CONTACT_EDITOR_EDIT : OSSO_ABOOK_CONTACT_EDITOR_CREATE;
35 GtkWidget* contactEditor = osso_abook_contact_editor_new_with_contact(NULL, contact, mode);
36 gtk_dialog_run(GTK_DIALOG(contactEditor));
37 gtk_widget_destroy(contactEditor);
40 void OssoABookDialog::showContactDialog(const QString &id)
42 OssoABookContact *contact = OssoABookDialog::lookup(id);
44 //GtkWidget *contactDialog = osso_abook_touch_contact_starter_new_with_contact(NULL, contact);
45 GtkWidget *contactDialog = osso_abook_touch_contact_starter_dialog_new(NULL,
46 (OssoABookTouchContactStarter*)osso_abook_touch_contact_starter_new_with_contact(NULL,
49 gtk_widget_show_all(contactDialog);
50 gtk_dialog_run(GTK_DIALOG(contactDialog));
51 gtk_widget_destroy(contactDialog);
55 OssoABookContact* OssoABookDialog::lookup(const QString& id){
56 GList* l = NULL; // Do not free
58 OssoABookAggregator* aggregator = NULL; // Do not free
60 aggregator = (OssoABookAggregator*) osso_abook_aggregator_get_default(&error);
62 qWarning() << "error opening addressbook" << error->message;
67 l = osso_abook_aggregator_lookup(aggregator,qPrintable(id));
69 return (OssoABookContact*) l->data;