From 7a0d7332ae50d4958a819bce081df7ddba632005 Mon Sep 17 00:00:00 2001 From: Zhang Qipeng Date: Thu, 28 Jan 2021 10:40:25 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=B0=83=E7=94=A8=E9=87=8E=E6=8C=87?= =?UTF-8?q?=E9=92=88=E5=AF=BC=E8=87=B4=E5=B4=A9=E6=BA=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 拖动图标移除后,原来的item已经被析构了,这里指针就变成了野指针。 Log: 修复任务栏拖动图标导致崩溃的问题。 Bug: https://pms.uniontech.com/zentao/bug-view-62246.html Change-Id: I852ad6413a1d6b260723148b73bcab7f91f3ce47 --- frame/panel/mainpanelcontrol.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/frame/panel/mainpanelcontrol.cpp b/frame/panel/mainpanelcontrol.cpp index b40bc3bcc..b583b9ce5 100755 --- a/frame/panel/mainpanelcontrol.cpp +++ b/frame/panel/mainpanelcontrol.cpp @@ -677,8 +677,9 @@ void MainPanelControl::mousePressEvent(QMouseEvent *e) QWidget::mousePressEvent(e); } -void MainPanelControl::startDrag(DockItem *item) +void MainPanelControl::startDrag(DockItem *dockItem) { + QPointer item = dockItem; const QPixmap pixmap = item->grab(); item->setDraging(true); @@ -692,7 +693,7 @@ void MainPanelControl::startDrag(DockItem *item) connect(m_appDragWidget, &AppDragWidget::destroyed, this, [ = ] { m_appDragWidget = nullptr; - if (qobject_cast(item)->isValid()) { + if (!item.isNull() && qobject_cast(item)->isValid()) { if (-1 == m_appAreaSonLayout->indexOf(item) && m_dragIndex != -1) { insertItem(m_dragIndex, item); m_dragIndex = -1;