Fix add to contacts dialog response
authorJose Dapena Paz <jdapena@igalia.com>
Thu, 4 Dec 2008 21:25:54 +0000 (21:25 +0000)
committerJose Dapena Paz <jdapena@igalia.com>
Thu, 4 Dec 2008 21:25:54 +0000 (21:25 +0000)
pmo-drop-split-view-r6670

src/hildon2/modest-msg-view-window.c
src/modest-ui-actions.h

index 9b19302..bd395d5 100644 (file)
@@ -3108,60 +3108,6 @@ on_fetch_image (ModestMsgView *msgview,
        return TRUE;;
 }
 
-void
-modest_msg_view_window_add_to_contacts (ModestMsgViewWindow *self)
-{
-       ModestMsgViewWindowPrivate *priv;
-       priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (self);
-       GSList *recipients = NULL;
-       TnyMsg *msg = NULL;
-       gboolean contacts_to_add = FALSE;
-
-       msg = tny_msg_view_get_msg (TNY_MSG_VIEW (priv->msg_view));
-       if (msg == NULL) return;
-       recipients = modest_tny_msg_get_all_recipients_list (msg);
-
-       if (recipients != NULL) {
-               GtkWidget *picker_dialog;
-               GtkWidget *selector;
-               GSList *node;
-               gchar *selected;
-               selector = hildon_touch_selector_new_text ();
-               for (node = recipients; node != NULL; node = g_slist_next (node)) {
-                       if (!modest_address_book_has_address ((const gchar *) node->data)) {
-                               hildon_touch_selector_append_text (HILDON_TOUCH_SELECTOR (selector), 
-                                                                  (const gchar *) node->data);
-                               contacts_to_add = TRUE;
-                       }
-               }
-
-               if (contacts_to_add) {
-
-                       picker_dialog = hildon_picker_dialog_new (GTK_WINDOW (self));
-                       gtk_window_set_title (GTK_WINDOW (picker_dialog), _("mcen_me_viewer_addtocontacts"));
-
-                       hildon_picker_dialog_set_selector (HILDON_PICKER_DIALOG (picker_dialog), 
-                                                          HILDON_TOUCH_SELECTOR (selector));
-                       
-                       gtk_dialog_run (GTK_DIALOG (picker_dialog));
-                       selected = hildon_touch_selector_get_current_text (HILDON_TOUCH_SELECTOR (selector));
-                       gtk_widget_destroy (picker_dialog);
-
-                       if (selected)
-                               modest_address_book_add_address (selected);
-                       g_free (selected);
-
-               } else {
-
-                       g_object_unref (selector);
-
-               }
-       }
-       
-       if (recipients) {g_slist_foreach (recipients, (GFunc) g_free, NULL); g_slist_free (recipients);}
-       g_object_unref (msg);
-}
-
 static void 
 add_to_menu (ModestMsgViewWindow *self,
             HildonAppMenu *menu,
@@ -3220,7 +3166,7 @@ setup_menu (ModestMsgViewWindow *self, ModestDimmingRulesGroup *group)
                     G_CALLBACK (modest_ui_actions_on_new_msg),
                     group, G_CALLBACK (modest_ui_dimming_rules_on_new_msg));
        add_to_menu (self, HILDON_APP_MENU (app_menu), _("mcen_me_viewer_addtocontacts"),
-                    G_CALLBACK (modest_ui_actions_on_add_to_contacts),
+                    G_CALLBACK (modest_ui_actions_add_to_contacts),
                     group, G_CALLBACK (modest_ui_dimming_rules_on_add_to_contacts));
 
        hildon_stackable_window_set_main_menu (HILDON_STACKABLE_WINDOW (self), 
@@ -3234,5 +3180,67 @@ modest_msg_view_window_toggle_menu (HildonWindow *window,
 {
        modest_ui_actions_check_menu_dimming_rules (MODEST_WINDOW (window));
 
-       return HILDON_WINDOW_CLASS (parent_class)->toggle_menu (window, button, time);  
+       return HILDON_WINDOW_CLASS (parent_class)->toggle_menu (window, button, time);
+}
+
+
+void
+modest_msg_view_window_add_to_contacts (ModestMsgViewWindow *self)
+{
+       ModestMsgViewWindowPrivate *priv;
+       priv = MODEST_MSG_VIEW_WINDOW_GET_PRIVATE (self);
+       GSList *recipients = NULL;
+       TnyMsg *msg = NULL;
+       gboolean contacts_to_add = FALSE;
+
+       msg = tny_msg_view_get_msg (TNY_MSG_VIEW (priv->msg_view));
+       if (msg == NULL) return;
+       recipients = modest_tny_msg_get_all_recipients_list (msg);
+
+       if (recipients != NULL) {
+               GtkWidget *picker_dialog;
+               GtkWidget *selector;
+               GSList *node;
+               gchar *selected = NULL;
+
+               selector = hildon_touch_selector_new_text ();
+               g_object_ref (selector);
+
+               for (node = recipients; node != NULL; node = g_slist_next (node)) {
+                       if (!modest_address_book_has_address ((const gchar *) node->data)) {
+                               hildon_touch_selector_append_text (HILDON_TOUCH_SELECTOR (selector), 
+                                                                  (const gchar *) node->data);
+                               contacts_to_add = TRUE;
+                       }
+               }
+
+               if (contacts_to_add) {
+                       gint picker_result;
+
+                       picker_dialog = hildon_picker_dialog_new (GTK_WINDOW (self));
+                       gtk_window_set_title (GTK_WINDOW (picker_dialog), _("mcen_me_viewer_addtocontacts"));
+
+                       hildon_picker_dialog_set_selector (HILDON_PICKER_DIALOG (picker_dialog), 
+                                                          HILDON_TOUCH_SELECTOR (selector));
+                       
+                       picker_result = gtk_dialog_run (GTK_DIALOG (picker_dialog));
+
+                       if (picker_result == GTK_RESPONSE_OK) {
+                               selected = hildon_touch_selector_get_current_text (HILDON_TOUCH_SELECTOR (selector));
+                       }
+                       gtk_widget_destroy (picker_dialog);
+
+                       if (selected)
+                               modest_address_book_add_address (selected);
+                       g_free (selected);
+
+               } else {
+
+                       g_object_unref (selector);
+
+               }
+       }
+       
+       if (recipients) {g_slist_foreach (recipients, (GFunc) g_free, NULL); g_slist_free (recipients);}
+       g_object_unref (msg);
 }
index a21a80d..645663a 100644 (file)
@@ -58,6 +58,7 @@ void     modest_ui_actions_on_accounts      (GtkAction *action, ModestWindow *wi
 
 void     modest_ui_actions_on_smtp_servers  (GtkAction *action, ModestWindow *win);
 
+void     modest_ui_actions_add_to_contacts   (GtkAction *action, ModestWindow *win);
 void     modest_ui_actions_on_add_to_contacts   (GtkAction *action, ModestWindow *win);
 
 void     modest_ui_actions_on_select_contacts (GtkAction *action, ModestMsgEditWindow *win);