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