Cura/resources/qml/WelcomePages/TestContent.qml
2019-03-19 09:51:10 +01:00

107 lines
2.7 KiB
QML

// 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 QtQuick.Layouts 1.3
import UM 1.3 as UM
import Cura 1.1 as Cura
import "../MachineSettings"
import "../Widgets"
//
// This component contains the content for the "Welcome" page of the welcome on-boarding process.
//
Item
{
id: base
UM.I18nCatalog { id: catalog; name: "cura" }
anchors.fill: parent
anchors.margins: UM.Theme.getSize("default_margin").width
property var extrudersModel: Cura.ExtrudersModel {}
// If we create a CuraTabButton for "Printer" and use Repeater for extruders, for some reason, once the component
// finishes it will automatically change "currentIndex = 1", and it is VERY difficult to change "currentIndex = 0"
// after that. Using a model and a Repeater to create both "Printer" and extruder CuraTabButtons seem to solve this
// problem.
Connections
{
target: extrudersModel
onItemsChanged: tabNameModel.update()
}
ListModel
{
id: tabNameModel
Component.onCompleted: update()
function update()
{
clear()
append({ name: catalog.i18nc("@title:tab", "Printer") })
for (var i = 0; i < extrudersModel.count; i++)
{
const m = extrudersModel.getItem(i)
append({ name: m.name })
}
}
}
Rectangle
{
anchors.fill: parent
border.color: tabBar.visible ? UM.Theme.getColor("lining") : "transparent"
border.width: UM.Theme.getSize("default_lining").width
radius: UM.Theme.getSize("default_radius").width
UM.TabRow
{
id: tabBar
width: parent.width
Repeater
{
model: tabNameModel
delegate: CuraTabButton
{
text: model.name
}
}
}
StackLayout
{
id: tabStack
anchors.top: tabBar.bottom
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: parent.bottom
width: parent.width
currentIndex: tabBar.currentIndex
MachineSettingsPrinterTab
{
id: printerTab
}
Repeater
{
model: extrudersModel
delegate: MachineSettingsExtruderTab
{
id: discoverTab
extruderPosition: model.index
extruderStackId: model.id
}
}
}
}
}