Cura/resources/qml/WelcomePages/AddUltimakerPrinter.qml
c.lamboo 4381a97c85 Elide button text when text becomes too wide
contributes to CURA-8689
2022-11-02 14:58:25 +01:00

124 lines
4.1 KiB
QML

// Copyright (c) 2022 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.5 as UM
import Cura 1.1 as Cura
Control
{
UM.I18nCatalog { id: catalog; name: "cura" }
property var goToThirdPartyPrinter
signal cloudPrintersDetected(bool newCloudPrintersDetected)
Component.onCompleted: CuraApplication.getDiscoveredCloudPrintersModel().cloudPrintersDetectedChanged.connect(cloudPrintersDetected)
onCloudPrintersDetected: function(newCloudPrintersDetected)
{
if(newCloudPrintersDetected)
{
base.goToPage("add_cloud_printers")
}
else
{
goToThirdPartyPrinter()
}
}
contentItem: ColumnLayout
{
UM.Label
{
text: catalog.i18nc("@label", "New Ultimaker printers can be connected to Digital Factory and monitored remotely.")
}
RowLayout
{
Layout.fillWidth: true
Image
{
source: UM.Theme.getImage("add_printer")
Layout.preferredWidth: 200 * screenScaleFactor
Layout.preferredHeight: 200 * screenScaleFactor
}
ColumnLayout
{
Layout.fillHeight: true
Layout.alignment: Qt.AlignVCenter
spacing: UM.Theme.getSize("default_margin").height
UM.Label
{
Layout.fillWidth: true
Layout.alignment: Qt.AlignTop
wrapMode: Text.WordWrap
font: UM.Theme.getFont("default_bold")
text: catalog.i18nc("@label", "New Ultimaker printers can be connected to Digital Factory and monitored remotely.")
}
UM.Label
{
Layout.fillWidth: true
Layout.alignment: Qt.AlignTop
wrapMode: Text.WordWrap
text: {
const steps = [
catalog.i18nc("@info", "Sign in into Ultimaker Digilal Factory"),
catalog.i18nc("@info", "Follow the procedure to add a new printer"),
catalog.i18nc("@info", "Your new printer will automatically appear in Cura"),
];
return `<ol>${steps.map(step => `<li>${step}</il>`).join('')}</ol>`;
}
}
Cura.TertiaryButton
{
Layout.fillWidth: true
Layout.alignment: Qt.AlignTop
text: catalog.i18nc("@button", "Learn more about adding printers to Digital Factory")
iconSource: UM.Theme.getIcon("LinkExternal")
isIconOnRightSide: true
textFont: UM.Theme.getFont("small")
fixedWidthMode: true
onClicked: Qt.openUrlExternally("https://support.ultimaker.com/hc/en-us/articles/360012019239?utm_source=cura&utm_medium=software&utm_campaign=onboarding-add-printer")
}
}
}
Control
{
Layout.alignment: Qt.AlignBottom
Layout.fillWidth: true
contentItem: RowLayout
{
Cura.SecondaryButton
{
Layout.alignment: Qt.AlignLeft
text: catalog.i18nc("@button", "Add local printer")
onClicked: goToThirdPartyPrinter()
}
Cura.PrimaryButton
{
Layout.alignment: Qt.AlignRight
text: catalog.i18nc("@button", "Sign in to Digital Factory")
onClicked: function()
{
text = catalog.i18nc("@button", "Waiting for new printers")
busy = true;
enabled = false;
Cura.API.account.login();
}
}
}
}
}
}