diff options
author | Thomas White <taw@bitwiz.org.uk> | 2015-03-19 09:45:03 +0100 |
---|---|---|
committer | Thomas White <taw@bitwiz.org.uk> | 2015-03-19 09:46:25 +0100 |
commit | a3bfd1e7199cf0d366667f189ff488d6601f80e9 (patch) | |
tree | d6b2ccb819e1d958c2a207d7c799ecbfcec0704a /src/dw-hdfsee.c | |
parent | a2d166507007bc68b6e2e66cff745c44975b5baf (diff) |
hdf5_read(): Create simple geometry
This allows unpack_panels() to be called, and hence the same data
structures to be available in the simple and geometry cases. Some
changes were necessary to hdfsee, which previously created the simple
geometery itself
Diffstat (limited to 'src/dw-hdfsee.c')
-rw-r--r-- | src/dw-hdfsee.c | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/src/dw-hdfsee.c b/src/dw-hdfsee.c index 974471f1..5580c635 100644 --- a/src/dw-hdfsee.c +++ b/src/dw-hdfsee.c @@ -1533,7 +1533,7 @@ static gint displaywindow_set_calibmode(GtkWidget *d, DisplayWindow *dw) w = gtk_ui_manager_get_widget(dw->ui, "/ui/displaywindow/tools/calibmode"); - if ( dw->image->det == dw->simple_geom ) { + if ( dw->simple ) { gtk_check_menu_item_set_state(GTK_CHECK_MENU_ITEM(w), 0); return 0; } @@ -2290,15 +2290,16 @@ static gint displaywindow_newhdf(GtkMenuItem *item, struct newhdf *nh) a = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(nh->widget)); if ( !a ) return 0; + /* hdf5_read() will create a new simple geom, so get rid of the old + * one */ + free_detector_geometry(nh->dw->image->det); + nh->dw->image->det = NULL; fail = hdf5_read(nh->dw->hdfile, nh->dw->image, nh->name, 0); if ( fail ) { ERROR("Couldn't load image"); return 1; } - nh->dw->simple_geom = simple_geometry(nh->dw->image); - nh->dw->image->det = nh->dw->simple_geom; - do_filters(nh->dw); displaywindow_update(nh->dw); return 0; @@ -2754,7 +2755,7 @@ DisplayWindow *displaywindow_open(char *filename, char *geom_filename, dw->boostint = 1; dw->motion_callback = 0; dw->numbers_window = NULL; - dw->simple_geom = NULL; + dw->simple = 0; dw->image = NULL; dw->show_rings = show_rings; dw->show_peaks = 0; @@ -2863,6 +2864,7 @@ DisplayWindow *displaywindow_open(char *filename, char *geom_filename, } else { check = hdf5_read(dw->hdfile, dw->image, element, 0); + dw->simple = 1; } if ( check ) { ERROR("Couldn't load file\n"); @@ -2873,11 +2875,6 @@ DisplayWindow *displaywindow_open(char *filename, char *geom_filename, dw->image->filename = strdup(filename); - if ( dw->image->det == NULL ) { - dw->simple_geom = simple_geometry(dw->image); - dw->image->det = dw->simple_geom; - } - /* Filters need geometry */ do_filters(dw); @@ -2924,11 +2921,11 @@ DisplayWindow *displaywindow_open(char *filename, char *geom_filename, w = gtk_ui_manager_get_widget(dw->ui, "/ui/displaywindow/view/images"); - if ( dw->image->det != dw->simple_geom ) { + if ( !dw->simple ) { gtk_widget_set_sensitive(GTK_WIDGET(w), FALSE); } - if ( dw->image->det == dw->simple_geom || dw->multi_event == 0) { + if ( dw->simple || dw->multi_event == 0) { set_events_menu_sensitivity(dw, FALSE); } @@ -2952,7 +2949,7 @@ DisplayWindow *displaywindow_open(char *filename, char *geom_filename, g_signal_connect(GTK_OBJECT(dw->drawingarea), "key-press-event", G_CALLBACK(displaywindow_keypress), dw); - if ( dw->image->det == dw->simple_geom ) { + if ( dw->simple ) { displaywindow_update_menus(dw, element); } |