diff --git a/lib_source/qml/RibbonTabBar.qml b/lib_source/qml/RibbonTabBar.qml index eb99a5f..f77ca44 100644 --- a/lib_source/qml/RibbonTabBar.qml +++ b/lib_source/qml/RibbonTabBar.qml @@ -219,14 +219,14 @@ Item{ Component.onCompleted: { for (let i=0,sign=0; i < stack.contentData.length; i++) { - var item = stack.contentData[i] + let item = stack.contentData[i] if(item instanceof RibbonTabPage){ - let btn = ribbonTabButton.createObject(bar,{text:qsTr(item.title),index:i}) + let btn = ribbonTabButton.createObject(bar,{text:qsTr(item.title),index:sign}) if (sign===0) { btn.checked = true - sign++ } + sign++ btn.need_fold.connect(hide_stack) root.foldedChanged.connect(function(){btn.setFolded(folded)}) } diff --git a/lib_source/qml/RibbonTabButton.qml b/lib_source/qml/RibbonTabButton.qml index 01d64a5..6950961 100644 --- a/lib_source/qml/RibbonTabButton.qml +++ b/lib_source/qml/RibbonTabButton.qml @@ -68,10 +68,28 @@ TabButton { } width: implicitWidth + 15 height: implicitHeight + 6 + Timer{ + id: timer + property bool first_run: true + interval: 200 + triggeredOnStart: false + onTriggered: need_fold(checked&&!folded, index) + } + onClicked: { + timer.running = false need_fold(checked&&!folded, index) } + onCheckedChanged: { + if (checked&&!(timer.first_run&&index===0)) + { + timer.start() + } + else + timer.first_run = false + } + function setFolded(value) { folded = value