diff --git a/resources/qml/Preferences/ProfilesPage.qml b/resources/qml/Preferences/ProfilesPage.qml index dcf02bc738..e5848a86c7 100644 --- a/resources/qml/Preferences/ProfilesPage.qml +++ b/resources/qml/Preferences/ProfilesPage.qml @@ -16,25 +16,14 @@ UM.ManagementPage property var extrudersModel: CuraApplication.getExtrudersModel() property var qualityManagementModel: CuraApplication.getQualityManagementModel() + property bool hasCurrentItem: base.currentItem != null - scrollviewCaption: catalog.i18nc("@label", "Profiles compatible with active printer:") + "" + Cura.MachineManager.activeMachine.name + "" + property var currentItem: objectList.currentIndex == -1 ? null : base.qualityManagementModel.getItem(objectList.currentIndex) - onHamburgeButtonClicked: menu.popup(content_item, content_item.width - menu.width, hamburger_button.height) + property string currentItemName: hasCurrentItem ? base.currentItem.name : "" + property string currentItemDisplayName: hasCurrentItem ? base.qualityManagementModel.getQualityItemDisplayName(base.currentItem) : "" - - property var hasCurrentItem: base.currentItem != null - sectionRole: "section_name" - - property var currentItem: - { - var current_index = objectList.currentIndex; - return (current_index == -1) ? null : base.qualityManagementModel.getItem(current_index); - } - - property var currentItemName: hasCurrentItem ? base.currentItem.name : "" - property var currentItemDisplayName: hasCurrentItem ? base.qualityManagementModel.getQualityItemDisplayName(base.currentItem) : "" - - property var isCurrentItemActivated: + property bool isCurrentItemActivated: { if (!base.currentItem) { @@ -50,11 +39,29 @@ UM.ManagementPage } } - property var canCreateProfile: + property bool canCreateProfile: Cura.MachineManager.hasUserSettings + + signal createProfile() // Click create profile from ... in Profile context menu + + property string newQualityNameToSelect: "" + property bool toActivateNewQuality: false + + onHamburgeButtonClicked: menu.popup(content_item, content_item.width - menu.width, hamburger_button.height) + + onCreateProfile: { - return isCurrentItemActivated && Cura.MachineManager.hasUserSettings; + createQualityDialog.object = Cura.ContainerManager.makeUniqueName(Cura.MachineManager.activeQualityOrQualityChangesName); + createQualityDialog.open(); + createQualityDialog.selectText(); } + title: catalog.i18nc("@title:tab", "Profiles") + scrollviewCaption: catalog.i18nc("@label", "Profiles compatible with active printer:") + "
" + Cura.MachineManager.activeMachine.name + "" + + hamburgerButtonVisible: hasCurrentItem + + sectionRole: "section_name" + model: qualityManagementModel buttons: [ Cura.SecondaryButton @@ -79,18 +86,6 @@ UM.ManagementPage } ] - // Click create profile from ... in Profile context menu - signal createProfile() - onCreateProfile: - { - createQualityDialog.object = Cura.ContainerManager.makeUniqueName(Cura.MachineManager.activeQualityOrQualityChangesName); - createQualityDialog.open(); - createQualityDialog.selectText(); - } - - property string newQualityNameToSelect: "" - property bool toActivateNewQuality: false - Item { id: content_item @@ -179,6 +174,16 @@ UM.ManagementPage } } Cura.MenuItem + { + text: catalog.i18nc("@action:button", "Duplicate") + enabled: base.hasCurrentItem + onTriggered: + { + forceActiveFocus() + duplicateQualityDialog.open() + } + } + Cura.MenuItem { text: catalog.i18nc("@action:button", "Remove") enabled: base.hasCurrentItem && !base.currentItem.is_read_only && !base.isCurrentItemActivated @@ -238,10 +243,7 @@ UM.ManagementPage id: duplicateQualityDialog title: catalog.i18nc("@title:window", "Duplicate Profile") object: "" - onAccepted: - { - base.qualityManagementModel.duplicateQualityChanges(newName, base.currentItem); - } + onAccepted: base.qualityManagementModel.duplicateQualityChanges(newName, base.currentItem) } // Confirmation dialog for removing a profile @@ -330,9 +332,9 @@ UM.ManagementPage Cura.SecondaryButton { - text: catalog.i18nc("@action:button", "Discard current changes"); + text: catalog.i18nc("@action:button", "Discard current changes") enabled: Cura.MachineManager.hasUserSettings - onClicked: Cura.ContainerManager.clearUserContainers(); + onClicked: Cura.ContainerManager.clearUserContainers() } } @@ -354,7 +356,7 @@ UM.ManagementPage UM.TabRow { id: profileExtruderTabs - UM.TabRowButton //One extra tab for the global settings. + UM.TabRowButton // One extra tab for the global settings. { text: catalog.i18nc("@title:tab", "Global Settings") }