Completed configuration UI to export PCB file

CURA-11561
This commit is contained in:
Erwan MATHIEU 2024-01-30 14:35:55 +01:00
parent b5b0575baf
commit 2aef33f521
6 changed files with 80 additions and 38 deletions

View file

@ -69,7 +69,7 @@ UM.Dialog
id: settingsExportList
anchors.fill: parent
anchors.margins: UM.Theme.getSize("default_margin").width
spacing: UM.Theme.getSize("default_margin").height
spacing: UM.Theme.getSize("thick_margin").height
model: settingsExportModel.settingsGroups
clip: true
@ -77,21 +77,6 @@ UM.Dialog
delegate: SettingsSelectionGroup { Layout.margins: 0 }
}
// Flickable
// {
// Column
// {
// width: parent.width - scrollbar.width - UM.Theme.getSize("default_margin").width
// height: childrenRect.height
//
// spacing: UM.Theme.getSize("default_margin").height
// leftPadding: UM.Theme.getSize("default_margin").width
// rightPadding: leftPadding
// topPadding: UM.Theme.getSize("default_margin").height
// bottomPadding: topPadding
// }
// }
}
footerComponent: Rectangle

View file

@ -8,12 +8,12 @@ from UM.Qt.ListModel import ListModel
from UM.Logger import Logger
class SettingsExport():
class SettingsExport(QObject):
def __init__(self):
def __init__(self, name, value):
super().__init__()
self._name = "Generate Support"
self._value = "Enabled"
self._name = name
self._value = value
@pyqtProperty(str, constant=True)
def name(self):

View file

@ -0,0 +1,27 @@
// Copyright (c) 2024 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 QtQuick.Window 2.2
import UM 1.5 as UM
import Cura 1.1 as Cura
RowLayout
{
id: settingSelection
UM.CheckBox
{
text: modelData.name
Layout.preferredWidth: UM.Theme.getSize("setting").width
checked: true
}
UM.Label
{
text: modelData.value
}
}

View file

@ -20,15 +20,14 @@ class SettingsExportGroup(QObject):
Extruder = 1
Model = 2
def __init__(self, name, category, category_details = '', extruder_index = 0, extruder_color = ''):
def __init__(self, name, category, settings, category_details = '', extruder_index = 0, extruder_color = ''):
super().__init__()
self._name = name
self._settings = []
self._settings = settings
self._category = category
self._category_details = category_details
self._extruder_index = extruder_index
self._extruder_color = extruder_color
self._updateSettings()
@pyqtProperty(str, constant=True)
def name(self):
@ -53,7 +52,3 @@ class SettingsExportGroup(QObject):
@pyqtProperty(str, constant=True)
def extruder_color(self):
return self._extruder_color
def _updateSettings(self):
self._settings.append(SettingsExport())
self._settings.append(SettingsExport())

View file

@ -8,6 +8,7 @@ from UM.Qt.ListModel import ListModel
from UM.Logger import Logger
from .SettingsExportGroup import SettingsExportGroup
from .SettingExport import SettingsExport
class SettingsExportModel(QObject):
@ -22,10 +23,27 @@ class SettingsExportModel(QObject):
return self._settingsGroups
def _updateSettingsExportGroups(self):
self._settingsGroups.append(SettingsExportGroup("Global settings", SettingsExportGroup.Category.Global))
self._settingsGroups.append(SettingsExportGroup("Extruder settings", SettingsExportGroup.Category.Extruder, extruder_index=1, extruder_color='#ff0000'))
self._settingsGroups.append(SettingsExportGroup("Extruder settings", SettingsExportGroup.Category.Extruder, extruder_index=8, extruder_color='#008fff'))
self._settingsGroups.append(SettingsExportGroup("Global settings",
SettingsExportGroup.Category.Global,
[SettingsExport("Generate Support", "Enabled"),
SettingsExport("Support Type", "Tree")]))
self._settingsGroups.append(SettingsExportGroup("Extruder settings",
SettingsExportGroup.Category.Extruder,
[SettingsExport("Brim Width", "0.7mm")],
extruder_index=1,
extruder_color='#ff0000'))
self._settingsGroups.append(SettingsExportGroup("Extruder settings",
SettingsExportGroup.Category.Extruder,
[],
extruder_index=8,
extruder_color='#008fff'))
self._settingsGroups.append(SettingsExportGroup("Model settings",
SettingsExportGroup.Category.Model, 'hypercube.stl'))
SettingsExportGroup.Category.Model,
[SettingsExport("Brim Width", "20.0 mm"),
SettingsExport("Z Hop when retracted", "Disabled")],
'hypercube.stl'))
self._settingsGroups.append(SettingsExportGroup("Model settings",
SettingsExportGroup.Category.Model, 'homer-simpson.stl'))
SettingsExportGroup.Category.Model,
[SettingsExport("Walls Thickness", "3.0 mm"),
SettingsExport("Enable Ironing", "Enabled")],
'homer-simpson.stl'))

View file

@ -10,13 +10,12 @@ import UM 1.5 as UM
import Cura 1.1 as Cura
import PCBWriter 1.0 as PCBWriter
Column
ColumnLayout
{
id: settingsGroup
spacing: UM.Theme.getSize("narrow_margin").width
UM.I18nCatalog { id: catalog; name: "cura" }
Row
RowLayout
{
id: settingsGroupTitleRow
spacing: UM.Theme.getSize("default_margin").width
@ -24,7 +23,6 @@ Column
Item
{
id: icon
anchors.verticalCenter: parent.verticalCenter
height: UM.Theme.getSize("medium_button_icon").height
width: height
@ -63,8 +61,27 @@ Column
{
id: settingsTitle
text: modelData.name + (modelData.category_details ? ' (%1)'.arg(modelData.category_details) : '')
anchors.verticalCenter: parent.verticalCenter
font: UM.Theme.getFont("default_bold")
}
}
ListView
{
id: settingsExportList
Layout.fillWidth: true
Layout.preferredHeight: contentHeight
spacing: 0
model: modelData.settings
visible: modelData.settings.length > 0
delegate: SettingSelection { }
}
UM.Label
{
UM.I18nCatalog { id: catalog; name: "cura" }
text: catalog.i18nc("@label", "No specific value has been set")
visible: modelData.settings.length === 0
}
}