I#1291 - EAttachmentIconView: Improve display settings
Closes https://gitlab.gnome.org/GNOME/evolution/-/issues/1291
This commit is contained in:
@ -43,8 +43,6 @@ enum {
|
|||||||
PROP_EDITABLE
|
PROP_EDITABLE
|
||||||
};
|
};
|
||||||
|
|
||||||
static gint icon_size = GTK_ICON_SIZE_DIALOG;
|
|
||||||
|
|
||||||
/* Forward Declarations */
|
/* Forward Declarations */
|
||||||
static void e_attachment_icon_view_interface_init
|
static void e_attachment_icon_view_interface_init
|
||||||
(EAttachmentViewInterface *iface);
|
(EAttachmentViewInterface *iface);
|
||||||
@ -59,12 +57,6 @@ G_DEFINE_TYPE_WITH_CODE (
|
|||||||
G_IMPLEMENT_INTERFACE (
|
G_IMPLEMENT_INTERFACE (
|
||||||
E_TYPE_EXTENSIBLE, NULL))
|
E_TYPE_EXTENSIBLE, NULL))
|
||||||
|
|
||||||
void
|
|
||||||
e_attachment_icon_view_set_default_icon_size (gint size)
|
|
||||||
{
|
|
||||||
icon_size = size;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
attachment_icon_view_set_property (GObject *object,
|
attachment_icon_view_set_property (GObject *object,
|
||||||
guint property_id,
|
guint property_id,
|
||||||
@ -139,6 +131,7 @@ attachment_icon_view_constructed (GObject *object)
|
|||||||
G_OBJECT_CLASS (e_attachment_icon_view_parent_class)->constructed (object);
|
G_OBJECT_CLASS (e_attachment_icon_view_parent_class)->constructed (object);
|
||||||
|
|
||||||
gtk_icon_view_set_selection_mode (GTK_ICON_VIEW (object), GTK_SELECTION_MULTIPLE);
|
gtk_icon_view_set_selection_mode (GTK_ICON_VIEW (object), GTK_SELECTION_MULTIPLE);
|
||||||
|
gtk_icon_view_set_item_width (GTK_ICON_VIEW (object), 96);
|
||||||
|
|
||||||
cell_layout = GTK_CELL_LAYOUT (object);
|
cell_layout = GTK_CELL_LAYOUT (object);
|
||||||
|
|
||||||
@ -146,7 +139,11 @@ attachment_icon_view_constructed (GObject *object)
|
|||||||
* so that GtkCellLayout.get_area() returns something valid. */
|
* so that GtkCellLayout.get_area() returns something valid. */
|
||||||
|
|
||||||
renderer = gtk_cell_renderer_pixbuf_new ();
|
renderer = gtk_cell_renderer_pixbuf_new ();
|
||||||
g_object_set (renderer, "stock-size", icon_size, NULL);
|
g_object_set (renderer,
|
||||||
|
"stock-size", GTK_ICON_SIZE_DIALOG,
|
||||||
|
"xalign", 0.5,
|
||||||
|
"yalign", 0.5,
|
||||||
|
NULL);
|
||||||
gtk_cell_layout_pack_start (cell_layout, renderer, FALSE);
|
gtk_cell_layout_pack_start (cell_layout, renderer, FALSE);
|
||||||
|
|
||||||
gtk_cell_layout_add_attribute (
|
gtk_cell_layout_add_attribute (
|
||||||
@ -154,10 +151,16 @@ attachment_icon_view_constructed (GObject *object)
|
|||||||
E_ATTACHMENT_STORE_COLUMN_ICON);
|
E_ATTACHMENT_STORE_COLUMN_ICON);
|
||||||
|
|
||||||
renderer = gtk_cell_renderer_text_new ();
|
renderer = gtk_cell_renderer_text_new ();
|
||||||
g_object_set (
|
g_object_set (renderer,
|
||||||
renderer, "alignment", PANGO_ALIGN_CENTER,
|
"alignment", PANGO_ALIGN_LEFT,
|
||||||
"wrap-mode", PANGO_WRAP_WORD, "wrap-width", 150,
|
"ellipsize", PANGO_ELLIPSIZE_END,
|
||||||
"yalign", 0.0, NULL);
|
"wrap-mode", PANGO_WRAP_WORD,
|
||||||
|
"wrap-width", 96,
|
||||||
|
"scale", 0.8,
|
||||||
|
"xpad", 0,
|
||||||
|
"xalign", 0.5,
|
||||||
|
"yalign", 0.0,
|
||||||
|
NULL);
|
||||||
gtk_cell_layout_pack_start (cell_layout, renderer, FALSE);
|
gtk_cell_layout_pack_start (cell_layout, renderer, FALSE);
|
||||||
|
|
||||||
gtk_cell_layout_add_attribute (
|
gtk_cell_layout_add_attribute (
|
||||||
|
@ -63,8 +63,7 @@ struct _EAttachmentIconViewClass {
|
|||||||
|
|
||||||
GType e_attachment_icon_view_get_type (void) G_GNUC_CONST;
|
GType e_attachment_icon_view_get_type (void) G_GNUC_CONST;
|
||||||
GtkWidget * e_attachment_icon_view_new (void);
|
GtkWidget * e_attachment_icon_view_new (void);
|
||||||
void e_attachment_icon_view_set_default_icon_size
|
|
||||||
(gint size);
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif /* E_ATTACHMENT_ICON_VIEW_H */
|
#endif /* E_ATTACHMENT_ICON_VIEW_H */
|
||||||
|
@ -347,6 +347,8 @@ static void
|
|||||||
picture_gallery_constructed (GObject *object)
|
picture_gallery_constructed (GObject *object)
|
||||||
{
|
{
|
||||||
GtkIconView *icon_view;
|
GtkIconView *icon_view;
|
||||||
|
GtkCellLayout *cell_layout;
|
||||||
|
GtkCellRenderer *renderer;
|
||||||
GtkListStore *list_store;
|
GtkListStore *list_store;
|
||||||
GtkTargetEntry *targets;
|
GtkTargetEntry *targets;
|
||||||
GtkTargetList *list;
|
GtkTargetList *list;
|
||||||
@ -362,14 +364,37 @@ picture_gallery_constructed (GObject *object)
|
|||||||
gtk_icon_view_set_model (icon_view, GTK_TREE_MODEL (list_store));
|
gtk_icon_view_set_model (icon_view, GTK_TREE_MODEL (list_store));
|
||||||
g_object_unref (list_store);
|
g_object_unref (list_store);
|
||||||
|
|
||||||
gtk_icon_view_set_pixbuf_column (icon_view, COL_PIXBUF);
|
gtk_icon_view_set_item_width (icon_view, 96);
|
||||||
gtk_icon_view_set_text_column (icon_view, COL_FILENAME_TEXT);
|
|
||||||
gtk_icon_view_set_tooltip_column (icon_view, -1);
|
|
||||||
|
|
||||||
/* Fit more icons by letting text wrap, especially with long filenames.
|
cell_layout = GTK_CELL_LAYOUT (icon_view);
|
||||||
* The thumbnail is usually 128x128, so match it, as the text won't wrap
|
|
||||||
* smaller than the thumbnail width anyway. */
|
/* This needs to happen after constructor properties are set
|
||||||
gtk_icon_view_set_item_width (icon_view, 128);
|
* so that GtkCellLayout.get_area() returns something valid. */
|
||||||
|
|
||||||
|
renderer = gtk_cell_renderer_pixbuf_new ();
|
||||||
|
g_object_set (renderer,
|
||||||
|
"stock-size", GTK_ICON_SIZE_DIALOG,
|
||||||
|
"xalign", 0.5,
|
||||||
|
"yalign", 0.5,
|
||||||
|
NULL);
|
||||||
|
gtk_cell_layout_pack_start (cell_layout, renderer, FALSE);
|
||||||
|
|
||||||
|
gtk_cell_layout_add_attribute (cell_layout, renderer, "pixbuf", COL_PIXBUF);
|
||||||
|
|
||||||
|
renderer = gtk_cell_renderer_text_new ();
|
||||||
|
g_object_set (renderer,
|
||||||
|
"alignment", PANGO_ALIGN_LEFT,
|
||||||
|
"ellipsize", PANGO_ELLIPSIZE_END,
|
||||||
|
"wrap-mode", PANGO_WRAP_WORD,
|
||||||
|
"wrap-width", 96,
|
||||||
|
"scale", 0.8,
|
||||||
|
"xpad", 0,
|
||||||
|
"xalign", 0.5,
|
||||||
|
"yalign", 0.0,
|
||||||
|
NULL);
|
||||||
|
gtk_cell_layout_pack_start (cell_layout, renderer, FALSE);
|
||||||
|
|
||||||
|
gtk_cell_layout_add_attribute (cell_layout, renderer, "text", COL_FILENAME_TEXT);
|
||||||
|
|
||||||
list = gtk_target_list_new (NULL, 0);
|
list = gtk_target_list_new (NULL, 0);
|
||||||
gtk_target_list_add_uri_targets (list, 0);
|
gtk_target_list_add_uri_targets (list, 0);
|
||||||
|
Reference in New Issue
Block a user