diff --git a/resources/qml/Preferences/MachinesPage.qml b/resources/qml/Preferences/MachinesPage.qml
index 28568d041b..4a5e0bec15 100644
--- a/resources/qml/Preferences/MachinesPage.qml
+++ b/resources/qml/Preferences/MachinesPage.qml
@@ -14,13 +14,21 @@ UM.ManagementPage
id: base
title: catalog.i18nc("@title:tab", "Printers")
+ detailsPlaneCation: base.currentItem && base.currentItem.name ? base.currentItem.name : ""
+
model: Cura.GlobalStacksModel { }
sectionRole: "discoverySource"
activeId: Cura.MachineManager.activeMachine !== null ? Cura.MachineManager.activeMachine.id: ""
activeIndex: activeMachineIndex()
- onHamburgeButtonClicked: menu.popup(content_item, content_item.width - menu.width, hamburger_button.height)
+ onHamburgeButtonClicked: {
+ const hamburerButtonHeight = hamburger_button.height;
+ menu.popup(hamburger_button, -menu.width + hamburger_button.width / 2, hamburger_button.height);
+ // for some reason the height of the hamburger changes when opening the popup
+ // reset height to initial heigt
+ hamburger_button.height = hamburerButtonHeight;
+ }
hamburgerButtonVisible: Cura.MachineManager.activeMachine !== null
function activeMachineIndex()
@@ -43,60 +51,39 @@ UM.ManagementPage
}
]
- Item
+ Flow
{
- id: content_item
- visible: base.currentItem != null
+ visible: base.currentItem != null && currentItem && currentItem.id == Cura.MachineManager.activeMachine.id
anchors.fill: parent
+ spacing: UM.Theme.getSize("default_margin").height
-
- UM.Label
+ Repeater
{
- id: machineName
- text: base.currentItem && base.currentItem.name ? base.currentItem.name : ""
- font: UM.Theme.getFont("large_bold")
- width: parent.width
- elide: Text.ElideRight
- }
+ id: machineActionRepeater
+ model: base.currentItem ? Cura.MachineActionManager.getSupportedActions(Cura.MachineManager.getDefinitionByMachineId(base.currentItem.id)) : null
- Flow
- {
- id: machineActions
- visible: currentItem && currentItem.id == Cura.MachineManager.activeMachine.id
- anchors
+ Item
{
- left: parent.left
- right: parent.right
- top: machineName.bottom
- topMargin: UM.Theme.getSize("default_margin").height
- }
- spacing: UM.Theme.getSize("default_margin").height
-
- Repeater
- {
- id: machineActionRepeater
- model: base.currentItem ? Cura.MachineActionManager.getSupportedActions(Cura.MachineManager.getDefinitionByMachineId(base.currentItem.id)) : null
-
- Item
+ width: Math.round(childrenRect.width + 2 * screenScaleFactor)
+ height: childrenRect.height
+ Cura.SecondaryButton
{
- width: Math.round(childrenRect.width + 2 * screenScaleFactor)
- height: childrenRect.height
- Cura.SecondaryButton
+ text: machineActionRepeater.model[index].label
+ onClicked:
{
- text: machineActionRepeater.model[index].label
- onClicked:
- {
- var currentItem = machineActionRepeater.model[index]
- actionDialog.loader.manager = currentItem
- actionDialog.loader.source = currentItem.qmlPath
- actionDialog.title = currentItem.label
- actionDialog.show()
- }
+ var currentItem = machineActionRepeater.model[index]
+ actionDialog.loader.manager = currentItem
+ actionDialog.loader.source = currentItem.qmlPath
+ actionDialog.title = currentItem.label
+ actionDialog.show()
}
}
}
}
+ }
+ Item
+ {
UM.Dialog
{
id: actionDialog
@@ -139,6 +126,7 @@ UM.ManagementPage
objectList.onCurrentIndexChanged()
}
}
+
Cura.Menu
{
id: menu
diff --git a/resources/qml/Preferences/Materials/MaterialsDetailsPanel.qml b/resources/qml/Preferences/Materials/MaterialsDetailsPanel.qml
index 987a1777c1..c96dadda67 100644
--- a/resources/qml/Preferences/Materials/MaterialsDetailsPanel.qml
+++ b/resources/qml/Preferences/Materials/MaterialsDetailsPanel.qml
@@ -50,29 +50,11 @@ Item
materialProperties.approximate_diameter = currentItem.approximate_diameter || "0"
}
- // Material title Label
- UM.Label {
- id: profileName
-
- width: parent.width
- text: materialProperties.name
- font: UM.Theme.getFont("large_bold")
- elide: Text.ElideRight
- }
-
// Material detailed information view below the title Label
MaterialsView
{
id: materialDetailsView
- anchors
- {
- left: parent.left
- right: parent.right
- top: profileName.bottom
- topMargin: UM.Theme.getSize("default_margin").height
- bottom: parent.bottom
- }
-
+ anchors.fill: parent
editingEnabled: currentItem != null && !currentItem.is_read_only
onResetSelectedMaterial: base.resetExpandedActiveMaterial()
diff --git a/resources/qml/Preferences/Materials/MaterialsPage.qml b/resources/qml/Preferences/Materials/MaterialsPage.qml
index a9012e91b6..6c44033a63 100644
--- a/resources/qml/Preferences/Materials/MaterialsPage.qml
+++ b/resources/qml/Preferences/Materials/MaterialsPage.qml
@@ -68,6 +68,7 @@ UM.ManagementPage
}
title: catalog.i18nc("@title:tab", "Materials")
+ detailsPlaneCation: currentItem.name
scrollviewCaption: catalog.i18nc("@label", "Materials compatible with active printer:") + `
${Cura.MachineManager.activeMachine.name}`
buttons: [
@@ -107,8 +108,13 @@ UM.ManagementPage
}
]
- onHamburgeButtonClicked: menu.popup(content_item, content_item.width - menu.width, hamburger_button.height)
-
+ onHamburgeButtonClicked: {
+ const hamburerButtonHeight = hamburger_button.height;
+ menu.popup(hamburger_button, -menu.width + hamburger_button.width / 2, hamburger_button.height);
+ // for some reason the height of the hamburger changes when opening the popup
+ // reset height to initial heigt
+ hamburger_button.height = hamburerButtonHeight;
+ }
listContent: ScrollView
{
id: materialScrollView
@@ -137,12 +143,14 @@ UM.ManagementPage
}
}
+ MaterialsDetailsPanel
+ {
+ id: materialDetailsPanel
+ anchors.fill: parent
+ }
Item
{
- id: content_item
- anchors.fill: parent
-
Cura.Menu
{
id: menu
@@ -197,12 +205,6 @@ UM.ManagementPage
}
}
- MaterialsDetailsPanel
- {
- id: materialDetailsPanel
- anchors.fill: parent
- }
-
// Dialogs
Cura.MessageDialog
{
diff --git a/resources/qml/Preferences/ProfilesPage.qml b/resources/qml/Preferences/ProfilesPage.qml
index e5848a86c7..1d29b691ed 100644
--- a/resources/qml/Preferences/ProfilesPage.qml
+++ b/resources/qml/Preferences/ProfilesPage.qml
@@ -46,8 +46,6 @@ UM.ManagementPage
property string newQualityNameToSelect: ""
property bool toActivateNewQuality: false
- onHamburgeButtonClicked: menu.popup(content_item, content_item.width - menu.width, hamburger_button.height)
-
onCreateProfile:
{
createQualityDialog.object = Cura.ContainerManager.makeUniqueName(Cura.MachineManager.activeQualityOrQualityChangesName);
@@ -56,10 +54,18 @@ UM.ManagementPage
}
title: catalog.i18nc("@title:tab", "Profiles")
+ detailsPlaneCation: base.currentItemDisplayName
scrollviewCaption: catalog.i18nc("@label", "Profiles compatible with active printer:") + "
" + Cura.MachineManager.activeMachine.name + ""
hamburgerButtonVisible: hasCurrentItem
+ onHamburgeButtonClicked: {
+ const hamburerButtonHeight = hamburger_button.height;
+ menu.popup(hamburger_button, -menu.width + hamburger_button.width / 2, hamburger_button.height);
+ // for some reason the height of the hamburger changes when opening the popup
+ // reset height to initial heigt
+ hamburger_button.height = hamburerButtonHeight;
+ }
sectionRole: "section_name"
model: qualityManagementModel
@@ -86,10 +92,110 @@ UM.ManagementPage
}
]
+ Column
+ {
+ id: detailsPanelHeaderColumn
+ anchors
+ {
+ left: parent.left
+ right: parent.right
+ top: parent.top
+ }
+
+ spacing: UM.Theme.getSize("default_margin").height
+ visible: base.currentItem != null
+
+ Flow
+ {
+ id: currentSettingsActions
+ width: parent.width
+
+ visible: base.hasCurrentItem && base.currentItem.name == Cura.MachineManager.activeQualityOrQualityChangesName && base.currentItem.intent_category == Cura.MachineManager.activeIntentCategory
+
+ Cura.SecondaryButton
+ {
+ text: catalog.i18nc("@action:button", "Update profile with current settings/overrides")
+ enabled: Cura.MachineManager.hasUserSettings && objectList.currentIndex && !objectList.currentIndex.is_read_only
+ onClicked: Cura.ContainerManager.updateQualityChanges()
+ }
+
+ Cura.SecondaryButton
+ {
+ text: catalog.i18nc("@action:button", "Discard current changes")
+ enabled: Cura.MachineManager.hasUserSettings
+ onClicked: Cura.ContainerManager.clearUserContainers()
+ }
+ }
+
+ UM.Label
+ {
+ id: defaultsMessage
+ visible: false
+ text: catalog.i18nc("@action:label", "This profile uses the defaults specified by the printer, so it has no settings/overrides in the list below.")
+ width: parent.width
+ }
+ UM.Label
+ {
+ id: noCurrentSettingsMessage
+ visible: base.isCurrentItemActivated && !Cura.MachineManager.hasUserSettings
+ text: catalog.i18nc("@action:label", "Your current settings match the selected profile.")
+ width: parent.width
+ }
+
+ UM.TabRow
+ {
+ id: profileExtruderTabs
+ UM.TabRowButton // One extra tab for the global settings.
+ {
+ text: catalog.i18nc("@title:tab", "Global Settings")
+ }
+
+ Repeater
+ {
+ model: base.extrudersModel
+
+ UM.TabRowButton
+ {
+ text: model.name
+ }
+ }
+ }
+ }
+
+ Rectangle
+ {
+ color: UM.Theme.getColor("main_background")
+ anchors
+ {
+ top: detailsPanelHeaderColumn.bottom
+ topMargin: -UM.Theme.getSize("default_lining").width
+ left: parent.left
+ right: parent.right
+ bottom: parent.bottom
+ }
+ border.width: UM.Theme.getSize("default_lining").width
+ border.color: UM.Theme.getColor("thick_lining")
+ visible: base.hasCurrentItem
+ }
+
+ Cura.ProfileOverview
+ {
+ anchors
+ {
+ top: detailsPanelHeaderColumn.bottom
+ margins: UM.Theme.getSize("default_margin").height
+ left: parent.left
+ right: parent.right
+ bottom: parent.bottom
+ }
+
+ visible: detailsPanelHeaderColumn.visible
+ qualityItem: base.currentItem
+ extruderPosition: profileExtruderTabs.currentIndex - 1
+ }
+
Item
{
- id: content_item
- anchors.fill: parent
// This connection makes sure that we will switch to the correct quality after the model gets updated
Connections
{
@@ -294,115 +400,5 @@ UM.ManagementPage
CuraApplication.setDefaultPath("dialog_profile_path", folder);
}
}
-
- Column
- {
- id: detailsPanelHeaderColumn
- anchors
- {
- left: parent.left
- right: parent.right
- top: parent.top
- }
-
- spacing: UM.Theme.getSize("default_margin").height
- visible: base.currentItem != null
- UM.Label
- {
- anchors.left: parent.left
- anchors.right: parent.right
- text: base.currentItemDisplayName
- font: UM.Theme.getFont("large_bold")
- elide: Text.ElideRight
- }
-
- Flow
- {
- id: currentSettingsActions
- width: parent.width
-
- visible: base.hasCurrentItem && base.currentItem.name == Cura.MachineManager.activeQualityOrQualityChangesName && base.currentItem.intent_category == Cura.MachineManager.activeIntentCategory
-
- Cura.SecondaryButton
- {
- text: catalog.i18nc("@action:button", "Update profile with current settings/overrides")
- enabled: Cura.MachineManager.hasUserSettings && objectList.currentIndex && !objectList.currentIndex.is_read_only
- onClicked: Cura.ContainerManager.updateQualityChanges()
- }
-
- Cura.SecondaryButton
- {
- text: catalog.i18nc("@action:button", "Discard current changes")
- enabled: Cura.MachineManager.hasUserSettings
- onClicked: Cura.ContainerManager.clearUserContainers()
- }
- }
-
- UM.Label
- {
- id: defaultsMessage
- visible: false
- text: catalog.i18nc("@action:label", "This profile uses the defaults specified by the printer, so it has no settings/overrides in the list below.")
- width: parent.width
- }
- UM.Label
- {
- id: noCurrentSettingsMessage
- visible: base.isCurrentItemActivated && !Cura.MachineManager.hasUserSettings
- text: catalog.i18nc("@action:label", "Your current settings match the selected profile.")
- width: parent.width
- }
-
- UM.TabRow
- {
- id: profileExtruderTabs
- UM.TabRowButton // One extra tab for the global settings.
- {
- text: catalog.i18nc("@title:tab", "Global Settings")
- }
-
- Repeater
- {
- model: base.extrudersModel
-
- UM.TabRowButton
- {
- text: model.name
- }
- }
- }
- }
-
- Rectangle
- {
- color: UM.Theme.getColor("main_background")
- anchors
- {
- top: detailsPanelHeaderColumn.bottom
- topMargin: -UM.Theme.getSize("default_lining").width
- left: parent.left
- right: parent.right
- bottom: parent.bottom
- }
- border.width: UM.Theme.getSize("default_lining").width
- border.color: UM.Theme.getColor("thick_lining")
- visible: base.hasCurrentItem
- }
-
- Cura.ProfileOverview
- {
- anchors
- {
- top: detailsPanelHeaderColumn.bottom
- margins: UM.Theme.getSize("default_margin").height
- left: parent.left
- right: parent.right
- bottom: parent.bottom
- }
-
- visible: detailsPanelHeaderColumn.visible
- qualityItem: base.currentItem
- extruderPosition: profileExtruderTabs.currentIndex - 1
- }
}
}