diff --git a/thunar/thunar-icon-renderer.c b/thunar/thunar-icon-renderer.c index 8dd2d95022d76c639bda3886db3f685fca079442..c009b05d8015c4df489bf6506cd095166186d377 100644 --- a/thunar/thunar-icon-renderer.c +++ b/thunar/thunar-icon-renderer.c @@ -42,6 +42,7 @@ enum PROP_HIGHLIGHT_COLOR, PROP_ROUNDED_CORNERS, PROP_HIGHLIGHTING_ENABLED, + PROP_IMAGE_PREVIEW_ENABLED, }; @@ -198,6 +199,17 @@ thunar_icon_renderer_class_init (ThunarIconRendererClass *klass) g_param_spec_boolean ("highlighting-enabled", "highlighting-enabled", "highlighting-enabled", FALSE, EXO_PARAM_READWRITE)); + + /** + * ThunarIconRenderer:image-preview-enabled: + * + * Determines if as well xxl-thumbnails should be requested + **/ + g_object_class_install_property (gobject_class, + PROP_IMAGE_PREVIEW_ENABLED, + g_param_spec_boolean ("image-preview-enabled", "image-preview-enabled", "image-preview-enabled", + FALSE, + EXO_PARAM_READWRITE)); } @@ -270,6 +282,10 @@ thunar_icon_renderer_get_property (GObject *object, g_value_set_boolean (value, icon_renderer->highlighting_enabled); break; + case PROP_IMAGE_PREVIEW_ENABLED: + g_value_set_boolean (value, icon_renderer->highlighting_enabled); + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -325,6 +341,10 @@ thunar_icon_renderer_set_property (GObject *object, icon_renderer->highlighting_enabled = g_value_get_boolean (value); break; + case PROP_IMAGE_PREVIEW_ENABLED: + icon_renderer->image_preview_enabled = g_value_get_boolean (value); + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -491,6 +511,10 @@ thunar_icon_renderer_render (GtkCellRenderer *renderer, icon_factory = thunar_icon_factory_get_for_icon_theme (icon_theme); scale_factor = gtk_widget_get_scale_factor (widget); thunar_file_request_thumbnail (icon_renderer->file, thunar_icon_size_to_thumbnail_size (icon_renderer->size * scale_factor)); + + if (icon_renderer->image_preview_enabled) + thunar_file_request_thumbnail (icon_renderer->file, THUNAR_THUMBNAIL_SIZE_XX_LARGE); + icon = thunar_icon_factory_load_file_icon (icon_factory, icon_renderer->file, icon_state, icon_renderer->size, scale_factor); if (G_UNLIKELY (icon == NULL)) { diff --git a/thunar/thunar-icon-renderer.h b/thunar/thunar-icon-renderer.h index 6a675d562eb91841e14e8beda681a605bed2e274..bbc4236eee3cbf2df2979bf7056d20badc0d510a 100644 --- a/thunar/thunar-icon-renderer.h +++ b/thunar/thunar-icon-renderer.h @@ -52,6 +52,7 @@ struct _ThunarIconRenderer gchar *highlight_color; gboolean rounded_corners; gboolean highlighting_enabled; + gboolean image_preview_enabled; }; GType thunar_icon_renderer_get_type (void) G_GNUC_CONST; diff --git a/thunar/thunar-standard-view.c b/thunar/thunar-standard-view.c index d51403e5a27b1f2df368a4d69f332929bd7c802c..68f7d4777622e35f89c527714fee2ae735dc9508 100644 --- a/thunar/thunar-standard-view.c +++ b/thunar/thunar-standard-view.c @@ -822,6 +822,7 @@ thunar_standard_view_init (ThunarStandardView *standard_view) g_object_ref_sink (G_OBJECT (standard_view->icon_renderer)); g_object_bind_property (G_OBJECT (standard_view), "zoom-level", G_OBJECT (standard_view->icon_renderer), "size", G_BINDING_SYNC_CREATE); g_object_bind_property (G_OBJECT (standard_view->preferences), "misc-highlighting-enabled", G_OBJECT (standard_view->icon_renderer), "highlighting-enabled", G_BINDING_SYNC_CREATE); + g_object_bind_property (G_OBJECT (standard_view->preferences), "last-image-preview-visible", G_OBJECT (standard_view->icon_renderer), "image-preview-enabled", G_BINDING_SYNC_CREATE); g_signal_connect (G_OBJECT (standard_view), "notify::scale-factor", G_CALLBACK (thunar_standard_view_scale_changed), NULL); /* setup the name renderer */