mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-04-22 21:59:37 +08:00
159 lines
3.7 KiB
QML
159 lines
3.7 KiB
QML
//Copyright (C) 2022 Ultimaker B.V.
|
|
//Cura is released under the terms of the LGPLv3 or higher.
|
|
|
|
import QtQuick 2.15
|
|
import QtQuick.Window 2.2
|
|
import QtQuick.Controls 2.3
|
|
|
|
import UM 1.2 as UM
|
|
import Cura 1.6 as Cura
|
|
|
|
import DigitalFactory 1.0 as DF
|
|
|
|
|
|
Popup
|
|
{
|
|
id: base
|
|
|
|
padding: UM.Theme.getSize("default_margin").width
|
|
|
|
closePolicy: Popup.CloseOnEscape
|
|
focus: true
|
|
modal: true
|
|
background: Cura.RoundedRectangle
|
|
{
|
|
cornerSide: Cura.RoundedRectangle.Direction.All
|
|
border.color: UM.Theme.getColor("lining")
|
|
border.width: UM.Theme.getSize("default_lining").width
|
|
radius: UM.Theme.getSize("default_radius").width
|
|
width: parent.width
|
|
height: parent.height
|
|
color: UM.Theme.getColor("main_background")
|
|
}
|
|
|
|
Connections
|
|
{
|
|
target: manager
|
|
|
|
function onCreatingNewProjectStatusChanged(status)
|
|
{
|
|
if (status == DF.RetrievalStatus.Success)
|
|
{
|
|
base.close();
|
|
}
|
|
}
|
|
}
|
|
|
|
onOpened:
|
|
{
|
|
newProjectNameTextField.text = ""
|
|
newProjectNameTextField.focus = true
|
|
}
|
|
|
|
Label
|
|
{
|
|
id: createNewLibraryProjectLabel
|
|
text: "Create new Library project"
|
|
font: UM.Theme.getFont("medium")
|
|
color: UM.Theme.getColor("small_button_text")
|
|
anchors
|
|
{
|
|
top: parent.top
|
|
left: parent.left
|
|
right: parent.right
|
|
}
|
|
}
|
|
|
|
Label
|
|
{
|
|
id: projectNameLabel
|
|
text: "Project Name"
|
|
font: UM.Theme.getFont("default")
|
|
color: UM.Theme.getColor("text")
|
|
anchors
|
|
{
|
|
top: createNewLibraryProjectLabel.bottom
|
|
topMargin: UM.Theme.getSize("default_margin").width
|
|
left: parent.left
|
|
right: parent.right
|
|
}
|
|
}
|
|
|
|
Cura.TextField
|
|
{
|
|
id: newProjectNameTextField
|
|
width: parent.width
|
|
anchors
|
|
{
|
|
top: projectNameLabel.bottom
|
|
topMargin: UM.Theme.getSize("thin_margin").width
|
|
left: parent.left
|
|
right: parent.right
|
|
}
|
|
validator: RegularExpressionValidator
|
|
{
|
|
regularExpression: /^[^\\\/\*\?\|\[\]]{0,99}$/
|
|
}
|
|
|
|
text: PrintInformation.jobName
|
|
font: UM.Theme.getFont("default")
|
|
placeholderText: "Enter a name for your new project."
|
|
onAccepted:
|
|
{
|
|
if (verifyProjectCreationButton.enabled)
|
|
{
|
|
verifyProjectCreationButton.clicked()
|
|
}
|
|
}
|
|
}
|
|
|
|
Label
|
|
{
|
|
id: errorWhileCreatingProjectLabel
|
|
text: manager.projectCreationErrorText
|
|
width: parent.width
|
|
wrapMode: Text.WordWrap
|
|
font: UM.Theme.getFont("default")
|
|
color: UM.Theme.getColor("error")
|
|
visible: manager.creatingNewProjectStatus == DF.RetrievalStatus.Failed
|
|
anchors
|
|
{
|
|
top: newProjectNameTextField.bottom
|
|
left: parent.left
|
|
right: parent.right
|
|
}
|
|
}
|
|
|
|
Cura.SecondaryButton
|
|
{
|
|
id: cancelProjectCreationButton
|
|
|
|
anchors.bottom: parent.bottom
|
|
anchors.left: parent.left
|
|
|
|
text: "Cancel"
|
|
|
|
onClicked:
|
|
{
|
|
base.close()
|
|
}
|
|
busy: false
|
|
}
|
|
|
|
Cura.PrimaryButton
|
|
{
|
|
id: verifyProjectCreationButton
|
|
|
|
anchors.bottom: parent.bottom
|
|
anchors.right: parent.right
|
|
text: "Create"
|
|
enabled: newProjectNameTextField.text.length >= 2 && !busy
|
|
|
|
onClicked:
|
|
{
|
|
manager.createLibraryProjectAndSetAsPreselected(newProjectNameTextField.text)
|
|
}
|
|
busy: manager.creatingNewProjectStatus == DF.RetrievalStatus.InProgress
|
|
}
|
|
}
|