r4250 - in trunk/src/target/OM-2007.2/applications/openmoko-dialer2: . src/dialer

thomas at sita.openmoko.org thomas at sita.openmoko.org
Wed Mar 26 00:11:41 CET 2008


Author: thomas
Date: 2008-03-26 00:11:39 +0100 (Wed, 26 Mar 2008)
New Revision: 4250

Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
   trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/dialer/moko-history.c
Log:
2008-03-25  Thomas Wood  <thomas at openedhand.com>

	* src/dialog/moko-history.c: Implement "Create New Contact" from call
	log


Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog	2008-03-25 22:12:32 UTC (rev 4249)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/ChangeLog	2008-03-25 23:11:39 UTC (rev 4250)
@@ -1,3 +1,8 @@
+2008-03-25  Thomas Wood  <thomas at openedhand.com>
+
+	* src/dialog/moko-history.c: Implement "Create New Contact" from call
+	log
+
 2008-03-20  Thomas Wood  <thomas at openedhand.com>
 
 	* Makefile.am:

Modified: trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/dialer/moko-history.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/dialer/moko-history.c	2008-03-25 22:12:32 UTC (rev 4249)
+++ trunk/src/target/OM-2007.2/applications/openmoko-dialer2/src/dialer/moko-history.c	2008-03-25 23:11:39 UTC (rev 4250)
@@ -220,6 +220,48 @@
 }
 
 static void
+create_new_contact_from_number (gchar *number)
+{
+  GtkWidget *dialog, *name, *label;
+
+  dialog = gtk_dialog_new_with_buttons ("Save as Contact",
+             NULL, GTK_DIALOG_MODAL, GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
+	     GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, NULL);
+
+  gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE);
+
+  label = gtk_label_new ("Enter a name for the contact");
+  name = gtk_entry_new ();
+
+  gtk_box_pack_start_defaults (GTK_BOX (GTK_DIALOG(dialog)->vbox), label);
+  gtk_box_pack_start_defaults (GTK_BOX (GTK_DIALOG(dialog)->vbox), name);
+
+  gtk_widget_show (label);
+  gtk_widget_show (name);
+
+  if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
+  {
+    EContact *contact;
+    EBook *book;
+
+    /* create contact */
+    contact = e_contact_new ();
+    e_contact_set (contact, E_CONTACT_FULL_NAME, gtk_entry_get_text (GTK_ENTRY (name)));
+    e_contact_set (contact, E_CONTACT_PHONE_OTHER, number);
+
+    /* open address book */
+    book = e_book_new_system_addressbook (NULL);
+    e_book_open (book, FALSE, NULL);
+
+    /* add contact to address book, and close */
+    e_book_add_contact (book, contact, NULL);
+    g_object_unref (book);
+    g_object_unref (contact);
+  }
+  gtk_widget_destroy (dialog);
+}
+
+static void
 on_btn_save_clicked (GtkWidget *button, SaveButtonInfo *info)
 {
   gint action = info->response_id;
@@ -229,7 +271,10 @@
   gtk_widget_destroy (info->dialog);
   
   if (action == 1)
-  { /* create new contact */ }
+  {
+    /* create new contact */
+    create_new_contact_from_number (number);
+  }
   else
   {
     EBook *book;





More information about the commitlog mailing list