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/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/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 } } } 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