mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-15 06:45:57 +08:00
Merge pull request #16626 from Ultimaker/CURA-10896_improve_add_printer_wizard
CURA-10896_improve_add_printer_wizard
This commit is contained in:
commit
e27779564a
@ -822,12 +822,26 @@ UM.MainWindow
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Cura.WizardDialog
|
property var wizardDialog
|
||||||
|
Component
|
||||||
{
|
{
|
||||||
id: addMachineDialog
|
id: addMachineDialogLoader
|
||||||
title: catalog.i18nc("@title:window", "Add Printer")
|
|
||||||
model: CuraApplication.getAddPrinterPagesModel()
|
Cura.WizardDialog
|
||||||
progressBarVisible: false
|
{
|
||||||
|
title: catalog.i18nc("@title:window", "Add Printer")
|
||||||
|
maximumWidth: Screen.width * 2
|
||||||
|
maximumHeight: Screen.height * 2
|
||||||
|
model: CuraApplication.getAddPrinterPagesModel()
|
||||||
|
progressBarVisible: false
|
||||||
|
onVisibleChanged:
|
||||||
|
{
|
||||||
|
if(!visible)
|
||||||
|
{
|
||||||
|
wizardDialog = null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Cura.WizardDialog
|
Cura.WizardDialog
|
||||||
@ -852,9 +866,8 @@ UM.MainWindow
|
|||||||
target: Cura.Actions.addMachine
|
target: Cura.Actions.addMachine
|
||||||
function onTriggered()
|
function onTriggered()
|
||||||
{
|
{
|
||||||
// Make sure to show from the first page when the dialog shows up.
|
wizardDialog = addMachineDialogLoader.createObject()
|
||||||
addMachineDialog.resetModelState()
|
wizardDialog.show()
|
||||||
addMachineDialog.show()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,6 +55,7 @@ UM.TooltipArea
|
|||||||
}
|
}
|
||||||
|
|
||||||
ScrollBar.vertical: UM.ScrollBar {}
|
ScrollBar.vertical: UM.ScrollBar {}
|
||||||
|
clip: true
|
||||||
|
|
||||||
TextArea.flickable: TextArea
|
TextArea.flickable: TextArea
|
||||||
{
|
{
|
||||||
@ -70,6 +71,7 @@ UM.TooltipArea
|
|||||||
selectionColor: UM.Theme.getColor("text_selection")
|
selectionColor: UM.Theme.getColor("text_selection")
|
||||||
selectedTextColor: UM.Theme.getColor("text")
|
selectedTextColor: UM.Theme.getColor("text")
|
||||||
wrapMode: TextEdit.NoWrap
|
wrapMode: TextEdit.NoWrap
|
||||||
|
padding: UM.Theme.getSize("narrow_margin").height + backgroundRectangle.border.width
|
||||||
|
|
||||||
onActiveFocusChanged:
|
onActiveFocusChanged:
|
||||||
{
|
{
|
||||||
@ -81,8 +83,9 @@ UM.TooltipArea
|
|||||||
|
|
||||||
background: Rectangle
|
background: Rectangle
|
||||||
{
|
{
|
||||||
|
id: backgroundRectangle
|
||||||
|
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
anchors.margins: -border.width //Wrap the border around the parent.
|
|
||||||
|
|
||||||
color: UM.Theme.getColor("detail_background")
|
color: UM.Theme.getColor("detail_background")
|
||||||
border.color:
|
border.color:
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
import QtQuick 2.10
|
import QtQuick 2.10
|
||||||
import QtQuick.Controls 2.3
|
import QtQuick.Controls 2.3
|
||||||
|
import QtQuick.Layouts 2.3
|
||||||
|
|
||||||
import UM 1.5 as UM
|
import UM 1.5 as UM
|
||||||
import Cura 1.1 as Cura
|
import Cura 1.1 as Cura
|
||||||
@ -15,9 +16,7 @@ import Cura 1.1 as Cura
|
|||||||
Item
|
Item
|
||||||
{
|
{
|
||||||
id: base
|
id: base
|
||||||
height: networkPrinterInfo.height + controlsRectangle.height
|
|
||||||
|
|
||||||
property alias maxItemCountAtOnce: networkPrinterListView.maxItemCountAtOnce
|
|
||||||
property var currentItem: (networkPrinterListView.currentIndex >= 0)
|
property var currentItem: (networkPrinterListView.currentIndex >= 0)
|
||||||
? networkPrinterListView.model[networkPrinterListView.currentIndex]
|
? networkPrinterListView.model[networkPrinterListView.currentIndex]
|
||||||
: null
|
: null
|
||||||
@ -29,35 +28,32 @@ Item
|
|||||||
Item
|
Item
|
||||||
{
|
{
|
||||||
id: networkPrinterInfo
|
id: networkPrinterInfo
|
||||||
height: networkPrinterListView.visible ? networkPrinterListView.height : noPrinterLabel.height
|
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
|
anchors.bottom: separator.top
|
||||||
|
|
||||||
UM.Label
|
UM.Label
|
||||||
{
|
{
|
||||||
id: noPrinterLabel
|
id: noPrinterLabel
|
||||||
height: UM.Theme.getSize("setting_control").height + UM.Theme.getSize("default_margin").height
|
height: UM.Theme.getSize("setting_control").height + UM.Theme.getSize("default_margin").height
|
||||||
anchors.left: parent.left
|
anchors.fill: parent
|
||||||
anchors.leftMargin: UM.Theme.getSize("default_margin").width
|
anchors.margins: UM.Theme.getSize("default_margin").width
|
||||||
text: catalog.i18nc("@label", "There is no printer found over your network.")
|
text: catalog.i18nc("@label", "There is no printer found over your network.")
|
||||||
visible: networkPrinterListView.count == 0 // Do not show if there are discovered devices.
|
visible: networkPrinterListView.count == 0 // Do not show if there are discovered devices.
|
||||||
|
verticalAlignment: Text.AlignTop
|
||||||
}
|
}
|
||||||
|
|
||||||
ListView
|
ListView
|
||||||
{
|
{
|
||||||
id: networkPrinterListView
|
id: networkPrinterListView
|
||||||
anchors.top: parent.top
|
anchors.fill: parent
|
||||||
anchors.left: parent.left
|
|
||||||
anchors.right: parent.right
|
|
||||||
height: Math.min(contentHeight, (maxItemCountAtOnce * UM.Theme.getSize("action_button").height) - UM.Theme.getSize("default_margin").height)
|
|
||||||
|
|
||||||
ScrollBar.vertical: UM.ScrollBar
|
ScrollBar.vertical: UM.ScrollBar
|
||||||
{
|
{
|
||||||
id: networkPrinterScrollBar
|
id: networkPrinterScrollBar
|
||||||
}
|
}
|
||||||
clip: true
|
clip: true
|
||||||
property int maxItemCountAtOnce: 8 // show at max 8 items at once, otherwise you need to scroll.
|
|
||||||
visible: networkPrinterListView.count > 0
|
visible: networkPrinterListView.count > 0
|
||||||
|
|
||||||
model: contentLoader.enabled ? CuraApplication.getDiscoveredPrintersModel().discoveredPrinters: undefined
|
model: contentLoader.enabled ? CuraApplication.getDiscoveredPrintersModel().discoveredPrinters: undefined
|
||||||
@ -138,7 +134,7 @@ Item
|
|||||||
{
|
{
|
||||||
id: separator
|
id: separator
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.top: networkPrinterInfo.bottom
|
anchors.bottom: controlsRectangle.top
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
height: UM.Theme.getSize("default_lining").height
|
height: UM.Theme.getSize("default_lining").height
|
||||||
color: UM.Theme.getColor("lining")
|
color: UM.Theme.getColor("lining")
|
||||||
@ -149,7 +145,7 @@ Item
|
|||||||
id: controlsRectangle
|
id: controlsRectangle
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.top: separator.bottom
|
anchors.bottom: parent.bottom
|
||||||
|
|
||||||
height: UM.Theme.getSize("message_action_button").height + UM.Theme.getSize("default_margin").height
|
height: UM.Theme.getSize("message_action_button").height + UM.Theme.getSize("default_margin").height
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
import QtQuick 2.10
|
import QtQuick 2.10
|
||||||
import QtQuick.Controls 2.3
|
import QtQuick.Controls 2.3
|
||||||
|
import QtQuick.Layouts 2.3
|
||||||
|
|
||||||
import UM 1.5 as UM
|
import UM 1.5 as UM
|
||||||
import Cura 1.1 as Cura
|
import Cura 1.1 as Cura
|
||||||
@ -17,79 +18,84 @@ Item
|
|||||||
|
|
||||||
property var goToUltimakerPrinter
|
property var goToUltimakerPrinter
|
||||||
|
|
||||||
DropDownWidget
|
ColumnLayout
|
||||||
{
|
{
|
||||||
id: addNetworkPrinterDropDown
|
|
||||||
|
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
|
anchors.topMargin: UM.Theme.getSize("wide_margin").height
|
||||||
|
anchors.bottom: backButton.top
|
||||||
|
anchors.bottomMargin: UM.Theme.getSize("default_margin").height
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.topMargin: UM.Theme.getSize("wide_margin").height
|
|
||||||
|
|
||||||
title: catalog.i18nc("@label", "Add a networked printer")
|
spacing: UM.Theme.getSize("default_margin").height
|
||||||
contentShown: true // by default expand the network printer list
|
|
||||||
|
|
||||||
onClicked:
|
DropDownWidget
|
||||||
{
|
{
|
||||||
addLocalPrinterDropDown.contentShown = !contentShown
|
id: addNetworkPrinterDropDown
|
||||||
}
|
|
||||||
|
|
||||||
contentComponent: networkPrinterListComponent
|
Layout.fillWidth: true
|
||||||
Component
|
Layout.fillHeight: contentShown
|
||||||
{
|
|
||||||
id: networkPrinterListComponent
|
title: catalog.i18nc("@label", "Add a networked printer")
|
||||||
AddNetworkPrinterScrollView
|
contentShown: true // by default expand the network printer list
|
||||||
|
|
||||||
|
onClicked:
|
||||||
{
|
{
|
||||||
id: networkPrinterScrollView
|
addLocalPrinterDropDown.contentShown = !contentShown
|
||||||
|
}
|
||||||
|
|
||||||
maxItemCountAtOnce: 9 // show at max 9 items at once, otherwise you need to scroll.
|
contentComponent: networkPrinterListComponent
|
||||||
|
Component
|
||||||
onRefreshButtonClicked:
|
{
|
||||||
|
id: networkPrinterListComponent
|
||||||
|
AddNetworkPrinterScrollView
|
||||||
{
|
{
|
||||||
UM.OutputDeviceManager.startDiscovery()
|
id: networkPrinterScrollView
|
||||||
}
|
|
||||||
|
|
||||||
onAddByIpButtonClicked:
|
onRefreshButtonClicked:
|
||||||
{
|
|
||||||
base.goToPage("add_printer_by_ip")
|
|
||||||
}
|
|
||||||
|
|
||||||
onAddCloudPrinterButtonClicked:
|
|
||||||
{
|
|
||||||
base.goToPage("add_cloud_printers")
|
|
||||||
if (!Cura.API.account.isLoggedIn)
|
|
||||||
{
|
{
|
||||||
Cura.API.account.login()
|
UM.OutputDeviceManager.startDiscovery()
|
||||||
|
}
|
||||||
|
|
||||||
|
onAddByIpButtonClicked:
|
||||||
|
{
|
||||||
|
base.goToPage("add_printer_by_ip")
|
||||||
|
}
|
||||||
|
|
||||||
|
onAddCloudPrinterButtonClicked:
|
||||||
|
{
|
||||||
|
base.goToPage("add_cloud_printers")
|
||||||
|
if (!Cura.API.account.isLoggedIn)
|
||||||
|
{
|
||||||
|
Cura.API.account.login()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
DropDownWidget
|
DropDownWidget
|
||||||
{
|
|
||||||
id: addLocalPrinterDropDown
|
|
||||||
|
|
||||||
anchors.top: addNetworkPrinterDropDown.bottom
|
|
||||||
anchors.left: parent.left
|
|
||||||
anchors.right: parent.right
|
|
||||||
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
|
||||||
|
|
||||||
title: catalog.i18nc("@label", "Add a non-networked printer")
|
|
||||||
|
|
||||||
onClicked:
|
|
||||||
{
|
{
|
||||||
addNetworkPrinterDropDown.contentShown = !contentShown
|
id: addLocalPrinterDropDown
|
||||||
}
|
|
||||||
|
|
||||||
contentComponent: localPrinterListComponent
|
Layout.fillWidth: true
|
||||||
Component
|
Layout.fillHeight: contentShown
|
||||||
{
|
|
||||||
id: localPrinterListComponent
|
title: catalog.i18nc("@label", "Add a non-networked printer")
|
||||||
AddLocalPrinterScrollView
|
|
||||||
|
onClicked:
|
||||||
{
|
{
|
||||||
id: localPrinterView
|
addNetworkPrinterDropDown.contentShown = !contentShown
|
||||||
height: backButton.y - addLocalPrinterDropDown.y - UM.Theme.getSize("expandable_component_content_header").height - UM.Theme.getSize("default_margin").height
|
}
|
||||||
|
|
||||||
|
contentComponent: localPrinterListComponent
|
||||||
|
Component
|
||||||
|
{
|
||||||
|
id: localPrinterListComponent
|
||||||
|
AddLocalPrinterScrollView
|
||||||
|
{
|
||||||
|
id: localPrinterView
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@ Item
|
|||||||
id: base
|
id: base
|
||||||
|
|
||||||
implicitWidth: 200 * screenScaleFactor
|
implicitWidth: 200 * screenScaleFactor
|
||||||
height: header.contentShown ? (header.height + contentRectangle.height) : header.height
|
implicitHeight: contentShown ? (header.height + contentRectangle.implicitHeight) : header.height
|
||||||
|
|
||||||
property var contentComponent: null
|
property var contentComponent: null
|
||||||
property alias contentItem: contentLoader.item
|
property alias contentItem: contentLoader.item
|
||||||
@ -56,12 +56,14 @@ Item
|
|||||||
Cura.RoundedRectangle
|
Cura.RoundedRectangle
|
||||||
{
|
{
|
||||||
id: contentRectangle
|
id: contentRectangle
|
||||||
|
anchors.top: header.bottom
|
||||||
// Move up a bit (exactly the width of the border) to avoid double line
|
// Move up a bit (exactly the width of the border) to avoid double line
|
||||||
y: header.height - UM.Theme.getSize("default_lining").width
|
anchors.topMargin: -UM.Theme.getSize("default_lining").width
|
||||||
anchors.left: header.left
|
anchors.left: header.left
|
||||||
anchors.right: header.right
|
anchors.right: header.right
|
||||||
|
anchors.bottom: parent.bottom
|
||||||
// Add 2x lining, because it needs a bit of space on the top and the bottom.
|
// Add 2x lining, because it needs a bit of space on the top and the bottom.
|
||||||
height: contentLoader.item ? contentLoader.item.height + 2 * UM.Theme.getSize("thick_lining").height : 0
|
anchors.bottomMargin: UM.Theme.getSize("thick_lining").height
|
||||||
|
|
||||||
border.width: UM.Theme.getSize("default_lining").width
|
border.width: UM.Theme.getSize("default_lining").width
|
||||||
border.color: UM.Theme.getColor("lining")
|
border.color: UM.Theme.getColor("lining")
|
||||||
@ -73,9 +75,7 @@ Item
|
|||||||
Loader
|
Loader
|
||||||
{
|
{
|
||||||
id: contentLoader
|
id: contentLoader
|
||||||
anchors.top: parent.top
|
anchors.fill: parent
|
||||||
anchors.left: parent.left
|
|
||||||
anchors.right: parent.right
|
|
||||||
// Keep a small margin with the Rectangle container so its content will not overlap with the Rectangle
|
// Keep a small margin with the Rectangle container so its content will not overlap with the Rectangle
|
||||||
// border.
|
// border.
|
||||||
anchors.margins: UM.Theme.getSize("default_lining").width
|
anchors.margins: UM.Theme.getSize("default_lining").width
|
||||||
|
@ -32,11 +32,6 @@ Window
|
|||||||
property var model: null // Needs to be set by whoever is using this dialog.
|
property var model: null // Needs to be set by whoever is using this dialog.
|
||||||
property alias progressBarVisible: wizardPanel.progressBarVisible
|
property alias progressBarVisible: wizardPanel.progressBarVisible
|
||||||
|
|
||||||
function resetModelState()
|
|
||||||
{
|
|
||||||
model.resetState()
|
|
||||||
}
|
|
||||||
|
|
||||||
WizardPanel
|
WizardPanel
|
||||||
{
|
{
|
||||||
id: wizardPanel
|
id: wizardPanel
|
||||||
|
Loading…
x
Reference in New Issue
Block a user