Skip to content

Commit 609fcd1

Browse files
wjyrich18202781743
authored andcommitted
feat: add window radius control for treeland platform
1. Add windowRadius property getter and setter to DTreelandPlatformInterface 2. Implement window radius getter with optional default value support 3. Add setter that forwards to appearance context's set_round_corner_radius method 4. Update header file with new method declarations and overrides Log: Added window radius control feature for treeland platform Influence: 1. Test windowRadius() returns correct value after setting 2. Test windowRadius(defaultValue) returns default when no radius set 3. Test setWindowRadius(radius) properly updates appearance context 4. Verify radius value persists across window operations 5. Ensure backward compatibility with existing code feat: 为 treeland 平台添加窗口圆角控制功能 1. 为 DTreelandPlatformInterface 添加窗口圆角属性的获取和设置方法 2. 实现支持默认值的窗口圆角获取函数 3. 添加通过外观上下文设置圆角半径的功能 Log: 新增 treeland 平台窗口圆角控制功能 Influence: 1. 测试 windowRadius() 在设置后返回正确值 2. 测试 windowRadius(defaultValue) 在未设置时返回默认值 3. 测试 setWindowRadius(radius) 正确更新外观上下文 4. 验证圆角值在窗口操作中保持持久性 5. 确保与现有代码的向后兼容性 PMS: BUG-296897
1 parent c90c4a1 commit 609fcd1

2 files changed

Lines changed: 36 additions & 2 deletions

File tree

src/plugins/platform/treeland/dtreelandplatforminterface.cpp

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

@@ -16,6 +16,18 @@ DGUI_BEGIN_NAMESPACE
1616

1717
DTreelandPlatformInterface::DTreelandPlatformInterface(DPlatformTheme *platformTheme)
1818
: DPlatformInterface(platformTheme)
19+
, m_manager(nullptr)
20+
, m_activeColor(QColor())
21+
, m_titleHeight(0)
22+
, m_fontName(QByteArray())
23+
, m_monoFontName(QByteArray())
24+
, m_iconThemeName(QByteArray())
25+
, m_cursorThemeName(QByteArray())
26+
, m_fontPointSize(0.0)
27+
, m_windowRadius(0)
28+
, m_scrollBarPolicy(0)
29+
, m_themeName(QByteArray())
30+
, m_blurOpacity(0)
1931
{
2032
m_manager = PersonalizationManager::instance();
2133
connect(m_manager, &PersonalizationManager::activeChanged, this, [this](){
@@ -65,6 +77,23 @@ QByteArray DTreelandPlatformInterface::themeName() const
6577
return m_themeName;
6678
}
6779

80+
int DTreelandPlatformInterface::windowRadius() const
81+
{
82+
return m_windowRadius;
83+
}
84+
85+
int DTreelandPlatformInterface::windowRadius(int defaultValue) const
86+
{
87+
return m_windowRadius > 0 ? m_windowRadius : defaultValue;
88+
}
89+
90+
void DTreelandPlatformInterface::setWindowRadius(int windowRadius)
91+
{
92+
if (m_appearanceContext) {
93+
m_appearanceContext->set_round_corner_radius(windowRadius);
94+
}
95+
}
96+
6897
void DTreelandPlatformInterface::setIconThemeName(const QByteArray &iconThemeName)
6998
{
7099
if (m_appearanceContext) {

src/plugins/platform/treeland/dtreelandplatforminterface.h

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

@@ -35,6 +35,11 @@ class DTreelandPlatformInterface : public QObject, public DPlatformInterface, pu
3535
QColor activeColor() const override;
3636
QByteArray themeName() const override;
3737

38+
int windowRadius() const override;
39+
int windowRadius(int defaultValue = 12) const override;
40+
41+
void setWindowRadius(int windowRadius) override;
42+
3843
void setIconThemeName(const QByteArray &iconThemeName) override;
3944
void setFontName(const QByteArray &fontName) override;
4045
void setMonoFontName(const QByteArray &monoFontName) override;

0 commit comments

Comments
 (0)