diff --git a/cura/API/Interface/__init__.py b/cura/API/Interface/__init__.py
index 742254a1a4..cec174bf0a 100644
--- a/cura/API/Interface/__init__.py
+++ b/cura/API/Interface/__init__.py
@@ -3,7 +3,6 @@
from typing import TYPE_CHECKING
-from UM.PluginRegistry import PluginRegistry
from cura.API.Interface.Settings import Settings
if TYPE_CHECKING:
@@ -23,9 +22,6 @@ if TYPE_CHECKING:
class Interface:
- # For now we use the same API version to be consistent.
- VERSION = PluginRegistry.APIVersion
-
def __init__(self, application: "CuraApplication") -> None:
# API methods specific to the settings portion of the UI
self.settings = Settings(application)
diff --git a/cura/API/__init__.py b/cura/API/__init__.py
index ad07452c1a..b3e702263a 100644
--- a/cura/API/__init__.py
+++ b/cura/API/__init__.py
@@ -4,7 +4,6 @@ from typing import Optional, TYPE_CHECKING
from PyQt5.QtCore import QObject, pyqtProperty
-from UM.PluginRegistry import PluginRegistry
from cura.API.Backups import Backups
from cura.API.Interface import Interface
from cura.API.Account import Account
@@ -22,7 +21,6 @@ if TYPE_CHECKING:
class CuraAPI(QObject):
# For now we use the same API version to be consistent.
- VERSION = PluginRegistry.APIVersion
__instance = None # type: "CuraAPI"
_application = None # type: CuraApplication
@@ -62,4 +60,4 @@ class CuraAPI(QObject):
@property
def interface(self) -> "Interface":
- return self._interface
\ No newline at end of file
+ return self._interface
diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py
index b605d6e18d..6e52a97518 100755
--- a/cura/CuraApplication.py
+++ b/cura/CuraApplication.py
@@ -134,7 +134,7 @@ except ImportError:
CuraVersion = "master" # [CodeStyle: Reflecting imported value]
CuraBuildType = ""
CuraDebugMode = False
- CuraSDKVersion = ""
+ CuraSDKVersion = "5.0.0"
class CuraApplication(QtApplication):
@@ -164,6 +164,7 @@ class CuraApplication(QtApplication):
super().__init__(name = "cura",
app_display_name = CuraAppDisplayName,
version = CuraVersion,
+ api_version = CuraSDKVersion,
buildtype = CuraBuildType,
is_debug_mode = CuraDebugMode,
tray_icon_name = "cura-icon-32.png",
diff --git a/cura/CuraVersion.py.in b/cura/CuraVersion.py.in
index 388429bc02..7c6304231d 100644
--- a/cura/CuraVersion.py.in
+++ b/cura/CuraVersion.py.in
@@ -1,4 +1,4 @@
-# Copyright (c) 2015 Ultimaker B.V.
+# Copyright (c) 2018 Ultimaker B.V.
# Cura is released under the terms of the LGPLv3 or higher.
CuraAppDisplayName = "@CURA_APP_DISPLAY_NAME@"
diff --git a/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml b/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml
index 4d27489d7a..a48cb2ee3f 100644
--- a/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml
+++ b/plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml
@@ -11,157 +11,208 @@ Item
id: base
property var packageData
- property var technicalDataSheetUrl: {
+ property var technicalDataSheetUrl:
+ {
var link = undefined
if ("Technical Data Sheet" in packageData.links)
{
+ // HACK: This is the way the old API (used in 3.6-beta) used to do it. For safety it's still here,
+ // but it can be removed over time.
link = packageData.links["Technical Data Sheet"]
}
+ else if ("technicalDataSheet" in packageData.links)
+ {
+ link = packageData.links["technicalDataSheet"]
+ }
return link
}
-
+ property var safetyDataSheetUrl:
+ {
+ var sds_name = "safetyDataSheet"
+ return (sds_name in packageData.links) ? packageData.links[sds_name] : undefined
+ }
+ property var printingGuidelinesUrl:
+ {
+ var pg_name = "printingGuidelines"
+ return (pg_name in packageData.links) ? packageData.links[pg_name] : undefined
+ }
anchors.topMargin: UM.Theme.getSize("default_margin").height
height: visible ? childrenRect.height : 0
- visible: packageData.type == "material" && packageData.has_configs
- Label
+
+ visible: packageData.type == "material" &&
+ (packageData.has_configs || technicalDataSheetUrl !== undefined ||
+ safetyDataSheetUrl !== undefined || printingGuidelinesUrl !== undefined)
+
+ Item
{
- id: heading
- anchors.topMargin: UM.Theme.getSize("default_margin").height
+ id: combatibilityItem
+ visible: packageData.has_configs
width: parent.width
- text: catalog.i18nc("@label", "Compatibility")
- wrapMode: Text.WordWrap
- color: UM.Theme.getColor("text_medium")
- font: UM.Theme.getFont("medium")
- }
- TableView
- {
- id: table
- anchors.top: heading.bottom
- anchors.topMargin: UM.Theme.getSize("default_margin").height
- width: parent.width
- frameVisible: false
+ // This is a bit of a hack, but the whole QML is pretty messy right now. This needs a big overhaul.
+ height: visible ? heading.height + table.height: 0
- // Workaround for scroll issues (QTBUG-49652)
- flickableItem.interactive: false
- Component.onCompleted:
+ Label
{
- for (var i = 0; i < flickableItem.children.length; ++i)
- {
- flickableItem.children[i].enabled = false
- }
- }
- selectionMode: 0
- model: packageData.supported_configs
- headerDelegate: Rectangle
- {
- color: UM.Theme.getColor("main_background")
- height: UM.Theme.getSize("toolbox_chart_row").height
- Label
- {
- anchors.verticalCenter: parent.verticalCenter
- elide: Text.ElideRight
- text: styleData.value || ""
- color: UM.Theme.getColor("text")
- font: UM.Theme.getFont("default_bold")
- }
- Rectangle
- {
- anchors.bottom: parent.bottom
- height: UM.Theme.getSize("default_lining").height
- width: parent.width
- color: "black"
- }
- }
- rowDelegate: Item
- {
- height: UM.Theme.getSize("toolbox_chart_row").height
- Label
- {
- anchors.verticalCenter: parent.verticalCenter
- elide: Text.ElideRight
- text: styleData.value || ""
- color: UM.Theme.getColor("text_medium")
- font: UM.Theme.getFont("default")
- }
- }
- itemDelegate: Item
- {
- height: UM.Theme.getSize("toolbox_chart_row").height
- Label
- {
- anchors.verticalCenter: parent.verticalCenter
- elide: Text.ElideRight
- text: styleData.value || ""
- color: UM.Theme.getColor("text_medium")
- font: UM.Theme.getFont("default")
- }
+ id: heading
+ anchors.topMargin: UM.Theme.getSize("default_margin").height
+ width: parent.width
+ text: catalog.i18nc("@label", "Compatibility")
+ wrapMode: Text.WordWrap
+ color: UM.Theme.getColor("text_medium")
+ font: UM.Theme.getFont("medium")
}
- Component
+ TableView
{
- id: columnTextDelegate
- Label
- {
- anchors.fill: parent
- verticalAlignment: Text.AlignVCenter
- text: styleData.value || ""
- elide: Text.ElideRight
- color: UM.Theme.getColor("text_medium")
- font: UM.Theme.getFont("default")
- }
- }
+ id: table
+ anchors.top: heading.bottom
+ anchors.topMargin: UM.Theme.getSize("default_margin").height
+ width: parent.width
+ frameVisible: false
- TableViewColumn
- {
- role: "machine"
- title: "Machine"
- width: Math.floor(table.width * 0.25)
- delegate: columnTextDelegate
- }
- TableViewColumn
- {
- role: "print_core"
- title: "Print Core"
- width: Math.floor(table.width * 0.2)
- }
- TableViewColumn
- {
- role: "build_plate"
- title: "Build Plate"
- width: Math.floor(table.width * 0.225)
- }
- TableViewColumn
- {
- role: "support_material"
- title: "Support"
- width: Math.floor(table.width * 0.225)
- }
- TableViewColumn
- {
- role: "quality"
- title: "Quality"
- width: Math.floor(table.width * 0.1)
+ // Workaround for scroll issues (QTBUG-49652)
+ flickableItem.interactive: false
+ Component.onCompleted:
+ {
+ for (var i = 0; i < flickableItem.children.length; ++i)
+ {
+ flickableItem.children[i].enabled = false
+ }
+ }
+ selectionMode: 0
+ model: packageData.supported_configs
+ headerDelegate: Rectangle
+ {
+ color: UM.Theme.getColor("sidebar")
+ height: UM.Theme.getSize("toolbox_chart_row").height
+ Label
+ {
+ anchors.verticalCenter: parent.verticalCenter
+ elide: Text.ElideRight
+ text: styleData.value || ""
+ color: UM.Theme.getColor("text")
+ font: UM.Theme.getFont("default_bold")
+ }
+ Rectangle
+ {
+ anchors.bottom: parent.bottom
+ height: UM.Theme.getSize("default_lining").height
+ width: parent.width
+ color: "black"
+ }
+ }
+ rowDelegate: Item
+ {
+ height: UM.Theme.getSize("toolbox_chart_row").height
+ Label
+ {
+ anchors.verticalCenter: parent.verticalCenter
+ elide: Text.ElideRight
+ text: styleData.value || ""
+ color: UM.Theme.getColor("text_medium")
+ font: UM.Theme.getFont("default")
+ }
+ }
+ itemDelegate: Item
+ {
+ height: UM.Theme.getSize("toolbox_chart_row").height
+ Label
+ {
+ anchors.verticalCenter: parent.verticalCenter
+ elide: Text.ElideRight
+ text: styleData.value || ""
+ color: UM.Theme.getColor("text_medium")
+ font: UM.Theme.getFont("default")
+ }
+ }
+
+ Component
+ {
+ id: columnTextDelegate
+ Label
+ {
+ anchors.fill: parent
+ verticalAlignment: Text.AlignVCenter
+ text: styleData.value || ""
+ elide: Text.ElideRight
+ color: UM.Theme.getColor("text_medium")
+ font: UM.Theme.getFont("default")
+ }
+ }
+
+ TableViewColumn
+ {
+ role: "machine"
+ title: "Machine"
+ width: Math.floor(table.width * 0.25)
+ delegate: columnTextDelegate
+ }
+ TableViewColumn
+ {
+ role: "print_core"
+ title: "Print Core"
+ width: Math.floor(table.width * 0.2)
+ }
+ TableViewColumn
+ {
+ role: "build_plate"
+ title: "Build Plate"
+ width: Math.floor(table.width * 0.225)
+ }
+ TableViewColumn
+ {
+ role: "support_material"
+ title: "Support"
+ width: Math.floor(table.width * 0.225)
+ }
+ TableViewColumn
+ {
+ role: "quality"
+ title: "Quality"
+ width: Math.floor(table.width * 0.1)
+ }
}
}
Label
{
- id: technical_data_sheet
- anchors.top: table.bottom
+ id: data_sheet_links
+ anchors.top: combatibilityItem.bottom
anchors.topMargin: UM.Theme.getSize("default_margin").height / 2
- visible: base.technicalDataSheetUrl !== undefined
+ visible: base.technicalDataSheetUrl !== undefined ||
+ base.safetyDataSheetUrl !== undefined || base.printingGuidelinesUrl !== undefined
+ height: visible ? contentHeight : 0
text:
{
+ var result = ""
if (base.technicalDataSheetUrl !== undefined)
{
- return "%2".arg(base.technicalDataSheetUrl).arg("Technical Data Sheet")
+ var tds_name = catalog.i18nc("@action:label", "Technical Data Sheet")
+ result += "%2".arg(base.technicalDataSheetUrl).arg(tds_name)
}
- return ""
+ if (base.safetyDataSheetUrl !== undefined)
+ {
+ if (result.length > 0)
+ {
+ result += "
"
+ }
+ var sds_name = catalog.i18nc("@action:label", "Safety Data Sheet")
+ result += "%2".arg(base.safetyDataSheetUrl).arg(sds_name)
+ }
+ if (base.printingGuidelinesUrl !== undefined)
+ {
+ if (result.length > 0)
+ {
+ result += "
"
+ }
+ var pg_name = catalog.i18nc("@action:label", "Printing Guidelines")
+ result += "%2".arg(base.printingGuidelinesUrl).arg(pg_name)
+ }
+ return result
}
font: UM.Theme.getFont("very_small")
color: UM.Theme.getColor("text")
linkColor: UM.Theme.getColor("text_link")
onLinkActivated: Qt.openUrlExternally(link)
}
-
}
diff --git a/plugins/Toolbox/resources/qml/ToolboxDetailTile.qml b/plugins/Toolbox/resources/qml/ToolboxDetailTile.qml
index d544757d58..9061a8e06b 100644
--- a/plugins/Toolbox/resources/qml/ToolboxDetailTile.qml
+++ b/plugins/Toolbox/resources/qml/ToolboxDetailTile.qml
@@ -37,7 +37,7 @@ Item
anchors.top: packageName.bottom
width: parent.width
text: model.description
- maximumLineCount: 3
+ maximumLineCount: 6
elide: Text.ElideRight
wrapMode: Text.WordWrap
color: UM.Theme.getColor("text")
diff --git a/plugins/Toolbox/src/PackagesModel.py b/plugins/Toolbox/src/PackagesModel.py
index aa5626b7f2..a31facf75a 100644
--- a/plugins/Toolbox/src/PackagesModel.py
+++ b/plugins/Toolbox/src/PackagesModel.py
@@ -12,7 +12,7 @@ from UM.Qt.ListModel import ListModel
from .ConfigsModel import ConfigsModel
-## Model that holds cura packages. By setting the filter property the instances held by this model can be changed.
+## Model that holds Cura packages. By setting the filter property the instances held by this model can be changed.
class PackagesModel(ListModel):
def __init__(self, parent = None):
super().__init__(parent)
@@ -70,7 +70,7 @@ class PackagesModel(ListModel):
# Links is a list of dictionaries with "title" and "url". Convert this list into a dict so it's easier
# to process.
- link_list = package['data']['links'] if 'links' in package['data'] else []
+ link_list = package["data"]["links"] if "links" in package["data"] else []
links_dict = {d["title"]: d["url"] for d in link_list}
if "author_id" not in package["author"] or "display_name" not in package["author"]:
diff --git a/plugins/Toolbox/src/Toolbox.py b/plugins/Toolbox/src/Toolbox.py
index 43e1f5b3d9..4f3722d7ba 100644
--- a/plugins/Toolbox/src/Toolbox.py
+++ b/plugins/Toolbox/src/Toolbox.py
@@ -172,18 +172,18 @@ class Toolbox(QObject, Extension):
self._cloud_api_version = self._getCloudAPIVersion()
self._cloud_api_root = self._getCloudAPIRoot()
self._api_url = "{cloud_api_root}/cura-packages/v{cloud_api_version}/cura/v{sdk_version}".format(
- cloud_api_root=self._cloud_api_root,
- cloud_api_version=self._cloud_api_version,
- sdk_version=self._sdk_version
+ cloud_api_root = self._cloud_api_root,
+ cloud_api_version = self._cloud_api_version,
+ sdk_version = self._sdk_version
)
self._request_urls = {
- "authors": QUrl("{base_url}/authors".format(base_url=self._api_url)),
- "packages": QUrl("{base_url}/packages".format(base_url=self._api_url)),
- "plugins_showcase": QUrl("{base_url}/showcase".format(base_url=self._api_url)),
- "plugins_available": QUrl("{base_url}/packages?package_type=plugin".format(base_url=self._api_url)),
- "materials_showcase": QUrl("{base_url}/showcase".format(base_url=self._api_url)),
- "materials_available": QUrl("{base_url}/packages?package_type=material".format(base_url=self._api_url)),
- "materials_generic": QUrl("{base_url}/packages?package_type=material&tags=generic".format(base_url=self._api_url))
+ "authors": QUrl("{base_url}/authors".format(base_url = self._api_url)),
+ "packages": QUrl("{base_url}/packages".format(base_url = self._api_url)),
+ "plugins_showcase": QUrl("{base_url}/showcase".format(base_url = self._api_url)),
+ "plugins_available": QUrl("{base_url}/packages?package_type=plugin".format(base_url = self._api_url)),
+ "materials_showcase": QUrl("{base_url}/showcase".format(base_url = self._api_url)),
+ "materials_available": QUrl("{base_url}/packages?package_type=material".format(base_url = self._api_url)),
+ "materials_generic": QUrl("{base_url}/packages?package_type=material&tags=generic".format(base_url = self._api_url))
}
# Get the API root for the packages API depending on Cura version settings.
@@ -209,11 +209,11 @@ class Toolbox(QObject, Extension):
# Get the packages version depending on Cura version settings.
def _getSDKVersion(self) -> Union[int, str]:
if not hasattr(cura, "CuraVersion"):
- return self._plugin_registry.APIVersion
+ return self._application.getAPIVersion().getMajor()
if not hasattr(cura.CuraVersion, "CuraSDKVersion"): # type: ignore
- return self._plugin_registry.APIVersion
+ return self._application.getAPIVersion().getMajor()
if not cura.CuraVersion.CuraSDKVersion: # type: ignore
- return self._plugin_registry.APIVersion
+ return self._application.getAPIVersion().getMajor()
return cura.CuraVersion.CuraSDKVersion # type: ignore
@pyqtSlot()
@@ -299,7 +299,7 @@ class Toolbox(QObject, Extension):
for plugin_id in old_plugin_ids:
# Neither the installed packages nor the packages that are scheduled to remove are old plugins
if plugin_id not in installed_package_ids and plugin_id not in scheduled_to_remove_package_ids:
- Logger.log('i', 'Found a plugin that was installed with the old plugin browser: %s', plugin_id)
+ Logger.log("i", "Found a plugin that was installed with the old plugin browser: %s", plugin_id)
old_metadata = self._plugin_registry.getMetaData(plugin_id)
new_metadata = self._convertPluginMetadata(old_metadata)
diff --git a/plugins/VersionUpgrade/VersionUpgrade33to34/__init__.py b/plugins/VersionUpgrade/VersionUpgrade33to34/__init__.py
index 8213f195d5..1130c1e9e2 100644
--- a/plugins/VersionUpgrade/VersionUpgrade33to34/__init__.py
+++ b/plugins/VersionUpgrade/VersionUpgrade33to34/__init__.py
@@ -11,6 +11,7 @@ def getMetaData():
# From To Upgrade function
("definition_changes", 3000004): ("definition_changes", 4000004, upgrade.upgradeInstanceContainer),
("quality_changes", 3000004): ("quality_changes", 4000004, upgrade.upgradeInstanceContainer),
+ ("quality", 3000004): ("quality", 4000004, upgrade.upgradeInstanceContainer),
("user", 3000004): ("user", 4000004, upgrade.upgradeInstanceContainer),
},
"sources": {
@@ -22,6 +23,10 @@ def getMetaData():
"get_version": upgrade.getCfgVersion,
"location": {"./quality_changes"}
},
+ "quality": {
+ "get_version": upgrade.getCfgVersion,
+ "location": {"./quality"}
+ },
"user": {
"get_version": upgrade.getCfgVersion,
"location": {"./user"}
diff --git a/plugins/VersionUpgrade/VersionUpgrade34to35/__init__.py b/plugins/VersionUpgrade/VersionUpgrade34to35/__init__.py
index de0fdccb7d..2ea74f6194 100644
--- a/plugins/VersionUpgrade/VersionUpgrade34to35/__init__.py
+++ b/plugins/VersionUpgrade/VersionUpgrade34to35/__init__.py
@@ -13,6 +13,7 @@ def getMetaData():
("definition_changes", 4000004): ("definition_changes", 4000005, upgrade.upgradeInstanceContainer),
("quality_changes", 4000004): ("quality_changes", 4000005, upgrade.upgradeInstanceContainer),
+ ("quality", 4000004): ("quality", 4000005, upgrade.upgradeInstanceContainer),
("user", 4000004): ("user", 4000005, upgrade.upgradeInstanceContainer),
("machine_stack", 4000004): ("machine_stack", 4000005, upgrade.upgradeStack),
@@ -39,6 +40,10 @@ def getMetaData():
"get_version": upgrade.getCfgVersion,
"location": {"./quality_changes"}
},
+ "quality": {
+ "get_version": upgrade.getCfgVersion,
+ "location": {"./quality"}
+ },
"user": {
"get_version": upgrade.getCfgVersion,
"location": {"./user"}
diff --git a/resources/bundled_packages/cura.json b/resources/bundled_packages/cura.json
index fceee75539..ee82b17a75 100644
--- a/resources/bundled_packages/cura.json
+++ b/resources/bundled_packages/cura.json
@@ -9,7 +9,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -26,7 +26,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -43,7 +43,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -60,7 +60,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -77,7 +77,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -94,7 +94,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -111,7 +111,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -128,7 +128,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -145,7 +145,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -162,7 +162,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -179,7 +179,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -213,7 +213,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -230,7 +230,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -247,7 +247,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -281,7 +281,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -298,7 +298,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -315,7 +315,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -332,7 +332,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -349,7 +349,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -366,7 +366,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -383,7 +383,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -400,7 +400,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -417,7 +417,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -434,7 +434,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -451,7 +451,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -468,7 +468,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -485,7 +485,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -502,7 +502,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -519,7 +519,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -536,7 +536,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -553,7 +553,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -570,7 +570,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -587,7 +587,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -604,7 +604,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -621,7 +621,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -638,7 +638,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -655,7 +655,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -672,7 +672,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -689,7 +689,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -723,7 +723,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -740,7 +740,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com",
"website": "https://ultimaker.com"
@@ -1301,7 +1301,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com/products/materials/abs",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "materials@ultimaker.com",
"website": "https://ultimaker.com",
@@ -1320,7 +1320,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com/products/materials/breakaway",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "materials@ultimaker.com",
"website": "https://ultimaker.com",
@@ -1339,7 +1339,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com/products/materials/abs",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "materials@ultimaker.com",
"website": "https://ultimaker.com",
@@ -1358,7 +1358,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com/products/materials/cpe",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "materials@ultimaker.com",
"website": "https://ultimaker.com",
@@ -1377,7 +1377,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com/products/materials/abs",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "materials@ultimaker.com",
"website": "https://ultimaker.com",
@@ -1396,7 +1396,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com/products/materials/pc",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "materials@ultimaker.com",
"website": "https://ultimaker.com",
@@ -1415,7 +1415,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com/products/materials/abs",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "materials@ultimaker.com",
"website": "https://ultimaker.com",
@@ -1434,7 +1434,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com/products/materials/pp",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "materials@ultimaker.com",
"website": "https://ultimaker.com",
@@ -1453,7 +1453,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com/products/materials/abs",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "materials@ultimaker.com",
"website": "https://ultimaker.com",
@@ -1472,7 +1472,7 @@
"sdk_version": 5,
"website": "https://ultimaker.com/products/materials/tpu-95a",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "materials@ultimaker.com",
"website": "https://ultimaker.com",
@@ -1487,11 +1487,11 @@
"package_type": "material",
"display_name": "Ultimaker Tough PLA",
"description": "Example package for material and quality profiles for Ultimaker materials.",
- "package_version": "1.0.0",
+ "package_version": "1.0.2",
"sdk_version": 5,
"website": "https://ultimaker.com/products/materials/tough-pla",
"author": {
- "author_id": "Ultimaker",
+ "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.",
"email": "materials@ultimaker.com",
"website": "https://ultimaker.com",
diff --git a/resources/qml/Preferences/GeneralPage.qml b/resources/qml/Preferences/GeneralPage.qml
index 0e8dd1b426..444bdc2dd5 100644
--- a/resources/qml/Preferences/GeneralPage.qml
+++ b/resources/qml/Preferences/GeneralPage.qml
@@ -171,7 +171,7 @@ UM.PreferencesPage
append({ text: "日本語", code: "ja_JP" })
append({ text: "한국어", code: "ko_KR" })
append({ text: "Nederlands", code: "nl_NL" })
- append({ text: "Polski", code: "pl_PL" })
+ //Polish is disabled for being incomplete: append({ text: "Polski", code: "pl_PL" })
append({ text: "Português do Brasil", code: "pt_BR" })
append({ text: "Português", code: "pt_PT" })
append({ text: "Русский", code: "ru_RU" })
diff --git a/resources/quality/fabtotum/fabtotum_abs_fast.inst.cfg b/resources/quality/fabtotum/fabtotum_abs_fast.inst.cfg
index f2628e16df..95e8b93b36 100644
--- a/resources/quality/fabtotum/fabtotum_abs_fast.inst.cfg
+++ b/resources/quality/fabtotum/fabtotum_abs_fast.inst.cfg
@@ -8,7 +8,7 @@ setting_version = 5
type = quality
quality_type = fast
weight = -1
-material = fabtotum_abs
+material = generic_abs
[values]
adhesion_type = raft
diff --git a/resources/quality/fabtotum/fabtotum_abs_high.inst.cfg b/resources/quality/fabtotum/fabtotum_abs_high.inst.cfg
index d750eb98a3..baedf0ed2b 100644
--- a/resources/quality/fabtotum/fabtotum_abs_high.inst.cfg
+++ b/resources/quality/fabtotum/fabtotum_abs_high.inst.cfg
@@ -8,7 +8,7 @@ setting_version = 5
type = quality
quality_type = high
weight = 1
-material = fabtotum_abs
+material = generic_abs
[values]
adhesion_type = raft
diff --git a/resources/quality/fabtotum/fabtotum_abs_normal.inst.cfg b/resources/quality/fabtotum/fabtotum_abs_normal.inst.cfg
index 7db9682c8a..58933486ee 100644
--- a/resources/quality/fabtotum/fabtotum_abs_normal.inst.cfg
+++ b/resources/quality/fabtotum/fabtotum_abs_normal.inst.cfg
@@ -8,7 +8,7 @@ setting_version = 5
type = quality
quality_type = normal
weight = 0
-material = fabtotum_abs
+material = generic_abs
[values]
adhesion_type = raft
diff --git a/resources/quality/fabtotum/fabtotum_nylon_fast.inst.cfg b/resources/quality/fabtotum/fabtotum_nylon_fast.inst.cfg
index b6629d1fac..00f0737227 100644
--- a/resources/quality/fabtotum/fabtotum_nylon_fast.inst.cfg
+++ b/resources/quality/fabtotum/fabtotum_nylon_fast.inst.cfg
@@ -8,7 +8,7 @@ setting_version = 5
type = quality
quality_type = fast
weight = -1
-material = fabtotum_nylon
+material = generic_nylon
[values]
adhesion_type = raft
diff --git a/resources/quality/fabtotum/fabtotum_nylon_high.inst.cfg b/resources/quality/fabtotum/fabtotum_nylon_high.inst.cfg
index f819f2bbd5..bd7f32c9ba 100644
--- a/resources/quality/fabtotum/fabtotum_nylon_high.inst.cfg
+++ b/resources/quality/fabtotum/fabtotum_nylon_high.inst.cfg
@@ -8,7 +8,7 @@ setting_version = 5
type = quality
quality_type = high
weight = 1
-material = fabtotum_nylon
+material = generic_nylon
[values]
adhesion_type = raft
diff --git a/resources/quality/fabtotum/fabtotum_nylon_normal.inst.cfg b/resources/quality/fabtotum/fabtotum_nylon_normal.inst.cfg
index 8e0ed4f93c..6a450e7ffe 100644
--- a/resources/quality/fabtotum/fabtotum_nylon_normal.inst.cfg
+++ b/resources/quality/fabtotum/fabtotum_nylon_normal.inst.cfg
@@ -8,7 +8,7 @@ setting_version = 5
type = quality
quality_type = normal
weight = 0
-material = fabtotum_nylon
+material = generic_nylon
[values]
adhesion_type = raft
diff --git a/resources/quality/fabtotum/fabtotum_pla_fast.inst.cfg b/resources/quality/fabtotum/fabtotum_pla_fast.inst.cfg
index dce262216a..afac0b0884 100644
--- a/resources/quality/fabtotum/fabtotum_pla_fast.inst.cfg
+++ b/resources/quality/fabtotum/fabtotum_pla_fast.inst.cfg
@@ -8,7 +8,7 @@ setting_version = 5
type = quality
quality_type = fast
weight = -1
-material = fabtotum_pla
+material = generic_pla
[values]
adhesion_type = skirt
diff --git a/resources/quality/fabtotum/fabtotum_pla_high.inst.cfg b/resources/quality/fabtotum/fabtotum_pla_high.inst.cfg
index 2dce693235..89dc6d9b33 100644
--- a/resources/quality/fabtotum/fabtotum_pla_high.inst.cfg
+++ b/resources/quality/fabtotum/fabtotum_pla_high.inst.cfg
@@ -8,7 +8,7 @@ setting_version = 5
type = quality
quality_type = high
weight = 1
-material = fabtotum_pla
+material = generic_pla
[values]
adhesion_type = skirt
diff --git a/resources/quality/fabtotum/fabtotum_pla_normal.inst.cfg b/resources/quality/fabtotum/fabtotum_pla_normal.inst.cfg
index 01f730c2e8..e5496a13d4 100644
--- a/resources/quality/fabtotum/fabtotum_pla_normal.inst.cfg
+++ b/resources/quality/fabtotum/fabtotum_pla_normal.inst.cfg
@@ -8,7 +8,7 @@ setting_version = 5
type = quality
quality_type = normal
weight = 0
-material = fabtotum_pla
+material = generic_pla
[values]
adhesion_type = skirt
diff --git a/resources/quality/fabtotum/fabtotum_tpu_fast.inst.cfg b/resources/quality/fabtotum/fabtotum_tpu_fast.inst.cfg
index be8d2e3e3a..7917c92514 100644
--- a/resources/quality/fabtotum/fabtotum_tpu_fast.inst.cfg
+++ b/resources/quality/fabtotum/fabtotum_tpu_fast.inst.cfg
@@ -6,7 +6,7 @@ name = Fast Quality
[metadata]
type = quality
setting_version = 5
-material = fabtotum_tpu
+material = generic_tpu
quality_type = fast
weight = -1
diff --git a/resources/quality/fabtotum/fabtotum_tpu_high.inst.cfg b/resources/quality/fabtotum/fabtotum_tpu_high.inst.cfg
index 2dcaa15bd3..1c31967d79 100644
--- a/resources/quality/fabtotum/fabtotum_tpu_high.inst.cfg
+++ b/resources/quality/fabtotum/fabtotum_tpu_high.inst.cfg
@@ -6,7 +6,7 @@ name = High Quality
[metadata]
type = quality
setting_version = 5
-material = fabtotum_tpu
+material = generic_tpu
quality_type = high
weight = 1
diff --git a/resources/quality/fabtotum/fabtotum_tpu_normal.inst.cfg b/resources/quality/fabtotum/fabtotum_tpu_normal.inst.cfg
index e680038e26..0a3821f953 100644
--- a/resources/quality/fabtotum/fabtotum_tpu_normal.inst.cfg
+++ b/resources/quality/fabtotum/fabtotum_tpu_normal.inst.cfg
@@ -6,7 +6,7 @@ name = Normal Quality
[metadata]
type = quality
setting_version = 5
-material = fabtotum_TPU
+material = generic_tpu
quality_type = normal
weight = 0
diff --git a/resources/quality/zyyx/zyyx_agile_pro_flex_fast.inst.cfg b/resources/quality/zyyx/zyyx_agile_pro_flex_fast.inst.cfg
index c7d7faf575..188bdd25e5 100644
--- a/resources/quality/zyyx/zyyx_agile_pro_flex_fast.inst.cfg
+++ b/resources/quality/zyyx/zyyx_agile_pro_flex_fast.inst.cfg
@@ -8,7 +8,7 @@ setting_version = 5
type = quality
quality_type = fast
weight = 1
-material = zyyx_pro_flex
+material = generic_tpu
[values]
layer_height = 0.3
diff --git a/resources/quality/zyyx/zyyx_agile_pro_flex_fine.inst.cfg b/resources/quality/zyyx/zyyx_agile_pro_flex_fine.inst.cfg
index 1e0cc16df0..6654889c10 100644
--- a/resources/quality/zyyx/zyyx_agile_pro_flex_fine.inst.cfg
+++ b/resources/quality/zyyx/zyyx_agile_pro_flex_fine.inst.cfg
@@ -8,7 +8,7 @@ setting_version = 5
type = quality
quality_type = fine
weight = 3
-material = zyyx_pro_flex
+material = generic_tpu
[values]
layer_height = 0.12
diff --git a/resources/quality/zyyx/zyyx_agile_pro_flex_normal.inst.cfg b/resources/quality/zyyx/zyyx_agile_pro_flex_normal.inst.cfg
index 8f7be7b481..f56355100c 100644
--- a/resources/quality/zyyx/zyyx_agile_pro_flex_normal.inst.cfg
+++ b/resources/quality/zyyx/zyyx_agile_pro_flex_normal.inst.cfg
@@ -8,7 +8,7 @@ setting_version = 5
type = quality
quality_type = normal
weight = 2
-material = zyyx_pro_flex
+material = generic_tpu
[values]
layer_height = 0.2
diff --git a/resources/quality/zyyx/zyyx_agile_pro_pla_fast.inst.cfg b/resources/quality/zyyx/zyyx_agile_pro_pla_fast.inst.cfg
index 7ac7dc89b5..7ae4be06b0 100644
--- a/resources/quality/zyyx/zyyx_agile_pro_pla_fast.inst.cfg
+++ b/resources/quality/zyyx/zyyx_agile_pro_pla_fast.inst.cfg
@@ -8,7 +8,7 @@ setting_version = 5
type = quality
quality_type = fast
weight = 1
-material = zyyx_pro_pla
+material = generic_pla
[values]
layer_height = 0.3
diff --git a/resources/quality/zyyx/zyyx_agile_pro_pla_fine.inst.cfg b/resources/quality/zyyx/zyyx_agile_pro_pla_fine.inst.cfg
index 98033908f6..64c7d4afc8 100644
--- a/resources/quality/zyyx/zyyx_agile_pro_pla_fine.inst.cfg
+++ b/resources/quality/zyyx/zyyx_agile_pro_pla_fine.inst.cfg
@@ -8,7 +8,7 @@ setting_version = 5
type = quality
quality_type = fine
weight = 3
-material = zyyx_pro_pla
+material = generic_pla
[values]
layer_height = 0.1
diff --git a/resources/quality/zyyx/zyyx_agile_pro_pla_normal.inst.cfg b/resources/quality/zyyx/zyyx_agile_pro_pla_normal.inst.cfg
index b694bd9172..dbdd600ece 100644
--- a/resources/quality/zyyx/zyyx_agile_pro_pla_normal.inst.cfg
+++ b/resources/quality/zyyx/zyyx_agile_pro_pla_normal.inst.cfg
@@ -8,7 +8,7 @@ setting_version = 5
type = quality
quality_type = normal
weight = 2
-material = zyyx_pro_pla
+material = generic_pla
[values]
layer_height = 0.2