Skip to content

Commit 063db94

Browse files
committed
feat: add support for custom line edit icon margin
Added PM_LineEditIconMargin pixel metric handling to support custom icon margins in line edit widgets. The implementation checks for a "_d_dtk_lineeditIconMargin" property on the widget and returns the custom margin value if valid. This allows applications to specify precise icon spacing in line edit fields for better UI customization and visual consistency. Influence: 1. Test line edit widgets with custom icon margin property set 2. Verify default behavior when no custom margin is specified 3. Test with various valid margin values (positive integers) 4. Verify behavior with invalid margin values (negative numbers, invalid types) 5. Check UI layout consistency with custom icon margins applied feat: 添加支持自定义行编辑图标边距 添加了 PM_LineEditIconMargin 像素度量处理,以支持在行编辑部件中自定义图 标边距。该实现检查部件上的 "_d_dtk_lineeditIconMargin" 属性,如果有效则 返回自定义边距值。这允许应用程序为行编辑字段指定精确的图标间距,以实现更 好的 UI 定制和视觉一致性。 Influence: 1. 测试设置了自定义图标边距属性的行编辑部件 2. 验证未指定自定义边距时的默认行为 3. 使用各种有效边距值(正整数)进行测试 4. 验证无效边距值(负数、无效类型)时的行为 5. 检查应用自定义图标边距后的 UI 布局一致性 PMS: BUG-334965
1 parent 04913bf commit 063db94

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

include/widgets/dstyle.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,7 @@ class DStyle : public QCommonStyle
239239
static void setFrameRadius(QWidget *widget, int radius);
240240
static void setUncheckedItemIndicatorVisible(QWidget *widget, bool visible);
241241
static void setRedPointVisible(QObject *object, bool visible);
242+
static void setLineEditIconMargin(QObject *object, int margin);
242243

243244
static void setShortcutUnderlineVisible(bool visible);
244245
static bool shortcutUnderlineVisible();

src/widgets/dstyle.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,11 @@ void DStyle::setRedPointVisible(QObject *object, bool visible)
171171
object->setProperty("_d_menu_item_redpoint", visible);
172172
}
173173

174+
void DStyle::setLineEditIconMargin(QObject *object, int margin)
175+
{
176+
object->setProperty("_d_dtk_lineeditIconMargin", margin);
177+
}
178+
174179
void DStyle::setShortcutUnderlineVisible(bool visible)
175180
{
176181
qApp->setProperty("_d_menu_underlineshortcut", visible);
@@ -2255,6 +2260,19 @@ int DStyle::pixelMetric(QStyle::PixelMetric m, const QStyleOption *opt, const QW
22552260
return 16;
22562261
case PM_MenuButtonIndicator:
22572262
return DSizeModeHelper::element(8, QCommonStyle::pixelMetric(m, opt, widget));
2263+
// since Qt 6.3 or applied patch Add-setting-thc-ICON-size-attribute-in-lineedit-to-the-style-plugin.patch( uos or deepin).
2264+
case PM_LineEditIconMargin: {
2265+
if (widget) {
2266+
const QVariant &margin_value = widget->property("_d_dtk_lineeditIconMargin");
2267+
if (margin_value.isValid()) {
2268+
bool ok = false;
2269+
int margin = margin_value.toInt(&ok);
2270+
if (ok && margin >= 0) {
2271+
return margin;
2272+
}
2273+
}
2274+
}
2275+
}
22582276
case PM_FloatingButtonFrameMargin:
22592277
return 3;
22602278
default:

0 commit comments

Comments
 (0)