From f317fcbde7e43c76c56ba3963e3b924a7051ea31 Mon Sep 17 00:00:00 2001 From: Mentalflow <312902918@qq.com> Date: Mon, 26 Aug 2024 15:24:25 +0800 Subject: [PATCH] RibbonMessageBar,RibbonMessageBarGroup,RibbonRectangle,RibbonBackStageView: Property bug fix for Qt 5 and Qt 6. --- lib_source/qml/Qt5/RibbonBackStageView.qml | 1 + lib_source/qml/Qt5/RibbonMessageBarGroup.qml | 34 ++++---------------- lib_source/qml/Qt5/RibbonRectangle.qml | 4 ++- lib_source/qml/Qt6/RibbonBackStageView.qml | 1 + lib_source/qml/Qt6/RibbonMessageBarGroup.qml | 34 ++++---------------- lib_source/qml/Qt6/RibbonRectangle.qml | 2 +- 6 files changed, 20 insertions(+), 56 deletions(-) diff --git a/lib_source/qml/Qt5/RibbonBackStageView.qml b/lib_source/qml/Qt5/RibbonBackStageView.qml index e8a57f4..5e07498 100644 --- a/lib_source/qml/Qt5/RibbonBackStageView.qml +++ b/lib_source/qml/Qt5/RibbonBackStageView.qml @@ -1,4 +1,5 @@ import QtQuick 2.15 +import QtQuick.Window 2.15 import QtQuick.Controls 2.15 import QtQuick.Layouts 1.11 import RibbonUI 1.0 diff --git a/lib_source/qml/Qt5/RibbonMessageBarGroup.qml b/lib_source/qml/Qt5/RibbonMessageBarGroup.qml index fef5dd1..d377975 100644 --- a/lib_source/qml/Qt5/RibbonMessageBarGroup.qml +++ b/lib_source/qml/Qt5/RibbonMessageBarGroup.qml @@ -1,4 +1,5 @@ import QtQuick 2.15 +import QtQuick.Window 2.15 import QtQuick.Layouts 1.11 import QtQuick.Controls 2.15 import RibbonUI 1.0 @@ -15,8 +16,8 @@ RibbonBlur { enableEffect: handler.visible || !folded readonly property alias folded: folded_btn.checked property int animationTime: 400 - property real currentMessageHeight: message_list.currentItem ? message_list.currentItem.height : 36 - property real barHeight: 36 + property real currentMessageHeight: message_list.currentItem ? message_list.currentItem.height : 0 + property real barHeight: folded ? currentMessageHeight + handler.height : 0 property alias messageModel: messageModel property real topMargin: RibbonTheme.modernStyle ? 5 : 0 @@ -55,7 +56,7 @@ RibbonBlur { left: parent.left right: parent.right } - height: parent.height - (folded ? handler.height : 0) + height: control.implicitHeight - (folded ? handler.height : 0) model: messageModel delegate: Item{ id: item @@ -65,15 +66,9 @@ RibbonBlur { id: bar anchors.centerIn: parent property bool isCurrentItem: item === message_list.currentItem - onIsCurrentItemChanged: { - if(folded){ - message_list.height = item.implicitHeight - control.barHeight = item.implicitHeight + handler.height - } - } text: model.text - externalURL: model.externalURL + externalURL: model.externalURL ? model.externalURL : "" dismissAction: ()=>messageModel.remove(index) Component.onCompleted: { if(model.disableMultiline) @@ -108,13 +103,8 @@ RibbonBlur { } } } - onImplicitHeightChanged:{ - if(message_list.currentIndex === index && folded){ - message_list.height = item.implicitHeight - control.barHeight = item.implicitHeight + handler.height - } - } } + verticalLayoutDirection: ListView.BottomToTop add: Transition { @@ -192,13 +182,7 @@ RibbonBlur { tipText: checked ? qsTr("Show all messages") : qsTr("Hide all messages") textColor: RibbonTheme.isDarkMode ? "white" : "black" onClicked:{ - if(!folded){ - message_list.height = control.implicitHeight - } - else{ - message_list.height = message_list.currentItem.implicitHeight - auto_scroll_btn_timer.restart() - } + auto_scroll_btn_timer.restart() } Behavior on rotation { @@ -241,9 +225,5 @@ RibbonBlur { function clearMessages(){ folded_btn.checked = true messageModel.clear() - implicitHeight = 0 - barHeight = folded ? handler.height : 0 - currentMessageHeight = 0 - message_list.height = 0 } } diff --git a/lib_source/qml/Qt5/RibbonRectangle.qml b/lib_source/qml/Qt5/RibbonRectangle.qml index 91ec71f..886825b 100644 --- a/lib_source/qml/Qt5/RibbonRectangle.qml +++ b/lib_source/qml/Qt5/RibbonRectangle.qml @@ -1,4 +1,6 @@ import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQuick.Shapes 1.15 import QtGraphicalEffects 1.0 Item { @@ -10,7 +12,7 @@ Item { property int bottomLeftRadius: radius property int bottomRightRadius: radius property real borderWidth: 0 - property var borderColor: Qt.color("transparent") + property string borderColor: "transparent" default property alias contentItem: container.data Shape { diff --git a/lib_source/qml/Qt6/RibbonBackStageView.qml b/lib_source/qml/Qt6/RibbonBackStageView.qml index c7f1f0b..d461b1d 100644 --- a/lib_source/qml/Qt6/RibbonBackStageView.qml +++ b/lib_source/qml/Qt6/RibbonBackStageView.qml @@ -1,4 +1,5 @@ import QtQuick +import QtQuick.Window import QtQuick.Controls import QtQuick.Layouts import RibbonUI diff --git a/lib_source/qml/Qt6/RibbonMessageBarGroup.qml b/lib_source/qml/Qt6/RibbonMessageBarGroup.qml index 8e77e80..f84d4cb 100644 --- a/lib_source/qml/Qt6/RibbonMessageBarGroup.qml +++ b/lib_source/qml/Qt6/RibbonMessageBarGroup.qml @@ -1,4 +1,5 @@ import QtQuick +import QtQuick.Window import QtQuick.Layouts import QtQuick.Controls import RibbonUI @@ -15,8 +16,8 @@ RibbonBlur { enableEffect: handler.visible || !folded readonly property alias folded: folded_btn.checked property int animationTime: 400 - property real currentMessageHeight: message_list.currentItem ? message_list.currentItem.height : 36 - property real barHeight: 36 + property real currentMessageHeight: message_list.currentItem ? message_list.currentItem.height : 0 + property real barHeight: folded ? currentMessageHeight + handler.height : 0 property alias messageModel: messageModel property real topMargin: RibbonTheme.modernStyle ? 5 : 0 @@ -55,7 +56,7 @@ RibbonBlur { left: parent.left right: parent.right } - height: parent.height - (folded ? handler.height : 0) + height: control.implicitHeight - (folded ? handler.height : 0) model: messageModel delegate: Item{ id: item @@ -65,15 +66,9 @@ RibbonBlur { id: bar anchors.centerIn: parent property bool isCurrentItem: item === message_list.currentItem - onIsCurrentItemChanged: { - if(folded){ - message_list.height = item.implicitHeight - control.barHeight = item.implicitHeight + handler.height - } - } text: model.text - externalURL: model.externalURL + externalURL: model.externalURL ? model.externalURL : "" dismissAction: ()=>messageModel.remove(index) Component.onCompleted: { if(model.disableMultiline) @@ -108,13 +103,8 @@ RibbonBlur { } } } - onImplicitHeightChanged:{ - if(message_list.currentIndex === index && folded){ - message_list.height = item.implicitHeight - control.barHeight = item.implicitHeight + handler.height - } - } } + verticalLayoutDirection: ListView.BottomToTop add: Transition { @@ -192,13 +182,7 @@ RibbonBlur { tipText: checked ? qsTr("Show all messages") : qsTr("Hide all messages") textColor: RibbonTheme.isDarkMode ? "white" : "black" onClicked:{ - if(!folded){ - message_list.height = control.implicitHeight - } - else{ - message_list.height = message_list.currentItem.implicitHeight - auto_scroll_btn_timer.restart() - } + auto_scroll_btn_timer.restart() } Behavior on rotation { @@ -241,9 +225,5 @@ RibbonBlur { function clearMessages(){ folded_btn.checked = true messageModel.clear() - implicitHeight = 0 - barHeight = folded ? handler.height : 0 - currentMessageHeight = 0 - message_list.height = 0 } } diff --git a/lib_source/qml/Qt6/RibbonRectangle.qml b/lib_source/qml/Qt6/RibbonRectangle.qml index 62acbd2..40825eb 100644 --- a/lib_source/qml/Qt6/RibbonRectangle.qml +++ b/lib_source/qml/Qt6/RibbonRectangle.qml @@ -12,7 +12,7 @@ Item { property int bottomLeftRadius: radius property int bottomRightRadius: radius property real borderWidth: 0 - property var borderColor: Qt.color("transparent") + property string borderColor: "transparent" default property alias contentItem: container.data Shape {