@@ -68,35 +68,27 @@ imageheader_add_item( IMAGE *im,
6868 char txt [256 ];
6969 VipsBuf buf = VIPS_BUF_STATIC ( txt );
7070 GtkTreeIter iter ;
71- char * value_str ;
72- const char * extra ;
7371
74- value_str = g_strdup_value_contents ( value );
75- vips_buf_appendf ( & buf , "%s" , value_str );
76-
77- /* Look for enums and decode them.
72+ /* Show the nicks for enums.
7873 */
79- extra = NULL ;
80- if ( strcmp ( field , "coding" ) == 0 )
81- extra = vips_enum_nick ( VIPS_TYPE_CODING ,
82- g_value_get_int ( value ) );
83- else if ( strcmp ( field , "format" ) == 0 )
84- extra = vips_enum_nick ( VIPS_TYPE_BAND_FORMAT ,
85- g_value_get_int ( value ) );
86- else if ( strcmp ( field , "interpretation" ) == 0 )
87- extra = vips_enum_nick ( VIPS_TYPE_INTERPRETATION ,
88- g_value_get_int ( value ) );
89- if ( extra )
90- vips_buf_appendf ( & buf , " - %s" , extra );
74+ if ( G_VALUE_HOLDS_ENUM ( value ) )
75+ vips_buf_appendf ( & buf , "%s" ,
76+ vips_enum_nick ( G_VALUE_TYPE ( value ),
77+ g_value_get_enum ( value ) ) );
78+ else {
79+ char * value_str ;
80+
81+ value_str = g_strdup_value_contents ( value );
82+ vips_buf_appendf ( & buf , "%s" , value_str );
83+ g_free ( value_str );
84+ }
9185
9286 gtk_list_store_append ( imageheader -> store , & iter );
9387 gtk_list_store_set ( imageheader -> store , & iter ,
9488 NAME_COLUMN , field ,
9589 VALUE_COLUMN , vips_buf_all ( & buf ),
9690 -1 );
9791
98- g_free ( value_str );
99-
10092 return ( NULL );
10193}
10294
0 commit comments