From 70550594cd113bee4af662c1dd980738ed3dbe0d Mon Sep 17 00:00:00 2001 From: Kostas Karmas Date: Mon, 4 Jan 2021 15:07:53 +0100 Subject: [PATCH] Connect the visibility of the components through their properties As Ghostkeeper suspected correctly in the review comment https://github.com/Ultimaker/Cura/pull/9012#discussion_r549707433 the binding wasn't working because the model was being retrieved using a function (CuraApplication.getFileProviderModel()). Separating this model into a variable allows us to properly bind the "visible" properties of the menu items with the count property of the model without a problem. CURA-7868 --- resources/qml/Menus/FileMenu.qml | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/resources/qml/Menus/FileMenu.qml b/resources/qml/Menus/FileMenu.qml index a1bd246763..94fc2358e1 100644 --- a/resources/qml/Menus/FileMenu.qml +++ b/resources/qml/Menus/FileMenu.qml @@ -11,6 +11,7 @@ Menu { id: base title: catalog.i18nc("@title:menu menubar:toplevel", "&File") + property var fileProviderModel: CuraApplication.getFileProviderModel() MenuItem { @@ -22,23 +23,13 @@ Menu { id: openMenu action: Cura.Actions.open - visible: (CuraApplication.getFileProviderModel().count == 1) + visible: (base.fileProviderModel.count == 1) } OpenFilesMenu { id: openFilesMenu - visible: (CuraApplication.getFileProviderModel().count > 1) - } - - Connections - { - target: CuraApplication.getFileProviderModel() - onItemsChanged: - { - openMenu.visible = (CuraApplication.getFileProviderModel().count == 1) // 1 because the open local files menu should always exist in the model - openFilesMenu.visible = (CuraApplication.getFileProviderModel().count > 1) - } + visible: (base.fileProviderModel.count > 1) } RecentFilesMenu { }