Merge branch 'master' into ui_rework_4_0

Conflicts:
	plugins/Toolbox/resources/qml/ToolboxCompatibilityChart.qml - The compatibility chart being added in 3.6 which was kind of hacky.
	resources/qml/SidebarHeader.qml - Removed in UI rework, edited on master.
This commit is contained in:
Ghostkeeper 2018-11-13 16:23:36 +01:00
commit 266e08fdff
No known key found for this signature in database
GPG key ID: 86BEF881AE2CF276
30 changed files with 273 additions and 217 deletions

View file

@ -3,7 +3,6 @@
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
from UM.PluginRegistry import PluginRegistry
from cura.API.Interface.Settings import Settings from cura.API.Interface.Settings import Settings
if TYPE_CHECKING: if TYPE_CHECKING:
@ -23,9 +22,6 @@ if TYPE_CHECKING:
class Interface: class Interface:
# For now we use the same API version to be consistent.
VERSION = PluginRegistry.APIVersion
def __init__(self, application: "CuraApplication") -> None: def __init__(self, application: "CuraApplication") -> None:
# API methods specific to the settings portion of the UI # API methods specific to the settings portion of the UI
self.settings = Settings(application) self.settings = Settings(application)

View file

@ -4,7 +4,6 @@ from typing import Optional, TYPE_CHECKING
from PyQt5.QtCore import QObject, pyqtProperty from PyQt5.QtCore import QObject, pyqtProperty
from UM.PluginRegistry import PluginRegistry
from cura.API.Backups import Backups from cura.API.Backups import Backups
from cura.API.Interface import Interface from cura.API.Interface import Interface
from cura.API.Account import Account from cura.API.Account import Account
@ -22,7 +21,6 @@ if TYPE_CHECKING:
class CuraAPI(QObject): class CuraAPI(QObject):
# For now we use the same API version to be consistent. # For now we use the same API version to be consistent.
VERSION = PluginRegistry.APIVersion
__instance = None # type: "CuraAPI" __instance = None # type: "CuraAPI"
_application = None # type: CuraApplication _application = None # type: CuraApplication

View file

