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 = [] new_extruder_stacks = []
if active_extruder is not None: if active_extruder is not None:
new_extruder_stacks = [active_extruder] 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 extruder_stacks = new_extruder_stacks + extruder_stacks
# Fetch the list of useable qualities across all extruders. # Fetch the list of useable qualities across all extruders.

View File

@ -41,6 +41,9 @@ class UserProfilesModel(ProfilesModel):
new_extruder_stacks = [] new_extruder_stacks = []
if active_extruder is not None: if active_extruder is not None:
new_extruder_stacks = [active_extruder] 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 extruder_stacks = new_extruder_stacks + extruder_stacks
# Fetch the list of useable qualities across all extruders. # 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 # 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 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") is not None and
qc.getMetaDataEntry("extruder") == active_extruder.definition.getMetaDataEntry("quality_definition") or (qc.getMetaDataEntry("extruder") == active_extruder.definition.getMetaDataEntry("quality_definition") or
qc.getMetaDataEntry("extruder") == active_extruder.definition.getId()] qc.getMetaDataEntry("extruder") == active_extruder.definition.getId())]
else: else:
# If not, the quality changes of the global stack are selected # 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 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): def hide(self):
self._visible = False self._visible = False
self._lock.release()
self._view.hide() self._view.hide()
self._lock.release()
@pyqtSlot() @pyqtSlot()
def onOkButtonClicked(self): def onOkButtonClicked(self):

View File

@ -1,3 +1,6 @@
[3.0.0]
*Will be updated soon!
[2.7.0] [2.7.0]
*Top surface skin *Top surface skin
Specify print settings of the top-most layers separately in order to improve print duration and achieve higher quality top surfaces. 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 json
import os import os
import gzip import gzip
import zlib
from time import time from time import time
from time import sleep
i18n_catalog = i18nCatalog("cura") i18n_catalog = i18nCatalog("cura")
@ -527,12 +525,12 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice):
self._last_request_time = time() self._last_request_time = time()
def _finalizePostReply(self): def _finalizePostReply(self):
if self._post_reply is None:
return
# Indicate uploading was finished (so another file can be send) # Indicate uploading was finished (so another file can be send)
self._write_finished = True self._write_finished = True
if self._post_reply is None:
return
try: try:
try: try:
self._post_reply.uploadProgress.disconnect(self._onUploadProgress) self._post_reply.uploadProgress.disconnect(self._onUploadProgress)
@ -1179,6 +1177,7 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice):
# Remove cached post request items. # Remove cached post request items.
del self._material_post_objects[id(reply)] del self._material_post_objects[id(reply)]
elif "print_job" in reply_url: elif "print_job" in reply_url:
self._onUploadFinished() # Make sure the upload flag is reset as reply.finished is not always triggered
try: try:
reply.uploadProgress.disconnect(self._onUploadProgress) reply.uploadProgress.disconnect(self._onUploadProgress)
except: except:

View File

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

View File

@ -117,7 +117,24 @@ class VersionUpgrade27to30(VersionUpgrade):
# Set the definition to "ultimaker2" for Ultimaker 2 quality changes # Set the definition to "ultimaker2" for Ultimaker 2 quality changes
if not parser.has_section("general"): if not parser.has_section("general"):
parser.add_section("general") parser.add_section("general")
if os.path.basename(filename).startswith("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" parser["general"]["definition"] = "ultimaker2"
# Update version numbers # Update version numbers