mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-08-08 14:34:01 -06:00
Merge remote-tracking branch 'origin/4.0' into CURA-6011_connection_types
This commit is contained in:
commit
a1ad7851d9
8 changed files with 56 additions and 28 deletions
|
@ -12,6 +12,12 @@ Item
|
|||
{
|
||||
id: widget
|
||||
|
||||
function requestWriteToDevice()
|
||||
{
|
||||
UM.OutputDeviceManager.requestWriteToDevice(UM.OutputDeviceManager.activeDevice, PrintInformation.jobName,
|
||||
{ "filter_by_machine": true, "preferred_mimetypes": Cura.MachineManager.activeMachine.preferred_output_file_formats });
|
||||
}
|
||||
|
||||
Cura.PrimaryButton
|
||||
{
|
||||
id: saveToButton
|
||||
|
@ -32,9 +38,8 @@ Item
|
|||
|
||||
onClicked:
|
||||
{
|
||||
forceActiveFocus();
|
||||
UM.OutputDeviceManager.requestWriteToDevice(UM.OutputDeviceManager.activeDevice, PrintInformation.jobName,
|
||||
{ "filter_by_machine": true, "preferred_mimetypes": Cura.MachineManager.activeMachine.preferred_output_file_formats });
|
||||
forceActiveFocus()
|
||||
widget.requestWriteToDevice()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -81,6 +86,7 @@ Item
|
|||
delegate: Cura.ActionButton
|
||||
{
|
||||
text: model.description
|
||||
visible: model.id != UM.OutputDeviceManager.activeDevice // Don't show the active device in the list
|
||||
color: "transparent"
|
||||
cornerRadius: 0
|
||||
hoverColor: UM.Theme.getColor("primary")
|
||||
|
@ -88,6 +94,7 @@ Item
|
|||
onClicked:
|
||||
{
|
||||
UM.OutputDeviceManager.setActiveDevice(model.id)
|
||||
widget.requestWriteToDevice()
|
||||
popup.close()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -278,16 +278,33 @@ UM.MainWindow
|
|||
height: UM.Theme.getSize("stage_menu").height
|
||||
source: UM.Controller.activeStage != null ? UM.Controller.activeStage.stageMenuComponent : ""
|
||||
|
||||
// HACK: This is to ensure that the parent never gets set to null, as this wreaks havoc on the focus.
|
||||
function onParentDestroyed()
|
||||
{
|
||||
printSetupSelector.parent = stageMenu
|
||||
printSetupSelector.visible = false
|
||||
}
|
||||
property Item oldParent: null
|
||||
|
||||
// The printSetupSelector is defined here so that the setting list doesn't need to get re-instantiated
|
||||
// Every time the stage is changed.
|
||||
property var printSetupSelector: Cura.PrintSetupSelector
|
||||
{
|
||||
width: UM.Theme.getSize("print_setup_widget").width
|
||||
height: UM.Theme.getSize("stage_menu").height
|
||||
headerCornerSide: RoundedRectangle.Direction.Right
|
||||
width: UM.Theme.getSize("print_setup_widget").width
|
||||
height: UM.Theme.getSize("stage_menu").height
|
||||
headerCornerSide: RoundedRectangle.Direction.Right
|
||||
onParentChanged:
|
||||
{
|
||||
if(stageMenu.oldParent !=null)
|
||||
{
|
||||
stageMenu.oldParent.Component.destruction.disconnect(stageMenu.onParentDestroyed)
|
||||
}
|
||||
stageMenu.oldParent = parent
|
||||
visible = parent != stageMenu
|
||||
parent.Component.destruction.connect(stageMenu.onParentDestroyed)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
UM.MessageStack
|
||||
{
|
||||
anchors
|
||||
|
|
|
@ -54,16 +54,23 @@ Item
|
|||
{
|
||||
text: model.name.toUpperCase()
|
||||
checkable: true
|
||||
checked: model.active
|
||||
checked: UM.Controller.activeStage != null ? model.id == UM.Controller.activeStage.stageId : false
|
||||
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
exclusiveGroup: mainWindowHeaderMenuGroup
|
||||
style: UM.Theme.styles.main_window_header_tab
|
||||
height: UM.Theme.getSize("main_window_header_button").height
|
||||
onClicked: UM.Controller.setActiveStage(model.id)
|
||||
iconSource: model.stage.iconSource
|
||||
|
||||
property color overlayColor: "transparent"
|
||||
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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -39,6 +39,7 @@ Item
|
|||
{
|
||||
target: Cura.QualityProfilesDropDownMenuModel
|
||||
onItemsChanged: qualityModel.update()
|
||||
onDataChanged: qualityModel.update()
|
||||
}
|
||||
|
||||
Connections {
|
||||
|
|
|
@ -14,24 +14,28 @@ Cura.ExpandablePopup
|
|||
contentPadding: UM.Theme.getSize("default_lining").width
|
||||
contentAlignment: Cura.ExpandablePopup.ContentAlignment.AlignLeft
|
||||
|
||||
property var viewModel: UM.ViewModel { }
|
||||
|
||||
property var activeView:
|
||||
property var viewModel: UM.ViewModel
|
||||
{
|
||||
for (var i = 0; i < viewModel.count; i++)
|
||||
onDataChanged: updateActiveView()
|
||||
}
|
||||
|
||||
property var activeView: null
|
||||
|
||||
function updateActiveView()
|
||||
{
|
||||
for (var index in viewModel.items)
|
||||
{
|
||||
if (viewModel.items[i].active)
|
||||
if (viewModel.items[index].active)
|
||||
{
|
||||
return viewModel.items[i]
|
||||
activeView = viewModel.items[index]
|
||||
return
|
||||
}
|
||||
}
|
||||
return null
|
||||
activeView = null
|
||||
}
|
||||
|
||||
Component.onCompleted:
|
||||
{
|
||||
// Nothing was active, so just return the first one (the list is sorted by priority, so the most
|
||||
// important one should be returned)
|
||||
if (activeView == null)
|
||||
{
|
||||
UM.Controller.setActiveView(viewModel.getItem(0).id)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue