From 6bc3564a5e824bb33f9e1a10e650f1162f6fd345 Mon Sep 17 00:00:00 2001 From: Mashintime Date: Mon, 15 Jan 2024 13:49:39 -0500 Subject: [PATCH 1/2] Save grid enabled state and a few other tweaks to grid enable --- gui/src/components/dynamic_components.vue | 23 +++++++++++++++-------- gui/src/store/settingsStore.js | 2 ++ 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/gui/src/components/dynamic_components.vue b/gui/src/components/dynamic_components.vue index b5507f38..8cbb5ebb 100644 --- a/gui/src/components/dynamic_components.vue +++ b/gui/src/components/dynamic_components.vue @@ -38,7 +38,6 @@ import { Scatter } from "vue-chartjs"; let count = ref(0); let grid = null; // DO NOT use ref(null) as proxies GS will break all logic when comparing structures... see https://github.com/gridstack/gridstack.js/issues/2115 let items = ref([]); -let gridEnabledLocal = ref(true); class gridWidget { //Contains the vue component component2; @@ -356,6 +355,7 @@ onMounted(() => { }, false, ); + setGridEditState(); }); function onChange(event, changeItems) { // update item position @@ -432,9 +432,15 @@ function remove(widget) { grid.removeWidget(selector, false); saveGridLayout(); } -function disableGrid() { - gridEnabledLocal.value = !gridEnabledLocal.value - if (gridEnabledLocal.value) +function toggleGridEdit() { + //Toggle setting + settingsStore.local.grid_enabled = !settingsStore.local.grid_enabled + setGridEditState(); +} +function setGridEditState() +{ + //Apply grid state setting (allows/disallows moving, resizing, showing remove icon) + if (settingsStore.local.grid_enabled) grid.enable(); else grid.disable(); @@ -487,7 +493,7 @@ function quickfill() { @@ -506,12 +512,13 @@ function quickfill() {
Manage grid widgets   
diff --git a/gui/src/store/settingsStore.js b/gui/src/store/settingsStore.js index 989c9201..9ee10885 100644 --- a/gui/src/store/settingsStore.js +++ b/gui/src/store/settingsStore.js @@ -21,6 +21,7 @@ nconf.defaults({ enable_sys_notification: false, grid_layout: "[]", grid_preset: "[]", + grid_enabled: true, }, }); @@ -36,6 +37,7 @@ export const settingsStore = reactive({ enable_sys_notification: false, grid_layout: "[]", grid_preset: "[]", + grid_enabled: true, }, remote: { AUDIO: { From 4562f173d310b81f35bbb73faed6d0b3c4cd6db1 Mon Sep 17 00:00:00 2001 From: DJ2LS Date: Wed, 17 Jan 2024 11:06:33 +0100 Subject: [PATCH 2/2] bug fixes --- modem/frame_handler.py | 4 +--- modem/state_manager.py | 8 ++++---- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/modem/frame_handler.py b/modem/frame_handler.py index d292fb75..3d454782 100644 --- a/modem/frame_handler.py +++ b/modem/frame_handler.py @@ -32,7 +32,7 @@ class FrameHandler(): call_with_ssid = self.config['STATION']['mycall'] + "-" + str(self.config['STATION']['myssid']) ft = self.details['frame']['frame_type'] print(self.details) - + valid = False # Check for callsign checksum if ft in ['ARQ_SESSION_OPEN', 'ARQ_SESSION_OPEN_ACK', 'PING', 'PING_ACK']: valid, mycallsign = helpers.check_callsign( @@ -59,8 +59,6 @@ class FrameHandler(): return valid - - def should_respond(self): return self.is_frame_for_me() diff --git a/modem/state_manager.py b/modem/state_manager.py index 4de43480..14f8acca 100644 --- a/modem/state_manager.py +++ b/modem/state_manager.py @@ -118,7 +118,6 @@ class StateManager: self.arq_irs_sessions[session.id] = session return True - def check_if_running_arq_session(self, irs=False): sessions = self.arq_irs_sessions if irs else self.arq_iss_sessions @@ -130,11 +129,12 @@ class StateManager: self.remove_arq_irs_session(session_id) else: self.remove_arq_iss_session(session_id) - - # check if ongoing sessions available - if sessions[session_id].state.name not in ['ENDED', 'ABORTED', 'FAILED']: + + # check again if session id exists in session because of cleanup + if session_id in sessions and sessions[session_id].state.name not in ['ENDED', 'ABORTED', 'FAILED']: print(f"[State Manager] running session...[{session_id}]") return True + return False return False def get_arq_iss_session(self, id):