Skip to content

Commit 454516e

Browse files
GongHeng2017deepin
authored andcommitted
fix: adapt search edit icon size to size mode
1. Root cause: DSearchEditPrivate::init() hardcoded icon size to QSize(20, 20) without DSizeMode awareness, causing oversized icon in compact mode 2. Fix: use DSizeModeHelper::element() for adaptive sizing and connect sizeModeChanged signal for dynamic updates 3. Impact: all DSearchEdit instances now adapt icon size to compact/normal mode Log: Fix search edit icon not adapting to compact mode Influence: 1. Test DSearchEdit icon display in normal mode 2. Test DSearchEdit icon display in compact mode 3. Verify icon updates when switching size modes at runtime fix: 搜索框图标尺寸适配紧凑模式 1. 根因:DSearchEditPrivate::init() 硬编码图标尺寸为 QSize(20, 20),不随 DSizeMode 自适应 2. 方案:使用 DSizeModeHelper::element() 实现自适应尺寸, 并监听 sizeModeChanged 信号动态更新 3. 影响:所有 DSearchEdit 实例的图标尺寸将随紧凑/正常模式自适应 Log: 修复搜索框图标在紧凑模式下过大的问题 Influence: 1. 测试正常模式下搜索框图标显示 2. 测试紧凑模式下搜索框图标显示 3. 验证运行时切换尺寸模式时图标是否动态更新 PMS: BUG-224407
1 parent e82521d commit 454516e

1 file changed

Lines changed: 11 additions & 2 deletions

File tree

‎src/widgets/dsearchedit.cpp‎

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// SPDX-FileCopyrightText: 2015 - 2022 UnionTech Software Technology Co., Ltd.
1+
// SPDX-FileCopyrightText: 2015 - 2026 UnionTech Software Technology Co., Ltd.
22
//
33
// SPDX-License-Identifier: LGPL-3.0-or-later
44

@@ -7,6 +7,7 @@
77
#include "dstyle.h"
88
#include "private/dsearchedit_p.h"
99
#include "diconbutton.h"
10+
#include "dsizemode.h"
1011

1112
#include <DSysInfo>
1213
#include <DGuiApplicationHelper>
@@ -300,7 +301,7 @@ void DSearchEditPrivate::init()
300301
iconbtn->setFocusPolicy(Qt::NoFocus);
301302
iconbtn->setAttribute(Qt::WA_TransparentForMouseEvents);
302303
iconbtn->setAccessibleName("DSearchEditIconButton");
303-
iconbtn->setIconSize(QSize(20, 20));
304+
iconbtn->setIconSize(DSizeModeHelper::element(QSize(16, 16), QSize(20, 20)));
304305
return iconbtn;
305306
};
306307

@@ -315,6 +316,14 @@ void DSearchEditPrivate::init()
315316
q->lineEdit()->addAction(action, QLineEdit::LeadingPosition);
316317
action->defaultWidget()->setVisible(false);
317318

319+
auto updateIconSize = [iconbtn, iconAction]() {
320+
QSize iconSize = DSizeModeHelper::element(QSize(16, 16), QSize(20, 20));
321+
iconbtn->setIconSize(iconSize);
322+
iconAction->setIconSize(iconSize);
323+
};
324+
updateIconSize();
325+
QObject::connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::sizeModeChanged, q, updateIconSize);
326+
318327
DPalette pe;
319328
QStyleOption opt;
320329
QColor color = DStyleHelper(q->style()).getColor(&opt, pe, DPalette::TextTips);

0 commit comments

Comments
 (0)