From 6f39773fbda80e0e20282e1edfa2b86c74a40897 Mon Sep 17 00:00:00 2001 From: Henning Gruendl Date: Mon, 20 Nov 2023 16:26:34 +0100 Subject: [PATCH] QmlDesigner: Fix navigator column width Fix the navigators column width for Qt 6.5.4 and at the same time make the icon columns tighter. Task-number: QDS-11314 Change-Id: I87397eca104e4bfb835090229672e2d3d42dee6e Reviewed-by: Qt CI Patch Build Bot Reviewed-by: Tim Jenssen (cherry picked from commit 659772baa400e3de4581c34670c602994093944a) --- .../navigator/iconcheckboxitemdelegate.cpp | 8 +++++-- .../components/navigator/navigatorview.cpp | 22 ++++++++++++++----- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/plugins/qmldesigner/components/navigator/iconcheckboxitemdelegate.cpp b/src/plugins/qmldesigner/components/navigator/iconcheckboxitemdelegate.cpp index d5701ac5691..8623ceb97b8 100644 --- a/src/plugins/qmldesigner/components/navigator/iconcheckboxitemdelegate.cpp +++ b/src/plugins/qmldesigner/components/navigator/iconcheckboxitemdelegate.cpp @@ -84,12 +84,16 @@ void IconCheckboxItemDelegate::paint(QPainter *painter, QTC_ASSERT(window, return); const QSize iconSize(16, 16); - const QPoint iconPosition(styleOption.rect.left() + (styleOption.rect.width() - iconSize.width()) / 2, - styleOption.rect.top() + 2 + delegateMargin); + QPoint iconPosition(styleOption.rect.left() + (styleOption.rect.width() - iconSize.width()) / 2, + styleOption.rect.top() + 2 + delegateMargin); const QIcon::State state = isChecked(modelIndex) ? QIcon::State::On : QIcon::State::Off; const QPixmap iconPixmap = m_icon.pixmap(window, iconSize, mode, state); + // Shift the lock icon (last column) slightly to the left due to vertical scrollbar width + if (modelIndex.column() == NavigatorTreeModel::ColumnType::Lock) + iconPosition.rx() -= 4; + painter->save(); if (isThisOrAncestorLocked(modelIndex)) diff --git a/src/plugins/qmldesigner/components/navigator/navigatorview.cpp b/src/plugins/qmldesigner/components/navigator/navigatorview.cpp index 97c7285d49d..b6ca26d2dfc 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatorview.cpp +++ b/src/plugins/qmldesigner/components/navigator/navigatorview.cpp @@ -127,10 +127,22 @@ void NavigatorView::modelAttached(Model *model) QTreeView *treeView = treeWidget(); - treeView->header()->setSectionResizeMode(NavigatorTreeModel::ColumnType::Name, QHeaderView::Stretch); - treeView->header()->resizeSection(NavigatorTreeModel::ColumnType::Alias, 26); - treeView->header()->resizeSection(NavigatorTreeModel::ColumnType::Visibility, 26); - treeView->header()->resizeSection(NavigatorTreeModel::ColumnType::Lock, 26); + treeView->header()->setSectionResizeMode(NavigatorTreeModel::ColumnType::Name, + QHeaderView::Stretch); + treeView->header()->setSectionResizeMode(NavigatorTreeModel::ColumnType::Alias, + QHeaderView::Fixed); + treeView->header()->setSectionResizeMode(NavigatorTreeModel::ColumnType::Visibility, + QHeaderView::Fixed); + treeView->header()->setSectionResizeMode(NavigatorTreeModel::ColumnType::Lock, QHeaderView::Fixed); + + treeView->header()->setStretchLastSection(false); + treeView->header()->setMinimumSectionSize(24); + treeView->header()->setDefaultSectionSize(24); + + treeView->header()->resizeSection(NavigatorTreeModel::ColumnType::Alias, 24); + treeView->header()->resizeSection(NavigatorTreeModel::ColumnType::Visibility, 24); + // Make last column a bit wider to compensate the shift to the left due to vertical scrollbar + treeView->header()->resizeSection(NavigatorTreeModel::ColumnType::Lock, 32); treeView->setIndentation(20); m_currentModelInterface->setFilter(false); @@ -759,7 +771,7 @@ void NavigatorView::setupWidget() connect(m_widget.data(), &NavigatorWidget::textFilterChanged, this, &NavigatorView::textFilterChanged); const QString fontName = "qtds_propertyIconFont.ttf"; - const QSize size = QSize(28, 28); + const QSize size = QSize(32, 32); const QString visibilityOnUnicode = Theme::getIconUnicode(Theme::Icon::visibilityOn); const QString visibilityOffUnicode = Theme::getIconUnicode(Theme::Icon::visibilityOff);