diff --git a/src/e3sm_quickview/components/dialogs.py b/src/e3sm_quickview/components/dialogs.py index ed2cb8e..b476e63 100644 --- a/src/e3sm_quickview/components/dialogs.py +++ b/src/e3sm_quickview/components/dialogs.py @@ -12,6 +12,7 @@ def __init__(self, file_browser): with v3.VDialog( model_value=(js.is_active("load-data"),), **css.DIALOG_STYLES, + v_on_keyup_enter=file_browser.on_enter, ): file_browser.ui() @@ -23,6 +24,7 @@ def __init__(self): with v3.VDialog( model_value=("show_export_dialog", False), **css.DIALOG_STYLES, + v_on_keyup_enter="utils.quickview.saveState(download_name)", ): with v3.VCard(title="Save QuickView State file", rounded="lg"): v3.VDivider() diff --git a/src/e3sm_quickview/components/drawers.py b/src/e3sm_quickview/components/drawers.py index e671f3f..5517b8d 100644 --- a/src/e3sm_quickview/components/drawers.py +++ b/src/e3sm_quickview/components/drawers.py @@ -78,6 +78,7 @@ def __init__(self, load_variables=None): style=(f"{js.is_active('select-fields')} ? 'transform: none;' : ''",), ) + self._load_variables = load_variables self.state.setdefault("loading_time", 0) self.state.setdefault( "visible_selection_icons", @@ -93,6 +94,7 @@ def __init__(self, load_variables=None): with html.Div( style="position:fixed;top:0;width: 500px;height:100vh;", classes="d-flex flex-column", + v_on_keyup_enter=self.on_enter, ): with v3.VCardActions(classes="pb-0", style="min-height: 0;"): v3.VBtn( @@ -271,3 +273,13 @@ def toggle_visible_selection(self): self.state.visible_selection_icon_idx += 1 if self.state.visible_selection_icon_idx >= 3: self.state.visible_selection_icon_idx = 0 + + def on_enter(self): + if ( + len(self.state.variables_selected) == 0 + or self.state.variables_loaded + or self.state.loading + ): + return + + self._load_variables() diff --git a/src/e3sm_quickview/components/file_browser.py b/src/e3sm_quickview/components/file_browser.py index 4dff5e8..451d540 100644 --- a/src/e3sm_quickview/components/file_browser.py +++ b/src/e3sm_quickview/components/file_browser.py @@ -470,3 +470,12 @@ def ui(self): loading=(self.name("loading"), False), click=self.load_data_files, ) + + def on_enter(self): + if self.get("error"): + return + + if self.get("is_state_file"): + self.import_state_file() + elif self.get("data_simulation") and self.get("data_connectivity"): + self.load_data_files()