mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-04-23 22:29:41 +08:00

The table name is used as the container type in the resulting metadata, so we need to use the container type string as table name correctly, or none of the profiles can be found. Contributes to issue CURA-6096.
39 lines
1.8 KiB
Python
39 lines
1.8 KiB
Python
# Copyright (c) 2021 Ultimaker B.V.
|
|
# Cura is released under the terms of the LGPLv3 or higher.
|
|
|
|
from UM.Settings.SQLQueryFactory import SQLQueryFactory, metadata_type
|
|
from UM.Settings.DatabaseContainerMetadataController import DatabaseMetadataContainerController
|
|
from UM.Settings.InstanceContainer import InstanceContainer
|
|
|
|
|
|
class QualityDatabaseHandler(DatabaseMetadataContainerController):
|
|
"""The Database handler for Quality containers"""
|
|
|
|
def __init__(self):
|
|
super().__init__(SQLQueryFactory(table = "quality",
|
|
fields = {
|
|
"id": "text",
|
|
"name": "text",
|
|
"quality_type": "text",
|
|
"material": "text",
|
|
"variant": "text",
|
|
"global_quality": "bool",
|
|
"definition": "text",
|
|
"version": "text",
|
|
"setting_version": "text"
|
|
}))
|
|
self._container_type = InstanceContainer
|
|
|
|
def groomMetadata(self, metadata: metadata_type) -> metadata_type:
|
|
"""
|
|
Ensures that the metadata is in the order of the field keys and has the right size.
|
|
if the metadata doesn't contains a key which is stored in the DB it will add it as
|
|
an empty string. Key, value pairs that are not stored in the DB are dropped.
|
|
If the `global_quality` isn't set it well default to 'False'
|
|
|
|
:param metadata: The container metadata
|
|
"""
|
|
if "global_quality" not in metadata:
|
|
metadata["global_quality"] = "False"
|
|
return super().groomMetadata(metadata)
|