static gboolean resolve_address (const gchar *address, GSList **resolved_addresses, gchar **contact_id);
static gchar *unquote_string (const gchar *str);
-
static void
unref_gobject (GObject *obj)
{
if (obj)
g_object_unref (obj);
}
-
static void
get_book_view_cb (EBook *book, EBookStatus status, EBookView *bookview, gpointer data)
}
void
-modest_address_book_add_address (const gchar *address)
+modest_address_book_add_address (const gchar *address,
+ GtkWindow *parent)
{
OssoABookAccount *account = NULL;
GtkWidget *dialog = NULL;
}
email_address = modest_text_utils_get_email_address (address);
-
+
account = osso_abook_account_get (EVC_EMAIL, NULL, email_address);
g_free (email_address);
if (account)
{
dialog = osso_abook_add_to_contacts_dialog_new (contact_model, account);
g_object_unref (account);
+
+ modest_window_mgr_set_modal (modest_runtime_get_window_mgr(),
+ (GtkWindow *) parent,
+ (GtkWindow *) dialog);
+
gtk_dialog_run (GTK_DIALOG (dialog));
if (contact_model) {
}
void
-modest_address_book_select_addresses (ModestRecptEditor *recpt_editor)
+modest_address_book_select_addresses (ModestRecptEditor *recpt_editor,
+ GtkWindow *parent_window)
{
#if MODEST_ABOOK_API < 4
GtkWidget *contact_view = NULL;
GtkWidget *contact_dialog;
+ GtkWidget *toplevel;
#else /* MODEST_ABOOK_API < 4 */
OssoABookContactChooser *contact_chooser = NULL;
#endif /* MODEST_ABOOK_API < 4 */
contact_dialog = osso_abook_select_dialog_new (OSSO_ABOOK_TREE_VIEW (contact_view));
gtk_window_set_title (GTK_WINDOW (contact_dialog), _("mcen_ti_select_recipients"));
- modest_window_mgr_set_modal (modest_runtime_get_window_mgr (), GTK_WINDOW (contact_dialog));
+ toplevel = gtk_widget_get_toplevel (GTK_WIDGET (recpt_editor));
+ modest_window_mgr_set_modal (modest_runtime_get_window_mgr (), GTK_WINDOW (contact_dialog), (GtkWindow *) toplevel);
gtk_widget_show (contact_dialog);
if ((invalid_char_offset != NULL)&&(*invalid_char_offset != '\0')) {
gchar *char_in_string = g_strdup_printf ("%c", *invalid_char_offset);
gchar *message = g_strdup_printf(
- dgettext("hildon-common-strings", "ckdg_ib_illegal_characters_entered"),
+ _CS("ckdg_ib_illegal_characters_entered"),
char_in_string);
hildon_banner_show_information (
add_email_addr_to_contact_dlg, NULL, message );
}
gboolean
-modest_address_book_check_names (ModestRecptEditor *recpt_editor, gboolean update_addressbook)
+modest_address_book_check_names (ModestRecptEditor *recpt_editor,
+ GSList **address_list)
{
const gchar *recipients = NULL;
GSList *start_indexes = NULL, *end_indexes = NULL;
if ((invalid_char_position != NULL) && (*invalid_char_position != '\0')) {
gchar *char_in_string = g_strdup_printf("%c", *invalid_char_position);
gchar *message = g_strdup_printf(
- dgettext("hildon-common-strings", "ckdg_ib_illegal_characters_entered"),
+ _CS("ckdg_ib_illegal_characters_entered"),
char_in_string);
g_free (char_in_string);
hildon_banner_show_information (NULL, NULL, message );
- g_free (message);
+ g_free (message);
result = FALSE;
} else if (strstr (address, "@") == NULL) {
/* here goes searching in addressbook */
}
g_slist_free (tags);
if (!has_recipient) {
- GSList * address_list = NULL;
+ GSList * addr_list = NULL;
- address_list = g_slist_prepend (address_list, address);
+ addr_list = g_slist_prepend (addr_list, address);
modest_recpt_editor_replace_with_resolved_recipient (recpt_editor,
&start_iter, &end_iter,
- address_list,
+ addr_list,
"");
- g_slist_free (address_list);
+ g_slist_free (addr_list);
store_address = TRUE;
}
}
/* so, it seems a valid address */
/* note: adding it the to the addressbook if it did not exist yet,
* and adding it to the recent_list */
- if (result && update_addressbook && store_address)
- add_to_address_book (address);
+ if (result && address_list && store_address)
+ *address_list = g_slist_prepend (*address_list, address);
+ else
+ g_free (address);
- g_free (address);
if (result == FALSE)
break;
current_end = g_slist_next (current_end);
}
+ /* Remove dup's */
+ if (address_list && *address_list)
+ *address_list = modest_text_utils_remove_duplicate_addresses_list (*address_list);
+
if (current_start == NULL) {
gtk_text_buffer_get_end_iter (buffer, &end_iter);
gtk_text_buffer_place_cursor (buffer, &end_iter);
return g_string_free (buffer, FALSE);
}
+
+gboolean
+modest_address_book_has_address (const gchar *address)
+{
+ EBookQuery *query;
+ GList *contacts = NULL;
+ GError *err = NULL;
+ gchar *email;
+ gboolean result;
+
+ g_return_val_if_fail (address, FALSE);
+
+ if (!book) {
+ if (!open_addressbook ()) {
+ g_return_val_if_reached (FALSE);
+ }
+ }
+
+ g_return_val_if_fail (book, FALSE);
+
+ email = modest_text_utils_get_email_address (address);
+
+ query = e_book_query_field_test (E_CONTACT_EMAIL, E_BOOK_QUERY_IS, email);
+ if (!e_book_get_contacts (book, query, &contacts, &err)) {
+ g_printerr ("modest: failed to get contacts: %s",
+ err ? err->message : "<unknown>");
+ if (err)
+ g_error_free (err);
+ return FALSE;
+ }
+ e_book_query_unref (query);
+
+ result = (contacts != NULL);
+ if (contacts) {
+ g_list_foreach (contacts, (GFunc)unref_gobject, NULL);
+ g_list_free (contacts);
+ }
+
+ g_free (email);
+
+ return result;
+}
+
+const gchar *
+modest_address_book_get_my_name ()
+{
+ /* There is no support to get my own contact in this version */
+ return NULL;
+}
+
+
+void
+modest_address_book_init (void)
+{
+ open_addressbook ();
+}
+
+void
+modest_address_book_add_address_list (GSList *address_list)
+{
+
+}