From 370bda56c3dce4def950c75f2902d63afcc16f14 Mon Sep 17 00:00:00 2001 From: liuyangming Date: Fri, 19 Jan 2024 16:33:00 +0800 Subject: [PATCH] fix: [workspace]view display issue 1.reset srollbar height. 2.calculate rect by option.rect. Log: fix view display issue Bug: https://pms.uniontech.com/bug-view-237403.html --- .../core/dfmplugin-titlebar/views/optionbuttonbox.cpp | 1 + .../core/dfmplugin-titlebar/views/titlebarwidget.cpp | 1 + .../filemanager/core/dfmplugin-workspace/views/fileview.cpp | 6 +++++- .../core/dfmplugin-workspace/views/private/fileview_p.cpp | 2 +- .../core/dfmplugin-workspace/views/treeitempaintproxy.cpp | 4 +--- 5 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/plugins/filemanager/core/dfmplugin-titlebar/views/optionbuttonbox.cpp b/src/plugins/filemanager/core/dfmplugin-titlebar/views/optionbuttonbox.cpp index fa1ad7ea9a..7031a51dbf 100644 --- a/src/plugins/filemanager/core/dfmplugin-titlebar/views/optionbuttonbox.cpp +++ b/src/plugins/filemanager/core/dfmplugin-titlebar/views/optionbuttonbox.cpp @@ -216,6 +216,7 @@ void OptionButtonBox::initUiForSizeMode() d->hBoxLayout->addWidget(d->listViewButton); if (d->treeViewButton) d->hBoxLayout->addWidget(d->treeViewButton); + d->hBoxLayout->addSpacing(10); d->hBoxLayout->addWidget(d->detailButton); d->hBoxLayout->setSpacing(0); setLayout(d->hBoxLayout); diff --git a/src/plugins/filemanager/core/dfmplugin-titlebar/views/titlebarwidget.cpp b/src/plugins/filemanager/core/dfmplugin-titlebar/views/titlebarwidget.cpp index 59df2e098d..03c938a3ff 100644 --- a/src/plugins/filemanager/core/dfmplugin-titlebar/views/titlebarwidget.cpp +++ b/src/plugins/filemanager/core/dfmplugin-titlebar/views/titlebarwidget.cpp @@ -126,6 +126,7 @@ void TitleBarWidget::initializeUi() titleBarLayout->addWidget(searchButton); titleBarLayout->addSpacing(10); titleBarLayout->addWidget(optionButtonBox, 0, Qt::AlignRight); + titleBarLayout->addSpacing(20); setLayout(titleBarLayout); initUiForSizeMode(); diff --git a/src/plugins/filemanager/core/dfmplugin-workspace/views/fileview.cpp b/src/plugins/filemanager/core/dfmplugin-workspace/views/fileview.cpp index e613b5b950..b55a6d1ddc 100644 --- a/src/plugins/filemanager/core/dfmplugin-workspace/views/fileview.cpp +++ b/src/plugins/filemanager/core/dfmplugin-workspace/views/fileview.cpp @@ -132,6 +132,7 @@ void FileView::setViewMode(Global::ViewMode mode) d->initIconModeView(); setMinimumWidth(0); model()->setTreeView(false); + verticalScrollBar()->setFixedHeight(rect().height() - d->statusBar->height()); break; case Global::ViewMode::kListMode: setIconSize(QSize(kListViewIconSize, kListViewIconSize)); @@ -358,7 +359,8 @@ void FileView::onSectionHandleDoubleClicked(int logicalIndex) int width = 0; if (logicalIndex == 0) { - width = list.at(1).right() + kColumnPadding / 2; + // 树形视图多绘制一个扩展标识,名称是第三列 + width = list.at(currentViewMode() == Global::ViewMode::kTreeMode ? 2 : 1).right() + kColumnPadding / 2; } else { width = list.at(logicalIndex + 1).width() + kColumnPadding * 2; } @@ -2005,6 +2007,8 @@ void FileView::setListViewMode() d->adjustFileNameColumn = true; updateListHeaderView(); } + + verticalScrollBar()->setFixedHeight(rect().height() - d->statusBar->height() - d->headerView->height()); } QUrl FileView::parseSelectedUrl(const QUrl &url) diff --git a/src/plugins/filemanager/core/dfmplugin-workspace/views/private/fileview_p.cpp b/src/plugins/filemanager/core/dfmplugin-workspace/views/private/fileview_p.cpp index 3d468827c1..d3a00a64f6 100644 --- a/src/plugins/filemanager/core/dfmplugin-workspace/views/private/fileview_p.cpp +++ b/src/plugins/filemanager/core/dfmplugin-workspace/views/private/fileview_p.cpp @@ -87,7 +87,7 @@ void FileViewPrivate::initListModeView() headerView = new HeaderView(Qt::Orientation::Horizontal, q); headerView->setDefaultAlignment(Qt::AlignLeft | Qt::AlignVCenter); - headerView->setFixedHeight(kListViewIconSize); + headerView->setFixedHeight(kListViewHeaderHeight); headerView->setMinimumSectionSize(GlobalPrivate::kListViewMinimumWidth); headerView->setModel(q->model()); diff --git a/src/plugins/filemanager/core/dfmplugin-workspace/views/treeitempaintproxy.cpp b/src/plugins/filemanager/core/dfmplugin-workspace/views/treeitempaintproxy.cpp index 3ba2808da8..08c1fcb15b 100644 --- a/src/plugins/filemanager/core/dfmplugin-workspace/views/treeitempaintproxy.cpp +++ b/src/plugins/filemanager/core/dfmplugin-workspace/views/treeitempaintproxy.cpp @@ -51,10 +51,8 @@ QRectF TreeItemPaintProxy::rectByType(RectOfItemType type, const QModelIndex &in QList TreeItemPaintProxy::allPaintRect(const QStyleOptionViewItem &option, const QModelIndex &index) { - Q_UNUSED(option) - QList rects {}; - QRect itemRect = view()->visualRect(index); + QRect itemRect = option.rect; QRectF icon = iconRect(index, itemRect); rects.append(icon.toRect());