Skip to content

Commit 6244058

Browse files
committed
[0.8.2] area selection synchronized to remote
1 parent b64f8b5 commit 6244058

File tree

4 files changed

+15
-9
lines changed

4 files changed

+15
-9
lines changed

app_state/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,8 @@ class RoomInfo(StateBase):
105105

106106
# Area (category) selections for live stream configuration
107107
parent_area = ["请选择"]
108-
area_options = {}
108+
area_options: dict[str, List[str]] = {}
109+
area_reverse: dict[str, str] = {}
109110
area_codes = {}
110111

111112
# OBS WebSocket client

models/window/stream_config.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ def update_child_combo(self, text):
239239
self.child_combo.addItems(app_state.area_options[text])
240240
self.child_combo.setEnabled(True)
241241
self.enable_child_combo_autosave(_enabled)
242-
self._save_area()
242+
self._save_area(self.child_combo.currentText())
243243
else:
244244
self.child_combo.clear()
245245
self.child_combo.setEnabled(False)
@@ -459,11 +459,10 @@ def _valid_area(self):
459459
app_state.area_options[self.parent_combo.currentText()]
460460

461461
@Slot()
462-
def _save_area(self):
462+
def _save_area(self, child_area: str):
463463
if self._valid_area() and self._child_combo_autosave:
464464
# self.save_area_btn.setEnabled(False)
465-
area_updater = AreaUpdateWorker(self,
466-
self.child_combo.currentText())
465+
area_updater = AreaUpdateWorker(self, child_area)
467466
self.parent_window.add_thread(
468467
area_updater,
469468
on_finished=area_updater.on_finished,

models/workers/area/area_update.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,11 @@ def run(self, /) -> None:
4646
@Slot()
4747
def on_finished(self, *args, **kwargs):
4848
app_state.room_info[
49-
"parent_area"] = self.parent.parent_combo.currentText()
49+
"parent_area"] = app_state.area_reverse[self.area]
5050
app_state.room_info[
51-
"area"] = self.parent.child_combo.currentText()
51+
"area"] = self.area
52+
self.parent.parent_combo.setCurrentText(app_state.room_info["parent_area"])
53+
self.parent.child_combo.setCurrentText(app_state.room_info["area"])
5254
self._session.close()
5355

5456
@Slot()
@@ -57,5 +59,7 @@ def on_exception(self, *args, **kwargs):
5759
self.parent.parent_combo.setCurrentText(
5860
app_state.room_info["parent_area"])
5961
self.parent.child_combo.setCurrentText(app_state.room_info["area"])
62+
# roll back if an exception occurs
63+
self.area = app_state.room_info["area"]
6064
self.parent.enable_child_combo_autosave(enabled)
6165
self.parent.modify_area_btn.setEnabled(True)

models/workers/area/fetch_area.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,14 @@ def run(self, /) -> None:
2525
self.logger.info("Area/getList Response")
2626
response = response.json()
2727
for area_info in response["data"]["area_v1_info"]:
28-
app_state.parent_area.append(area_info["name"])
29-
app_state.area_options[area_info["name"]] = []
28+
parent = area_info["name"]
29+
app_state.parent_area.append(parent)
30+
app_state.area_options[parent] = []
3031
for sub_area in area_info["list"]:
3132
app_state.area_codes[sub_area["name"]] = sub_area["id"]
3233
app_state.area_options[area_info["name"]].append(
3334
sub_area["name"])
35+
app_state.area_reverse[sub_area["name"]] = parent
3436
app_state.scan_status["area_updated"] = True
3537

3638
@Slot()

0 commit comments

Comments
 (0)