Merge branch '3.0' into layerview-slider-refactor

This commit is contained in:
ChrisTerBeke 2017-10-09 14:59:00 +02:00
commit 84ec494023
7 changed files with 41 additions and 11 deletions

View file

@ -41,6 +41,9 @@ class QualityAndUserProfilesModel(ProfilesModel):
new_extruder_stacks = []
if active_extruder is not None:
new_extruder_stacks = [active_extruder]
else:
# if there is no active extruder, use the first one in the active extruder stacks
active_extruder = extruder_stacks[0]
extruder_stacks = new_extruder_stacks + extruder_stacks
# Fetch the list of useable qualities across all extruders.

View file

@ -41,6 +41,9 @@ class UserProfilesModel(ProfilesModel):
new_extruder_stacks = []
if active_extruder is not None:
new_extruder_stacks = [active_extruder]
else:
# if there is no active extruder, use the first one in the active extruder stacks
active_extruder = extruder_stacks[0]
extruder_stacks = new_extruder_stacks + extruder_stacks
# Fetch the list of useable qualities across all extruders.
@ -55,8 +58,8 @@ class UserProfilesModel(ProfilesModel):
# If the printer has multiple extruders then quality changes related to the current extruder are kept
filtered_quality_changes = [qc for qc in quality_changes_list if qc.getMetaDataEntry("quality_type") in quality_type_set and
qc.getMetaDataEntry("extruder") is not None and
qc.getMetaDataEntry("extruder") == active_extruder.definition.getMetaDataEntry("quality_definition") or
qc.getMetaDataEntry("extruder") == active_extruder.definition.getId()]
(qc.getMetaDataEntry("extruder") == active_extruder.definition.getMetaDataEntry("quality_definition") or
qc.getMetaDataEntry("extruder") == active_extruder.definition.getId())]
else:
# If not, the quality changes of the global stack are selected
filtered_quality_changes = [qc for qc in quality_changes_list if qc.getMetaDataEntry("quality_type") in quality_type_set and

View file

@ -276,8 +276,8 @@ class WorkspaceDialog(QObject):
def hide(self):
self._visible = False
self._lock.release()
self._view.hide()
self._lock.release()
@pyqtSlot()
def onOkButtonClicked(self):

View file

@ -1,3 +1,6 @@
[3.0.0]
*Will be updated soon!
[2.7.0]
*Top surface skin
Specify print settings of the top-most layers separately in order to improve print duration and achieve higher quality top surfaces.

View file

@ -23,10 +23,8 @@ from PyQt5.QtWidgets import QMessageBox
import json
import os
import gzip
import zlib
from time import time
from time import sleep
i18n_catalog = i18nCatalog("cura")
@ -527,12 +525,12 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice):
self._last_request_time = time()
def _finalizePostReply(self):
if self._post_reply is None:
return
# Indicate uploading was finished (so another file can be send)
self._write_finished = True
if self._post_reply is None:
return
try:
try:
self._post_reply.uploadProgress.disconnect(self._onUploadProgress)
@ -1179,6 +1177,7 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice):
# Remove cached post request items.
del self._material_post_objects[id(reply)]
elif "print_job" in reply_url:
self._onUploadFinished() # Make sure the upload flag is reset as reply.finished is not always triggered
try:
reply.uploadProgress.disconnect(self._onUploadProgress)
except:

View file

@ -127,7 +127,12 @@ class VersionUpgrade25to26(VersionUpgrade):
machine_id = parser["general"]["id"]
quality_container_id = parser["containers"]["2"]
material_container_id = parser["containers"]["3"]
definition_container_id = parser["containers"]["6"]
# we don't have definition_changes container in 2.5
if "6" in parser["containers"]:
definition_container_id = parser["containers"]["6"]
else:
definition_container_id = parser["containers"]["5"]
if definition_container_id == "custom" and not self._checkCustomFdmPrinterHasExtruderStack(machine_id):
# go through all extruders and make sure that this custom FDM printer has 8 extruder stacks.

View file

@ -117,8 +117,25 @@ class VersionUpgrade27to30(VersionUpgrade):
# Set the definition to "ultimaker2" for Ultimaker 2 quality changes
if not parser.has_section("general"):
parser.add_section("general")
if os.path.basename(filename).startswith("ultimaker2_"):
parser["general"]["definition"] = "ultimaker2"
# Need to exclude the following names:
# - ultimaker2_plus
# - ultimaker2_go
# - ultimaker2_extended
# - ultimaker2_extended_plus
exclude_prefix_list = ["ultimaker2_plus_",
"ultimaker2_go_",
"ultimaker2_extended_",
"ultimaker2_extended_plus_"]
file_base_name = os.path.basename(filename)
if file_base_name.startswith("ultimaker2_"):
skip_this = False
for exclude_prefix in exclude_prefix_list:
if file_base_name.startswith(exclude_prefix):
skip_this = True
break
if not skip_this:
parser["general"]["definition"] = "ultimaker2"
# Update version numbers
parser["general"]["version"] = "2"