Skip to content

Commit c83dabc

Browse files
committed
feat: 连接参数发生变化时自动重连控制器(#158)
1 parent 338c4c4 commit c83dabc

1 file changed

Lines changed: 8 additions & 0 deletions

File tree

src/MaaDebugger/webpage/index_page/master_control.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,7 @@ def win32_control(type: Literal["win32", "gamepad"] = "win32"):
239239
)
240240
.style("min-width: 100px")
241241
.bind_value(STORAGE, STORAGE_TARGET_PREFIX + "screencap")
242+
.on_value_change(lambda: on_connect_params_change())
242243
)
243244

244245
if type == "win32":
@@ -250,6 +251,7 @@ def win32_control(type: Literal["win32", "gamepad"] = "win32"):
250251
)
251252
.style("min-width: 100px")
252253
.bind_value(STORAGE, "win32_mouse")
254+
.on_value_change(lambda: on_connect_params_change())
253255
)
254256
keyboard_select = (
255257
ui.select(
@@ -259,12 +261,14 @@ def win32_control(type: Literal["win32", "gamepad"] = "win32"):
259261
)
260262
.style("min-width: 100px")
261263
.bind_value(STORAGE, "win32_keyboard")
264+
.on_value_change(lambda: on_connect_params_change())
262265
)
263266
else: # elif type == "gamepad":
264267
gamepad_type_select = (
265268
ui.select(GAMEPAD_TYPE_DICT, label="Gamepad Type")
266269
.style("min-width: 100px")
267270
.bind_value(STORAGE, "gamepad_keyboard")
271+
.on_value_change(lambda: on_connect_params_change())
268272
)
269273

270274
ui.button(
@@ -295,6 +299,10 @@ def win32_control(type: Literal["win32", "gamepad"] = "win32"):
295299
backward=lambda s: s == Status.RUNNING or s == Status.FAILED,
296300
)
297301

302+
async def on_connect_params_change():
303+
if GlobalStatus.ctrl_connecting == Status.SUCCEEDED:
304+
await on_click_connect()
305+
298306
async def on_click_connect():
299307
GlobalStatus.ctrl_connecting = Status.RUNNING
300308

0 commit comments

Comments
 (0)