+2006-08-14 Emmanuele Bassi <ebassi@gnome.org>
+
+ * gtk/gtkrecentchooser.c:
+ (gtk_recent_chooser_add_filter),
+ (gtk_recent_chooser_remove_filter),
+ (gtk_recent_chooser_set_filter): Add a check on the
+ filter argument, instead of blindly passing it to
+ underlying implementation.
+
+ * gtk/gtkrecentchoosermenu.c:
+ (gtk_recent_chooser_menu_add_filter),
+ (gtk_recent_chooser_menu_remove_filter),
+ (gtk_recent_chooser_menu_list_filters): Implement
+ these GtkRecentChooser methods, by setting and
+ returning the only GtkRecentFilter object supported
+ by a GtkRecentChooserMenu. (#347856, reported by Rod
+ Butcher)
+
2006-08-14 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkcombobox.c (gtk_combo_box_remove): Null the
+2006-08-14 Emmanuele Bassi <ebassi@gnome.org>
+
+ * gtk/gtkrecentchooser.c:
+ (gtk_recent_chooser_add_filter),
+ (gtk_recent_chooser_remove_filter),
+ (gtk_recent_chooser_set_filter): Add a check on the
+ filter argument, instead of blindly passing it to
+ underlying implementation.
+
+ * gtk/gtkrecentchoosermenu.c:
+ (gtk_recent_chooser_menu_add_filter),
+ (gtk_recent_chooser_menu_remove_filter),
+ (gtk_recent_chooser_menu_list_filters): Implement
+ these GtkRecentChooser methods, by setting and
+ returning the only GtkRecentFilter object supported
+ by a GtkRecentChooserMenu. (#347856, reported by Rod
+ Butcher)
+
2006-08-14 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkcombobox.c (gtk_combo_box_remove): Null the
GtkRecentFilter *filter)
{
g_return_if_fail (GTK_IS_RECENT_CHOOSER (chooser));
+ g_return_if_fail (GTK_IS_RECENT_FILTER (filter));
GTK_RECENT_CHOOSER_GET_IFACE (chooser)->add_filter (chooser, filter);
}
GtkRecentFilter *filter)
{
g_return_if_fail (GTK_IS_RECENT_CHOOSER (chooser));
+ g_return_if_fail (GTK_IS_RECENT_FILTER (filter));
GTK_RECENT_CHOOSER_GET_IFACE (chooser)->remove_filter (chooser, filter);
}
GtkRecentFilter *filter)
{
g_return_if_fail (GTK_IS_RECENT_CHOOSER (chooser));
+ g_return_if_fail (GTK_IS_RECENT_FILTER (filter));
g_object_set (G_OBJECT (chooser), "filter", filter, NULL);
}
gtk_recent_chooser_menu_add_filter (GtkRecentChooser *chooser,
GtkRecentFilter *filter)
{
- g_warning (_("This function is not implemented for "
- "widgets of class '%s'"),
- g_type_name (G_OBJECT_TYPE (chooser)));
+ GtkRecentChooserMenu *menu;
+
+ menu = GTK_RECENT_CHOOSER_MENU (chooser);
+
+ gtk_recent_chooser_menu_set_current_filter (menu, filter);
}
static void
gtk_recent_chooser_menu_remove_filter (GtkRecentChooser *chooser,
GtkRecentFilter *filter)
{
- g_warning (_("This function is not implemented for "
- "widgets of class '%s'"),
- g_type_name (G_OBJECT_TYPE (chooser)));
+ GtkRecentChooserMenu *menu;
+
+ menu = GTK_RECENT_CHOOSER_MENU (chooser);
+
+ if (filter == menu->priv->current_filter)
+ {
+ g_object_unref (menu->priv->current_filter);
+ menu->priv->current_filter = NULL;
+
+ g_object_notify (G_OBJECT (menu), "filter");
+ }
}
static GSList *
gtk_recent_chooser_menu_list_filters (GtkRecentChooser *chooser)
{
- g_warning (_("This function is not implemented for "
- "widgets of class '%s'"),
- g_type_name (G_OBJECT_TYPE (chooser)));
+ GtkRecentChooserMenu *menu;
+ GSList *retval = NULL;
+
+ if (menu->priv->current_filter)
+ retval = g_slist_prepend (retval, menu->priv->current_filter);
- return NULL;
+ return retval;
}
static void
if (priv->current_filter)
g_object_unref (G_OBJECT (priv->current_filter));
- priv->current_filter = filter;
- g_object_ref_sink (priv->current_filter);
+ if (filter)
+ {
+ priv->current_filter = filter;
+ g_object_ref_sink (priv->current_filter);
+ }
g_object_notify (G_OBJECT (menu), "filter");
}