From e6454411dd9a7e2747b8cc34543a217c6fd08446 Mon Sep 17 00:00:00 2001 From: wjyrich Date: Mon, 9 Feb 2026 14:19:19 +0800 Subject: [PATCH] feat: add left edge click signal for dock panel MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. Added leftEdgeClicked signal in DockPanel to handle clicks on the left margin area 2. Implemented MouseArea in QML to capture clicks on the left margin of the dock 3. The signal emits the minimum dockOrder value among all applet items when clicked 4. This allows special handling for edge interactions in the dock panel Log: Added left edge click functionality for dock panel Influence: 1. Test clicking on the left margin area of the dock panel 2. Verify that leftEdgeClicked signal is emitted with correct dockOrder value 3. Check that the signal works with different numbers of applet items 4. Test with various dock configurations and orientations 5. Verify that the click area doesn't interfere with existing applet functionality feat: 为任务栏面板添加左侧边缘点击信号 1. 在DockPanel中添加leftEdgeClicked信号以处理左侧边距区域的点击 2. 在QML中实现MouseArea来捕获任务栏左侧边距的点击 3. 这使得任务栏面板能够特殊处理边缘交互 Log: 新增任务栏面板左侧边缘点击功能 Influence: 1. 测试点击任务栏面板的左侧边距区域 2. 验证leftEdgeClicked信号是否以正确的dockOrder值发射 3. 检查信号在不同数量的小程序项下的工作情况 4. 使用不同的任务栏配置和方向进行测试 5. 验证点击区域不会干扰现有小程序功能 PMS: BUG-345931 --- panels/dock/dockpanel.h | 1 + panels/dock/package/main.qml | 20 +++++++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/panels/dock/dockpanel.h b/panels/dock/dockpanel.h index 4c97bf0ea..17482be71 100644 --- a/panels/dock/dockpanel.h +++ b/panels/dock/dockpanel.h @@ -127,6 +127,7 @@ private Q_SLOTS: void dockScreenChanged(QScreen *screen); void screenNameChanged(); void requestClosePopup(); + void leftEdgeClicked(const QString &minOrder); void devicePixelRatioChanged(qreal ratio); void lockedChanged(bool locked); diff --git a/panels/dock/package/main.qml b/panels/dock/package/main.qml index fb477d49d..44330bb0d 100644 --- a/panels/dock/package/main.qml +++ b/panels/dock/package/main.qml @@ -447,7 +447,25 @@ Window { } } } - + //此处为边距区域的点击实践特殊处理。 + MouseArea { + id: leftMarginArea + width: useColumnLayout ? parent.width : gridLayout.columnSpacing + height: useColumnLayout ? gridLayout.rowSpacing : parent.height + anchors.left: parent.left + anchors.top: parent.top + onClicked: { + let minOrder = Number.MAX_VALUE + + for (let i = 0; i < Applet.appletItems.rowCount(); i++) { + let itemData = Applet.appletItems.data(Applet.appletItems.index(i, 0), Qt.UserRole + 1) + if (itemData && itemData.dockOrder < minOrder) { + minOrder = itemData.dockOrder + } + } + Panel.leftEdgeClicked(minOrder) + } + } // TODO: remove GridLayout and use delegatechosser manager all items GridLayout { id: gridLayout