Merge branch 'clipboard-demo-improvements' into 'main'
inspector: Show more datatypes for the clipboard See merge request GNOME/gtk!4241
This commit is contained in:
@@ -49,7 +49,7 @@
|
||||
|
||||
typedef struct _Deserializer Deserializer;
|
||||
|
||||
struct _Deserializer
|
||||
struct _Deserializer
|
||||
{
|
||||
const char * mime_type; /* interned */
|
||||
GType type;
|
||||
@@ -934,25 +934,6 @@ init (void)
|
||||
|
||||
formats = gdk_pixbuf_get_formats ();
|
||||
|
||||
/* Make sure png comes first */
|
||||
for (f = formats; f; f = f->next)
|
||||
{
|
||||
GdkPixbufFormat *fmt = f->data;
|
||||
char *name;
|
||||
|
||||
name = gdk_pixbuf_format_get_name (fmt);
|
||||
if (g_str_equal (name, "png"))
|
||||
{
|
||||
formats = g_slist_delete_link (formats, f);
|
||||
formats = g_slist_prepend (formats, fmt);
|
||||
|
||||
g_free (name);
|
||||
break;
|
||||
}
|
||||
|
||||
g_free (name);
|
||||
}
|
||||
|
||||
for (f = formats; f; f = f->next)
|
||||
{
|
||||
GdkPixbufFormat *fmt = f->data;
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
|
||||
typedef struct _Serializer Serializer;
|
||||
|
||||
struct _Serializer
|
||||
struct _Serializer
|
||||
{
|
||||
const char * mime_type; /* interned */
|
||||
GType type;
|
||||
@@ -446,7 +446,7 @@ lookup_serializer (const char *mime_type,
|
||||
serializer->type == type)
|
||||
return serializer;
|
||||
}
|
||||
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -630,7 +630,7 @@ pixbuf_serializer (GdkContentSerializer *serializer)
|
||||
const GValue *value;
|
||||
GdkPixbuf *pixbuf;
|
||||
const char *name;
|
||||
|
||||
|
||||
name = gdk_content_serializer_get_user_data (serializer);
|
||||
value = gdk_content_serializer_get_value (serializer);
|
||||
|
||||
@@ -651,7 +651,7 @@ pixbuf_serializer (GdkContentSerializer *serializer)
|
||||
gdk_pixbuf_save_to_stream_async (pixbuf,
|
||||
gdk_content_serializer_get_output_stream (serializer),
|
||||
name,
|
||||
gdk_content_serializer_get_cancellable (serializer),
|
||||
gdk_content_serializer_get_cancellable (serializer),
|
||||
pixbuf_serializer_finish,
|
||||
serializer,
|
||||
g_str_equal (name, "png") ? "compression" : NULL, "2",
|
||||
@@ -823,7 +823,7 @@ file_uri_serializer (GdkContentSerializer *serializer)
|
||||
else if (G_VALUE_HOLDS (value, GDK_TYPE_FILE_LIST))
|
||||
{
|
||||
GSList *l;
|
||||
|
||||
|
||||
for (l = g_value_get_boxed (value); l; l = l->next)
|
||||
{
|
||||
uri = g_file_get_uri (l->data);
|
||||
@@ -867,7 +867,7 @@ file_text_serializer (GdkContentSerializer *serializer)
|
||||
{
|
||||
GString *str;
|
||||
GSList *l;
|
||||
|
||||
|
||||
str = g_string_new (NULL);
|
||||
|
||||
for (l = g_value_get_boxed (value); l; l = l->next)
|
||||
@@ -966,25 +966,6 @@ init (void)
|
||||
|
||||
formats = gdk_pixbuf_get_formats ();
|
||||
|
||||
/* Make sure png comes first */
|
||||
for (f = formats; f; f = f->next)
|
||||
{
|
||||
GdkPixbufFormat *fmt = f->data;
|
||||
char *name;
|
||||
|
||||
name = gdk_pixbuf_format_get_name (fmt);
|
||||
if (g_str_equal (name, "png"))
|
||||
{
|
||||
formats = g_slist_delete_link (formats, f);
|
||||
formats = g_slist_prepend (formats, fmt);
|
||||
|
||||
g_free (name);
|
||||
break;
|
||||
}
|
||||
|
||||
g_free (name);
|
||||
}
|
||||
|
||||
for (f = formats; f; f = f->next)
|
||||
{
|
||||
GdkPixbufFormat *fmt = f->data;
|
||||
|
||||
@@ -24,6 +24,9 @@
|
||||
#include "gtkbinlayout.h"
|
||||
#include "gtklabel.h"
|
||||
#include "gtkpicture.h"
|
||||
#include "gtkcolorswatchprivate.h"
|
||||
#include "gtkbox.h"
|
||||
|
||||
|
||||
struct _GtkDataViewer
|
||||
{
|
||||
@@ -258,6 +261,47 @@ gtk_data_viewer_load_value (GtkDataViewer *self,
|
||||
gtk_widget_set_size_request (self->contents, 256, 256);
|
||||
gtk_widget_set_parent (self->contents, GTK_WIDGET (self));
|
||||
}
|
||||
else if (g_type_is_a (G_VALUE_TYPE (value), GDK_TYPE_PIXBUF))
|
||||
{
|
||||
self->contents = gtk_picture_new_for_pixbuf (g_value_get_object (value));
|
||||
gtk_widget_set_size_request (self->contents, 256, 256);
|
||||
gtk_widget_set_parent (self->contents, GTK_WIDGET (self));
|
||||
}
|
||||
else if (g_type_is_a (G_VALUE_TYPE (value), GDK_TYPE_RGBA))
|
||||
{
|
||||
const GdkRGBA *color = g_value_get_boxed (value);
|
||||
|
||||
self->contents = gtk_color_swatch_new ();
|
||||
gtk_color_swatch_set_rgba (GTK_COLOR_SWATCH (self->contents), color);
|
||||
gtk_widget_set_size_request (self->contents, 48, 32);
|
||||
gtk_widget_set_halign (self->contents, GTK_ALIGN_CENTER);
|
||||
gtk_widget_set_parent (self->contents, GTK_WIDGET (self));
|
||||
}
|
||||
else if (g_type_is_a (G_VALUE_TYPE (value), G_TYPE_FILE))
|
||||
{
|
||||
GFile *file = g_value_get_object (value);
|
||||
|
||||
self->contents = gtk_label_new (g_file_peek_path (file));
|
||||
gtk_label_set_ellipsize (GTK_LABEL (self->contents), PANGO_ELLIPSIZE_START);
|
||||
gtk_widget_set_halign (self->contents, GTK_ALIGN_CENTER);
|
||||
gtk_widget_set_parent (self->contents, GTK_WIDGET (self));
|
||||
}
|
||||
else if (g_type_is_a (G_VALUE_TYPE (value), GDK_TYPE_FILE_LIST))
|
||||
{
|
||||
GList *l;
|
||||
|
||||
self->contents = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
|
||||
gtk_widget_set_parent (self->contents, GTK_WIDGET (self));
|
||||
|
||||
for (l = g_value_get_boxed (value); l; l = l->next)
|
||||
{
|
||||
GFile *file = l->data;
|
||||
GtkWidget *label = gtk_label_new (g_file_peek_path (file));
|
||||
gtk_label_set_ellipsize (GTK_LABEL (label), PANGO_ELLIPSIZE_START);
|
||||
gtk_widget_set_halign (label, GTK_ALIGN_CENTER);
|
||||
gtk_box_append (GTK_BOX (self->contents), label);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
gtk_data_viewer_load_error (self,
|
||||
|
||||
Reference in New Issue
Block a user