Skip to content

Commit 4a7a949

Browse files
author
Brianna Major
committed
Allow users to disable detector coating, filter or phosphor
Signed-off-by: Brianna Major <[email protected]>
1 parent 7e3dc2b commit 4a7a949

File tree

3 files changed

+87
-10
lines changed

3 files changed

+87
-10
lines changed

hexrdgui/absorption_correction_options_dialog.py

Lines changed: 41 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,20 +79,23 @@ def update_gui(self):
7979
self.ui.filter_material.setCurrentText(filter.material)
8080
self.ui.filter_density.setValue(filter.density)
8181
self.ui.filter_thickness.setValue(filter.thickness)
82+
self.ui.apply_filters.setChecked(filter.thickness > 0)
8283
# COATING
8384
if coating.material not in self.mat_options:
8485
self.ui.coating_material_input.setText(coating.material)
8586
else:
8687
self.ui.coating_material.setCurrentText(coating.material)
8788
self.ui.coating_density.setValue(coating.density)
8889
self.ui.coating_thickness.setValue(coating.thickness)
90+
self.ui.apply_coating.setChecked(coating.thickness > 0)
8991
# PHOSPHOR
9092
if phosphor.material not in self.mat_options:
9193
self.ui.phosphor_material_input.setText(phosphor.material)
9294
else:
9395
self.ui.phosphor_material.setCurrentText(phosphor.material)
9496
self.ui.phosphor_density.setValue(phosphor.density)
9597
self.ui.phosphor_thickness.setValue(phosphor.thickness)
98+
self.ui.apply_phosphor.setChecked(phosphor.thickness > 0)
9699
self.ui.phosphor_readout_length.setValue(phosphor.readout_length)
97100
self.ui.phosphor_pre_U0.setValue(phosphor.pre_U0)
98101

@@ -106,6 +109,9 @@ def setup_connections(self):
106109
self.ui.button_box.accepted.connect(self.accept_changes)
107110
self.ui.button_box.accepted.connect(self.ui.accept)
108111
self.ui.button_box.rejected.connect(self.ui.reject)
112+
self.ui.apply_filters.toggled.connect(self.toggle_apply_filters)
113+
self.ui.apply_coating.toggled.connect(self.toggle_apply_coating)
114+
self.ui.apply_phosphor.toggled.connect(self.toggle_apply_phosphor)
109115

110116
def exec(self):
111117
return self.ui.exec()
@@ -130,8 +136,9 @@ def material_changed(self, index, category):
130136
else:
131137
self.density_inputs[category].setValue(0.0)
132138

133-
def filter_info_changed(self):
134-
det_name = self.ui.detectors.currentText()
139+
def filter_info_changed(self, new_value=None, det_name=None):
140+
if det_name is None:
141+
det_name = self.ui.detectors.currentText()
135142
self.filters.setdefault(det_name, {})
136143
self.filters[det_name]['density'] = self.ui.filter_density.value()
137144
self.filters[det_name]['thickness'] = self.ui.filter_thickness.value()
@@ -176,3 +183,35 @@ def accept_changes(self):
176183
density=self.ui.phosphor_density.value(),
177184
thickness=self.ui.phosphor_thickness.value()
178185
)
186+
187+
def toggle_apply_filters(self, checked):
188+
if not checked:
189+
self.ui.filter_thickness.setValue(0.0)
190+
for det in HexrdConfig().detector_names:
191+
self.filter_info_changed(det_name=det)
192+
self.ui.detectors.setEnabled(checked)
193+
self.ui.filter_material.setEnabled(checked)
194+
index = self.ui.filter_material.currentIndex()
195+
self.ui.filter_material_input.setEnabled(checked and index == 0)
196+
self.ui.filter_density.setEnabled(checked)
197+
self.ui.filter_thickness.setEnabled(checked)
198+
199+
def toggle_apply_coating(self, checked):
200+
if not checked:
201+
self.ui.coating_thickness.setValue(0.0)
202+
self.ui.coating_material.setEnabled(checked)
203+
index = self.ui.coating_material.currentIndex()
204+
self.ui.coating_material_input.setEnabled(checked and index == 0)
205+
self.ui.coating_density.setEnabled(checked)
206+
self.ui.coating_thickness.setEnabled(checked)
207+
208+
def toggle_apply_phosphor(self, checked):
209+
if not checked:
210+
self.ui.phosphor_thickness.setValue(0.0)
211+
self.ui.phosphor_material.setEnabled(checked)
212+
index = self.ui.phosphor_material.currentIndex()
213+
self.ui.phosphor_material_input.setEnabled(checked and index == 0)
214+
self.ui.phosphor_density.setEnabled(checked)
215+
self.ui.phosphor_thickness.setEnabled(checked)
216+
self.ui.phosphor_readout_length.setEnabled(checked)
217+
self.ui.phosphor_pre_U0.setEnabled(checked)

