Implement (count_cb): Implement (create_dialog): Connect changed signal on

2002-01-11  Bradford Hovinen  <hovinen@ximian.com>

	* file-types-capplet.c (selection_changed_cb): Implement
	(count_cb): Implement
	(create_dialog): Connect changed signal on treeview selection to
	selection_changed_cb
	(create_dialog): Desensitize edit button
	(remove_cb): Call selection_changed_cb
This commit is contained in:
Bradford Hovinen 2002-01-11 21:13:51 +00:00 committed by Bradford Hovinen (Gdict maintainer)
parent b11fd58903
commit 10be28c26f
3 changed files with 39 additions and 2 deletions

View file

@ -1,5 +1,12 @@
2002-01-11 Bradford Hovinen <hovinen@ximian.com>
* file-types-capplet.c (selection_changed_cb): Implement
(count_cb): Implement
(create_dialog): Connect changed signal on treeview selection to
selection_changed_cb
(create_dialog): Desensitize edit button
(remove_cb): Call selection_changed_cb
* mime-edit-dialog.c (default_action_changed_cb): Set sensitivity
of needs_terminal_toggle
(store_data): Set needs_terminal

View file

@ -5,8 +5,10 @@
- Fix gnome_url_show
- Make add work
- Need a way to get all apps in the app registry
- Segfault when edit clicked and nothing selected
- Support needs terminal in custom line for mime types
- Only enable "look at content" if GnomeVFS supports the protocol
- Generate MIME type if field is empty
- When no apps/components are available, desensitize app/component list
- Better sorting on the MIME types tree
CVS Surgery
- Move file-types to gnome-control-center, rename ???

View file

@ -92,6 +92,25 @@ row_activated_cb (GtkTreeView *view, GtkTreePath *path, GtkTreeViewColumn *colum
edit_dialog = mime_edit_dialog_new (mime_type_info_load (model, &iter));
}
static void
count_cb (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, gint *count)
{
(*count)++;
}
static void
selection_changed_cb (GtkTreeSelection *selection, GladeXML *dialog)
{
gint count;
gtk_tree_selection_selected_foreach (selection, (GtkTreeSelectionForeachFunc) count_cb, &count);
if (count == 0)
gtk_widget_set_sensitive (WID ("edit_button"), FALSE);
else
gtk_widget_set_sensitive (WID ("edit_button"), TRUE);
}
static void
remove_cb (GtkButton *button, GladeXML *dialog)
{
@ -111,6 +130,8 @@ remove_cb (GtkButton *button, GladeXML *dialog)
mime_type_remove_from_dirty_list (g_value_get_string (&mime_type));
gtk_tree_store_remove (GTK_TREE_STORE (model), &iter);
g_value_unset (&mime_type);
selection_changed_cb (selection, dialog);
}
static GladeXML *
@ -123,6 +144,7 @@ create_dialog (void)
GtkWidget *treeview;
GtkCellRenderer *renderer;
GtkTreeViewColumn *column;
GtkTreeSelection *selection;
gint col_offset;
@ -157,9 +179,15 @@ create_dialog (void)
column = gtk_tree_view_get_column (GTK_TREE_VIEW (treeview), col_offset - 1);
gtk_tree_view_set_expander_column (GTK_TREE_VIEW (treeview), column);
gtk_widget_set_sensitive (WID ("edit_button"), FALSE);
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));
gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE);
g_signal_connect (G_OBJECT (WID ("add_button")), "clicked", (GCallback) add_cb, dialog);
g_signal_connect (G_OBJECT (WID ("edit_button")), "clicked", (GCallback) edit_cb, dialog);
g_signal_connect (G_OBJECT (WID ("remove_button")), "clicked", (GCallback) remove_cb, dialog);
g_signal_connect (G_OBJECT (selection), "changed", (GCallback) selection_changed_cb, dialog);
g_signal_connect (G_OBJECT (WID ("mime_types_tree")), "row-activated", (GCallback) row_activated_cb, dialog);