@ -134,7 +134,7 @@ except ImportError:
CuraVersion = "master" # [CodeStyle: Reflecting imported value] CuraVersion = "master" # [CodeStyle: Reflecting imported value]
CuraBuildType = "" CuraBuildType = ""
CuraDebugMode = False CuraDebugMode = False
CuraSDKVersion = "" CuraSDKVersion = "5.0.0"
class CuraApplication(QtApplication): class CuraApplication(QtApplication):
@ -164,6 +164,7 @@ class CuraApplication(QtApplication):
super().__init__(name = "cura", super().__init__(name = "cura",
app_display_name = CuraAppDisplayName, app_display_name = CuraAppDisplayName,
version = CuraVersion, version = CuraVersion,
api_version = CuraSDKVersion,
buildtype = CuraBuildType, buildtype = CuraBuildType,
is_debug_mode = CuraDebugMode, is_debug_mode = CuraDebugMode,
tray_icon_name = "cura-icon-32.png", tray_icon_name = "cura-icon-32.png",

View file

@ -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. # Cura is released under the terms of the LGPLv3 or higher.
CuraAppDisplayName = "@CURA_APP_DISPLAY_NAME@" CuraAppDisplayName = "@CURA_APP_DISPLAY_NAME@"

View file

@ -11,18 +11,46 @@ Item
id: base id: base
property var packageData property var packageData
property var technicalDataSheetUrl: { property var technicalDataSheetUrl:
{
var link = undefined var link = undefined
if ("Technical Data Sheet" in packageData.links) 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"] link = packageData.links["Technical Data Sheet"]
} }
else if ("technicalDataSheet" in packageData.links)
{
link = packageData.links["technicalDataSheet"]
}
return link 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 anchors.topMargin: UM.Theme.getSize("default_margin").height
height: visible ? childrenRect.height : 0 height: visible ? childrenRect.height : 0
visible: packageData.type == "material" && packageData.has_configs
visible: packageData.type == "material" &&
(packageData.has_configs || technicalDataSheetUrl !== undefined ||
safetyDataSheetUrl !== undefined || printingGuidelinesUrl !== undefined)
Item
{
id: combatibilityItem
visible: packageData.has_configs
width: parent.width
// 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
Label Label
{ {
id: heading id: heading
@ -33,6 +61,7 @@ Item
color: UM.Theme.getColor("text_medium") color: UM.Theme.getColor("text_medium")
font: UM.Theme.getFont("medium") font: UM.Theme.getFont("medium")
} }
TableView TableView
{ {
id: table id: table
@ -54,7 +83,7 @@ Item
model: packageData.supported_configs model: packageData.supported_configs
headerDelegate: Rectangle headerDelegate: Rectangle
{ {
color: UM.Theme.getColor("main_background") color: UM.Theme.getColor("sidebar")
height: UM.Theme.getSize("toolbox_chart_row").height height: UM.Theme.getSize("toolbox_chart_row").height
Label Label
{ {
@ -143,25 +172,47 @@ Item
width: Math.floor(table.width * 0.1) width: Math.floor(table.width * 0.1)
} }
} }
}
Label Label
{ {
id: technical_data_sheet id: data_sheet_links
anchors.top: table.bottom anchors.top: combatibilityItem.bottom
anchors.topMargin: UM.Theme.getSize("default_margin").height / 2 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: text:
{ {
var result = ""
if (base.technicalDataSheetUrl !== undefined) if (base.technicalDataSheetUrl !== undefined)
{ {
return "<a href='%1'>%2</a>".arg(base.technicalDataSheetUrl).arg("Technical Data Sheet") var tds_name = catalog.i18nc("@action:label", "Technical Data Sheet")
result += "<a href='%1'>%2</a>".arg(base.technicalDataSheetUrl).arg(tds_name)
} }
return "" if (base.safetyDataSheetUrl !== undefined)
{
if (result.length > 0)
{
result += "<br/>"
}
var sds_name = catalog.i18nc("@action:label", "Safety Data Sheet")
result += "<a href='%1'>%2</a>".arg(base.safetyDataSheetUrl).arg(sds_name)
}
if (base.printingGuidelinesUrl !== undefined)
{
if (result.length > 0)
{
result += "<br/>"
}
var pg_name = catalog.i18nc("@action:label", "Printing Guidelines")
result += "<a href='%1'>%2</a>".arg(base.printingGuidelinesUrl).arg(pg_name)
}
return result
} }
font: UM.Theme.getFont("very_small") font: UM.Theme.getFont("very_small")
color: UM.Theme.getColor("text") color: UM.Theme.getColor("text")
linkColor: UM.Theme.getColor("text_link") linkColor: UM.Theme.getColor("text_link")
onLinkActivated: Qt.openUrlExternally(link) onLinkActivated: Qt.openUrlExternally(link)
} }
} }

View file

@ -37,7 +37,7 @@ Item
anchors.top: packageName.bottom anchors.top: packageName.bottom
width: parent.width width: parent.width
text: model.description text: model.description
maximumLineCount: 3 maximumLineCount: 6
elide: Text.ElideRight elide: Text.ElideRight
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
color: UM.Theme.getColor("text") color: UM.Theme.getColor("text")

View file

@ -12,7 +12,7 @@ from UM.Qt.ListModel import ListModel
from .ConfigsModel import ConfigsModel 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): class PackagesModel(ListModel):
def __init__(self, parent = None): def __init__(self, parent = None):
super().__init__(parent) 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 # Links is a list of dictionaries with "title" and "url". Convert this list into a dict so it's easier
# to process. # 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} 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"]: if "author_id" not in package["author"] or "display_name" not in package["author"]:

View file

@ -172,18 +172,18 @@ class Toolbox(QObject, Extension):
self._cloud_api_version = self._getCloudAPIVersion() self._cloud_api_version = self._getCloudAPIVersion()
self._cloud_api_root = self._getCloudAPIRoot() self._cloud_api_root = self._getCloudAPIRoot()
self._api_url = "{cloud_api_root}/cura-packages/v{cloud_api_version}/cura/v{sdk_version}".format( 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_root = self._cloud_api_root,
cloud_api_version=self._cloud_api_version, cloud_api_version = self._cloud_api_version,
sdk_version=self._sdk_version sdk_version = self._sdk_version
) )
self._request_urls = { self._request_urls = {
"authors": QUrl("{base_url}/authors".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)), "packages": QUrl("{base_url}/packages".format(base_url = self._api_url)),
"plugins_showcase": QUrl("{base_url}/showcase".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)), "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_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_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)) "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. # 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. # Get the packages version depending on Cura version settings.
def _getSDKVersion(self) -> Union[int, str]: def _getSDKVersion(self) -> Union[int, str]:
if not hasattr(cura, "CuraVersion"): if not hasattr(cura, "CuraVersion"):
return self._plugin_registry.APIVersion return self._application.getAPIVersion().getMajor()
if not hasattr(cura.CuraVersion, "CuraSDKVersion"): # type: ignore 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 if not cura.CuraVersion.CuraSDKVersion: # type: ignore
return self._plugin_registry.APIVersion return self._application.getAPIVersion().getMajor()
return cura.CuraVersion.CuraSDKVersion # type: ignore return cura.CuraVersion.CuraSDKVersion # type: ignore
@pyqtSlot() @pyqtSlot()
@ -299,7 +299,7 @@ class Toolbox(QObject, Extension):
for plugin_id in old_plugin_ids: for plugin_id in old_plugin_ids:
# Neither the installed packages nor the packages that are scheduled to remove are old plugins # 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: 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) old_metadata = self._plugin_registry.getMetaData(plugin_id)
new_metadata = self._convertPluginMetadata(old_metadata) new_metadata = self._convertPluginMetadata(old_metadata)