hexrdgui/hexrd_config.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3058,8 +3058,10 @@ def use_physics_package(self, v):
30583058
if v != self.use_physics_package:
30593059
self._use_physics_package = v
30603060
self.physics_package_modified.emit()
3061-
if self.use_physics_package and self.physics_package is None:
3062-
self.create_default_physics_package()
3061+
if self.use_physics_package:
3062+
self.create_default_physics_package()
3063+
else:
3064+
self.physics_package = None
30633065

30643066
@property
30653067
def physics_package_dictified(self):

hexrdgui/resources/ui/absorption_correction_options_dialog.ui

Lines changed: 42 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
<rect>
77
<x>0</x>
88
<y>0</y>
9-
<width>500</width>
10-
<height>332</height>
9+
<width>347</width>
10+
<height>365</height>
1111
</rect>
1212
</property>
1313
<property name="sizePolicy">
@@ -20,16 +20,46 @@
2020
<string>Absorption Correction Editor</string>
2121
</property>
2222
<layout class="QGridLayout" name="gridLayout">
23-
<item row="0" column="0">
23+
<item row="1" column="0" alignment="Qt::AlignHCenter">
24+
<widget class="QCheckBox" name="apply_filters">
25+
<property name="text">
26+
<string>Filter</string>
27+
</property>
28+
<property name="checked">
29+
<bool>true</bool>
30+
</property>
31+
</widget>
32+
</item>
33+
<item row="1" column="1" alignment="Qt::AlignHCenter">
34+
<widget class="QCheckBox" name="apply_coating">
35+
<property name="text">
36+
<string>Coating</string>
37+
</property>
38+
<property name="checked">
39+
<bool>true</bool>
40+
</property>
41+
</widget>
42+
</item>
43+
<item row="1" column="2" alignment="Qt::AlignLeft">
44+
<widget class="QCheckBox" name="apply_phosphor">
45+
<property name="text">
46+
<string>Phosphor</string>
47+
</property>
48+
<property name="checked">
49+
<bool>true</bool>
50+
</property>
51+
</widget>
52+
</item>
53+
<item row="2" column="0" colspan="3">
2454
<layout class="QGridLayout" name="gridLayout_2">
25-
<item row="1" column="0">
55+
<item row="2" column="0">
2656
<widget class="QDialogButtonBox" name="button_box">
2757
<property name="standardButtons">
2858
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
2959
</property>
3060
</widget>
3161
</item>
32-
<item row="0" column="0">
62+
<item row="1" column="0">
3363
<widget class="QTabWidget" name="tab_widget">
3464
<property name="tabPosition">
3565
<enum>QTabWidget::North</enum>
@@ -308,6 +338,13 @@
308338
</item>
309339
</layout>
310340
</item>
341+
<item row="0" column="0" colspan="3" alignment="Qt::AlignHCenter">
342+
<widget class="QLabel" name="apply_label">
343+
<property name="text">
344+
<string>Apply:</string>
345+
</property>
346+
</widget>
347+
</item>
311348
</layout>
312349
</widget>
313350
<customwidgets>
@@ -318,7 +355,6 @@
318355
</customwidget>
319356
</customwidgets>
320357
<tabstops>
321-
<tabstop>tab_widget</tabstop>
322358
<tabstop>detectors</tabstop>
323359
<tabstop>filter_material</tabstop>
324360
<tabstop>filter_material_input</tabstop>

0 commit comments

Comments
 (0)