Merge branch 'master' of github.com:Ultimaker/Cura

This commit is contained in:
Jaime van Kessel 2017-05-09 13:19:05 +02:00
commit bb2600cd17
2 changed files with 107 additions and 100 deletions

View File

@ -14,8 +14,8 @@ UM.Dialog
id: base id: base
title: catalog.i18nc("@title:window", "Discard or Keep changes") title: catalog.i18nc("@title:window", "Discard or Keep changes")
width: 800 * Screen.devicePixelRatio width: 800
height: 400 * Screen.devicePixelRatio height: 400
property var changesModel: Cura.UserChangesModel{ id: userChangesModel} property var changesModel: Cura.UserChangesModel{ id: userChangesModel}
onVisibilityChanged: onVisibilityChanged:
{ {
@ -36,9 +36,14 @@ UM.Dialog
} }
} }
Column Row
{ {
anchors.fill: parent id: infoTextRow
height: childrenRect.height
anchors.margins: UM.Theme.getSize("default_margin").width
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
spacing: UM.Theme.getSize("default_margin").width spacing: UM.Theme.getSize("default_margin").width
UM.I18nCatalog UM.I18nCatalog
@ -47,29 +52,26 @@ UM.Dialog
name: "cura" name: "cura"
} }
Row Label
{ {
height: childrenRect.height text: catalog.i18nc("@text:window", "You have customized some profile settings.\nWould you like to keep or discard those settings?")
anchors.margins: UM.Theme.getSize("default_margin").width anchors.margins: UM.Theme.getSize("default_margin").width
anchors.left: parent.left font: UM.Theme.getFont("default")
anchors.right: parent.right wrapMode: Text.WordWrap
spacing: UM.Theme.getSize("default_margin").width
Label
{
text: catalog.i18nc("@text:window", "You have customized some profile settings.\nWould you like to keep or discard those settings?")
anchors.margins: UM.Theme.getSize("default_margin").width
font: UM.Theme.getFont("default")
wrapMode: Text.WordWrap
}
} }
}
Item
{
anchors.margins: UM.Theme.getSize("default_margin").width
anchors.top: infoTextRow.bottom
anchors.bottom: optionRow.top
anchors.left: parent.left
anchors.right: parent.right
TableView TableView
{ {
anchors.margins: UM.Theme.getSize("default_margin").width anchors.fill: parent
anchors.left: parent.left height: base.height - 150
anchors.right: parent.right
height: base.height - 150 * Screen.devicePixelRatio
id: tableView id: tableView
Component Component
{ {
@ -132,92 +134,96 @@ UM.Dialog
model: base.changesModel model: base.changesModel
} }
}
Item Item
{
id: optionRow
anchors.bottom: buttonsRow.top
anchors.right: parent.right
anchors.left: parent.left
anchors.margins: UM.Theme.getSize("default_margin").width
height: childrenRect.height
ComboBox
{ {
anchors.right: parent.right id: discardOrKeepProfileChangesDropDownButton
anchors.left: parent.left width: 300
anchors.margins: UM.Theme.getSize("default_margin").width
height:childrenRect.height
ComboBox model: ListModel
{ {
id: discardOrKeepProfileChangesDropDownButton id: discardOrKeepProfileListModel
width: 300
model: ListModel Component.onCompleted: {
{ append({ text: catalog.i18nc("@option:discardOrKeep", "Always ask me this"), code: "always_ask" })
id: discardOrKeepProfileListModel append({ text: catalog.i18nc("@option:discardOrKeep", "Discard and never ask again"), code: "always_discard" })
append({ text: catalog.i18nc("@option:discardOrKeep", "Keep and never ask again"), code: "always_keep" })
Component.onCompleted: {
append({ text: catalog.i18nc("@option:discardOrKeep", "Always ask me this"), code: "always_ask" })
append({ text: catalog.i18nc("@option:discardOrKeep", "Discard and never ask again"), code: "always_discard" })
append({ text: catalog.i18nc("@option:discardOrKeep", "Keep and never ask again"), code: "always_keep" })
}
}
onActivated:
{
var code = model.get(index).code;
UM.Preferences.setValue("cura/choice_on_profile_override", code);
if (code == "always_keep") {
keepButton.enabled = true;
discardButton.enabled = false;
}
else if (code == "always_discard") {
keepButton.enabled = false;
discardButton.enabled = true;
}
else {
keepButton.enabled = true;
discardButton.enabled = true;
}
}
}
}
Item
{
anchors.right: parent.right
anchors.left: parent.left
anchors.margins: UM.Theme.getSize("default_margin").width
height: childrenRect.height
Button
{
id: discardButton
text: catalog.i18nc("@action:button", "Discard");
anchors.right: parent.right
onClicked:
{
CuraApplication.discardOrKeepProfileChangesClosed("discard")
base.hide()
}
isDefault: true
}
Button
{
id: keepButton
text: catalog.i18nc("@action:button", "Keep");
anchors.right: discardButton.left
anchors.rightMargin: UM.Theme.getSize("default_margin").width
onClicked:
{
CuraApplication.discardOrKeepProfileChangesClosed("keep")
base.hide()
} }
} }
Button onActivated:
{ {
id: createNewProfileButton var code = model.get(index).code;
text: catalog.i18nc("@action:button", "Create New Profile"); UM.Preferences.setValue("cura/choice_on_profile_override", code);
anchors.left: parent.left
action: Cura.Actions.addProfile if (code == "always_keep") {
onClicked: base.hide() keepButton.enabled = true;
discardButton.enabled = false;
}
else if (code == "always_discard") {
keepButton.enabled = false;
discardButton.enabled = true;
}
else {
keepButton.enabled = true;
discardButton.enabled = true;
}
} }
} }
} }
Item
{
id: buttonsRow
anchors.bottom: parent.bottom
anchors.right: parent.right
anchors.left: parent.left
anchors.margins: UM.Theme.getSize("default_margin").width
height: childrenRect.height
Button
{
id: discardButton
text: catalog.i18nc("@action:button", "Discard");
anchors.right: parent.right
onClicked:
{
CuraApplication.discardOrKeepProfileChangesClosed("discard")
base.hide()
}
isDefault: true
}
Button
{
id: keepButton
text: catalog.i18nc("@action:button", "Keep");
anchors.right: discardButton.left
anchors.rightMargin: UM.Theme.getSize("default_margin").width
onClicked:
{
CuraApplication.discardOrKeepProfileChangesClosed("keep")
base.hide()
}
}
Button
{
id: createNewProfileButton
text: catalog.i18nc("@action:button", "Create New Profile");
anchors.left: parent.left
action: Cura.Actions.addProfile
onClicked: base.hide()
}
}
} }