View file

@ -11,6 +11,7 @@ def getMetaData():
# From To Upgrade function # From To Upgrade function
("definition_changes", 3000004): ("definition_changes", 4000004, upgrade.upgradeInstanceContainer), ("definition_changes", 3000004): ("definition_changes", 4000004, upgrade.upgradeInstanceContainer),
("quality_changes", 3000004): ("quality_changes", 4000004, upgrade.upgradeInstanceContainer), ("quality_changes", 3000004): ("quality_changes", 4000004, upgrade.upgradeInstanceContainer),
("quality", 3000004): ("quality", 4000004, upgrade.upgradeInstanceContainer),
("user", 3000004): ("user", 4000004, upgrade.upgradeInstanceContainer), ("user", 3000004): ("user", 4000004, upgrade.upgradeInstanceContainer),
}, },
"sources": { "sources": {
@ -22,6 +23,10 @@ def getMetaData():
"get_version": upgrade.getCfgVersion, "get_version": upgrade.getCfgVersion,
"location": {"./quality_changes"} "location": {"./quality_changes"}
}, },
"quality": {
"get_version": upgrade.getCfgVersion,
"location": {"./quality"}
},
"user": { "user": {
"get_version": upgrade.getCfgVersion, "get_version": upgrade.getCfgVersion,
"location": {"./user"} "location": {"./user"}

View file

@ -13,6 +13,7 @@ def getMetaData():
("definition_changes", 4000004): ("definition_changes", 4000005, upgrade.upgradeInstanceContainer), ("definition_changes", 4000004): ("definition_changes", 4000005, upgrade.upgradeInstanceContainer),
("quality_changes", 4000004): ("quality_changes", 4000005, upgrade.upgradeInstanceContainer), ("quality_changes", 4000004): ("quality_changes", 4000005, upgrade.upgradeInstanceContainer),
("quality", 4000004): ("quality", 4000005, upgrade.upgradeInstanceContainer),
("user", 4000004): ("user", 4000005, upgrade.upgradeInstanceContainer), ("user", 4000004): ("user", 4000005, upgrade.upgradeInstanceContainer),
("machine_stack", 4000004): ("machine_stack", 4000005, upgrade.upgradeStack), ("machine_stack", 4000004): ("machine_stack", 4000005, upgrade.upgradeStack),
@ -39,6 +40,10 @@ def getMetaData():
"get_version": upgrade.getCfgVersion, "get_version": upgrade.getCfgVersion,
"location": {"./quality_changes"} "location": {"./quality_changes"}
}, },
"quality": {
"get_version": upgrade.getCfgVersion,
"location": {"./quality"}
},
"user": { "user": {
"get_version": upgrade.getCfgVersion, "get_version": upgrade.getCfgVersion,
"location": {"./user"} "location": {"./user"}

View file

@ -9,7 +9,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -26,7 +26,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -43,7 +43,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -60,7 +60,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -77,7 +77,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -94,7 +94,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -111,7 +111,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -128,7 +128,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -145,7 +145,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -162,7 +162,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -179,7 +179,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -213,7 +213,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -230,7 +230,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -247,7 +247,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -281,7 +281,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -298,7 +298,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -315,7 +315,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -332,7 +332,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -349,7 +349,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -366,7 +366,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -383,7 +383,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -400,7 +400,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -417,7 +417,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -434,7 +434,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -451,7 +451,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -468,7 +468,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -485,7 +485,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -502,7 +502,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -519,7 +519,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -536,7 +536,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -553,7 +553,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -570,7 +570,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -587,7 +587,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -604,7 +604,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -621,7 +621,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -638,7 +638,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -655,7 +655,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -672,7 +672,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -689,7 +689,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -723,7 +723,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -740,7 +740,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "plugins@ultimaker.com", "email": "plugins@ultimaker.com",
"website": "https://ultimaker.com" "website": "https://ultimaker.com"
@ -1301,7 +1301,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com/products/materials/abs", "website": "https://ultimaker.com/products/materials/abs",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "materials@ultimaker.com", "email": "materials@ultimaker.com",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
@ -1320,7 +1320,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com/products/materials/breakaway", "website": "https://ultimaker.com/products/materials/breakaway",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "materials@ultimaker.com", "email": "materials@ultimaker.com",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
@ -1339,7 +1339,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com/products/materials/abs", "website": "https://ultimaker.com/products/materials/abs",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "materials@ultimaker.com", "email": "materials@ultimaker.com",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
@ -1358,7 +1358,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com/products/materials/cpe", "website": "https://ultimaker.com/products/materials/cpe",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "materials@ultimaker.com", "email": "materials@ultimaker.com",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
@ -1377,7 +1377,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com/products/materials/abs", "website": "https://ultimaker.com/products/materials/abs",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "materials@ultimaker.com", "email": "materials@ultimaker.com",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
@ -1396,7 +1396,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com/products/materials/pc", "website": "https://ultimaker.com/products/materials/pc",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "materials@ultimaker.com", "email": "materials@ultimaker.com",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
@ -1415,7 +1415,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com/products/materials/abs", "website": "https://ultimaker.com/products/materials/abs",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "materials@ultimaker.com", "email": "materials@ultimaker.com",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
@ -1434,7 +1434,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com/products/materials/pp", "website": "https://ultimaker.com/products/materials/pp",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "materials@ultimaker.com", "email": "materials@ultimaker.com",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
@ -1453,7 +1453,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com/products/materials/abs", "website": "https://ultimaker.com/products/materials/abs",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "materials@ultimaker.com", "email": "materials@ultimaker.com",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
@ -1472,7 +1472,7 @@
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com/products/materials/tpu-95a", "website": "https://ultimaker.com/products/materials/tpu-95a",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "materials@ultimaker.com", "email": "materials@ultimaker.com",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",
@ -1487,11 +1487,11 @@
"package_type": "material", "package_type": "material",
"display_name": "Ultimaker Tough PLA", "display_name": "Ultimaker Tough PLA",
"description": "Example package for material and quality profiles for Ultimaker materials.", "description": "Example package for material and quality profiles for Ultimaker materials.",
"package_version": "1.0.0", "package_version": "1.0.2",
"sdk_version": 5, "sdk_version": 5,
"website": "https://ultimaker.com/products/materials/tough-pla", "website": "https://ultimaker.com/products/materials/tough-pla",
"author": { "author": {
"author_id": "Ultimaker", "author_id": "UltimakerPackages",
"display_name": "Ultimaker B.V.", "display_name": "Ultimaker B.V.",
"email": "materials@ultimaker.com", "email": "materials@ultimaker.com",
"website": "https://ultimaker.com", "website": "https://ultimaker.com",

View file

@ -171,7 +171,7 @@ UM.PreferencesPage
append({ text: "日本語", code: "ja_JP" }) append({ text: "日本語", code: "ja_JP" })
append({ text: "한국어", code: "ko_KR" }) append({ text: "한국어", code: "ko_KR" })
append({ text: "Nederlands", code: "nl_NL" }) 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 do Brasil", code: "pt_BR" })
append({ text: "Português", code: "pt_PT" }) append({ text: "Português", code: "pt_PT" })
append({ text: "Русский", code: "ru_RU" }) append({ text: "Русский", code: "ru_RU" })

View file

@ -8,7 +8,7 @@ setting_version = 5
type = quality type = quality
quality_type = fast quality_type = fast
weight = -1 weight = -1
material = fabtotum_abs material = generic_abs
[values] [values]
adhesion_type = raft adhesion_type = raft

View file

@ -8,7 +8,7 @@ setting_version = 5
type = quality type = quality
quality_type = high quality_type = high
weight = 1 weight = 1
material = fabtotum_abs material = generic_abs
[values] [values]
adhesion_type = raft adhesion_type = raft

View file

@ -8,7 +8,7 @@ setting_version = 5
type = quality type = quality
quality_type = normal quality_type = normal
weight = 0 weight = 0
material = fabtotum_abs material = generic_abs
[values] [values]
adhesion_type = raft adhesion_type = raft

View file

@ -8,7 +8,7 @@ setting_version = 5
type = quality type = quality
quality_type = fast quality_type = fast
weight = -1 weight = -1
material = fabtotum_nylon material = generic_nylon
[values] [values]
adhesion_type = raft adhesion_type = raft

View file

@ -8,7 +8,7 @@ setting_version = 5
type = quality type = quality
quality_type = high quality_type = high
weight = 1 weight = 1
material = fabtotum_nylon material = generic_nylon
[values] [values]
adhesion_type = raft adhesion_type = raft

View file

@ -8,7 +8,7 @@ setting_version = 5
type = quality type = quality
quality_type = normal quality_type = normal
weight = 0 weight = 0
material = fabtotum_nylon material = generic_nylon
[values] [values]
adhesion_type = raft adhesion_type = raft

View file

@ -8,7 +8,7 @@ setting_version = 5
type = quality type = quality
quality_type = fast quality_type = fast
weight = -1 weight = -1
material = fabtotum_pla material = generic_pla
[values] [values]
adhesion_type = skirt adhesion_type = skirt

View file

@ -8,7 +8,7 @@ setting_version = 5
type = quality type = quality
quality_type = high quality_type = high
weight = 1 weight = 1
material = fabtotum_pla material = generic_pla
[values] [values]
adhesion_type = skirt adhesion_type = skirt

View file

@ -8,7 +8,7 @@ setting_version = 5
type = quality type = quality
quality_type = normal quality_type = normal
weight = 0 weight = 0
material = fabtotum_pla material = generic_pla
[values] [values]
adhesion_type = skirt adhesion_type = skirt

View file

@ -6,7 +6,7 @@ name = Fast Quality
[metadata] [metadata]
type = quality type = quality
setting_version = 5 setting_version = 5
material = fabtotum_tpu material = generic_tpu
quality_type = fast quality_type = fast
weight = -1 weight = -1

View file

@ -6,7 +6,7 @@ name = High Quality
[metadata] [metadata]
type = quality type = quality
setting_version = 5 setting_version = 5
material = fabtotum_tpu material = generic_tpu
quality_type = high quality_type = high
weight = 1 weight = 1

View file

@ -6,7 +6,7 @@ name = Normal Quality
[metadata] [metadata]
type = quality type = quality
setting_version = 5 setting_version = 5
material = fabtotum_TPU material = generic_tpu
quality_type = normal quality_type = normal
weight = 0 weight = 0

View file

@ -8,7 +8,7 @@ setting_version = 5
type = quality type = quality
quality_type = fast quality_type = fast
weight = 1 weight = 1
material = zyyx_pro_flex material = generic_tpu
[values] [values]
layer_height = 0.3 layer_height = 0.3

View file

@ -8,7 +8,7 @@ setting_version = 5
type = quality type = quality
quality_type = fine quality_type = fine
weight = 3 weight = 3
material = zyyx_pro_flex material = generic_tpu
[values] [values]
layer_height = 0.12 layer_height = 0.12

View file

@ -8,7 +8,7 @@ setting_version = 5
type = quality type = quality
quality_type = normal quality_type = normal
weight = 2 weight = 2
material = zyyx_pro_flex material = generic_tpu
[values] [values]
layer_height = 0.2 layer_height = 0.2

View file

@ -8,7 +8,7 @@ setting_version = 5
type = quality type = quality
quality_type = fast quality_type = fast
weight = 1 weight = 1
material = zyyx_pro_pla material = generic_pla
[values] [values]
layer_height = 0.3 layer_height = 0.3

View file

@ -8,7 +8,7 @@ setting_version = 5
type = quality type = quality
quality_type = fine quality_type = fine
weight = 3 weight = 3
material = zyyx_pro_pla material = generic_pla
[values] [values]
layer_height = 0.1 layer_height = 0.1

View file

@ -8,7 +8,7 @@ setting_version = 5
type = quality type = quality
quality_type = normal quality_type = normal
weight = 2 weight = 2
material = zyyx_pro_pla material = generic_pla
[values] [values]
layer_height = 0.2 layer_height = 0.2