From 85ff9246677b6a4b8a77452cc2f858fbe9d1e0b4 Mon Sep 17 00:00:00 2001 From: liujinchang Date: Fri, 30 Oct 2026 03:43:21 +0800 Subject: [PATCH] fix: handle connectwidget in disconnected signal handler MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. Root cause: The disconnected signal handler in mainwindow_p_linux.cpp only navigated to errorwidget for transferringwidget and waitwidget, missing connectwidget. When backend disconnects during the 300s connect password window, users stayed on the connect page with a blank password and no error navigation. 2. Fix: Add connectwidget to the navigation condition so users are redirected to errorwidget with networkError type on disconnect. 3. Impact: Only adds one condition branch to the existing if-statement, no signature change, no new functions. The onlineStateChanged handler already covers connectwidget separately with no conflict. Log: Fix blank connect password page on backend disconnect during 300s wait Influence: 1. Test connect page (connectwidget) backend disconnect after 300s, verify navigation to error page with network error prompt 2. Verify transferringwidget and waitwidget disconnect navigation behavior is unchanged 3. Verify onlineStateChanged connectwidget navigation is unaffected fix: 修复 disconnected 信号处理中遗漏 connectwidget 分支 1. 根因:mainwindow_p_linux.cpp 的 disconnected 信号处理仅对 transferringwidget 和 waitwidget 导航到错误页,遗漏 connectwidget。 后端在 300s 连接密码窗口内断开时,用户停留在连接页看到空白密码, 无错误提示也无法刷新。 2. 方案:在导航条件中增加 connectwidget 分支,后端断开时跳转到 errorwidget 并设置 networkError 类型。 3. 影响:仅在现有 if 条件中增加一个分支,不修改函数签名、不新增 函数。onlineStateChanged 处理已独立覆盖 connectwidget,两者无冲突。 Log: 修复连接界面等待 300s 后端断开时密码空白无错误提示的问题 Influence: 1. 测试连接页面(connectwidget)等待 300s 后端断开时跳转错误页 并显示网络错误提示 2. 验证传输中页面和等待页面的断开导航行为不受影响 3. 验证 onlineStateChanged 对连接页面的导航行为不受影响 PMS: BUG-249149 --- src/plugins/data-transfer/core/gui/linux/mainwindow_p_linux.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/data-transfer/core/gui/linux/mainwindow_p_linux.cpp b/src/plugins/data-transfer/core/gui/linux/mainwindow_p_linux.cpp index 73e4675a3..1336a5e56 100644 --- a/src/plugins/data-transfer/core/gui/linux/mainwindow_p_linux.cpp +++ b/src/plugins/data-transfer/core/gui/linux/mainwindow_p_linux.cpp @@ -113,7 +113,7 @@ void MainWindowPrivate::initWidgets() int index = stackedWidget->currentIndex(); if (index == PageName::errorwidget) return; - if (index == PageName::transferringwidget || index == PageName::waitwidget) + if (index == PageName::transferringwidget || index == PageName::waitwidget || index == PageName::connectwidget) stackedWidget->setCurrentIndex(PageName::errorwidget); errorwidget->setErrorType(ErrorType::networkError); });