Cura/resources/qml/ProfileOverview.qml
Jaime van Kessel 8784f0182c Add workaround for TableModel not updating when rows are set directly
It's not a great solution, but I just can't figure out why it wouldn't update.
The binding is correctly in place, so it should work. Might be a bug with QT?

CURA-8931
2022-03-01 14:20:42 +01:00

52 lines
1.7 KiB
QML

//Copyright (c) 2022 Ultimaker B.V.
//Cura is released under the terms of the LGPLv3 or higher.
import Qt.labs.qmlmodels 1.0
import QtQuick 2.7
import QtQuick.Controls 2.15
import UM 1.5 as UM
import Cura 1.6 as Cura
Cura.TableView
{
id: profileOverview
property var qualityItem //The quality profile to display here.
property int extruderPosition: -1 //The extruder to display. -1 denotes the global stack.
property bool isQualityItemCurrentlyActivated: qualityItem != null && qualityItem.name == Cura.MachineManager.activeQualityOrQualityChangesName
// Hack to make sure that when the data of our model changes the tablemodel is also updated
// If we directly set the rows (So without the clear being called) it doesn't seem to
// get updated correctly.
property var modelRows: qualitySettings.items
onModelRowsChanged:
{
tableModel.clear()
tableModel.rows = modelRows
}
Cura.QualitySettingsModel
{
id: qualitySettings
selectedPosition: profileOverview.extruderPosition
selectedQualityItem: profileOverview.qualityItem == null ? {} : profileOverview.qualityItem
}
columnHeaders: [
catalog.i18nc("@title:column", "Setting"),
catalog.i18nc("@title:column", "Profile"),
catalog.i18nc("@title:column", "Current"),
catalog.i18nc("@title:column Unit of measurement", "Unit")
]
model: TableModel
{
id: tableModel
TableModelColumn { display: "label" }
TableModelColumn { display: "profile_value" }
TableModelColumn { display: "user_value" }
TableModelColumn { display: "unit" }
rows: modelRows
}
sectionRole: "category"
}