From fa8b91ae6390c6a639859fbdeaf2f04781880a39 Mon Sep 17 00:00:00 2001 From: liuyangming Date: Mon, 22 Jan 2024 11:33:16 +0800 Subject: [PATCH] fix: [UI]display issue 1.set render hint of painter. 2.reset scrollbar height when resize. Log: fix UI issue Bug: https://pms.uniontech.com/bug-view-239935.html --- .../filemanager/core/dfmplugin-titlebar/views/crumbbar.cpp | 1 + .../dfmplugin-workspace/menus/sortanddisplaymenuscene.cpp | 3 ++- .../filemanager/core/dfmplugin-workspace/views/fileview.cpp | 5 +++++ .../core/dfmplugin-workspace/views/treeitempaintproxy.cpp | 1 + 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/plugins/filemanager/core/dfmplugin-titlebar/views/crumbbar.cpp b/src/plugins/filemanager/core/dfmplugin-titlebar/views/crumbbar.cpp index 90d816256e..88d15c1c6f 100644 --- a/src/plugins/filemanager/core/dfmplugin-titlebar/views/crumbbar.cpp +++ b/src/plugins/filemanager/core/dfmplugin-titlebar/views/crumbbar.cpp @@ -60,6 +60,7 @@ void IconItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opti { QStyleOptionViewItem opt = option; opt.decorationAlignment = Qt::AlignCenter; + painter->setRenderHint(QPainter::SmoothPixmapTransform); DStyledItemDelegate::paint(painter, opt, index); } diff --git a/src/plugins/filemanager/core/dfmplugin-workspace/menus/sortanddisplaymenuscene.cpp b/src/plugins/filemanager/core/dfmplugin-workspace/menus/sortanddisplaymenuscene.cpp index d5edff8ac0..de89d342a9 100644 --- a/src/plugins/filemanager/core/dfmplugin-workspace/menus/sortanddisplaymenuscene.cpp +++ b/src/plugins/filemanager/core/dfmplugin-workspace/menus/sortanddisplaymenuscene.cpp @@ -257,7 +257,8 @@ void SortAndDisplayMenuScenePrivate::updateEmptyAreaActionState() predicateAction[ActionID::kDisplayList]->setChecked(true); break; case Global::ViewMode::kTreeMode: - predicateAction[ActionID::kDisplayTree]->setChecked(true); + if (predicateAction.contains(ActionID::kDisplayTree)) + predicateAction[ActionID::kDisplayTree]->setChecked(true); break; default: break; diff --git a/src/plugins/filemanager/core/dfmplugin-workspace/views/fileview.cpp b/src/plugins/filemanager/core/dfmplugin-workspace/views/fileview.cpp index b55a6d1ddc..7e5f552dc4 100644 --- a/src/plugins/filemanager/core/dfmplugin-workspace/views/fileview.cpp +++ b/src/plugins/filemanager/core/dfmplugin-workspace/views/fileview.cpp @@ -928,6 +928,9 @@ void FileView::onDefaultViewModeChanged(int mode) { Global::ViewMode newMode = static_cast(mode); + if (newMode == Global::ViewMode::kTreeMode && !WorkspaceHelper::instance()->supportTreeView(rootUrl().scheme())) + return; + if (newMode == d->currentViewMode) return; @@ -1123,6 +1126,8 @@ void FileView::resizeEvent(QResizeEvent *event) if (isIconViewMode()) updateViewportContentsMargins(itemSizeHint()); + + verticalScrollBar()->setFixedHeight(rect().height() - d->statusBar->height() - (d->headerView ? d->headerView->height() : 0)); } void FileView::setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags flags) diff --git a/src/plugins/filemanager/core/dfmplugin-workspace/views/treeitempaintproxy.cpp b/src/plugins/filemanager/core/dfmplugin-workspace/views/treeitempaintproxy.cpp index 08c1fcb15b..0793dbb6bc 100644 --- a/src/plugins/filemanager/core/dfmplugin-workspace/views/treeitempaintproxy.cpp +++ b/src/plugins/filemanager/core/dfmplugin-workspace/views/treeitempaintproxy.cpp @@ -80,6 +80,7 @@ void TreeItemPaintProxy::drawExpandArrow(QPainter *painter, const QRectF &rect, painter->setPen(opt.palette.color(QPalette::Active, QPalette::Text)); } + painter->setRenderHint(QPainter::SmoothPixmapTransform); if (index.data(kItemTreeViewExpandedRole).toBool()) { style->drawPrimitive(QStyle::PE_IndicatorArrowDown, &opt, painter, nullptr); } else {