@@ -14,18 +14,17 @@ ContainmentItem {
1414 id: taskmanager
1515 property bool useColumnLayout: Panel .rootObject .useColumnLayout
1616 property int dockOrder: 16
17- property real remainingSpacesForTaskManager: Panel .itemAlignment === Dock .LeftAlignment ? Panel .rootObject .dockLeftSpaceForCenter : Panel .rootObject .dockRemainingSpaceForCenter
18-
17+ property real remainingSpacesForTaskManager: Panel .rootObject .dockRemainingSpaceForCenter
1918 readonly property int appTitleSpacing: Math .max (10 , Math .round (Panel .rootObject .dockItemMaxSize * 9 / 14 ) / 3 )
20- property real remainingSpacesForSplitWindow: Panel .rootObject .dockLeftSpaceForCenter - (
21- (Panel .rootObject .dockCenterPartCount - 1 ) * (visualModel .cellWidth + appTitleSpacing) + (Panel .rootObject .dockCenterPartCount ) * Panel .rootObject .dockPartSpacing )
22- // 用于居中计算的实际应用区域尺寸
23- property int appContainerWidth: useColumnLayout ? Panel .rootObject .dockSize : appContainer .implicitWidth
24- property int appContainerHeight: useColumnLayout ? appContainer .implicitHeight : Panel .rootObject .dockSize
25-
26- implicitWidth: useColumnLayout ? Panel .rootObject .dockSize : Math .max (remainingSpacesForTaskManager, appContainer .implicitWidth )
27- implicitHeight: useColumnLayout ? Math .max (remainingSpacesForTaskManager, appContainer .implicitHeight ) : Panel .rootObject .dockSize
2819
20+ implicitWidth: {
21+ let maxW = Panel .itemAlignment === Dock .LeftAlignment ? Math .max (remainingSpacesForTaskManager, appContainer .implicitWidth ) : Math .min (remainingSpacesForTaskManager, appContainer .implicitWidth )
22+ return useColumnLayout ? Panel .rootObject .dockSize : maxW
23+ }
24+ implicitHeight: {
25+ let maxH = Panel .itemAlignment === Dock .LeftAlignment ? Math .max (remainingSpacesForTaskManager, appContainer .implicitHeight ) : Math .min (remainingSpacesForTaskManager, appContainer .implicitHeight )
26+ return useColumnLayout ? maxH : Panel .rootObject .dockSize
27+ }
2928 // Helper function to find the current index of an app by its appId in the visualModel
3029 function findAppIndex (appId ) {
3130 for (let i = 0 ; i < visualModel .items .count ; i++ ) {
@@ -65,7 +64,7 @@ ContainmentItem {
6564 spacing: appContainer .spacing
6665 cellSize: visualModel .cellWidth
6766 itemPadding: taskmanager .appTitleSpacing
68- remainingSpace: taskmanager .remainingSpacesForSplitWindow
67+ remainingSpace: taskmanager .remainingSpacesForTaskManager
6968 font .family : D .DTK .fontManager .t6 .family
7069 font .pixelSize : Math .max (10 , Math .min (20 , Math .round (textCalculator .iconSize * 0.35 )))
7170 }
@@ -133,8 +132,24 @@ ContainmentItem {
133132 Behavior on opacity { NumberAnimation { duration: 200 } }
134133 Behavior on scale { NumberAnimation { duration: 200 } }
135134
136- implicitWidth: useColumnLayout ? taskmanager .implicitWidth : appItem .implicitWidth
137- implicitHeight: useColumnLayout ? visualModel .cellWidth : taskmanager .implicitHeight
135+ implicitWidth: {
136+ let targetW = useColumnLayout ? taskmanager .implicitWidth : appItem .implicitWidth ;
137+ if (useColumnLayout || visualModel .count <= 0 ) return targetW;
138+
139+ let totalSpacing = Math .max (0 , visualModel .count - 1 ) * taskmanager .appTitleSpacing ;
140+ let availableW = taskmanager .remainingSpacesForTaskManager - totalSpacing;
141+ let maxW = availableW / visualModel .count ;
142+ return Math .min (targetW, Math .max (1 , maxW));
143+ }
144+ implicitHeight: {
145+ let targetH = useColumnLayout ? visualModel .cellWidth : taskmanager .implicitHeight ;
146+ if (! useColumnLayout || visualModel .count <= 0 ) return targetH;
147+
148+ let totalSpacing = Math .max (0 , visualModel .count - 1 ) * taskmanager .appTitleSpacing ;
149+ let availableH = taskmanager .remainingSpacesForTaskManager - totalSpacing;
150+ let maxH = availableH / visualModel .count ;
151+ return Math .min (targetH, Math .max (1 , maxH));
152+ }
138153
139154 property int visualIndex: DelegateModel .itemsIndex
140155 property var modelIndex: visualModel .modelIndex (index)
@@ -274,7 +289,7 @@ ContainmentItem {
274289
275290 Component .onCompleted : {
276291 Panel .rootObject .dockItemMaxSize = Qt .binding (function (){
277- return Math .min (Panel .rootObject .dockSize , Panel .rootObject .dockLeftSpaceForCenter * 1.2 / (Panel .rootObject .dockCenterPartCount - 1 + visualModel .count ) - 2 )
292+ return Math .min (Panel .rootObject .dockSize , Panel .rootObject .dockRemainingSpaceForCenter * 1.2 / (Panel .rootObject .dockCenterPartCount - 1 + visualModel .count ) - 2 )
278293 })
279294 }
280295}
0 commit comments