7
tests/Settings/TestGlobalStack.py Normal file → Executable file
View File

@ -78,9 +78,10 @@ def test_addExtruder(global_stack):
global_stack.addExtruder(second_extruder) global_stack.addExtruder(second_extruder)
assert len(global_stack.extruders) == 2 assert len(global_stack.extruders) == 2
assert global_stack.extruders[1] == second_extruder assert global_stack.extruders[1] == second_extruder
with unittest.mock.patch("cura.Settings.CuraContainerStack.DefinitionContainer", unittest.mock.MagicMock): # Disabled for now for Custom FDM Printer
with pytest.raises(TooManyExtrudersError): #Should be limited to 2 extruders because of machine_extruder_count. # with unittest.mock.patch("cura.Settings.CuraContainerStack.DefinitionContainer", unittest.mock.MagicMock):
global_stack.addExtruder(unittest.mock.MagicMock()) # with pytest.raises(TooManyExtrudersError): #Should be limited to 2 extruders because of machine_extruder_count.
# global_stack.addExtruder(unittest.mock.MagicMock())
assert len(global_stack.extruders) == 2 #Didn't add the faulty extruder. assert len(global_stack.extruders) == 2 #Didn't add the faulty extruder.
#Tests setting user changes profiles to invalid containers. #Tests setting user changes profiles to invalid containers.