Skip to content

Commit 528f1f4

Browse files
committed
Big fixing. Improving database reloading
1 parent e18ca80 commit 528f1f4

File tree

3 files changed

+21
-12
lines changed

3 files changed

+21
-12
lines changed

src/main.py

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ def tab1_tab3_update_plot(fig, fig_canvas_agg, current_tab, gamma: bool, srgb: b
9999
return fig, fig_canvas_agg
100100

101101
# List of events that cause color recalculation
102-
tab1_triggers = ('-gamma-', '-srgb-', '-brMax-', '-brMode1-', '-brMode2-', '-bitness-', '-rounding-', 'tab1_list', 'tab1_tag_filter')
102+
tab1_triggers = ('-gamma-', '-srgb-', '-brMax-', '-brMode1-', '-brMode2-', '-bitness-', '-rounding-', 'tab1_list', 'tab1_(re)load')
103103
tab3_triggers = ('-gamma-', '-srgb-', '-brMax-', '-bitness-', '-rounding-', 'tab3_slider1', 'tab3_slider2', 'tab3_slider3', 'tab3_slider4')
104104

105105
# Window events loop
@@ -154,12 +154,13 @@ def tab1_tab3_update_plot(fig, fig_canvas_agg, current_tab, gamma: bool, srgb: b
154154
if tab1_obj_name:
155155
window['tab1_title2'].update(tab1_obj_name.indexed_name(lang))
156156
tab1_displayed_namesDB = db.obj_names_dict(objectsDB, values['tab1_tag_filter'], values['tab1_searched'], lang)
157+
tab1_displayed_names_tuple = tuple(tab1_displayed_namesDB.keys())
157158
if tab1_obj_name and values['tab1_searched'] == '':
158159
# object name could be not on the list during global search (ValueError) or if no object selected (TypeError)
159-
tab1_index = tuple(tab1_displayed_namesDB.keys()).index(tab1_obj_name(lang))
160-
window['tab1_list'].update(tuple(tab1_displayed_namesDB.keys()), set_to_index=tab1_index, scroll_to_index=tab1_index)
160+
tab1_index = tab1_displayed_names_tuple.index(tab1_obj_name(lang))
161+
window['tab1_list'].update(tab1_displayed_names_tuple, set_to_index=tab1_index, scroll_to_index=tab1_index)
161162
else:
162-
window['tab1_list'].update(tuple(tab1_displayed_namesDB.keys()))
163+
window['tab1_list'].update(tab1_displayed_names_tuple)
163164
case 'tab3':
164165
if tab3_obj_name:
165166
window['tab3_title2'].update(tab3_obj_name.indexed_name(lang))
@@ -223,34 +224,43 @@ def tab1_tab3_update_plot(fig, fig_canvas_agg, current_tab, gamma: bool, srgb: b
223224
if values['-currentTab-'] == 'tab1':
224225

225226
if event == 'tab1_(re)load':
226-
# Loading of the spectra database
227227

228+
# Loading of the spectra database
228229
objectsDB, refsDB = db.import_DBs(database_folders)
229230
tagsDB = db.tag_list(objectsDB)
230231
for l in tr.langs.values():
231232
namesDB |= {l: db.obj_names_dict(objectsDB, tag='ALL', searched='', lang=l)}
232233

233234
if not tab1_loaded:
234235
# Setting the default tag on the first loading
235-
tab1_loaded = True
236236
tab1_tag = default_tag
237237
window['tab1_(re)load'].update(tr.gui_reload[lang])
238238
else:
239-
tab1_tag = values['tab1_tag_filter']
240239
# Handle tha case of a non-existing tag after reloading
240+
tab1_tag = values['tab1_tag_filter']
241241
if tab1_tag not in tagsDB:
242242
tab1_tag = default_tag
243243

244244
window['tab1_tag_filter'].update(tab1_tag, values=tagsDB)
245245
tab1_displayed_namesDB = db.obj_names_dict(objectsDB, tab1_tag, values['tab1_searched'], lang)
246-
window['tab1_list'].update(values=tuple(tab1_displayed_namesDB.keys()))
246+
tab1_displayed_names_tuple = tuple(tab1_displayed_namesDB.keys())
247+
if tab1_loaded and tab1_obj_name and tab1_obj_name(lang) in tab1_displayed_names_tuple:
248+
tab1_index = tab1_displayed_names_tuple.index(tab1_obj_name(lang))
249+
window['tab1_list'].update(values=tab1_displayed_names_tuple, set_to_index=tab1_index, scroll_to_index=tab1_index)
250+
else:
251+
window['tab1_list'].update(values=tab1_displayed_names_tuple)
252+
253+
tab1_loaded = True
247254

248-
elif event in tab1_triggers and values['tab1_list'] != []:
255+
if event in tab1_triggers and values['tab1_list'] != []:
249256

250257
# for green Dinkinesh Easter egg
251258
last_click_was_Dinkinesh = event == 'tab1_list' and tab1_spectrum is not None and tab1_spectrum.name.name() == 'Dinkinesh'
252259

253-
tab1_obj_name = namesDB[lang][values['tab1_list'][0]]
260+
try:
261+
tab1_obj_name = namesDB[lang][values['tab1_list'][0]]
262+
except KeyError:
263+
continue
254264
window['tab1_title2'].update(tab1_obj_name.indexed_name(lang))
255265

256266
# Spectral data import and processing
@@ -286,7 +296,6 @@ def tab1_tab3_update_plot(fig, fig_canvas_agg, current_tab, gamma: bool, srgb: b
286296
else:
287297
window['tab1_convolved'].update(sigfig_round(tab1_value, uncertainty=tab1_sd, warn=False))
288298

289-
290299
# Green Dinkinesh Easter egg (added by request)
291300
# There was a bug in TCT v3.3 caused by upper limit of uint16 when squaring nm for AB calibration
292301
if last_click_was_Dinkinesh and tab1_spectrum.name.name() == 'Dinkinesh':

src/strings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1087,7 +1087,7 @@
10871087
'Spiral galaxies': {'ru': 'Спиральные галактики', 'de': 'Spiralgalaxien'},
10881088
'Starburst galaxies with': {'ru': 'Галактики со вспышкой зв. образ.', 'de': 'Sternburstgalaxien mit'}, # "with 0.39 < E(B-V) < 0.50" for example
10891089
'Quasars': {'ru': 'Квазары', 'de': 'Quasare'},
1090-
'Galactic Cirri': {'ru': 'Галактические циррусы', 'de': 'Galaktische Cirri'},
1090+
'Galactic cirri': {'ru': 'Галактические циррусы', 'de': 'Galaktische Cirri'},
10911091
'Nebula of IRC +10216': {'ru': 'Небула IRC +10216', 'de': 'Nebel von IRC +10216'},
10921092
# Others
10931093
'Equal-energy spectrum': {'ru': 'Плоский спектр', 'de': 'Homogenes Energiespektrum'}

tables/TCT_all.png

607 KB
Loading

0 commit comments

Comments
 (0)