From 65b7737454dec996c08a5d2e95cbd88cb4e0c817 Mon Sep 17 00:00:00 2001 From: Polaris-Night <158275221@qq.com> Date: Mon, 17 Feb 2025 23:24:31 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8DFluCarousel=E8=AE=BE?= =?UTF-8?q?=E7=BD=AEautoPlay=E4=B8=BAfalse=E6=97=B6=E6=89=8B=E5=8A=A8?= =?UTF-8?q?=E7=BF=BB=E9=A1=B5=E4=BB=8D=E8=A7=A6=E5=8F=91=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E8=BD=AE=E6=92=AD=E7=BF=BB=E9=A1=B5=E9=97=AE=E9=A2=98.=20fixed?= =?UTF-8?q?=20#563?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复FluCarousel设置autoPlay为false时不能无限向左/右翻页的问题. --- src/Qt5/imports/FluentUI/Controls/FluCarousel.qml | 15 +++++++++------ src/Qt6/imports/FluentUI/Controls/FluCarousel.qml | 15 +++++++++------ 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/Qt5/imports/FluentUI/Controls/FluCarousel.qml b/src/Qt5/imports/FluentUI/Controls/FluCarousel.qml index 4ee914f0..bc26df83 100644 --- a/src/Qt5/imports/FluentUI/Controls/FluCarousel.qml +++ b/src/Qt5/imports/FluentUI/Controls/FluCarousel.qml @@ -24,7 +24,7 @@ Item { } QtObject{ id:d - property bool flagXChanged: true + property bool flagXChanged: false property bool isAnimEnable: control.autoPlay && list_view.count>3 function setData(data){ if(!data){ @@ -88,14 +88,17 @@ Item { } } onMovementEnded:{ + d.flagXChanged = false + list_view.highlightMoveDuration = 0 currentIndex = list_view.contentX/list_view.width if(currentIndex === 0){ currentIndex = list_view.count-2 }else if(currentIndex === list_view.count-1){ currentIndex = 1 } - d.flagXChanged = false - timer_run.restart() + if(d.isAnimEnable){ + timer_run.restart() + } } onMovementStarted: { d.flagXChanged = true @@ -104,12 +107,12 @@ Item { onContentXChanged: { if(d.flagXChanged){ var maxX = Math.min(list_view.width*(currentIndex+1),list_view.count*list_view.width) - var minY = Math.max(0,(list_view.width*(currentIndex-1))) + var minX = Math.max(0,(list_view.width*(currentIndex-1))) if(contentX>=maxX){ contentX = maxX } - if(contentX<=minY){ - contentX = minY + if(contentX<=minX){ + contentX = minX } } } diff --git a/src/Qt6/imports/FluentUI/Controls/FluCarousel.qml b/src/Qt6/imports/FluentUI/Controls/FluCarousel.qml index 844b8d9d..cb364bb8 100644 --- a/src/Qt6/imports/FluentUI/Controls/FluCarousel.qml +++ b/src/Qt6/imports/FluentUI/Controls/FluCarousel.qml @@ -24,7 +24,7 @@ Item { } QtObject{ id:d - property bool flagXChanged: true + property bool flagXChanged: false property bool isAnimEnable: control.autoPlay && list_view.count>3 function setData(data){ if(!data){ @@ -88,14 +88,17 @@ Item { } } onMovementEnded:{ + d.flagXChanged = false + list_view.highlightMoveDuration = 0 currentIndex = list_view.contentX/list_view.width if(currentIndex === 0){ currentIndex = list_view.count-2 }else if(currentIndex === list_view.count-1){ currentIndex = 1 } - d.flagXChanged = false - timer_run.restart() + if(d.isAnimEnable){ + timer_run.restart() + } } onMovementStarted: { d.flagXChanged = true @@ -104,12 +107,12 @@ Item { onContentXChanged: { if(d.flagXChanged){ var maxX = Math.min(list_view.width*(currentIndex+1),list_view.count*list_view.width) - var minY = Math.max(0,(list_view.width*(currentIndex-1))) + var minX = Math.max(0,(list_view.width*(currentIndex-1))) if(contentX>=maxX){ contentX = maxX } - if(contentX<=minY){ - contentX = minY + if(contentX<=minX){ + contentX = minX } } } From 99f6b16aa1cd85dae937694884632a7274e4db4d Mon Sep 17 00:00:00 2001 From: Polaris-Night <158275221@qq.com> Date: Tue, 18 Feb 2025 23:01:01 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8DFluProgressBar=E5=B1=9E?= =?UTF-8?q?=E6=80=A7=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Qt5/imports/FluentUI/Controls/FluProgressBar.qml | 12 +++++------- src/Qt6/imports/FluentUI/Controls/FluProgressBar.qml | 12 +++++------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/src/Qt5/imports/FluentUI/Controls/FluProgressBar.qml b/src/Qt5/imports/FluentUI/Controls/FluProgressBar.qml index e75b47ba..5a094d67 100644 --- a/src/Qt5/imports/FluentUI/Controls/FluProgressBar.qml +++ b/src/Qt5/imports/FluentUI/Controls/FluProgressBar.qml @@ -14,13 +14,6 @@ ProgressBar{ id:d property real _radius: strokeWidth/2 } - onIndeterminateChanged:{ - if(!indeterminate){ - animator_x.duration = 0 - rect_progress.x = 0 - animator_x.duration = control.duration - } - } background: Rectangle { implicitWidth: 150 implicitHeight: control.strokeWidth @@ -45,6 +38,11 @@ ProgressBar{ id: animator_x running: control.indeterminate && control.visible loops: Animation.Infinite + onRunningChanged: { + if(!running){ + rect_progress.x = 0 + } + } PropertyAnimation { from: -rect_progress.width to: control.width + rect_progress.width diff --git a/src/Qt6/imports/FluentUI/Controls/FluProgressBar.qml b/src/Qt6/imports/FluentUI/Controls/FluProgressBar.qml index 9c2c6123..86df5841 100644 --- a/src/Qt6/imports/FluentUI/Controls/FluProgressBar.qml +++ b/src/Qt6/imports/FluentUI/Controls/FluProgressBar.qml @@ -15,13 +15,6 @@ ProgressBar{ id:d property real _radius: strokeWidth/2 } - onIndeterminateChanged:{ - if(!indeterminate){ - animator_x.duration = 0 - rect_progress.x = 0 - animator_x.duration = control.duration - } - } background: Rectangle { implicitWidth: 150 implicitHeight: control.strokeWidth @@ -46,6 +39,11 @@ ProgressBar{ id: animator_x running: control.indeterminate && control.visible loops: Animation.Infinite + onRunningChanged: { + if(!running){ + rect_progress.x = 0 + } + } PropertyAnimation { from: -rect_progress.width to: control.width + rect_progress.width