mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-24 15:13:56 -06:00
Merge remote-tracking branch 'origin/CURA-6057_fix_onboarding' into CURA-6447_fix_start_onboarding
This commit is contained in:
commit
738886b4fb
14 changed files with 216 additions and 136 deletions
|
@ -1630,6 +1630,7 @@ class MachineManager(QObject):
|
||||||
|
|
||||||
return abbr_machine
|
return abbr_machine
|
||||||
|
|
||||||
|
@pyqtSlot(str, result = str)
|
||||||
def getMachineTypeNameFromId(self, machine_type_id: str) -> str:
|
def getMachineTypeNameFromId(self, machine_type_id: str) -> str:
|
||||||
machine_type_name = ""
|
machine_type_name = ""
|
||||||
results = self._container_registry.findDefinitionContainersMetadata(id = machine_type_id)
|
results = self._container_registry.findDefinitionContainersMetadata(id = machine_type_id)
|
||||||
|
|
|
@ -20,12 +20,12 @@ Item
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
|
|
||||||
property int labelWidth: 180
|
property int labelWidth: 210 * screenScaleFactor
|
||||||
property int controlWidth: UM.Theme.getSize("setting_control").width * 3 / 4
|
property int controlWidth: (UM.Theme.getSize("setting_control").width * 3 / 4) | 0
|
||||||
property var labelFont: UM.Theme.getFont("medium")
|
property var labelFont: UM.Theme.getFont("medium")
|
||||||
|
|
||||||
property int columnWidth: (parent.width - 2 * UM.Theme.getSize("default_margin").width) / 2
|
property int columnWidth: ((parent.width - 2 * UM.Theme.getSize("default_margin").width) / 2) | 0
|
||||||
property int columnSpacing: 3
|
property int columnSpacing: 3 * screenScaleFactor
|
||||||
property int propertyStoreIndex: manager.storeContainerIndex // definition_changes
|
property int propertyStoreIndex: manager.storeContainerIndex // definition_changes
|
||||||
|
|
||||||
property string extruderStackId: ""
|
property string extruderStackId: ""
|
||||||
|
|
|
@ -20,12 +20,12 @@ Item
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
|
|
||||||
property int labelWidth: 130
|
property int labelWidth: 120 * screenScaleFactor
|
||||||
property int controlWidth: UM.Theme.getSize("setting_control").width * 3 / 4
|
property int controlWidth: (UM.Theme.getSize("setting_control").width * 3 / 4) | 0
|
||||||
property var labelFont: UM.Theme.getFont("default")
|
property var labelFont: UM.Theme.getFont("default")
|
||||||
|
|
||||||
property int columnWidth: (parent.width - 2 * UM.Theme.getSize("default_margin").width) / 2
|
property int columnWidth: ((parent.width - 2 * UM.Theme.getSize("default_margin").width) / 2) | 0
|
||||||
property int columnSpacing: 3
|
property int columnSpacing: 3 * screenScaleFactor
|
||||||
property int propertyStoreIndex: manager.storeContainerIndex // definition_changes
|
property int propertyStoreIndex: manager.storeContainerIndex // definition_changes
|
||||||
|
|
||||||
property string machineStackId: Cura.MachineManager.activeMachineId
|
property string machineStackId: Cura.MachineManager.activeMachineId
|
||||||
|
|
|
@ -1,150 +1,154 @@
|
||||||
// Copyright (c) 2018 Ultimaker B.V.
|
// Copyright (c) 2019 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.3
|
||||||
import QtQuick.Window 2.2
|
import QtQuick.Window 2.2
|
||||||
import QtQuick.Controls 1.4
|
|
||||||
import QtQuick.Controls.Styles 1.4
|
|
||||||
|
|
||||||
import UM 1.3 as UM
|
import UM 1.3 as UM
|
||||||
import Cura 1.0 as Cura
|
import Cura 1.1 as Cura
|
||||||
|
|
||||||
|
|
||||||
UM.Dialog
|
Window
|
||||||
{
|
{
|
||||||
|
UM.I18nCatalog { id: catalog; name: "cura" }
|
||||||
|
|
||||||
id: baseDialog
|
id: baseDialog
|
||||||
title: catalog.i18nc("@title:window", "More information on anonymous data collection")
|
title: catalog.i18nc("@title:window", "More information on anonymous data collection")
|
||||||
visible: false
|
visible: false
|
||||||
|
|
||||||
|
modality: Qt.ApplicationModal
|
||||||
|
|
||||||
minimumWidth: 500 * screenScaleFactor
|
minimumWidth: 500 * screenScaleFactor
|
||||||
minimumHeight: 400 * screenScaleFactor
|
minimumHeight: 400 * screenScaleFactor
|
||||||
width: minimumWidth
|
width: minimumWidth
|
||||||
height: minimumHeight
|
height: minimumHeight
|
||||||
|
|
||||||
property bool allowSendData: true // for saving the user's choice
|
color: UM.Theme.getColor("main_background")
|
||||||
|
|
||||||
onAccepted: manager.setSendSliceInfo(allowSendData)
|
property bool allowSendData: true // for saving the user's choice
|
||||||
|
|
||||||
onVisibilityChanged:
|
onVisibilityChanged:
|
||||||
{
|
{
|
||||||
if (visible)
|
if (visible)
|
||||||
{
|
{
|
||||||
baseDialog.allowSendData = UM.Preferences.getValue("info/send_slice_info");
|
baseDialog.allowSendData = UM.Preferences.getValue("info/send_slice_info")
|
||||||
if (baseDialog.allowSendData)
|
if (baseDialog.allowSendData)
|
||||||
{
|
{
|
||||||
allowSendButton.checked = true;
|
allowSendButton.checked = true
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
dontSendButton.checked = true;
|
dontSendButton.checked = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Main content area
|
||||||
Item
|
Item
|
||||||
{
|
{
|
||||||
id: textRow
|
anchors.fill: parent
|
||||||
anchors
|
anchors.margins: UM.Theme.getSize("default_margin").width
|
||||||
{
|
|
||||||
top: parent.top
|
|
||||||
bottom: radioButtonsRow.top
|
|
||||||
bottomMargin: UM.Theme.getSize("default_margin").height
|
|
||||||
left: parent.left
|
|
||||||
right: parent.right
|
|
||||||
}
|
|
||||||
|
|
||||||
Label
|
Item // Text part
|
||||||
{
|
{
|
||||||
id: headerText
|
id: textRow
|
||||||
anchors
|
anchors
|
||||||
{
|
{
|
||||||
top: parent.top
|
top: parent.top
|
||||||
left: parent.left
|
bottom: radioButtonsRow.top
|
||||||
right: parent.right
|
|
||||||
}
|
|
||||||
|
|
||||||
text: catalog.i18nc("@text:window", "Cura sends anonymous data to Ultimaker in order to improve the print quality and user experience. Below is an example of all the data that is sent.")
|
|
||||||
wrapMode: Text.WordWrap
|
|
||||||
}
|
|
||||||
|
|
||||||
TextArea
|
|
||||||
{
|
|
||||||
id: exampleData
|
|
||||||
anchors
|
|
||||||
{
|
|
||||||
top: headerText.bottom
|
|
||||||
topMargin: UM.Theme.getSize("default_margin").height
|
|
||||||
bottom: parent.bottom
|
|
||||||
bottomMargin: UM.Theme.getSize("default_margin").height
|
bottomMargin: UM.Theme.getSize("default_margin").height
|
||||||
left: parent.left
|
left: parent.left
|
||||||
right: parent.right
|
right: parent.right
|
||||||
}
|
}
|
||||||
|
|
||||||
text: manager.getExampleData()
|
Label
|
||||||
readOnly: true
|
|
||||||
textFormat: TextEdit.PlainText
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Column
|
|
||||||
{
|
|
||||||
id: radioButtonsRow
|
|
||||||
width: parent.width
|
|
||||||
anchors.bottom: buttonRow.top
|
|
||||||
anchors.bottomMargin: UM.Theme.getSize("default_margin").height
|
|
||||||
|
|
||||||
ExclusiveGroup { id: group }
|
|
||||||
|
|
||||||
RadioButton
|
|
||||||
{
|
|
||||||
id: dontSendButton
|
|
||||||
text: catalog.i18nc("@text:window", "I don't want to send this data")
|
|
||||||
exclusiveGroup: group
|
|
||||||
onClicked:
|
|
||||||
{
|
{
|
||||||
baseDialog.allowSendData = !checked;
|
id: headerText
|
||||||
|
anchors
|
||||||
|
{
|
||||||
|
top: parent.top
|
||||||
|
left: parent.left
|
||||||
|
right: parent.right
|
||||||
|
}
|
||||||
|
text: catalog.i18nc("@text:window", "Cura sends anonymous data to Ultimaker in order to improve the print quality and user experience. Below is an example of all the data that is sent.")
|
||||||
|
wrapMode: Text.WordWrap
|
||||||
|
renderType: Text.NativeRendering
|
||||||
}
|
}
|
||||||
}
|
|
||||||
RadioButton
|
Cura.ScrollableTextArea
|
||||||
{
|
|
||||||
id: allowSendButton
|
|
||||||
text: catalog.i18nc("@text:window", "Allow sending this data to Ultimaker and help us improve Cura")
|
|
||||||
exclusiveGroup: group
|
|
||||||
onClicked:
|
|
||||||
{
|
{
|
||||||
baseDialog.allowSendData = checked;
|
anchors
|
||||||
}
|
{
|
||||||
}
|
top: headerText.bottom
|
||||||
}
|
topMargin: UM.Theme.getSize("default_margin").height
|
||||||
|
bottom: parent.bottom
|
||||||
|
bottomMargin: UM.Theme.getSize("default_margin").height
|
||||||
|
left: parent.left
|
||||||
|
right: parent.right
|
||||||
|
}
|
||||||
|
|
||||||
Item
|
textArea.text: manager.getExampleData()
|
||||||
{
|
textArea.readOnly: true
|
||||||
id: buttonRow
|
|
||||||
anchors.bottom: parent.bottom
|
|
||||||
width: parent.width
|
|
||||||
anchors.bottomMargin: UM.Theme.getSize("default_margin").height
|
|
||||||
|
|
||||||
UM.I18nCatalog { id: catalog; name: "cura" }
|
|
||||||
|
|
||||||
Button
|
|
||||||
{
|
|
||||||
anchors.right: parent.right
|
|
||||||
text: catalog.i18nc("@action:button", "OK")
|
|
||||||
onClicked:
|
|
||||||
{
|
|
||||||
baseDialog.accepted()
|
|
||||||
baseDialog.hide()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Button
|
Column // Radio buttons for agree and disagree
|
||||||
{
|
{
|
||||||
|
id: radioButtonsRow
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
text: catalog.i18nc("@action:button", "Cancel")
|
anchors.right: parent.right
|
||||||
onClicked:
|
anchors.bottom: buttonRow.top
|
||||||
|
anchors.bottomMargin: UM.Theme.getSize("default_margin").height
|
||||||
|
|
||||||
|
Cura.RadioButton
|
||||||
{
|
{
|
||||||
baseDialog.rejected()
|
id: dontSendButton
|
||||||
baseDialog.hide()
|
text: catalog.i18nc("@text:window", "I don't want to send this data")
|
||||||
|
onClicked:
|
||||||
|
{
|
||||||
|
baseDialog.allowSendData = !checked
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Cura.RadioButton
|
||||||
|
{
|
||||||
|
id: allowSendButton
|
||||||
|
text: catalog.i18nc("@text:window", "Allow sending this data to Ultimaker and help us improve Cura")
|
||||||
|
onClicked:
|
||||||
|
{
|
||||||
|
baseDialog.allowSendData = checked
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Item // Bottom buttons
|
||||||
|
{
|
||||||
|
id: buttonRow
|
||||||
|
anchors.bottom: parent.bottom
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.right: parent.right
|
||||||
|
|
||||||
|
height: childrenRect.height
|
||||||
|
|
||||||
|
Cura.PrimaryButton
|
||||||
|
{
|
||||||
|
anchors.right: parent.right
|
||||||
|
text: catalog.i18nc("@action:button", "OK")
|
||||||
|
onClicked:
|
||||||
|
{
|
||||||
|
manager.setSendSliceInfo(allowSendData)
|
||||||
|
baseDialog.hide()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Cura.SecondaryButton
|
||||||
|
{
|
||||||
|
anchors.left: parent.left
|
||||||
|
text: catalog.i18nc("@action:button", "Cancel")
|
||||||
|
onClicked:
|
||||||
|
{
|
||||||
|
baseDialog.hide()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -62,7 +62,7 @@ class SliceInfo(QObject, Extension):
|
||||||
def showMoreInfoDialog(self):
|
def showMoreInfoDialog(self):
|
||||||
if self._more_info_dialog is None:
|
if self._more_info_dialog is None:
|
||||||
self._more_info_dialog = self._createDialog("MoreInfoWindow.qml")
|
self._more_info_dialog = self._createDialog("MoreInfoWindow.qml")
|
||||||
self._more_info_dialog.open()
|
self._more_info_dialog.show()
|
||||||
|
|
||||||
def _createDialog(self, qml_name):
|
def _createDialog(self, qml_name):
|
||||||
Logger.log("d", "Creating dialog [%s]", qml_name)
|
Logger.log("d", "Creating dialog [%s]", qml_name)
|
||||||
|
|
|
@ -286,7 +286,7 @@ class UM3OutputDevicePlugin(OutputDevicePlugin):
|
||||||
|
|
||||||
self.refreshConnections()
|
self.refreshConnections()
|
||||||
|
|
||||||
def _checkManualDevice(self, address):
|
def _checkManualDevice(self, address: str) -> None:
|
||||||
# Check if a UM3 family device exists at this address.
|
# Check if a UM3 family device exists at this address.
|
||||||
# If a printer responds, it will replace the preliminary printer created above
|
# If a printer responds, it will replace the preliminary printer created above
|
||||||
# origin=manual is for tracking back the origin of the call
|
# origin=manual is for tracking back the origin of the call
|
||||||
|
@ -307,7 +307,8 @@ class UM3OutputDevicePlugin(OutputDevicePlugin):
|
||||||
# - Something went wrong with checking the amount of printers the cluster has!
|
# - Something went wrong with checking the amount of printers the cluster has!
|
||||||
# - Couldn't find printer at the address when trying to add it manually.
|
# - Couldn't find printer at the address when trying to add it manually.
|
||||||
if address in self._manual_instances:
|
if address in self._manual_instances:
|
||||||
self.removeManualDeviceSignal.emit(self.getPluginId(), "", address)
|
key = "manual:" + address
|
||||||
|
self.removeManualDevice(key, address)
|
||||||
return
|
return
|
||||||
|
|
||||||
if "system" in reply_url:
|
if "system" in reply_url:
|
||||||
|
|
|
@ -25,13 +25,17 @@ Button
|
||||||
property var outputDevice: null
|
property var outputDevice: null
|
||||||
property var printerTypesList: []
|
property var printerTypesList: []
|
||||||
|
|
||||||
|
// Indicates if only to update the printer types list when this button is checked
|
||||||
|
property bool updatePrinterTypesOnlyWhenChecked: true
|
||||||
|
|
||||||
property var updatePrinterTypesFunction: updatePrinterTypesList
|
property var updatePrinterTypesFunction: updatePrinterTypesList
|
||||||
// This function converts the printer type string to another string.
|
// This function converts the printer type string to another string.
|
||||||
property var printerTypeLabelConversionFunction: Cura.MachineManager.getAbbreviatedMachineName
|
property var printerTypeLabelConversionFunction: Cura.MachineManager.getAbbreviatedMachineName
|
||||||
|
|
||||||
function updatePrinterTypesList()
|
function updatePrinterTypesList()
|
||||||
{
|
{
|
||||||
printerTypesList = (outputDevice != null) ? outputDevice.uniquePrinterTypes : []
|
var to_update = (updatePrinterTypesOnlyWhenChecked && checked) || !updatePrinterTypesOnlyWhenChecked
|
||||||
|
printerTypesList = (to_update && outputDevice != null) ? outputDevice.uniquePrinterTypes : []
|
||||||
}
|
}
|
||||||
|
|
||||||
contentItem: Item
|
contentItem: Item
|
||||||
|
|
|
@ -97,6 +97,8 @@ Item
|
||||||
|
|
||||||
printerTypeLabelAutoFit: true
|
printerTypeLabelAutoFit: true
|
||||||
|
|
||||||
|
// update printer types for all items in the list
|
||||||
|
updatePrinterTypesOnlyWhenChecked: false
|
||||||
updatePrinterTypesFunction: updateMachineTypes
|
updatePrinterTypesFunction: updateMachineTypes
|
||||||
// show printer type as it is
|
// show printer type as it is
|
||||||
printerTypeLabelConversionFunction: function(value) { return value }
|
printerTypeLabelConversionFunction: function(value) { return value }
|
||||||
|
|
|
@ -69,16 +69,14 @@ Item
|
||||||
width: parent.width
|
width: parent.width
|
||||||
anchors.top: explainLabel.bottom
|
anchors.top: explainLabel.bottom
|
||||||
|
|
||||||
TextField
|
Cura.TextField
|
||||||
{
|
{
|
||||||
id: hostnameField
|
id: hostnameField
|
||||||
|
width: (parent.width / 2) | 0
|
||||||
|
height: addPrinterButton.height
|
||||||
anchors.verticalCenter: addPrinterButton.verticalCenter
|
anchors.verticalCenter: addPrinterButton.verticalCenter
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
height: addPrinterButton.height
|
|
||||||
anchors.right: addPrinterButton.left
|
|
||||||
anchors.margins: UM.Theme.getSize("default_margin").width
|
anchors.margins: UM.Theme.getSize("default_margin").width
|
||||||
font: UM.Theme.getFont("default")
|
|
||||||
selectByMouse: true
|
|
||||||
|
|
||||||
validator: RegExpValidator
|
validator: RegExpValidator
|
||||||
{
|
{
|
||||||
|
@ -89,11 +87,11 @@ Item
|
||||||
onAccepted: addPrinterButton.clicked()
|
onAccepted: addPrinterButton.clicked()
|
||||||
}
|
}
|
||||||
|
|
||||||
Cura.PrimaryButton
|
Cura.SecondaryButton
|
||||||
{
|
{
|
||||||
id: addPrinterButton
|
id: addPrinterButton
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
anchors.right: parent.right
|
anchors.left: hostnameField.right
|
||||||
anchors.margins: UM.Theme.getSize("default_margin").width
|
anchors.margins: UM.Theme.getSize("default_margin").width
|
||||||
|
|
||||||
text: catalog.i18nc("@button", "Add")
|
text: catalog.i18nc("@button", "Add")
|
||||||
|
@ -198,7 +196,10 @@ Item
|
||||||
{
|
{
|
||||||
if (UM.OutputDeviceManager.hasManualDevice)
|
if (UM.OutputDeviceManager.hasManualDevice)
|
||||||
{
|
{
|
||||||
typeText.text = UM.OutputDeviceManager.manualDeviceProperty("printer_type")
|
const type_id = UM.OutputDeviceManager.manualDeviceProperty("printer_type")
|
||||||
|
var readable_type = Cura.MachineManager.getMachineTypeNameFromId(type_id)
|
||||||
|
readable_type = (readable_type != "") ? readable_type : catalog.i18nc("@label", "Unknown")
|
||||||
|
typeText.text = readable_type
|
||||||
firmwareText.text = UM.OutputDeviceManager.manualDeviceProperty("firmware_version")
|
firmwareText.text = UM.OutputDeviceManager.manualDeviceProperty("firmware_version")
|
||||||
addressText.text = UM.OutputDeviceManager.manualDeviceProperty("address")
|
addressText.text = UM.OutputDeviceManager.manualDeviceProperty("address")
|
||||||
}
|
}
|
||||||
|
@ -240,7 +241,7 @@ Item
|
||||||
id: backButton
|
id: backButton
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.bottom: parent.bottom
|
anchors.bottom: parent.bottom
|
||||||
text: catalog.i18nc("@button", "Cancel")
|
text: catalog.i18nc("@button", "Back")
|
||||||
onClicked: base.showPreviousPage()
|
onClicked: base.showPreviousPage()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -70,7 +70,6 @@ Item
|
||||||
onClicked:
|
onClicked:
|
||||||
{
|
{
|
||||||
CuraApplication.writeToLog("i", "User declined the User Agreement.")
|
CuraApplication.writeToLog("i", "User declined the User Agreement.")
|
||||||
base.endWizard()
|
|
||||||
CuraApplication.closeApplication() // NOTE: Hard exit, don't use if anything needs to be saved!
|
CuraApplication.closeApplication() // NOTE: Hard exit, don't use if anything needs to be saved!
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,8 +27,10 @@ Item
|
||||||
renderType: Text.NativeRendering
|
renderType: Text.NativeRendering
|
||||||
}
|
}
|
||||||
|
|
||||||
Rectangle
|
Cura.ScrollableTextArea
|
||||||
{
|
{
|
||||||
|
id: whatsNewTextArea
|
||||||
|
|
||||||
anchors.top: titleLabel.bottom
|
anchors.top: titleLabel.bottom
|
||||||
anchors.bottom: getStartedButton.top
|
anchors.bottom: getStartedButton.top
|
||||||
anchors.topMargin: UM.Theme.getSize("wide_margin").height
|
anchors.topMargin: UM.Theme.getSize("wide_margin").height
|
||||||
|
@ -36,27 +38,12 @@ Item
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
|
|
||||||
border.color: "#dfdfdf"
|
ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
|
||||||
border.width: UM.Theme.getSize("default_lining").width
|
|
||||||
|
|
||||||
ScrollView
|
textArea.text: CuraApplication.getTextManager().getChangeLogText()
|
||||||
{
|
textArea.textFormat: Text.RichText
|
||||||
anchors.fill: parent
|
textArea.wrapMode: Text.WordWrap
|
||||||
anchors.margins: UM.Theme.getSize("default_lining").width
|
textArea.readOnly: true
|
||||||
|
|
||||||
ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
|
|
||||||
|
|
||||||
TextArea
|
|
||||||
{
|
|
||||||
id: whatsNewTextArea
|
|
||||||
text: CuraApplication.getTextManager().getChangeLogText()
|
|
||||||
textFormat: Text.RichText
|
|
||||||
wrapMode: Text.WordWrap
|
|
||||||
readOnly: true
|
|
||||||
font: UM.Theme.getFont("default")
|
|
||||||
renderType: Text.NativeRendering
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Cura.PrimaryButton
|
Cura.PrimaryButton
|
||||||
|
|
32
resources/qml/Widgets/ScrollableTextArea.qml
Normal file
32
resources/qml/Widgets/ScrollableTextArea.qml
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
// 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
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Cura-style TextArea with scrolls
|
||||||
|
//
|
||||||
|
ScrollView
|
||||||
|
{
|
||||||
|
property alias textArea: _textArea
|
||||||
|
|
||||||
|
TextArea
|
||||||
|
{
|
||||||
|
id: _textArea
|
||||||
|
font: UM.Theme.getFont("default")
|
||||||
|
textFormat: TextEdit.PlainText
|
||||||
|
renderType: Text.NativeRendering
|
||||||
|
selectByMouse: true
|
||||||
|
|
||||||
|
background: Rectangle // Border
|
||||||
|
{
|
||||||
|
border.color: UM.Theme.getColor("lining")
|
||||||
|
border.width: UM.Theme.getSize("default_lining").width
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
47
resources/qml/Widgets/TextField.qml
Normal file
47
resources/qml/Widgets/TextField.qml
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
// 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
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Cura-style TextField
|
||||||
|
//
|
||||||
|
TextField
|
||||||
|
{
|
||||||
|
id: textField
|
||||||
|
|
||||||
|
UM.I18nCatalog { id: catalog; name: "cura" }
|
||||||
|
|
||||||
|
property int controlWidth: UM.Theme.getSize("setting_control").width
|
||||||
|
property int controlHeight: UM.Theme.getSize("setting_control").height
|
||||||
|
|
||||||
|
hoverEnabled: true
|
||||||
|
selectByMouse: true
|
||||||
|
font: UM.Theme.getFont("default")
|
||||||
|
renderType: Text.NativeRendering
|
||||||
|
|
||||||
|
background: Rectangle
|
||||||
|
{
|
||||||
|
anchors.fill: parent
|
||||||
|
anchors.margins: Math.round(UM.Theme.getSize("default_lining").width)
|
||||||
|
radius: UM.Theme.getSize("setting_control_radius").width
|
||||||
|
|
||||||
|
border.color:
|
||||||
|
{
|
||||||
|
if (!textField.enabled)
|
||||||
|
{
|
||||||
|
return UM.Theme.getColor("setting_control_disabled_border")
|
||||||
|
}
|
||||||
|
if (textField.hovered || textField.activeFocus)
|
||||||
|
{
|
||||||
|
return UM.Theme.getColor("setting_control_border_highlight")
|
||||||
|
}
|
||||||
|
return UM.Theme.getColor("setting_control_border")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -25,7 +25,9 @@ CheckBox 1.0 CheckBox.qml
|
||||||
ComboBox 1.0 ComboBox.qml
|
ComboBox 1.0 ComboBox.qml
|
||||||
NotificationIcon 1.0 NotificationIcon.qml
|
NotificationIcon 1.0 NotificationIcon.qml
|
||||||
RadioButton 1.0 RadioButton.qml
|
RadioButton 1.0 RadioButton.qml
|
||||||
|
Scrollable 1.0 Scrollable.qml
|
||||||
TabButton 1.0 TabButton.qml
|
TabButton 1.0 TabButton.qml
|
||||||
|
TextField 1.0 TextField.qml
|
||||||
|
|
||||||
|
|
||||||
# Cura/MachineSettings
|
# Cura/MachineSettings
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue