Use the MouseArea trick to assure that the binding still works for the

checked property of the button.

Contributes to CURA-6028.
This commit is contained in:
Diego Prado Gesto 2018-12-13 16:44:49 +01:00
parent 1b3cb32334
commit 012ee0c02a
2 changed files with 7 additions and 4 deletions

View file

@ -60,11 +60,17 @@ Item
exclusiveGroup: mainWindowHeaderMenuGroup exclusiveGroup: mainWindowHeaderMenuGroup
style: UM.Theme.styles.main_window_header_tab style: UM.Theme.styles.main_window_header_tab
height: UM.Theme.getSize("main_window_header_button").height height: UM.Theme.getSize("main_window_header_button").height
onClicked: UM.Controller.setActiveStage(model.id)
iconSource: model.stage.iconSource iconSource: model.stage.iconSource
property color overlayColor: "transparent" property color overlayColor: "transparent"
property string overlayIconSource: "" property string overlayIconSource: ""
// This is a trick to assure the activeStage is correctly changed. It doesn't work propertly if done in the onClicked (see CURA-6028)
MouseArea
{
anchors.fill: parent
onClicked: UM.Controller.setActiveStage(model.id)
}
} }
} }

View file

@ -19,14 +19,12 @@ Cura.ExpandablePopup
onDataChanged: updateActiveView() onDataChanged: updateActiveView()
} }
property var activeView: null property var activeView: null
function updateActiveView() function updateActiveView()
{ {
for (var index in viewModel.items) for (var index in viewModel.items)
{ {
if (viewModel.items[index].active) if (viewModel.items[index].active)
{ {
activeView = viewModel.items[index] activeView = viewModel.items[index]
@ -38,7 +36,6 @@ Cura.ExpandablePopup
Component.onCompleted: Component.onCompleted:
{ {
updateActiveView()
if (activeView == null) if (activeView == null)
{ {
UM.Controller.setActiveView(viewModel.getItem(0).id) UM.Controller.setActiveView(viewModel.getItem(0).id)