fix merge conflicts

This commit is contained in:
ChrisTerBeke 2017-10-10 09:21:31 +02:00
commit 641b3c21f7
13 changed files with 79 additions and 27 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

@ -272,12 +272,18 @@ class WorkspaceDialog(QObject):
def notifyClosed(self):
self._result = {} # The result should be cleared before hide, because after it is released the main thread lock
self._visible = False
try:
self._lock.release()
except:
pass
def hide(self):
self._visible = False
self._view.hide()
try:
self._lock.release()
except:
pass
@pyqtSlot()
def onOkButtonClicked(self):
@ -290,7 +296,6 @@ class WorkspaceDialog(QObject):
self._view.hide()
self.hide()
## Block thread until the dialog is closed.
def waitForClose(self):
if self._visible:

View file

@ -10,10 +10,11 @@ import UM 1.1 as UM
UM.Dialog
{
id: base
title: catalog.i18nc("@title:window", "Open Project")
minimumWidth: 500 * screenScaleFactor
minimumHeight: 400 * screenScaleFactor
minimumHeight: 450 * screenScaleFactor
width: minimumWidth
height: minimumHeight
@ -30,6 +31,7 @@ UM.Dialog
materialResolveComboBox.currentIndex = 0
}
}
Item
{
anchors.fill: parent
@ -386,4 +388,10 @@ UM.Dialog
anchors.right: parent.right
}
}
function reject() {
manager.onCancelButtonClicked();
base.visible = false;
base.rejected();
}
}

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

@ -441,7 +441,7 @@ class CuraEngineBackend(QObject, Backend):
def _onStackErrorCheckFinished(self):
self._is_error_check_scheduled = False
if self._need_slicing:
if not self._slicing and self._need_slicing:
self.needsSlicing()
self._onChanged()
@ -536,7 +536,6 @@ class CuraEngineBackend(QObject, Backend):
#
# \param message The protobuf message containing the print time per feature
def _parseMessagePrintTimes(self, message):
result = {
"inset_0": message.time_inset_0,
"inset_x": message.time_inset_x,

View file

@ -247,7 +247,7 @@ Cura.MachineAction
Row
{
spacing: UM.Theme.getSize("default_margin").width
spacing: UM.Theme.getSize("default_margin").width * 4 / 5
Label
{
@ -648,7 +648,7 @@ Cura.MachineAction
Row
{
spacing: UM.Theme.getSize("default_margin").width
spacing: UM.Theme.getSize("default_margin").width * 4 / 5
Label
{

View file

@ -321,7 +321,7 @@ Cura.MachineAction
title: catalog.i18nc("@title:window", "Printer Address")
minimumWidth: 400 * screenScaleFactor
minimumHeight: 120 * screenScaleFactor
minimumHeight: 130 * screenScaleFactor
width: minimumWidth
height: minimumHeight

View file

@ -23,16 +23,14 @@ from PyQt5.QtWidgets import QMessageBox
import json
import os
import gzip
import zlib
from time import time
from time import sleep
from time import gmtime
from enum import IntEnum
i18n_catalog = i18nCatalog("cura")
from enum import IntEnum
class AuthState(IntEnum):
NotAuthenticated = 1
AuthenticationRequested = 2
@ -335,13 +333,17 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice):
self._camera_timer.stop()
if self._image_reply:
skip_abort = False
try:
try:
self._image_reply.downloadProgress.disconnect(self._onStreamDownloadProgress)
except TypeError:
except Exception as e:
if type(e) != RuntimeError: # can happen the RuntimeError occurs before calling abort (=see below), then then the application will crash
skip_abort = True
pass #The signal was never connected.
if not skip_abort:
self._image_reply.abort()
except RuntimeError:
except Exception as e: #RuntimeError
pass # It can happen that the wrapped c++ object is already deleted.
self._image_reply = None
self._image_request = None
@ -528,6 +530,9 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice):
self._last_request_time = time()
def _finalizePostReply(self):
# Indicate uploading was finished (so another file can be send)
self._write_finished = True
if self._post_reply is None:
return
@ -836,6 +841,7 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice):
Logger.log("d", "User aborted sending print to remote.")
self._progress_message.hide()
self._compressing_print = False
self._write_finished = True # post_reply does not always exist, so make sure we unblock writing
if self._post_reply:
self._finalizePostReply()
Application.getInstance().showPrintMonitor.emit(False)
@ -1203,6 +1209,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

@ -189,7 +189,7 @@ Rectangle
PrintCoreConfiguration
{
id: leftExtruderInfo
width: (parent.width - extruderSeperator.width) / 2
width: Math.floor((parent.width - extruderSeperator.width) / 2)
printCoreConfiguration: printer.configuration[0]
}
@ -204,7 +204,7 @@ Rectangle
PrintCoreConfiguration
{
id: rightExtruderInfo
width: (parent.width - extruderSeperator.width) / 2
width: Math.floor((parent.width - extruderSeperator.width) / 2)
printCoreConfiguration: printer.configuration[1]
}
}
@ -404,6 +404,8 @@ Rectangle
anchors.left: parent.left
anchors.right: parent.right
elide: Text.ElideRight
wrapMode: Text.Wrap
font: UM.Theme.getFont("default")
}

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"]
# 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,7 +117,24 @@ 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_"):
# 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

View file

@ -16,8 +16,8 @@ TabView
property bool editingEnabled: false;
property string currency: UM.Preferences.getValue("cura/currency") ? UM.Preferences.getValue("cura/currency") : "€"
property real firstColumnWidth: (width * 0.45) | 0
property real secondColumnWidth: (width * 0.45) | 0
property real firstColumnWidth: (width * 0.50) | 0
property real secondColumnWidth: (width * 0.40) | 0
property string containerId: ""
property var materialPreferenceValues: UM.Preferences.getValue("cura/material_settings") ? JSON.parse(UM.Preferences.getValue("cura/material_settings")) : {}