This is an automated email from the git hooks/post-receive script. a l e x p u s h e d a c o m m i t t o b r a n c h m a s t e r in repository xfce/thunar.
commit 6e2b1d762ba177fba19e0bb4d466f5a1ed524df4 Author: Alexander Schwinn <ac...@gmx.de> Date: Sun Jun 24 22:23:14 2018 +0200 Add property to enable/disable frames on thumbnails (Bug #14433) --- thunar/thunar-icon-factory.c | 43 +++++++++++++++++++++++++++++++------- thunar/thunar-preferences-dialog.c | 11 ++++++++-- thunar/thunar-preferences.c | 15 +++++++++++++ thunar/thunar-standard-view.c | 29 +++++++++++++++++++++++++ 4 files changed, 89 insertions(+), 9 deletions(-) diff --git a/thunar/thunar-icon-factory.c b/thunar/thunar-icon-factory.c index b924350..eec5394 100644 --- a/thunar/thunar-icon-factory.c +++ b/thunar/thunar-icon-factory.c @@ -49,6 +49,7 @@ enum PROP_0, PROP_ICON_THEME, PROP_THUMBNAIL_MODE, + PROP_THUMBNAIL_DRAW_FRAMES, }; @@ -106,6 +107,8 @@ struct _ThunarIconFactory ThunarThumbnailMode thumbnail_mode; + gboolean thumbnail_draw_frames; + guint sweep_timer_id; gulong changed_hook_id; @@ -182,6 +185,21 @@ thunar_icon_factory_class_init (ThunarIconFactoryClass *klass) THUNAR_TYPE_THUMBNAIL_MODE, THUNAR_THUMBNAIL_MODE_ONLY_LOCAL, EXO_PARAM_READWRITE)); + + /** + * ThunarIconFactory:thumbnail-draw-frames: + * + * Whether to draw black frames around thumbnails. + * This looks neat, but will delay the first draw a bit. + * May have an impact on older systems, on folders with many pictures. + **/ + g_object_class_install_property (gobject_class, + PROP_THUMBNAIL_DRAW_FRAMES, + g_param_spec_boolean ("thumbnail-draw-frames", + "thumbnail-draw-frames", + "thumbnail-draw-frames", + FALSE, + EXO_PARAM_READWRITE)); } @@ -266,6 +284,10 @@ thunar_icon_factory_get_property (GObject *object, g_value_set_enum (value, factory->thumbnail_mode); break; + case PROP_THUMBNAIL_DRAW_FRAMES: + g_value_set_boolean (value, factory->thumbnail_draw_frames); + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -288,6 +310,10 @@ thunar_icon_factory_set_property (GObject *object, factory->thumbnail_mode = g_value_get_enum (value); break; + case PROP_THUMBNAIL_DRAW_FRAMES: + factory->thumbnail_draw_frames = g_value_get_boolean (value); + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -432,6 +458,8 @@ thunar_icon_factory_load_from_file (ThunarIconFactory *factory, gint width; gint height; + _thunar_return_val_if_fail (THUNAR_IS_ICON_FACTORY (factory), NULL); + /* try to load the image from the file */ pixbuf = gdk_pixbuf_new_from_file (path, NULL); if (G_LIKELY (pixbuf != NULL)) @@ -440,14 +468,15 @@ thunar_icon_factory_load_from_file (ThunarIconFactory *factory, width = gdk_pixbuf_get_width (pixbuf); height = gdk_pixbuf_get_height (pixbuf); - /* check if we want to add a frame to the image (we really don't - * want to do this for icons displayed in the details view). - */ needs_frame = FALSE; - /* Disabled for 1.8.0 release, will be made optional later - * needs_frame = (strstr (path, G_DIR_SEPARATOR_S ".cache/thumbnails" G_DIR_SEPARATOR_S) != NULL) - * && (size >= 32) && thumbnail_needs_frame (pixbuf, width, height); - */ + if (factory->thumbnail_draw_frames) + { + /* check if we want to add a frame to the image (we really don't + * want to do this for icons displayed in the details view). + * */ + needs_frame = (strstr (path, G_DIR_SEPARATOR_S ".cache/thumbnails" G_DIR_SEPARATOR_S) != NULL) + && (size >= 32) && thumbnail_needs_frame (pixbuf, width, height); + } /* be sure to make framed thumbnails fit into the size */ if (G_LIKELY (needs_frame)) diff --git a/thunar/thunar-preferences-dialog.c b/thunar/thunar-preferences-dialog.c index dd19f6d..88f4bf9 100644 --- a/thunar/thunar-preferences-dialog.c +++ b/thunar/thunar-preferences-dialog.c @@ -296,18 +296,25 @@ thunar_preferences_dialog_init (ThunarPreferencesDialog *dialog) gtk_label_set_mnemonic_widget (GTK_LABEL (label), combo); gtk_widget_show (combo); + button = gtk_check_button_new_with_mnemonic (_("Draw frames around thumbnails")); + exo_mutual_binding_new (G_OBJECT (dialog->preferences), "misc-thumbnail-draw-frames", G_OBJECT (button), "active"); + gtk_widget_set_tooltip_text (button, _("Select this option to draw black frames around thumbnails.")); + gtk_widget_set_hexpand (button, TRUE); + gtk_grid_attach (GTK_GRID (grid), button, 0, 2, 2, 1); + gtk_widget_show (button); + button = gtk_check_button_new_with_mnemonic (_("Sort _folders before files")); exo_mutual_binding_new (G_OBJECT (dialog->preferences), "misc-folders-first", G_OBJECT (button), "active"); gtk_widget_set_tooltip_text (button, _("Select this option to list folders before files when you sort a folder.")); gtk_widget_set_hexpand (button, TRUE); - gtk_grid_attach (GTK_GRID (grid), button, 0, 2, 2, 1); + gtk_grid_attach (GTK_GRID (grid), button, 0, 3, 2, 1); gtk_widget_show (button); button = gtk_check_button_new_with_mnemonic (_("Show file size in binary format")); exo_mutual_binding_new (G_OBJECT (dialog->preferences), "misc-file-size-binary", G_OBJECT (button), "active"); gtk_widget_set_tooltip_text (button, _("Select this option to show file size in binary format instead of decimal.")); gtk_widget_set_hexpand (button, TRUE); - gtk_grid_attach (GTK_GRID (grid), button, 0, 3, 2, 1); + gtk_grid_attach (GTK_GRID (grid), button, 0, 4, 2, 1); gtk_widget_show (button); frame = g_object_new (GTK_TYPE_FRAME, "border-width", 0, "shadow-type", GTK_SHADOW_NONE, NULL); diff --git a/thunar/thunar-preferences.c b/thunar/thunar-preferences.c index db92bf2..4b3efc2 100644 --- a/thunar/thunar-preferences.c +++ b/thunar/thunar-preferences.c @@ -90,6 +90,7 @@ enum PROP_MISC_TAB_CLOSE_MIDDLE_CLICK, PROP_MISC_TEXT_BESIDE_ICONS, PROP_MISC_THUMBNAIL_MODE, + PROP_MISC_THUMBNAIL_DRAW_FRAMES, PROP_MISC_FILE_SIZE_BINARY, PROP_SHORTCUTS_ICON_EMBLEMS, PROP_SHORTCUTS_ICON_SIZE, @@ -694,6 +695,20 @@ thunar_preferences_class_init (ThunarPreferencesClass *klass) EXO_PARAM_READWRITE); /** + * ThunarPreferences:misc-thumbnail-draw-frames: + * + * Whether to draw black frames around thumbnails. + * This looks neat, but will delay the first draw a bit. + * May have an impact on older systems, on folders with many pictures. + **/ + preferences_props[PROP_MISC_THUMBNAIL_DRAW_FRAMES] = + g_param_spec_boolean ("misc-thumbnail-draw-frames", + NULL, + NULL, + FALSE, + EXO_PARAM_READWRITE); + + /** * ThunarPreferences:misc-file-size-binary: * * Show file size in binary format instead of decimal. diff --git a/thunar/thunar-standard-view.c b/thunar/thunar-standard-view.c index 09c802b..8fb5e03 100644 --- a/thunar/thunar-standard-view.c +++ b/thunar/thunar-standard-view.c @@ -77,6 +77,7 @@ enum PROP_STATUSBAR_TEXT, PROP_UI_MANAGER, PROP_ZOOM_LEVEL, + PROP_THUMBNAIL_DRAW_FRAMES, N_PROPERTIES }; @@ -515,6 +516,20 @@ thunar_standard_view_class_init (ThunarStandardViewClass *klass) NULL, EXO_PARAM_READABLE); + /** + * ThunarStandardView:thumbnail-draw-frames: + * + * Whether to draw black frames around thumbnails. + * This looks neat, but will delay the first draw a bit. + * May have an impact on older systems, on folders with many pictures. + **/ + standard_view_props[PROP_THUMBNAIL_DRAW_FRAMES] = + g_param_spec_boolean ("thumbnail-draw-frames", + "thumbnail-draw-frames", + "thumbnail-draw-frames", + FALSE, + EXO_PARAM_READWRITE); + /* override ThunarComponent's properties */ g_iface = g_type_default_interface_peek (THUNAR_TYPE_COMPONENT); standard_view_props[PROP_SELECTED_FILES] = @@ -785,6 +800,9 @@ thunar_standard_view_constructor (GType type, exo_binding_new (G_OBJECT (standard_view->preferences), "misc-single-click", G_OBJECT (view), "single-click"); exo_binding_new (G_OBJECT (standard_view->preferences), "misc-single-click-timeout", G_OBJECT (view), "single-click-timeout"); + /* apply the thumbnail frame preferences */ + exo_binding_new (G_OBJECT (standard_view->preferences), "misc-thumbnail-draw-frames", G_OBJECT (standard_view), "thumbnail-draw-frames"); + /* apply the default sort column and sort order */ g_object_get (G_OBJECT (standard_view->preferences), "last-sort-column", &sort_column, "last-sort-order", &sort_order, NULL); gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (standard_view->model), sort_column, sort_order); @@ -949,6 +967,7 @@ thunar_standard_view_get_property (GObject *object, GParamSpec *pspec) { ThunarFile *current_directory; + gboolean thumbnail_draw_frames; switch (prop_id) { @@ -992,6 +1011,11 @@ thunar_standard_view_get_property (GObject *object, g_value_set_enum (value, thunar_view_get_zoom_level (THUNAR_VIEW (object))); break; + case PROP_THUMBNAIL_DRAW_FRAMES: + g_object_get (G_OBJECT (THUNAR_STANDARD_VIEW(object)->icon_factory), "thumbnail-draw-frames", &thumbnail_draw_frames, NULL); + g_value_set_boolean (value, thumbnail_draw_frames); + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -1034,6 +1058,11 @@ thunar_standard_view_set_property (GObject *object, thunar_view_set_zoom_level (THUNAR_VIEW (object), g_value_get_enum (value)); break; + case PROP_THUMBNAIL_DRAW_FRAMES: + g_object_set (G_OBJECT (standard_view->icon_factory), "thumbnail-draw-frames", g_value_get_boolean (value), NULL); + thunar_standard_view_reload(THUNAR_VIEW (object), TRUE); + break; + default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; -- To stop receiving notification emails like this one, please contact the administrator of this repository. _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits