r3653 - in trunk/src/target/OM-2007.2/applications/openmoko-messages2: . src

chris at sita.openmoko.org chris at sita.openmoko.org
Fri Dec 14 16:56:10 CET 2007


Author: chris
Date: 2007-12-14 16:56:08 +0100 (Fri, 14 Dec 2007)
New Revision: 3653

Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog
   trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-contacts.c
   trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.c
   trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-utils.c
   trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-utils.h
Log:
        * src/sms-contacts.c: (delete_clicked_cb):
        Hook up the delete button to delete all messages from currently selected
        contact

        * src/sms-notes.c: (delete_all_clicked_cb):
        Hook up the delete-all button to delete all messages from the currently
        selected contact.

        * src/sms-utils.c: (sms_delete_selected_contact_messages):
        * src/sms-utils.h: 
        Add function to delete all messages from a contact, or from unknown
        contacts


Modified: trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog	2007-12-14 15:38:34 UTC (rev 3652)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog	2007-12-14 15:56:08 UTC (rev 3653)
@@ -1,5 +1,20 @@
 2007-12-14  Chris Lord  <chris at openedhand.com>
 
+	* src/sms-contacts.c: (delete_clicked_cb):
+	Hook up the delete button to delete all messages from currently selected
+	contact
+
+	* src/sms-notes.c: (delete_all_clicked_cb):
+	Hook up the delete-all button to delete all messages from the currently
+	selected contact.
+
+	* src/sms-utils.c: (sms_delete_selected_contact_messages):
+	* src/sms-utils.h:
+	Add function to delete all messages from a contact, or from unknown
+	contacts
+
+2007-12-14  Chris Lord  <chris at openedhand.com>
+
 	* src/sms-compose.c: (page_shown), (page_hidden):
 	Connect to delete/delete-all button clicks (doesn't do anything yet)
 

Modified: trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-contacts.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-contacts.c	2007-12-14 15:38:34 UTC (rev 3652)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-contacts.c	2007-12-14 15:56:08 UTC (rev 3653)
@@ -248,6 +248,8 @@
 delete_clicked_cb (GtkToolButton *button, SmsData *data)
 {
 	if (hidden) return;
+	
+	sms_delete_selected_contact_messages (data);
 }
 
 static void

Modified: trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.c	2007-12-14 15:38:34 UTC (rev 3652)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.c	2007-12-14 15:56:08 UTC (rev 3653)
@@ -498,6 +498,8 @@
 delete_all_clicked_cb (GtkToolButton *button, SmsData *data)
 {
 	if (hidden) return;
+	
+	sms_delete_selected_contact_messages (data);
 }
 
 GtkWidget *

Modified: trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-utils.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-utils.c	2007-12-14 15:38:34 UTC (rev 3652)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-utils.c	2007-12-14 15:56:08 UTC (rev 3653)
@@ -51,6 +51,75 @@
 	return contact;
 }
 
+void
+sms_delete_selected_contact_messages (SmsData *data)
+{
+	EContact *contact;
+	GtkWidget *dialog;
+	
+	contact = sms_get_selected_contact (data);
+	dialog = gtk_message_dialog_new (GTK_WINDOW (data->window),
+		GTK_DIALOG_MODAL,
+		GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE,
+		"Delete all messages from %s?", contact ? (const gchar *)
+		e_contact_get_const (contact, E_CONTACT_FULL_NAME) :
+		"unknown contacts");
+	gtk_dialog_add_buttons (GTK_DIALOG (dialog), GTK_STOCK_CANCEL,
+		GTK_RESPONSE_CANCEL, GTK_STOCK_DELETE, GTK_RESPONSE_YES, NULL);
+	
+	if (gtk_dialog_run (GTK_DIALOG (dialog)) != GTK_RESPONSE_YES) {
+		gtk_widget_destroy (dialog);
+		return;
+	}
+	
+	gtk_widget_destroy (dialog);
+
+	if (contact) {
+		gint i, j;
+		
+		for (i = E_CONTACT_FIRST_PHONE_ID;
+		     i <= E_CONTACT_LAST_PHONE_ID; i++) {
+			SmsNoteCountData *ncdata;
+			const gchar *number = e_contact_get_const (
+				contact, (EContactField)i);
+			if (!number) continue;
+			
+			ncdata = g_hash_table_lookup (data->note_count, number);
+			if (!ncdata) continue;
+			
+			for (j = 0; j < 2; j++) {
+				GList *uids = j ? ncdata->read : ncdata->unread;
+				for (; uids; uids = uids->next) {
+					/* TODO: Add
+					 * jana_store_remove_component_from_uid
+					 * to libjana?
+					 */
+					JanaComponent *comp =
+						jana_store_get_component (
+							data->notes,
+							uids->data);
+					jana_store_remove_component (
+						data->notes, comp);
+					g_object_unref (comp);
+				}
+			}
+			
+			g_hash_table_remove (data->note_count, number);
+		}
+		
+		g_object_unref (contact);
+	} else {
+		while (data->unassigned_notes) {
+			JanaComponent *comp = jana_store_get_component (
+				data->notes, data->unassigned_notes->data);
+			jana_store_remove_component (data->notes, comp);
+			g_object_unref (comp);
+			data->unassigned_notes = g_list_delete_link (
+				data->unassigned_notes, data->unassigned_notes);
+		}
+	}
+}
+
 /* Following two functions taken from pimlico Contacts and modified slightly */
 static void
 contact_photo_size (GdkPixbufLoader * loader, gint width, gint height,

Modified: trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-utils.h
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-utils.h	2007-12-14 15:38:34 UTC (rev 3652)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-utils.h	2007-12-14 15:56:08 UTC (rev 3653)
@@ -25,5 +25,6 @@
 EContact *sms_get_selected_contact (SmsData *data);
 GdkPixbuf *sms_contact_load_photo (EContact *contact);
 gboolean sms_contacts_note_count_update (SmsData *data);
+void sms_delete_selected_contact_messages (SmsData *data);
 
 #endif /* SMS_UTILS_H */





More information about the commitlog mailing list