123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- // Copyright (c) 2022 Ultimaker B.V.
- // Uranium is released under the terms of the LGPLv3 or higher.
- import QtQuick 2.1
- import QtQuick.Controls 2.0
- import QtQuick.Window 2.1
- import UM 1.5 as UM
- import Cura 1.0 as Cura
- UM.Dialog
- {
- id: base
- buttonSpacing: UM.Theme.getSize("default_margin").width
- property string object: ""
- property string objectPlaceholder: ""
- property alias newName: nameField.text
- property bool validName: true
- property string validationError
- property string dialogTitle: catalog.i18nc("@title:window", "Rename")
- property string explanation: catalog.i18nc("@info", "Please provide a new name.")
- property string okButtonText: catalog.i18nc("@action:button", "OK")
- // Extra Information for the user about the current rename can go here, can be left alone if not needed.
- // For example; An icon and a text-field and a tertiary button providing a link.
- property list<Item> extraInfo
- title: dialogTitle
- backgroundColor: UM.Theme.getColor("main_background")
- minimumWidth: UM.Theme.getSize("small_popup_dialog").width
- minimumHeight: UM.Theme.getSize("small_popup_dialog").height + extraInfoHolder.height
- width: minimumWidth
- height: minimumHeight
- property variant catalog: UM.I18nCatalog { name: "cura" }
- signal textChanged(string text)
- signal selectText()
- onSelectText:
- {
- nameField.selectAll();
- nameField.focus = true;
- }
- Column
- {
- anchors.fill: parent
- UM.Label
- {
- text: base.explanation + "\n" //Newline to make some space using system theming.
- width: parent.width
- wrapMode: Text.WordWrap
- }
- Cura.TextField
- {
- id: nameField
- width: parent.width
- text: base.object
- placeholderText: base.objectPlaceholder
- placeholderTextColor: UM.Theme.getColor("text_field_text_disabled")
- maximumLength: 40
- selectByMouse: true
- onTextChanged: base.textChanged(text)
- }
- // spacer
- Item
- {
- height: UM.Theme.getSize("wide_margin").height
- width: height
- }
- Row
- {
- id: extraInfoHolder
- anchors
- {
- left: parent.left
- right: parent.right
- margins: UM.Theme.getSize("default_margin").height
- }
- spacing: UM.Theme.getSize("default_margin").height
- children: extraInfo
- }
- UM.Label
- {
- visible: !base.validName
- text: base.validationError
- }
- }
- leftButtons:
- [
- Cura.TertiaryButton
- {
- id: cancelButton
- text: catalog.i18nc("@action:button","Cancel")
- onClicked: base.reject()
- }
- ]
- rightButtons:
- [
- Cura.PrimaryButton
- {
- id: okButton
- text: base.okButtonText
- onClicked: base.accept()
- enabled: base.validName
- }
- ]
- }
|