@@ -150,16 +150,17 @@ iimage_save(Model *model, xmlNode *xnode)
150150 if (!set_iprop (xthis , "image_left" , iimage -> image_left ) ||
151151 !set_iprop (xthis , "image_top" , iimage -> image_top ) ||
152152 !set_iprop (xthis , "image_mag" , iimage -> image_mag ) ||
153- !set_sprop (xthis , "show_status" ,
154- bool_to_char (iimage -> show_status )) ||
155- !set_sprop (xthis , "show_paintbox" ,
156- bool_to_char (iimage -> show_paintbox )) ||
157- !set_sprop (xthis , "show_convert" ,
158- bool_to_char (iimage -> show_convert )) ||
153+ !set_sprop (xthis , "show_status" , bool_to_char (iimage -> show_status )) ||
154+ !set_sprop (xthis , "show_convert" , bool_to_char (iimage -> show_convert )) ||
159155 !set_dprop (xthis , "scale" , iimage -> scale ) ||
160156 !set_dprop (xthis , "offset" , iimage -> offset ) ||
161- !set_sprop (xthis , "falsecolour" ,
162- bool_to_char (iimage -> falsecolour )))
157+ !set_iprop (xthis , "page" , iimage -> page ) ||
158+ !set_sprop (xthis , "falsecolour" , bool_to_char (iimage -> falsecolour )))
159+ return NULL ;
160+
161+ if (iimage -> mode != TILESOURCE_MODE_UNSET &&
162+ !set_sprop (xthis , "mode" ,
163+ vips_enum_nick (TILESOURCE_MODE_TYPE , iimage -> mode )))
163164 return NULL ;
164165
165166 return xthis ;
@@ -181,8 +182,13 @@ iimage_load(Model *model,
181182 (void ) get_bprop (xnode , "show_convert" , & iimage -> show_convert );
182183 (void ) get_dprop (xnode , "scale" , & iimage -> scale );
183184 (void ) get_dprop (xnode , "offset" , & iimage -> offset );
185+ (void ) get_iprop (xnode , "page" , & iimage -> page );
184186 (void ) get_bprop (xnode , "falsecolour" , & iimage -> falsecolour );
185187
188+ char mode [64 ];
189+ if (get_sprop (xnode , "mode" , mode , sizeof (mode )))
190+ iimage -> mode = vips_enum_from_nick ("nip4" , TILESOURCE_MODE_TYPE , mode );
191+
186192 return MODEL_CLASS (iimage_parent_class )-> load (model , state , parent , xnode );
187193}
188194
@@ -403,11 +409,13 @@ iimage_init(iImage *iimage)
403409 iimage -> show_paintbox = FALSE;
404410 iimage -> show_convert = FALSE;
405411
412+ iimage -> mode = TILESOURCE_MODE_UNSET ;
406413 iimage -> scale = 0.0 ;
407414 iimage -> offset = 0.0 ;
408415 iimage -> falsecolour = FALSE;
409416 iimage -> log = FALSE;
410417 iimage -> icc = FALSE;
418+ iimage -> page = 0 ;
411419
412420 vips_buf_init_dynamic (& iimage -> caption_buffer , MAX_LINELENGTH );
413421
@@ -420,6 +428,8 @@ iimage_update_from_tilesource(iImage *iimage, Tilesource *tilesource)
420428 iimage -> scale = tilesource -> scale ;
421429 iimage -> offset = tilesource -> offset ;
422430 iimage -> falsecolour = tilesource -> falsecolour ;
431+ iimage -> page = tilesource -> page ;
432+ iimage -> mode = tilesource -> mode ;
423433
424434 iobject_changed (IOBJECT (iimage ));
425435}
0 commit comments