diff --git a/ChangeLog b/ChangeLog index 3e49c2ffa..a5f1b4177 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,37 @@ +2002-01-29 Darin Adler + + * components/tree/nautilus-tree-view.c: (create_tree), + (nautilus_tree_view_destroy): + * libnautilus-private/nautilus-directory.c: + (add_preferences_callbacks): + * libnautilus-private/nautilus-global-preferences.c: + * libnautilus-private/nautilus-global-preferences.h: + * libnautilus-private/nautilus-icon-canvas-item.c: + (measure_label_text), (nautilus_icon_canvas_item_render), + (nautilus_icon_canvas_item_set_show_stretch_handles): + * libnautilus-private/nautilus-icon-container.c: + (start_rubberbanding), (finalize), (nautilus_icon_container_init), + (nautilus_icon_container_update_icon), + (nautilus_icon_container_theme_changed): + * libnautilus-private/nautilus-icon-container.h: + * libnautilus-private/nautilus-icon-private.h: + * src/file-manager/fm-directory-view.c: (fm_directory_view_init), + (fm_directory_view_finalize): + * src/file-manager/fm-directory-view.h: + * src/file-manager/fm-icon-view.c: + (fm_icon_view_update_icon_container_font_size_table), + (create_icon_container), (fm_icon_view_class_init): + Remove smooth mode and unused font and font size machinery. + + * test/.cvsignore: Remove test-nautilus-smooth-graphics. + * test/Makefile.am: Remove test-nautilus-smooth-graphics. + * test/test-nautilus-smooth-graphics.c: Remove. + + * src/nautilus-preferences-dialog.c: + (dialog_delete_event_callback), (dialog_button_response_callback), + (preferences_dialog_create): Fix bug where we'd lose the + preferences dialog if you closed it with a delete_event. + === nautilus 1.1.3 === 2002-01-29 Darin Adler diff --git a/components/tree/nautilus-tree-view.c b/components/tree/nautilus-tree-view.c index 15858fef0..503205b0f 100644 --- a/components/tree/nautilus-tree-view.c +++ b/components/tree/nautilus-tree-view.c @@ -92,7 +92,6 @@ static void forget_unparented_node (NautilusTreeView *vie static void insert_unparented_nodes (NautilusTreeView *view, NautilusTreeNode *node); static void expand_uri_sequence_and_select_end (NautilusTreeView *view); -static gboolean is_anti_aliased (NautilusTreeView *view); EEL_CLASS_BOILERPLATE (NautilusTreeView, nautilus_tree_view, @@ -823,39 +822,6 @@ filtering_changed_callback (gpointer callback_data) } } -static void -update_smooth_graphics_mode (NautilusTreeView *view) -{ - gboolean aa_mode, old_aa_mode; - - if (view->details->tree != NULL) { - aa_mode = eel_preferences_get_boolean (NAUTILUS_PREFERENCES_SMOOTH_GRAPHICS_MODE); - old_aa_mode = is_anti_aliased (view); - - if (old_aa_mode != aa_mode) { - eel_list_set_anti_aliased_mode (EEL_LIST (view->details->tree), aa_mode); - - /* FIXME: refetch icons using correct aa mode... */ - } - } -} - -static void -smooth_graphics_mode_changed_callback (gpointer callback_data) -{ - NautilusTreeView *view; - - view = NAUTILUS_TREE_VIEW (callback_data); - - update_smooth_graphics_mode (view); -} - -static gboolean -is_anti_aliased (NautilusTreeView *view) -{ - return eel_list_is_anti_aliased (EEL_LIST (view->details->tree)); -} - static gpointer compare_cached_key, compare_cached_value; static gint @@ -922,8 +888,6 @@ create_tree (NautilusTreeView *view) eel_clist_set_auto_sort (EEL_CLIST (view->details->tree), TRUE); eel_clist_set_sort_type (EEL_CLIST (view->details->tree), GTK_SORT_ASCENDING); - update_smooth_graphics_mode (view); - /* FIXME bugzilla.gnome.org 46820: * Using the NautilusFile comparison function to sort by * is way too slow when opening large directories (those with @@ -976,10 +940,6 @@ create_tree (NautilusTreeView *view) filtering_changed_callback, view); - eel_preferences_add_callback (NAUTILUS_PREFERENCES_SMOOTH_GRAPHICS_MODE, - smooth_graphics_mode_changed_callback, - view); - view->details->file_to_node_map = g_hash_table_new (NULL, NULL); view->details->view_node_to_uri_map = g_hash_table_new (NULL, NULL); @@ -1115,10 +1075,6 @@ nautilus_tree_view_destroy (BonoboObject *object) filtering_changed_callback, view); - eel_preferences_remove_callback (NAUTILUS_PREFERENCES_SMOOTH_GRAPHICS_MODE, - smooth_graphics_mode_changed_callback, - view); - g_hash_table_foreach (view->details->file_to_node_map, free_file_to_node_map_entry, NULL); diff --git a/libnautilus-private/nautilus-directory.c b/libnautilus-private/nautilus-directory.c index 9c585c1fd..9a90f1051 100644 --- a/libnautilus-private/nautilus-directory.c +++ b/libnautilus-private/nautilus-directory.c @@ -294,9 +294,6 @@ add_preferences_callbacks (void) eel_preferences_add_callback (NAUTILUS_PREFERENCES_SHOW_DIRECTORY_ITEM_COUNTS, async_data_preference_changed_callback, NULL); - eel_preferences_add_callback (NAUTILUS_PREFERENCES_DEFAULT_SMOOTH_FONT, - async_data_preference_changed_callback, - NULL); } char * diff --git a/libnautilus-private/nautilus-global-preferences.c b/libnautilus-private/nautilus-global-preferences.c index 955a854ba..9a0180b82 100644 --- a/libnautilus-private/nautilus-global-preferences.c +++ b/libnautilus-private/nautilus-global-preferences.c @@ -370,10 +370,6 @@ static const PreferenceDefault preference_defaults[] = { NULL, NULL, "speed_tradeoff" }, - { NAUTILUS_PREFERENCES_SMOOTH_GRAPHICS_MODE, - PREFERENCE_BOOLEAN, - GINT_TO_POINTER (TRUE) - }, { NAUTILUS_PREFERENCES_PREVIEW_SOUND, PREFERENCE_INTEGER, GINT_TO_POINTER (NAUTILUS_SPEED_TRADEOFF_LOCAL_ONLY), diff --git a/libnautilus-private/nautilus-global-preferences.h b/libnautilus-private/nautilus-global-preferences.h index 0f531a135..9168aca07 100644 --- a/libnautilus-private/nautilus-global-preferences.h +++ b/libnautilus-private/nautilus-global-preferences.h @@ -77,7 +77,6 @@ G_BEGIN_DECLS /* Content fonts */ #define NAUTILUS_PREFERENCES_DEFAULT_FONT "preferences/default_font" -#define NAUTILUS_PREFERENCES_DEFAULT_SMOOTH_FONT "preferences/default_smooth_font" #define NAUTILUS_PREFERENCES_DEFAULT_FONT_SIZE "preferences/default_font_size" /* Single/Double click preference */ @@ -86,9 +85,6 @@ G_BEGIN_DECLS /* Activating executable text files */ #define NAUTILUS_PREFERENCES_EXECUTABLE_TEXT_ACTIVATION "preferences/executable_text_activation" -/* Smooth graphics mode (smoother but slower) */ -#define NAUTILUS_PREFERENCES_SMOOTH_GRAPHICS_MODE "preferences/smooth_graphics_mode" - /* Which views should be displayed for new windows */ #define NAUTILUS_PREFERENCES_START_WITH_TOOLBAR "preferences/start_with_toolbar" #define NAUTILUS_PREFERENCES_START_WITH_LOCATION_BAR "preferences/start_with_location_bar" @@ -121,7 +117,6 @@ enum #define NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_ZOOM_LEVEL_FONT_SIZE "icon-view/default_zoom_level_font_size" #define NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_USE_MANUAL_LAYOUT "icon-view/default_use_manual_layout" #define NAUTILUS_PREFERENCES_ICON_VIEW_FONT "icon-view/font" -#define NAUTILUS_PREFERENCES_ICON_VIEW_SMOOTH_FONT "icon-view/smooth_font" /* The icon view uses 2 variables to store the sort order and * whether to use manual layout. However, the UI for these diff --git a/libnautilus-private/nautilus-icon-canvas-item.c b/libnautilus-private/nautilus-icon-canvas-item.c index f8ac6ca60..2d0185080 100644 --- a/libnautilus-private/nautilus-icon-canvas-item.c +++ b/libnautilus-private/nautilus-icon-canvas-item.c @@ -154,10 +154,6 @@ static void draw_or_measure_label_text (NautilusIconCanvasItem GdkDrawable *drawable, int icon_left, int icon_bottom); -static void draw_or_measure_label_text_aa (NautilusIconCanvasItem *item, - GdkPixbuf *destination_pixbuf, - int icon_left, - int icon_bottom); static void draw_label_text (NautilusIconCanvasItem *item, GdkDrawable *drawable, int icon_left, @@ -188,8 +184,6 @@ static void draw_label_layout (NautilusIconCanvasItem static gboolean hit_test_stretch_handle (NautilusIconCanvasItem *item, ArtIRect canvas_rect); -static gboolean icon_canvas_item_is_smooth (const NautilusIconCanvasItem *icon_item); - static void update_label_layouts (NautilusIconCanvasItem *item); static void clear_rounded_corners (GdkPixbuf *destination_pixbuf, GdkPixbuf *corner_pixbuf, @@ -774,11 +768,7 @@ measure_label_text (NautilusIconCanvasItem *item) return; } - if (icon_canvas_item_is_smooth (item)) { - draw_or_measure_label_text_aa (item, NULL, 0, 0); - } else { - draw_or_measure_label_text (item, NULL, 0, 0); - } + draw_or_measure_label_text (item, NULL, 0, 0); } static void @@ -831,101 +821,6 @@ draw_stretch_handles (NautilusIconCanvasItem *item, GdkDrawable *drawable, gdk_gc_unref (gc); } -/* utility routine that uses libart to draw an outlined rectangle */ -static void -draw_outline_rectangle_aa (GnomeCanvasBuf *buf, int x0, int y0, int x1, int y1, guint outline_color) -{ - ArtVpath vpath[12]; - ArtSVP *path; - int halfwidth; - - halfwidth = 1.0; - - vpath[0].code = ART_MOVETO; - vpath[0].x = x0 - halfwidth; - vpath[0].y = y0 - halfwidth; - - vpath[1].code = ART_LINETO; - vpath[1].x = x0 - halfwidth; - vpath[1].y = y1 + halfwidth; - - vpath[2].code = ART_LINETO; - vpath[2].x = x1 + halfwidth; - vpath[2].y = y1 + halfwidth; - - vpath[3].code = ART_LINETO; - vpath[3].x = x1 + halfwidth; - vpath[3].y = y0 - halfwidth; - - vpath[4].code = ART_LINETO; - vpath[4].x = x0 - halfwidth; - vpath[4].y = y0 - halfwidth; - - vpath[5].code = ART_MOVETO; - vpath[5].x = x0 + halfwidth; - vpath[5].y = y0 + halfwidth; - - vpath[6].code = ART_LINETO; - vpath[6].x = x1 - halfwidth; - vpath[6].y = y0 + halfwidth; - - vpath[7].code = ART_LINETO; - vpath[7].x = x1 - halfwidth; - vpath[7].y = y1 - halfwidth; - - vpath[8].code = ART_LINETO; - vpath[8].x = x0 + halfwidth; - vpath[8].y = y1 - halfwidth; - - vpath[9].code = ART_LINETO; - vpath[9].x = x0 + halfwidth; - vpath[9].y = y0 + halfwidth; - - vpath[10].code = ART_END; - vpath[10].x = 0; - vpath[10].y = 0; - - path = art_svp_from_vpath(vpath); - gnome_canvas_render_svp(buf, path, outline_color); - art_svp_free(path); -} - -/* draw the stretch handles in the anti-aliased canvas */ -static void -draw_stretch_handles_aa (NautilusIconCanvasItem *item, GnomeCanvasBuf *buf, - const ArtIRect *rect) -{ - int knob_width, knob_height; - GnomeCanvasItem *canvas_item; - char *knob_filename; - GdkPixbuf *knob_pixbuf; - - if (!item->details->show_stretch_handles) { - return; - } - - canvas_item = GNOME_CANVAS_ITEM (item); - - knob_filename = nautilus_theme_get_image_path ("knob.png"); - knob_pixbuf = gdk_pixbuf_new_from_file (knob_filename, NULL); - knob_width = gdk_pixbuf_get_width (knob_pixbuf); - knob_height = gdk_pixbuf_get_height (knob_pixbuf); - - /* draw a box to connect the dots */ - draw_outline_rectangle_aa (buf, rect->x0 + 1, rect->y0 + 1, - rect->x1 - 1, rect->y1 - 1, - EEL_RGBA_COLOR_PACK (153, 153, 153, 127)); - - /* now draw the stretch handles themselves */ - eel_gnome_canvas_draw_pixbuf (buf, knob_pixbuf, rect->x0, rect->y0); - eel_gnome_canvas_draw_pixbuf (buf, knob_pixbuf, rect->x0, rect->y1 - knob_height); - eel_gnome_canvas_draw_pixbuf (buf, knob_pixbuf, rect->x1 - knob_width, rect->y0); - eel_gnome_canvas_draw_pixbuf (buf, knob_pixbuf, rect->x1 - knob_width, rect->y1 - knob_height); - - g_free (knob_filename); - g_object_unref (knob_pixbuf); -} - static void emblem_layout_reset (EmblemLayout *layout, NautilusIconCanvasItem *icon_item, ArtIRect icon_rect) { @@ -1310,162 +1205,6 @@ draw_label_layout (NautilusIconCanvasItem *item, } } -static void -draw_label_layout_aa (NautilusIconCanvasItem *item, - GdkPixbuf *pixbuf, - PangoLayout *layout, - gboolean highlight, - int y, - guint32 color) -{ - int x; - - if (pixbuf == NULL) { - return; - } - if (item->details->is_renaming) { - return; - } - x = (item->details->text_width - pango_layout_get_width (layout) / PANGO_SCALE) / 2; - - if (!highlight) { - eel_gdk_pixbuf_draw_layout (pixbuf, x, y, color, layout); - } else { - /* draw a shadow in black */ - eel_gdk_pixbuf_draw_layout (pixbuf, x + 2, y + 1, - EEL_RGB_COLOR_BLACK, layout); - /* draw smeared-wide text to "embolden" */ - eel_gdk_pixbuf_draw_layout (pixbuf, x, y, color, layout); - eel_gdk_pixbuf_draw_layout (pixbuf, x + 1, y, color, layout); - } -} - -static void -draw_or_measure_label_text_aa (NautilusIconCanvasItem *item, - GdkPixbuf *destination_pixbuf, - int icon_left, - int icon_bottom) -{ - NautilusIconCanvasItemDetails *details; - int width_so_far, height_so_far; - GnomeCanvasItem *canvas_item; - PangoLayout *layout; - int layout_width, layout_height; - gboolean have_editable, have_additional, needs_highlight; - guint32 label_color; - - details = item->details; - needs_highlight = details->is_highlighted_for_selection || details->is_highlighted_for_drop; - - have_editable = details->editable_text != NULL && details->editable_text[0] != '\0'; - have_additional = details->additional_text != NULL && details->additional_text[0] != '\0'; - - /* No font or no text, then do no work. */ - if (!have_editable && !have_additional) { - details->text_height = 0; - details->text_width = 0; - return; - } - -#if (defined PERFORMANCE_TEST_MEASURE_DISABLE && defined PERFORMANCE_TEST_DRAW_DISABLE) - /* don't do any drawing and fake out the width */ - details->text_width = 80; - details->text_height = 20; - return; -#endif - -#ifdef PERFORMANCE_TEST_MEASURE_DISABLE - if (destination_pixbuf == NULL) { - /* fake out the width */ - details->text_width = 80; - details->text_height = 20; - return; - } -#endif - -#ifdef PERFORMANCE_TEST_DRAW_DISABLE - if (destination_pixbuf != NULL) { - return; - } -#endif - - canvas_item = GNOME_CANVAS_ITEM (item); - - if (destination_pixbuf == NULL) { - details->text_width = floor (nautilus_icon_canvas_item_get_max_text_width (item)); - } - - if (needs_highlight) { - icon_bottom += 1; /* leave some space for selection frame */ - } - - width_so_far = 0; - height_so_far = 0; - - if (have_editable) { - layout = get_label_layout (&details->editable_text_layout, item, details->editable_text); - - if (needs_highlight) { - label_color = highlight_text_color; - } else { - label_color = nautilus_icon_container_get_label_color (NAUTILUS_ICON_CONTAINER (canvas_item->canvas), TRUE); - } - - draw_label_layout_aa (item, destination_pixbuf, - layout, needs_highlight, - icon_bottom + height_so_far, label_color); - - pango_layout_get_pixel_size (layout, &layout_width, &layout_height); - - width_so_far = MAX (width_so_far, layout_width); - height_so_far += layout_height + LABEL_LINE_SPACING; - - g_object_unref (layout); - } - - if (have_additional) { - layout = get_label_layout (&details->additional_text_layout, item, details->additional_text); - - if (needs_highlight) { - label_color = highlight_text_info_color; - } else { - label_color = nautilus_icon_container_get_label_color (NAUTILUS_ICON_CONTAINER (canvas_item->canvas), FALSE); - } - - draw_label_layout_aa (item, destination_pixbuf, - layout, needs_highlight, - icon_bottom + height_so_far, label_color); - - pango_layout_get_pixel_size (layout, &layout_width, &layout_height); - - width_so_far = MAX (width_so_far, layout_width); - height_so_far += layout_height + LABEL_LINE_SPACING; - - g_object_unref (layout); - } - - /* add some extra space for highlighting even when we don't highlight so things won't move */ - height_so_far += 2; /* extra slop for nicer highlighting */ - width_so_far += 8; /* account for emboldening, plus extra to make it look nicer */ - - if (destination_pixbuf != NULL) { - /* Current calculations should match what we measured before drawing. - * This assumes that we will always make a separate call to measure - * before the call to draw. We might later decide to use this function - * differently and change these asserts. - */ -#if (defined PERFORMANCE_TEST_MEASURE_DISABLE || defined PERFORMANCE_TEST_DRAW_DISABLE) - g_assert (height_so_far == details->text_height); - g_assert (width_so_far == details->text_width); -#endif - - } else { - /* If measuring, remember the width & height. */ - details->text_width = width_so_far; - details->text_height = height_so_far; - } -} - /* clear the corners of the selection pixbuf by copying the corners of the passed-in pixbuf */ static void clear_rounded_corners (GdkPixbuf *destination_pixbuf, GdkPixbuf *corner_pixbuf, int corner_size) @@ -1507,119 +1246,10 @@ clear_rounded_corners (GdkPixbuf *destination_pixbuf, GdkPixbuf *corner_pixbuf, dest_width - corner_size, dest_height - corner_size); } -static void -draw_label_text_aa (NautilusIconCanvasItem *icon_item, GnomeCanvasBuf *buf, int x, int y, int x_delta) -{ - GdkPixbuf *text_pixbuf; - NautilusIconContainer *container; - - gboolean needs_highlight; - gboolean have_editable; - gboolean have_additional; - - /* make sure this is really necessary */ - have_editable = icon_item->details->editable_text != NULL - && icon_item->details->editable_text[0] != '\0'; - have_additional = icon_item->details->additional_text != NULL - && icon_item->details->additional_text[0] != '\0'; - - /* No font or no text, then do no work. */ - if (!have_editable && !have_additional) { - icon_item->details->text_height = 0; - icon_item->details->text_width = 0; - return; - } - - if (icon_item->details->is_renaming) { - /* Exit if we are renaming. We don't need to set the text - * width and height to 0 because there is text, it just is not - * drawn to the canvas while the renaming widget is displayed. - */ - return; - } - - /* Set up the background. */ - needs_highlight = icon_item->details->is_highlighted_for_selection - || icon_item->details->is_highlighted_for_drop; - - /* Optimizing out the allocation of this pixbuf on every call is a - * measureable speed improvement, but only by around 5%. - * draw_or_measure_label_text_aa accounts for about 90% of the time. - */ - text_pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, - TRUE, - 8, - icon_item->details->text_width, - icon_item->details->text_height); - if (needs_highlight) { - container = NAUTILUS_ICON_CONTAINER (GNOME_CANVAS_ITEM (icon_item)->canvas); - eel_gdk_pixbuf_fill_rectangle_with_color (text_pixbuf, - eel_gdk_pixbuf_whole_pixbuf, - container->details->highlight_color); - clear_rounded_corners (text_pixbuf, container->details->highlight_frame, 5); - - } else { - eel_gdk_pixbuf_fill_rectangle_with_color (text_pixbuf, - eel_gdk_pixbuf_whole_pixbuf, - EEL_RGBA_COLOR_PACK (0, 0, 0, 0)); - } - - draw_or_measure_label_text_aa (icon_item, text_pixbuf, x_delta, 0); - - /* Draw the pixbuf containing the label. */ - - eel_gnome_canvas_draw_pixbuf (buf, text_pixbuf, x - x_delta, y + LABEL_OFFSET); - - g_object_unref (text_pixbuf); - - /* draw the keyboard selection focus indicator if necessary */ - if (icon_item->details->is_highlighted_as_keyboard_focus) { - draw_outline_rectangle_aa (buf, x - x_delta + 1, y + 1, - x - x_delta + icon_item->details->text_width, - y + icon_item->details->text_height, - EEL_RGBA_COLOR_PACK (153, 153, 153, 127)); - } -} - -/* draw the item for anti-aliased mode */ static void nautilus_icon_canvas_item_render (GnomeCanvasItem *item, GnomeCanvasBuf *buf) { - ArtIRect icon_rect, emblem_rect; - EmblemLayout emblem_layout; - GdkPixbuf *emblem_pixbuf, *temp_pixbuf; - NautilusIconCanvasItem *icon_item; - int x_delta; - - icon_item = NAUTILUS_ICON_CANVAS_ITEM (item); - - /* map the pixbuf for selection or other effects */ - temp_pixbuf = map_pixbuf (icon_item); - - icon_rect = icon_item->details->canvas_rect; - - if (buf->is_bg) { - gnome_canvas_buf_ensure_buf (buf); - buf->is_bg = FALSE; - } - - /* draw the icon */ - eel_gnome_canvas_draw_pixbuf (buf, temp_pixbuf, icon_rect.x0, icon_rect.y0); - - g_object_unref (temp_pixbuf); - - /* draw the emblems */ - emblem_layout_reset (&emblem_layout, icon_item, icon_rect); - while (emblem_layout_next (&emblem_layout, &emblem_pixbuf, &emblem_rect)) { - eel_gnome_canvas_draw_pixbuf (buf, emblem_pixbuf, emblem_rect.x0, emblem_rect.y0); - } - - /* draw the stretch handles */ - draw_stretch_handles_aa (icon_item, buf, &icon_rect); - - /* draw the text */ - x_delta = (icon_item->details->text_width - (icon_rect.x1 - icon_rect.x0)) / 2; - draw_label_text_aa (icon_item, buf, icon_rect.x0, icon_rect.y1, x_delta); + g_warning ("NautilusIconCanvasItem does not support the anti-aliased canvas"); } @@ -1929,19 +1559,6 @@ nautilus_icon_canvas_item_set_show_stretch_handles (NautilusIconCanvasItem *item gnome_canvas_item_request_update (GNOME_CANVAS_ITEM (item)); } -/* Check whether the item is in smooth mode */ -static gboolean -icon_canvas_item_is_smooth (const NautilusIconCanvasItem *icon_item) -{ - GnomeCanvas *parent_canvas; - - g_return_val_if_fail (NAUTILUS_IS_ICON_CANVAS_ITEM (icon_item), FALSE); - - parent_canvas = GNOME_CANVAS (GNOME_CANVAS_ITEM (icon_item)->canvas); - - return parent_canvas->aa; -} - /* Check if one of the stretch handles was hit. */ static gboolean hit_test_stretch_handle (NautilusIconCanvasItem *item, diff --git a/libnautilus-private/nautilus-icon-container.c b/libnautilus-private/nautilus-icon-container.c index 3183af48b..b11b959b0 100644 --- a/libnautilus-private/nautilus-icon-container.c +++ b/libnautilus-private/nautilus-icon-container.c @@ -1526,7 +1526,6 @@ start_rubberbanding (NautilusIconContainer *container, NautilusIconRubberbandInfo *band_info; uint fill_color, outline_color; char *fill_color_str; - char *endp; GList *p; details = container->details; @@ -1550,59 +1549,29 @@ start_rubberbanding (NautilusIconContainer *container, /* FIXME: The code to extract colors from the theme should be in FMDirectoryView, not here. * The NautilusIconContainer class should simply provide calls to set the colors. */ - if (GNOME_CANVAS(container)->aa) { - /* FIXME: Should use some standard format, not just a 32-bit integer. */ - fill_color_str = nautilus_theme_get_theme_data ("directory", "selection_box_color_rgba"); - if (fill_color_str == NULL) { - fill_color = 0x77BBDD40; - } else { - fill_color = strtoul (fill_color_str, &endp, 0); - if (endp == fill_color_str) { - fill_color = 0x77BBDD40; - } - g_free (fill_color_str); - } - - outline_color = fill_color | 255; - - band_info->selection_rectangle = gnome_canvas_item_new - (gnome_canvas_root - (GNOME_CANVAS (container)), - GNOME_TYPE_CANVAS_RECT, - "x1", band_info->start_x, - "y1", band_info->start_y, - "x2", band_info->start_x, - "y2", band_info->start_y, - "fill_color_rgba", fill_color, - "outline_color_rgba", outline_color, - "width_pixels", 1, - NULL); - + fill_color_str = nautilus_theme_get_theme_data ("directory", "selection_box_color_rgba"); + if (fill_color_str == NULL) { + fill_color = 0x77BBDD40; } else { - fill_color_str = nautilus_theme_get_theme_data ("directory", "selection_box_color_rgba"); - if (fill_color_str == NULL) { - fill_color = 0x77BBDD40; - } else { - fill_color = strtoul (fill_color_str, NULL, 0); - /* FIXME: Need error handling here. */ - g_free (fill_color_str); - } - - outline_color = fill_color | 255; - - band_info->selection_rectangle = gnome_canvas_item_new - (gnome_canvas_root - (GNOME_CANVAS (container)), - EEL_TYPE_CANVAS_RECT, - "x1", band_info->start_x, - "y1", band_info->start_y, - "x2", band_info->start_x, - "y2", band_info->start_y, - "fill_color_rgba", fill_color, - "outline_color_rgba", outline_color, - "width_pixels", 1, - NULL); + fill_color = strtoul (fill_color_str, NULL, 0); + /* FIXME: Need error handling here. */ + g_free (fill_color_str); } + + outline_color = fill_color | 255; + + band_info->selection_rectangle = gnome_canvas_item_new + (gnome_canvas_root + (GNOME_CANVAS (container)), + EEL_TYPE_CANVAS_RECT, + "x1", band_info->start_x, + "y1", band_info->start_y, + "x2", band_info->start_x, + "y2", band_info->start_y, + "fill_color_rgba", fill_color, + "outline_color_rgba", outline_color, + "width_pixels", 1, + NULL); band_info->prev_x = event->x; band_info->prev_y = event->y; @@ -2328,7 +2297,6 @@ static void finalize (GObject *object) { NautilusIconContainerDetails *details; - guint i; details = NAUTILUS_ICON_CONTAINER (object)->details; @@ -2340,11 +2308,6 @@ finalize (GObject *object) nautilus_icon_container_theme_changed, object); - for (i = 0; i < G_N_ELEMENTS (details->label_font); i++) { - if (details->label_font[i] != NULL) - gdk_font_unref (details->label_font[i]); - } - if (details->highlight_frame != NULL) { g_object_unref (details->highlight_frame); } @@ -3364,31 +3327,6 @@ nautilus_icon_container_init (NautilusIconContainer *container) details->zoom_level = NAUTILUS_ZOOM_LEVEL_STANDARD; - /* font table - this isn't exactly proportional, but it looks better than computed */ - /* FIXME bugzilla.gnome.org 45093: Font name is hard-coded here. */ - /* FIXME bugzilla.gnome.org 45101: Font size is hard-coded here. */ - -#if GNOME2_CONVERSION_COMPLETE - details->label_font[NAUTILUS_ZOOM_LEVEL_SMALLEST] = nautilus_font_factory_get_font_by_family ("helvetica", 8); - details->label_font[NAUTILUS_ZOOM_LEVEL_SMALLER] = nautilus_font_factory_get_font_by_family ("helvetica", 8); - details->label_font[NAUTILUS_ZOOM_LEVEL_SMALL] = nautilus_font_factory_get_font_by_family ("helvetica", 10); - details->label_font[NAUTILUS_ZOOM_LEVEL_STANDARD] = nautilus_font_factory_get_font_by_family ("helvetica", 12); - details->label_font[NAUTILUS_ZOOM_LEVEL_LARGE] = nautilus_font_factory_get_font_by_family ("helvetica", 14); - details->label_font[NAUTILUS_ZOOM_LEVEL_LARGER] = nautilus_font_factory_get_font_by_family ("helvetica", 18); - details->label_font[NAUTILUS_ZOOM_LEVEL_LARGEST] = nautilus_font_factory_get_font_by_family ("helvetica", 18); -#endif - - /* These are the default font sizes. The font sizes are configurable via - * nautilus_icon_container_set_font_size_table() - */ - details->font_size_table[NAUTILUS_ZOOM_LEVEL_SMALLEST] = 8; - details->font_size_table[NAUTILUS_ZOOM_LEVEL_SMALLER] = 8; - details->font_size_table[NAUTILUS_ZOOM_LEVEL_SMALL] = 10; - details->font_size_table[NAUTILUS_ZOOM_LEVEL_STANDARD] = 12; - details->font_size_table[NAUTILUS_ZOOM_LEVEL_LARGE] = 14; - details->font_size_table[NAUTILUS_ZOOM_LEVEL_LARGER] = 18; - details->font_size_table[NAUTILUS_ZOOM_LEVEL_LARGEST] = 18; - container->details = details; /* Set up DnD. */ @@ -3859,9 +3797,6 @@ nautilus_icon_container_update_icon (NautilusIconContainer *container, gnome_canvas_item_set (GNOME_CANVAS_ITEM (icon->item), "editable_text", editable_text, "additional_text", additional_text, -#if GNOME2_CONVERSION_COMPLETE - "font", details->label_font[details->zoom_level], -#endif "highlighted_for_drop", icon == details->drop_target, NULL); @@ -4134,41 +4069,6 @@ nautilus_icon_container_reveal (NautilusIconContainer *container, NautilusIconDa } } -/** - * nautilus_icon_container_get_anti_aliased_mode: - * get the state of the anti_aliased boolean - * - **/ - -gboolean -nautilus_icon_container_get_anti_aliased_mode (NautilusIconContainer *container) -{ - GnomeCanvas *canvas; - - canvas = GNOME_CANVAS (container); - return canvas->aa; -} - -/** - * nautilus_icon_container_set_anti_aliased_mode: - * Change the anti-aliased mode and redraw everything - * - **/ - -void -nautilus_icon_container_set_anti_aliased_mode (NautilusIconContainer *container, gboolean anti_aliased_mode) -{ - GnomeCanvas *canvas; - - canvas = GNOME_CANVAS (container); - if (canvas->aa != anti_aliased_mode) { - canvas->aa = anti_aliased_mode; - - invalidate_label_sizes (container); - nautilus_icon_container_request_update_all (container); - } -} - /** * nautilus_icon_container_get_selection: * @container: An icon container. @@ -5011,25 +4911,6 @@ nautilus_icon_container_has_stored_icon_positions (NautilusIconContainer *contai return FALSE; } -void -nautilus_icon_container_set_label_font_for_zoom_level (NautilusIconContainer *container, - int zoom_level, - GdkFont *font) -{ - g_return_if_fail (NAUTILUS_IS_ICON_CONTAINER (container)); - g_return_if_fail (font != NULL); - g_return_if_fail (zoom_level >= NAUTILUS_ZOOM_LEVEL_SMALLEST); - g_return_if_fail (zoom_level <= NAUTILUS_ZOOM_LEVEL_LARGEST); - - gdk_font_ref (font); - - if (container->details->label_font[zoom_level] != NULL) { - gdk_font_unref (container->details->label_font[zoom_level]); - } - - container->details->label_font[zoom_level] = font; -} - void nautilus_icon_container_set_single_click_mode (NautilusIconContainer *container, gboolean single_click_mode) @@ -5166,20 +5047,6 @@ nautilus_icon_container_theme_changed (gpointer user_data) } } -void -nautilus_icon_container_set_font_size_table (NautilusIconContainer *container, - const int font_size_table[NAUTILUS_ZOOM_LEVEL_LARGEST + 1]) -{ - int i; - - g_return_if_fail (NAUTILUS_IS_ICON_CONTAINER (container)); - g_return_if_fail (font_size_table != NULL); - - for (i = 0; i <= NAUTILUS_ZOOM_LEVEL_LARGEST; i++) { - container->details->font_size_table[i] = font_size_table[i]; - } -} - #if ! defined (NAUTILUS_OMIT_SELF_CHECK) static char * diff --git a/libnautilus-private/nautilus-icon-container.h b/libnautilus-private/nautilus-icon-container.h index 607bd4a2d..95d001eef 100644 --- a/libnautilus-private/nautilus-icon-container.h +++ b/libnautilus-private/nautilus-icon-container.h @@ -208,18 +208,10 @@ void nautilus_icon_container_set_single_click_mode (Nautilu gboolean single_click_mode); void nautilus_icon_container_enable_linger_selection (NautilusIconContainer *view, gboolean enable); -gboolean nautilus_icon_container_get_anti_aliased_mode (NautilusIconContainer *view); -void nautilus_icon_container_set_anti_aliased_mode (NautilusIconContainer *view, - gboolean anti_aliased_mode); -void nautilus_icon_container_set_label_font_for_zoom_level (NautilusIconContainer *container, - int zoom_level, - GdkFont *font); gboolean nautilus_icon_container_get_is_fixed_size (NautilusIconContainer *container); void nautilus_icon_container_set_is_fixed_size (NautilusIconContainer *container, gboolean is_fixed_size); void nautilus_icon_container_reset_scroll_region (NautilusIconContainer *container); -void nautilus_icon_container_set_font_size_table (NautilusIconContainer *container, - const int font_size_table[NAUTILUS_ZOOM_LEVEL_LARGEST + 1]); void nautilus_icon_container_set_margins (NautilusIconContainer *container, int left_margin, int right_margin, diff --git a/libnautilus-private/nautilus-icon-private.h b/libnautilus-private/nautilus-icon-private.h index 79166df7e..8d2fbda4e 100644 --- a/libnautilus-private/nautilus-icon-private.h +++ b/libnautilus-private/nautilus-icon-private.h @@ -167,10 +167,6 @@ struct NautilusIconContainerDetails { /* zoom level */ int zoom_level; - /* fonts used to draw labels in regular mode */ - GdkFont *label_font[NAUTILUS_ZOOM_LEVEL_LARGEST + 1]; - int font_size_table[NAUTILUS_ZOOM_LEVEL_LARGEST + 1]; /* unused? */ - /* pixbuf and color for label highlighting */ GdkPixbuf *highlight_frame; guint32 highlight_color; diff --git a/src/file-manager/fm-directory-view.c b/src/file-manager/fm-directory-view.c index 61d4f9a66..3f9732fe7 100644 --- a/src/file-manager/fm-directory-view.c +++ b/src/file-manager/fm-directory-view.c @@ -1041,18 +1041,6 @@ click_policy_changed_callback (gpointer callback_data) click_policy_changed, (view)); } -static void -smooth_graphics_mode_changed_callback (gpointer callback_data) -{ - FMDirectoryView *view; - - view = FM_DIRECTORY_VIEW (callback_data); - - EEL_CALL_METHOD - (FM_DIRECTORY_VIEW_CLASS, view, - smooth_graphics_mode_changed, (view)); -} - gboolean fm_directory_view_should_sort_directories_first (FMDirectoryView *view) { @@ -1277,9 +1265,6 @@ fm_directory_view_init (FMDirectoryView *view) eel_preferences_add_callback (NAUTILUS_PREFERENCES_CLICK_POLICY, click_policy_changed_callback, view); - eel_preferences_add_callback (NAUTILUS_PREFERENCES_SMOOTH_GRAPHICS_MODE, - smooth_graphics_mode_changed_callback, - view); eel_preferences_add_callback (NAUTILUS_PREFERENCES_SORT_DIRECTORIES_FIRST, sort_directories_first_changed_callback, view); @@ -1358,9 +1343,6 @@ fm_directory_view_finalize (GObject *object) eel_preferences_remove_callback (NAUTILUS_PREFERENCES_CLICK_POLICY, click_policy_changed_callback, view); - eel_preferences_remove_callback (NAUTILUS_PREFERENCES_SMOOTH_GRAPHICS_MODE, - smooth_graphics_mode_changed_callback, - view); eel_preferences_remove_callback (NAUTILUS_PREFERENCES_SORT_DIRECTORIES_FIRST, sort_directories_first_changed_callback, view); diff --git a/src/file-manager/fm-directory-view.h b/src/file-manager/fm-directory-view.h index cbfe40866..e3f333421 100644 --- a/src/file-manager/fm-directory-view.h +++ b/src/file-manager/fm-directory-view.h @@ -275,7 +275,6 @@ struct FMDirectoryViewClass { void (* embedded_text_policy_changed) (FMDirectoryView *view); void (* image_display_policy_changed) (FMDirectoryView *view); void (* click_policy_changed) (FMDirectoryView *view); - void (* smooth_graphics_mode_changed) (FMDirectoryView *view); void (* sort_directories_first_changed) (FMDirectoryView *view); }; diff --git a/src/file-manager/fm-icon-view.c b/src/file-manager/fm-icon-view.c index d73cd0493..33f2974cc 100644 --- a/src/file-manager/fm-icon-view.c +++ b/src/file-manager/fm-icon-view.c @@ -130,7 +130,6 @@ gboolean fm_icon_view_supports_auto_layout ( static void fm_icon_view_update_icon_container_fonts (FMIconView *icon_view); static void fm_icon_view_update_icon_container_font_size_table (FMIconView *icon_view); static void fm_icon_view_update_click_mode (FMIconView *icon_view); -static void fm_icon_view_update_smooth_graphics_mode (FMIconView *icon_view); static gboolean fm_icon_view_using_tighter_layout (FMIconView *icon_view); static gboolean fm_icon_view_get_directory_tighter_layout (FMIconView *icon_view, NautilusFile *file); @@ -2160,14 +2159,6 @@ fm_icon_view_click_policy_changed (FMDirectoryView *directory_view) fm_icon_view_update_click_mode (FM_ICON_VIEW (directory_view)); } -static void -fm_icon_view_smooth_graphics_mode_changed (FMDirectoryView *directory_view) -{ - g_assert (FM_IS_ICON_VIEW (directory_view)); - - fm_icon_view_update_smooth_graphics_mode (FM_ICON_VIEW (directory_view)); -} - static void default_sort_order_changed_callback (gpointer callback_data) { @@ -2408,12 +2399,6 @@ fm_icon_view_update_icon_container_font_size_table (FMIconView *icon_view) } - for (i = 0; i <= NAUTILUS_ZOOM_LEVEL_LARGEST; i++) { - g_assert (font_size_table[i] >= min_font_size); - g_assert (font_size_table[i] <= max_font_size); - } - - nautilus_icon_container_set_font_size_table (icon_container, font_size_table); nautilus_icon_container_request_update_all (icon_container); } @@ -2433,20 +2418,6 @@ fm_icon_view_update_click_mode (FMIconView *icon_view) click_mode == NAUTILUS_CLICK_POLICY_SINGLE); } -static void -fm_icon_view_update_smooth_graphics_mode (FMIconView *icon_view) -{ - NautilusIconContainer *icon_container; - gboolean smooth_graphics_mode; - - icon_container = get_icon_container (icon_view); - g_assert (icon_container != NULL); - - smooth_graphics_mode = eel_preferences_get_boolean (NAUTILUS_PREFERENCES_SMOOTH_GRAPHICS_MODE); - - nautilus_icon_container_set_anti_aliased_mode (icon_container, smooth_graphics_mode); -} - static void create_icon_container (FMIconView *icon_view) { @@ -2557,7 +2528,6 @@ create_icon_container (FMIconView *icon_view) fm_icon_view_update_icon_container_fonts (icon_view); fm_icon_view_update_icon_container_font_size_table (icon_view); fm_icon_view_update_click_mode (icon_view); - fm_icon_view_update_smooth_graphics_mode (icon_view); gtk_widget_show (GTK_WIDGET (icon_container)); } @@ -2753,7 +2723,6 @@ fm_icon_view_class_init (FMIconViewClass *klass) fm_directory_view_class->embedded_text_policy_changed = fm_icon_view_embedded_text_policy_changed; fm_directory_view_class->image_display_policy_changed = fm_icon_view_image_display_policy_changed; fm_directory_view_class->merge_menus = fm_icon_view_merge_menus; - fm_directory_view_class->smooth_graphics_mode_changed = fm_icon_view_smooth_graphics_mode_changed; fm_directory_view_class->sort_directories_first_changed = fm_icon_view_sort_directories_first_changed; fm_directory_view_class->start_renaming_item = fm_icon_view_start_renaming_item; fm_directory_view_class->text_attribute_names_changed = fm_icon_view_text_attribute_names_changed; diff --git a/src/nautilus-preferences-dialog.c b/src/nautilus-preferences-dialog.c index ec717ce72..7326caa3b 100644 --- a/src/nautilus-preferences-dialog.c +++ b/src/nautilus-preferences-dialog.c @@ -51,19 +51,9 @@ static void preferences_dialog_populate_themes_group (EelPreferencesGroup static GtkWidget *preferences_dialog; static EelPreferencesItemDescription appearance_items[] = { - { N_("Smoother Graphics"), - NAUTILUS_PREFERENCES_SMOOTH_GRAPHICS_MODE, - N_("Use smoother (but slower) graphics"), - EEL_PREFERENCE_ITEM_BOOLEAN - }, - { N_("Fonts"), - NAUTILUS_PREFERENCES_DEFAULT_SMOOTH_FONT, - N_("Default smooth font:"), - EEL_PREFERENCE_ITEM_SMOOTH_FONT, - }, { N_("Fonts"), NAUTILUS_PREFERENCES_DEFAULT_FONT, - N_("Default non-smooth font:"), + N_("Default font:"), EEL_PREFERENCE_ITEM_FONT, }, { N_("Nautilus Themes"), @@ -206,16 +196,7 @@ static EelPreferencesItemDescription view_preferences_items[] = { { N_("Icon View Defaults"), NAUTILUS_PREFERENCES_ICON_VIEW_FONT, N_("Font:"), - EEL_PREFERENCE_ITEM_FONT, - NAUTILUS_PREFERENCES_SMOOTH_GRAPHICS_MODE, - EEL_PREFERENCE_ITEM_HIDE - }, - { N_("Icon View Defaults"), - NAUTILUS_PREFERENCES_ICON_VIEW_SMOOTH_FONT, - N_("Font:"), - EEL_PREFERENCE_ITEM_SMOOTH_FONT, - NAUTILUS_PREFERENCES_SMOOTH_GRAPHICS_MODE, - EEL_PREFERENCE_ITEM_SHOW + EEL_PREFERENCE_ITEM_FONT }, { N_("Icon View Defaults"), NAUTILUS_PREFERENCES_ICON_VIEW_DEFAULT_ZOOM_LEVEL, @@ -423,9 +404,17 @@ static EelPreferencesPaneDescription panes[] = { { NULL } }; +static void +dialog_delete_event_callback (GtkWidget *widget, + GdkEventAny *event, + gpointer user_data) +{ + gtk_widget_hide (widget); +} + static void dialog_button_response_callback (GtkDialog *dialog, - gint response_id, + int response_id, gpointer callback_data) { gtk_widget_hide (GTK_WIDGET (dialog)); @@ -441,6 +430,10 @@ preferences_dialog_create (void) gtk_window_set_wmclass (GTK_WINDOW (dialog), "nautilus_preferences", "Nautilus"); + g_signal_connect (dialog, + "delete_event", + G_CALLBACK (dialog_delete_event_callback), + dialog); g_signal_connect (dialog, "response", G_CALLBACK (dialog_button_response_callback), diff --git a/test/.cvsignore b/test/.cvsignore index 4744f044d..32b1fd7b8 100644 --- a/test/.cvsignore +++ b/test/.cvsignore @@ -1,5 +1,3 @@ -*.la -*.lo .deps .libs Makefile @@ -9,5 +7,4 @@ test-nautilus-mime-actions test-nautilus-mime-actions-set test-nautilus-preferences-change test-nautilus-preferences-display -test-nautilus-smooth-graphics test-nautilus-wrap-table diff --git a/test/Makefile.am b/test/Makefile.am index 9279cf208..dcb8d2941 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -20,7 +20,6 @@ noinst_PROGRAMS =\ test-nautilus-mime-actions-set \ test-nautilus-preferences-change \ test-nautilus-preferences-display \ - test-nautilus-smooth-graphics \ test-nautilus-wrap-table \ $(NULL) @@ -29,7 +28,6 @@ test_nautilus_mime_actions_SOURCES = test-nautilus-mime-actions.c test.c test_nautilus_mime_actions_set_SOURCES = test-nautilus-mime-actions-set.c test.c test_nautilus_preferences_change_SOURCES = test-nautilus-preferences-change.c test.c test_nautilus_preferences_display_SOURCES = test-nautilus-preferences-display.c test.c -test_nautilus_smooth_graphics_SOURCES = test-nautilus-smooth-graphics.c test.c test_nautilus_wrap_table_SOURCES = test-nautilus-wrap-table.c test.c EXTRA_DIST = \ diff --git a/test/test-nautilus-smooth-graphics.c b/test/test-nautilus-smooth-graphics.c deleted file mode 100644 index e274aa703..000000000 --- a/test/test-nautilus-smooth-graphics.c +++ /dev/null @@ -1,68 +0,0 @@ -#include - -#include -#include -#include - -static void -button_toggled (GtkWidget *button, - gpointer callback_data) -{ - eel_preferences_set_boolean (NAUTILUS_PREFERENCES_SMOOTH_GRAPHICS_MODE, - GTK_TOGGLE_BUTTON (button)->active); -} - -static void -smooth_graphics_mode_changed_callback (gpointer callback_data) -{ - gboolean is_smooth; - - is_smooth = eel_preferences_get_boolean (NAUTILUS_PREFERENCES_SMOOTH_GRAPHICS_MODE); - - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (callback_data), - eel_preferences_get_boolean (NAUTILUS_PREFERENCES_SMOOTH_GRAPHICS_MODE)); -} - -static void -delete_event (GtkWidget *widget, GdkEvent *event, gpointer callback_data) -{ - gtk_main_quit (); -} - -int -main (int argc, char * argv[]) -{ - GtkWidget *window; - GtkWidget *button; - - gnome_program_init ("test-nautilus-smooth-graphics", "1.0", - LIBGNOMEUI_MODULE, argc, argv, NULL); - - nautilus_global_preferences_init (); - - window = gtk_window_new (GTK_WINDOW_TOPLEVEL); - g_signal_connect (window, "delete_event", G_CALLBACK (delete_event), NULL); - - button = gtk_toggle_button_new_with_label ("Smooth Graphics"); - - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), - eel_preferences_get_boolean (NAUTILUS_PREFERENCES_SMOOTH_GRAPHICS_MODE)); - - gtk_container_add (GTK_CONTAINER (window), button); - - g_signal_connect (button, - "toggled", - G_CALLBACK (button_toggled), - NULL); - - eel_preferences_add_callback (NAUTILUS_PREFERENCES_SMOOTH_GRAPHICS_MODE, - smooth_graphics_mode_changed_callback, - button); - - gtk_widget_show (button); - gtk_widget_show (window); - - gtk_main (); - - return 0; -}