From a4be3f441d4e8312cb82911096ab1e6d5056eb27 Mon Sep 17 00:00:00 2001 From: zhaoyingzhen Date: Tue, 22 Nov 2022 13:59:45 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=A7=A3=E6=B1=BA=E5=8D=8F=E5=90=8C?= =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E8=AE=BE=E5=A4=87=E6=97=B6=E5=85=B3=E9=97=AD?= =?UTF-8?q?=E5=8D=8F=E5=90=8C=E6=9C=8D=E5=8A=A1=E6=80=BB=E5=BC=80=E5=85=B3?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E4=BB=BB=E5=8A=A1=E6=A0=8F=E5=B4=A9=E6=BA=83?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 协同连接设备时关闭协同服务总开关,未清除正在连接设备缓存数据导致问题。 当连接请求被拒绝后,需清除连接状态。 Log: Bug: https://pms.uniontech.com/bug-view-171741.html Influence: 协同连接设备. Change-Id: Ie89a3fa500ab78d0b01c24aff8b2f23ada58a1c9 --- frame/window/components/devcollaborationwidget.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/frame/window/components/devcollaborationwidget.cpp b/frame/window/components/devcollaborationwidget.cpp index 846957e03..12706a6ee 100644 --- a/frame/window/components/devcollaborationwidget.cpp +++ b/frame/window/components/devcollaborationwidget.cpp @@ -147,6 +147,8 @@ void DevCollaborationWidget::updateDeviceListView() QList devices = m_deviceModel->devices(); if (devices.isEmpty()) { m_deviceListView->removeItems(0, m_deviceListView->count()); + m_deviceItemMap.clear(); + m_connectingDevices.clear(); return; } @@ -209,7 +211,7 @@ void DevCollaborationWidget::itemClicked(const QModelIndex &index) } if (!m_connectingDevices.isEmpty() && !m_refreshTimer->isActive()) - m_refreshTimer->start(30); + m_refreshTimer->start(80); } void DevCollaborationWidget::itemStatusChanged() @@ -224,12 +226,12 @@ void DevCollaborationWidget::itemStatusChanged() // 更新item的连接状态 int resultState = device->isCooperated() ? DevItemDelegate::Connected : DevItemDelegate::None; m_deviceItemMap[machinePath]->setData(resultState, DevItemDelegate::ResultDataRole); - if (device->isCooperated()) + if (device->isCooperated() || !device->isPaired()) m_deviceItemMap[machinePath]->setData(0, DevItemDelegate::DegreeDataRole); m_deviceListView->update(m_deviceItemMap[machinePath]->index()); - if (resultState == DevItemDelegate::Connected && m_connectingDevices.contains(machinePath)) { + if ((resultState == DevItemDelegate::Connected || !device->isPaired()) && m_connectingDevices.contains(machinePath)) { m_connectingDevices.removeAll(machinePath); } }