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

thomas at sita.openmoko.org thomas at sita.openmoko.org
Wed Apr 2 23:06:16 CEST 2008


Author: thomas
Date: 2008-04-02 23:06:15 +0200 (Wed, 02 Apr 2008)
New Revision: 4300

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
Log:
2008-04-02  Thomas Wood  <thomas at openedhand.com>

	* src/sms-contacts.c:
	* src/sms-notes.c:
	* src/sms-utils.c:

	Re-add the New button to the notes pages.

	Add a delete all button to the contacts page, to delete all selected
	contact's messages


Modified: trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog	2008-04-02 15:17:25 UTC (rev 4299)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/ChangeLog	2008-04-02 21:06:15 UTC (rev 4300)
@@ -1,5 +1,16 @@
 2008-04-02  Thomas Wood  <thomas at openedhand.com>
 
+	* src/sms-contacts.c:
+	* src/sms-notes.c:
+	* src/sms-utils.c:
+
+	Re-add the New button to the notes pages.
+
+	Add a delete all button to the contacts page, to delete all selected
+	contact's messages
+
+2008-04-02  Thomas Wood  <thomas at openedhand.com>
+
 	* src/Makefile.am:
 	* src/test-notes.c:
 

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	2008-04-02 15:17:25 UTC (rev 4299)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-contacts.c	2008-04-02 21:06:15 UTC (rev 4300)
@@ -104,6 +104,12 @@
 }
 
 static void
