fix: 解決协同连接设备时关闭协同服务总开关导致任务栏崩溃的问题。

协同连接设备时关闭协同服务总开关,未清除正在连接设备缓存数据导致问题。
当连接请求被拒绝后,需清除连接状态。

Log:
Bug: https://pms.uniontech.com/bug-view-171741.html
Influence: 协同连接设备.
Change-Id: Ie89a3fa500ab78d0b01c24aff8b2f23ada58a1c9
This commit is contained in:
zhaoyingzhen 2022-11-22 13:59:45 +08:00
parent fa7a80b215
commit a4be3f441d

View File

@ -147,6 +147,8 @@ void DevCollaborationWidget::updateDeviceListView()
QList<CollaborationDevice *> 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);
}
}