aboutsummaryrefslogtreecommitdiff
path: root/src/dw-hdfsee.c
diff options
context:
space:
mode:
authorThomas White <taw@bitwiz.org.uk>2015-03-19 09:45:03 +0100
committerThomas White <taw@bitwiz.org.uk>2015-03-19 09:46:25 +0100
commita3bfd1e7199cf0d366667f189ff488d6601f80e9 (patch)
treed6b2ccb819e1d958c2a207d7c799ecbfcec0704a /src/dw-hdfsee.c
parenta2d166507007bc68b6e2e66cff745c44975b5baf (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.c23
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);
}