From f8e742d07f8cf71703b8ef53da02ea56c6ab3255 Mon Sep 17 00:00:00 2001 From: liyigang Date: Tue, 27 Aug 2024 14:01:59 +0800 Subject: [PATCH] fix: dde-file-mananger crash, switch show mode dde-file-mananger crash, switch show mode Log: dde-file-mananger crash, switch show mode --- .../filemanager/core/dfmplugin-workspace/views/fileview.cpp | 5 ++--- .../core/dfmplugin-workspace/views/listitemdelegate.cpp | 4 +++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/plugins/filemanager/core/dfmplugin-workspace/views/fileview.cpp b/src/plugins/filemanager/core/dfmplugin-workspace/views/fileview.cpp index b8714180ba..2be885b54a 100644 --- a/src/plugins/filemanager/core/dfmplugin-workspace/views/fileview.cpp +++ b/src/plugins/filemanager/core/dfmplugin-workspace/views/fileview.cpp @@ -145,16 +145,15 @@ void FileView::setViewMode(Global::ViewMode mode) verticalScrollBar()->setFixedHeight(rect().height() - d->statusBar->height()); break; case Global::ViewMode::kListMode: + d->delegates[static_cast(Global::ViewMode::kListMode)]->setPaintProxy(new ListItemPaintProxy(this)); setIconSize(QSize(kListViewIconSize, kListViewIconSize)); viewport()->setContentsMargins(0,0,0,0); - d->delegates[static_cast(Global::ViewMode::kListMode)]->setPaintProxy(new ListItemPaintProxy(this)); model()->setTreeView(false); setListViewMode(); break; case Global::ViewMode::kExtendMode: break; case Global::ViewMode::kTreeMode: - setIconSize(QSize(kListViewIconSize, kListViewIconSize)); viewport()->setContentsMargins(0,0,0,0); if (d->itemsExpandable) { auto proxy = new TreeItemPaintProxy(this); @@ -165,7 +164,7 @@ void FileView::setViewMode(Global::ViewMode mode) d->delegates[static_cast(Global::ViewMode::kListMode)]->setPaintProxy(new ListItemPaintProxy(this)); model()->setTreeView(false); } - + setIconSize(QSize(kListViewIconSize, kListViewIconSize)); setListViewMode(); break; case Global::ViewMode::kAllViewMode: diff --git a/src/plugins/filemanager/core/dfmplugin-workspace/views/listitemdelegate.cpp b/src/plugins/filemanager/core/dfmplugin-workspace/views/listitemdelegate.cpp index c21db91e6e..f58c9718a5 100644 --- a/src/plugins/filemanager/core/dfmplugin-workspace/views/listitemdelegate.cpp +++ b/src/plugins/filemanager/core/dfmplugin-workspace/views/listitemdelegate.cpp @@ -332,7 +332,9 @@ QRectF ListItemDelegate::itemIconRect(const QRectF &itemRect) const QRect ListItemDelegate::getRectOfItem(RectOfItemType type, const QModelIndex &index) const { - return d->paintProxy->rectByType(type, index).toRect(); + if (d->paintProxy) + return d->paintProxy->rectByType(type, index).toRect(); + return QRect(); } /*!