+delete_all_clicked_cb (GtkWidget *button, SmsData *data)
+{
+	sms_delete_selected_contact_messages (data);
+} 
+
+static void
 dial_clicked_cb (GtkWidget *button, SmsData *data)
 {
 	GList *numbers;
@@ -597,49 +603,36 @@
 selection_changed_cb (GtkTreeSelection *selection, SmsData *data)
 {
 	GtkTreeModel *model;
-	gboolean sensitive;
+	gboolean selected, has_messages;
 	GtkTreeIter iter;
 	gchar *detail;
 	
-	if (!gtk_tree_selection_get_selected (selection, &model, &iter)) {
-		gtk_widget_set_sensitive (GTK_WIDGET (
-			data->delete_button), FALSE);
-		return;
+	if (!gtk_tree_selection_get_selected (selection, &model, &iter))
+	{
+		selected = FALSE;
+		has_messages = FALSE;
 	}
-	
-	/* Not the nicest way to know if there are messages, but better than 
-	 * doing multiple look-ups on the hash-tables
-	 */
-	gtk_tree_model_get (model, &iter, COL_DETAIL, &detail, -1);
-	if (!detail) {
-		sensitive = FALSE;
-	} else {
-		sensitive = TRUE;
-		if (detail[0] == '0') {
-			const gchar *next_line = strchr (detail, '\n') + 1;
-			if ((!next_line) || (next_line[0] == '0'))
-				sensitive = FALSE;
-		}
-		g_free (detail);
-	}
-
-	gtk_widget_set_sensitive (GTK_WIDGET (data->delete_button), sensitive);
-}
-
-void
-sms_contacts_update_delete_all (SmsData *data)
-{
-
-	if (gtk_notebook_get_current_page (GTK_NOTEBOOK (data->notebook)) ==
-	    SMS_PAGE_CONTACTS) {
-		if (g_hash_table_size (data->note_count) > 0) {
-			gtk_widget_set_sensitive (GTK_WIDGET (
-				data->delete_all_button), TRUE);
+	else
+	{
+		selected = TRUE;
+		/* Not the nicest way to know if there are messages, but better than 
+		 * doing multiple look-ups on the hash-tables
+		 */
+		gtk_tree_model_get (model, &iter, COL_DETAIL, &detail, -1);
+		if (!detail) {
+			has_messages = FALSE;
 		} else {
-			gtk_widget_set_sensitive (GTK_WIDGET (
-				data->delete_all_button), FALSE);
+			has_messages = TRUE;
+			if (detail[0] == '0') {
+				const gchar *next_line = strchr (detail, '\n') + 1;
+				if ((!next_line) || (next_line[0] == '0'))
+					has_messages = FALSE;
+			}
+			g_free (detail);
 		}
 	}
+	gtk_widget_set_sensitive (GTK_WIDGET (data->dial_button), selected);
+	gtk_widget_set_sensitive (GTK_WIDGET (data->delete_all_button), has_messages);
 }
 
 GtkWidget *
@@ -800,9 +793,20 @@
 	data->dial_button = gtk_tool_button_new_from_stock (MOKO_STOCK_CALL_DIAL);
 	gtk_tool_item_set_expand (data->dial_button, TRUE);
 	gtk_toolbar_insert (GTK_TOOLBAR (toolbar), data->dial_button, -1);
+	gtk_widget_set_sensitive (GTK_WIDGET (data->dial_button), FALSE);
 	g_signal_connect (data->dial_button, "clicked",
 		G_CALLBACK (dial_clicked_cb), data);
-	
+
+	/* Delete all button */
+	data->delete_all_button = gtk_tool_button_new_from_stock (
+		MOKO_STOCK_FOLDER_DELETE);
+	gtk_tool_item_set_expand (data->delete_all_button, TRUE);
+	gtk_toolbar_insert (GTK_TOOLBAR (toolbar), data->delete_all_button, -1);
+	gtk_widget_set_sensitive (GTK_WIDGET (data->delete_all_button), FALSE);
+	g_signal_connect (data->delete_all_button, "clicked",
+		G_CALLBACK (delete_all_clicked_cb), data);
+
+  
 	/* Pack widgets into vbox and return */
 	vbox = gtk_vbox_new (FALSE, 0);
 	gtk_box_pack_start (GTK_BOX (vbox), toolbar,

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	2008-04-02 15:17:25 UTC (rev 4299)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-notes.c	2008-04-02 21:06:15 UTC (rev 4300)
@@ -632,6 +632,36 @@
 }
 
 static void
+new_clicked_cb (GtkToolButton *button, SmsData *data)
+{
+	GtkTreeSelection *selection;
+	GtkTreeModel *model;
+	GtkTreeIter iter;
+	gchar *author;
+  
+	selection = gtk_tree_view_get_selection (
+		GTK_TREE_VIEW (data->notes_treeview));
+	if ((!selection) ||
+	    (!gtk_tree_selection_get_selected (selection, &model, &iter)))
+        {
+		/* TODO: find the current selected contact preferred number? */
+		author = g_strdup ("");
+	}
+	else
+	{
+		gtk_tree_model_get (model, &iter,
+			JANA_GTK_NOTE_STORE_COL_AUTHOR, &author, -1);
+	}
+
+	gtk_text_buffer_set_text (gtk_text_view_get_buffer (
+		GTK_TEXT_VIEW (data->sms_textview)), author, -1);
+
+	gtk_notebook_set_current_page (
+			GTK_NOTEBOOK (data->notebook), SMS_PAGE_COMPOSE);
+	g_free (author);
+}
+
+static void
 forward_clicked_cb (GtkToolButton *button, SmsData *data)
 {
 	gchar *body;
@@ -709,14 +739,6 @@
 }
 
 static void
-delete_all_clicked_cb (GtkToolButton *button, SmsData *data)
-{
-	if (hidden) return;
-	
-	sms_delete_selected_contact_messages (data);
-}
-
-static void
 search_toggled_cb (MokoSearchBar *bar, gboolean search_visible, SmsData *data)
 {
 	gtk_tree_model_filter_refilter (
@@ -793,23 +815,6 @@
 }
 
 static void
-row_inserted_cb (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter,
-		 SmsData *data)
-{
-	gtk_widget_set_sensitive (GTK_WIDGET (data->delete_all_button), TRUE);
-}
-
-static void
-row_deleted_cb (GtkTreeModel *model, GtkTreePath *path, SmsData *data)
-{
-	GtkTreeIter iter;
-	
-	if (!gtk_tree_model_get_iter_first (model, &iter))
-		gtk_widget_set_sensitive (GTK_WIDGET (
-			data->delete_all_button), FALSE);
-}
-
-static void
 selection_changed_cb (GtkTreeSelection *selection, SmsData *data)
 {
 	GtkTreeModel *model;
@@ -836,6 +841,7 @@
 	GHashTable *colours_hash;
 	GtkIconTheme *icon_theme;
 	gint size;
+	GtkToolItem *new_button;
 	
 	data->author_uid = NULL;
 	data->author_icon = NULL;
@@ -874,10 +880,6 @@
 	gtk_tree_model_filter_set_visible_func ((GtkTreeModelFilter *)
 		data->note_filter, (GtkTreeModelFilterVisibleFunc)
 		notes_visible_func, data, NULL);
-	g_signal_connect (data->note_filter, "row-inserted",
-		G_CALLBACK (row_inserted_cb), data);
-	g_signal_connect (data->note_filter, "row-deleted",
-		G_CALLBACK (row_deleted_cb), data);
 	
 	/* Create a category-colour hash for the cell renderer */
 	colours_hash = g_hash_table_new (g_str_hash, g_str_equal);
@@ -900,20 +902,20 @@
 	
 	/* create toolbar */
 	toolbar = gtk_toolbar_new ();
-	
+
+  	/* New button */
+	new_button = gtk_tool_button_new_from_stock (MOKO_STOCK_SMS_NEW);
+	gtk_tool_item_set_expand (new_button, TRUE);
+	gtk_toolbar_insert (GTK_TOOLBAR (toolbar), new_button, -1);
+	g_signal_connect (new_button, "clicked",
+		G_CALLBACK (new_clicked_cb), data);
+  
 	/* Forward button */
 	data->forward_button = gtk_tool_button_new_from_stock (
 		MOKO_STOCK_MAIL_FORWARD);
 	gtk_tool_item_set_expand (data->forward_button, TRUE);
 	gtk_toolbar_insert (GTK_TOOLBAR (toolbar), data->forward_button, -1);
 	
-	/* Delete all button */
-	data->delete_all_button = gtk_tool_button_new_from_stock (
-		MOKO_STOCK_FOLDER_DELETE);
-	gtk_tool_item_set_expand (data->delete_all_button, TRUE);
-	gtk_toolbar_insert (GTK_TOOLBAR (toolbar), data->delete_all_button, -1);
-	gtk_widget_set_sensitive (GTK_WIDGET (data->delete_all_button), FALSE);
-	
 	/* Delete button */
 	data->delete_button = gtk_tool_button_new_from_stock (
 		GTK_STOCK_DELETE);
@@ -970,8 +972,6 @@
 		G_CALLBACK (forward_clicked_cb), data);
 	g_signal_connect (data->delete_button, "clicked",
 		G_CALLBACK (delete_clicked_cb), data);
-	g_signal_connect (data->delete_all_button, "clicked",
-		G_CALLBACK (delete_all_clicked_cb), data);
 	g_signal_connect (data->save_contact_button, "clicked",
 		G_CALLBACK (save_contact_clicked_cb), data);
 

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	2008-04-02 15:17:25 UTC (rev 4299)
+++ trunk/src/target/OM-2007.2/applications/openmoko-messages2/src/sms-utils.c	2008-04-02 21:06:15 UTC (rev 4300)
@@ -279,9 +279,6 @@
 	
 	data->note_count_idle = 0;
 
-	/* Update the delete-all button if we're on the contacts page */
-	sms_contacts_update_delete_all (data);
-
 	/* Change sort column so changing priorities doesn't break iterating 
 	 * through the model.
 	 */





More information about the commitlog mailing list