mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-05-03 01:04:35 +08:00
Merge branch 'WIP_onboarding' of https://github.com/Ultimaker/Cura into WIP_onboarding
This commit is contained in:
commit
c1cde2ebc0
@ -1,12 +1,13 @@
|
|||||||
// Copyright (c) 2018 Ultimaker B.V.
|
// Copyright (c) 2018 Ultimaker B.V.
|
||||||
// Cura is released under the terms of the LGPLv3 or higher.
|
// Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
import QtQuick 2.7
|
import QtQuick 2.10
|
||||||
import QtQuick.Controls 2.1
|
import QtQuick.Controls 2.3
|
||||||
|
|
||||||
import UM 1.1 as UM
|
import UM 1.1 as UM
|
||||||
import Cura 1.0 as Cura
|
import Cura 1.0 as Cura
|
||||||
|
|
||||||
|
|
||||||
Button
|
Button
|
||||||
{
|
{
|
||||||
id: machineSelectorButton
|
id: machineSelectorButton
|
||||||
|
106
resources/qml/WelcomePages/AddPrinterNetwork.qml
Normal file
106
resources/qml/WelcomePages/AddPrinterNetwork.qml
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
// Copyright (c) 2019 Ultimaker B.V.
|
||||||
|
// Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
|
import QtQuick 2.10
|
||||||
|
import QtQuick.Controls 2.3
|
||||||
|
|
||||||
|
import UM 1.3 as UM
|
||||||
|
import Cura 1.1 as Cura
|
||||||
|
|
||||||
|
import "../PrinterSelector"
|
||||||
|
|
||||||
|
//
|
||||||
|
// This component contains the content for the "Add a printer" (network) page of the welcome on-boarding process.
|
||||||
|
//
|
||||||
|
Item
|
||||||
|
{
|
||||||
|
UM.I18nCatalog { id: catalog; name: "cura" }
|
||||||
|
|
||||||
|
Label
|
||||||
|
{
|
||||||
|
id: titleLabel
|
||||||
|
anchors.top: parent.top
|
||||||
|
anchors.topMargin: 40
|
||||||
|
anchors.horizontalCenter: parent.horizontalCenter
|
||||||
|
horizontalAlignment: Text.AlignHCenter
|
||||||
|
text: catalog.i18nc("@label", "Add a printer")
|
||||||
|
color: UM.Theme.getColor("primary_button")
|
||||||
|
font: UM.Theme.getFont("large_bold")
|
||||||
|
renderType: Text.NativeRendering
|
||||||
|
}
|
||||||
|
|
||||||
|
DropDownWidget
|
||||||
|
{
|
||||||
|
id: addNetworkPrinterDropDown
|
||||||
|
|
||||||
|
anchors.top: titleLabel.bottom
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.margins: 20
|
||||||
|
|
||||||
|
title: catalog.i18nc("@label", "Add a network printer")
|
||||||
|
|
||||||
|
contentComponent: networkPrinterListComponent
|
||||||
|
|
||||||
|
Component
|
||||||
|
{
|
||||||
|
id: networkPrinterListComponent
|
||||||
|
|
||||||
|
ScrollView
|
||||||
|
{
|
||||||
|
ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
|
||||||
|
ScrollBar.vertical.policy: ScrollBar.AlwaysOn
|
||||||
|
|
||||||
|
property int maxItemCountAtOnce: 5 // show at max 10 items at once, otherwise you need to scroll.
|
||||||
|
height: maxItemCountAtOnce * (UM.Theme.getSize("action_button").height)
|
||||||
|
|
||||||
|
clip: true
|
||||||
|
|
||||||
|
ListView
|
||||||
|
{
|
||||||
|
id: listView
|
||||||
|
anchors.fill: parent
|
||||||
|
model: Cura.GlobalStacksModel {} // TODO: change this to the network printers
|
||||||
|
|
||||||
|
delegate: MachineSelectorButton
|
||||||
|
{
|
||||||
|
text: model.name
|
||||||
|
width: listView.width - UM.Theme.getSize("default_margin").width
|
||||||
|
outputDevice: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null
|
||||||
|
|
||||||
|
checked: ListView.view.currentIndex == index
|
||||||
|
onClicked:
|
||||||
|
{
|
||||||
|
ListView.view.currentIndex = index
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
DropDownWidget
|
||||||
|
{
|
||||||
|
id: addLocalPrinterDropDown
|
||||||
|
|
||||||
|
anchors.top: addNetworkPrinterDropDown.bottom
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.margins: 20
|
||||||
|
|
||||||
|
title: catalog.i18nc("@label", "Add a non-network printer")
|
||||||
|
}
|
||||||
|
|
||||||
|
Cura.PrimaryButton
|
||||||
|
{
|
||||||
|
id: nextButton
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.bottom: parent.bottom
|
||||||
|
anchors.margins: 40
|
||||||
|
enabled: true // TODO
|
||||||
|
text: catalog.i18nc("@button", "Next")
|
||||||
|
width: 140
|
||||||
|
fixedWidthMode: true
|
||||||
|
onClicked: base.showNextPage()
|
||||||
|
}
|
||||||
|
}
|
71
resources/qml/WelcomePages/DropDownHeader.qml
Normal file
71
resources/qml/WelcomePages/DropDownHeader.qml
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
// Copyright (c) 2019 Ultimaker B.V.
|
||||||
|
// Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
|
import QtQuick 2.10
|
||||||
|
import QtQuick.Controls 2.3
|
||||||
|
|
||||||
|
import UM 1.3 as UM
|
||||||
|
import Cura 1.1 as Cura
|
||||||
|
|
||||||
|
import ".."
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// This is DropDown Header bar of the expandable drop down list.
|
||||||
|
//
|
||||||
|
Cura.RoundedRectangle
|
||||||
|
{
|
||||||
|
UM.I18nCatalog { id: catalog; name: "cura" }
|
||||||
|
|
||||||
|
id: base
|
||||||
|
|
||||||
|
border.width: UM.Theme.getSize("default_lining").width
|
||||||
|
border.color: UM.Theme.getColor("lining")
|
||||||
|
color: hovered ? UM.Theme.getColor("secondary_button_hover") : UM.Theme.getColor("secondary_button")
|
||||||
|
radius: UM.Theme.getSize("default_radius").width
|
||||||
|
|
||||||
|
cornerSide: contentShown ? Cura.RoundedRectangle.Direction.Up : Cura.RoundedRectangle.Direction.All
|
||||||
|
|
||||||
|
property string title: ""
|
||||||
|
property url rightIconSource: UM.Theme.getIcon("arrow_bottom")
|
||||||
|
|
||||||
|
// If the tab is under hovering state
|
||||||
|
property bool hovered: false
|
||||||
|
// If the content is shown
|
||||||
|
property bool contentShown: false
|
||||||
|
|
||||||
|
MouseArea
|
||||||
|
{
|
||||||
|
anchors.fill: parent
|
||||||
|
hoverEnabled: true
|
||||||
|
onEntered: base.hovered = true
|
||||||
|
onExited: base.hovered = false
|
||||||
|
|
||||||
|
onClicked: base.contentShown = !base.contentShown
|
||||||
|
}
|
||||||
|
|
||||||
|
Label
|
||||||
|
{
|
||||||
|
id: title
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.leftMargin: UM.Theme.getSize("default_margin").width
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
text: base.title
|
||||||
|
font: UM.Theme.getFont("medium")
|
||||||
|
renderType: Text.NativeRendering
|
||||||
|
color: base.hovered ? UM.Theme.getColor("small_button_text_hover") : UM.Theme.getColor("small_button_text")
|
||||||
|
}
|
||||||
|
|
||||||
|
UM.RecolorImage
|
||||||
|
{
|
||||||
|
id: rightIcon
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.rightMargin: UM.Theme.getSize("default_margin").width
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
width: UM.Theme.getSize("message_close").width
|
||||||
|
height: UM.Theme.getSize("message_close").height
|
||||||
|
color: base.hovered ? UM.Theme.getColor("small_button_text_hover") : UM.Theme.getColor("small_button_text")
|
||||||
|
source: base.rightIconSource
|
||||||
|
}
|
||||||
|
}
|
78
resources/qml/WelcomePages/DropDownWidget.qml
Normal file
78
resources/qml/WelcomePages/DropDownWidget.qml
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
// Copyright (c) 2019 Ultimaker B.V.
|
||||||
|
// Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
|
import QtQuick 2.10
|
||||||
|
import QtQuick.Controls 2.3
|
||||||
|
|
||||||
|
import UM 1.3 as UM
|
||||||
|
import Cura 1.1 as Cura
|
||||||
|
|
||||||
|
|
||||||
|
Item
|
||||||
|
{
|
||||||
|
UM.I18nCatalog { id: catalog; name: "cura" }
|
||||||
|
|
||||||
|
id: base
|
||||||
|
|
||||||
|
implicitWidth: 200
|
||||||
|
height: header.contentShown ? childrenRect.height : header.height
|
||||||
|
|
||||||
|
property var contentComponent: null
|
||||||
|
|
||||||
|
property alias title: header.title
|
||||||
|
property alias contentShown: header.contentShown
|
||||||
|
|
||||||
|
DropDownHeader
|
||||||
|
{
|
||||||
|
id: header
|
||||||
|
anchors.top: parent.top
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
height: UM.Theme.getSize("expandable_component_content_header").height
|
||||||
|
rightIconSource: contentShown ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_right")
|
||||||
|
}
|
||||||
|
|
||||||
|
Cura.RoundedRectangle
|
||||||
|
{
|
||||||
|
id: contentRectangle
|
||||||
|
anchors.top: header.bottom
|
||||||
|
anchors.horizontalCenter: header.horizontalCenter
|
||||||
|
width: header.width
|
||||||
|
height: childrenRect.height
|
||||||
|
|
||||||
|
border.width: UM.Theme.getSize("default_lining").width
|
||||||
|
border.color: UM.Theme.getColor("lining")
|
||||||
|
color: "white"
|
||||||
|
radius: UM.Theme.getSize("default_radius").width
|
||||||
|
visible: base.contentShown
|
||||||
|
cornerSide: Cura.RoundedRectangle.Direction.Down
|
||||||
|
|
||||||
|
Loader
|
||||||
|
{
|
||||||
|
id: contentLoader
|
||||||
|
anchors.top: parent.top
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
height: childrenRect.height
|
||||||
|
anchors.margins: 1
|
||||||
|
sourceComponent: base.contentComponent != null ? base.contentComponent : emptyComponent
|
||||||
|
}
|
||||||
|
|
||||||
|
// This is the empty component/placeholder that will be shown when the widget gets expanded.
|
||||||
|
// It contains a text line "Empty"
|
||||||
|
Component
|
||||||
|
{
|
||||||
|
id: emptyComponent
|
||||||
|
|
||||||
|
Label
|
||||||
|
{
|
||||||
|
text: catalog.i18nc("@label", "Empty")
|
||||||
|
height: UM.Theme.getSize("action_button").height
|
||||||
|
horizontalAlignment: Text.AlignHCenter
|
||||||
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
font: UM.Theme.getFont("medium")
|
||||||
|
renderType: Text.NativeRendering
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -5,6 +5,7 @@ import QtQuick 2.10
|
|||||||
import QtQuick.Controls 2.3
|
import QtQuick.Controls 2.3
|
||||||
import QtGraphicalEffects 1.0 // For the dropshadow
|
import QtGraphicalEffects 1.0 // For the dropshadow
|
||||||
|
|
||||||
|
import UM 1.3 as UM
|
||||||
import Cura 1.1 as Cura
|
import Cura 1.1 as Cura
|
||||||
|
|
||||||
import "../Widgets"
|
import "../Widgets"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user