diff --git a/cura/CuraSplashScreen.py b/cura/CuraSplashScreen.py index dd4dd9b2cc..f6c004dc7a 100644 --- a/cura/CuraSplashScreen.py +++ b/cura/CuraSplashScreen.py @@ -2,10 +2,9 @@ # Uranium is released under the terms of the AGPLv3 or higher. from threading import Thread, Event -import time -from PyQt5.QtCore import Qt, QCoreApplication -from PyQt5.QtGui import QPixmap, QColor, QFont, QFontMetrics, QImage, QPen +from PyQt5.QtCore import Qt +from PyQt5.QtGui import QPixmap, QColor, QFont, QPen, QPainter from PyQt5.QtWidgets import QSplashScreen from UM.Resources import Resources @@ -22,8 +21,6 @@ class CuraSplashScreen(QSplashScreen): self._current_message = "" - self._loading_image = QImage(Resources.getPath(Resources.Images, "loading.png")) - self._loading_image = self._loading_image.scaled(30, 30, Qt.KeepAspectRatio) self._loading_image_rotation_angle = 0 self._to_stop = False @@ -46,6 +43,8 @@ class CuraSplashScreen(QSplashScreen): painter.save() painter.setPen(QColor(255, 255, 255, 255)) + painter.setRenderHint(QPainter.Antialiasing) + painter.setRenderHint(QPainter.Antialiasing, True) version = Application.getInstance().getVersion().split("-") buildtype = Application.getInstance().getBuildType() @@ -56,25 +55,28 @@ class CuraSplashScreen(QSplashScreen): font = QFont() # Using system-default font here font.setPointSize(34) painter.setFont(font) - painter.drawText(275, 87, 330 * self._scale, 230 * self._scale, Qt.AlignLeft | Qt.AlignBottom, version[0]) + painter.drawText(300, 110, 330 * self._scale, 230 * self._scale, Qt.AlignLeft | Qt.AlignTop, version[0]) if len(version) > 1: font.setPointSize(12) painter.setFont(font) - painter.drawText(320, 82, 330 * self._scale, 255 * self._scale, Qt.AlignLeft | Qt.AlignBottom, version[1]) + painter.setPen(QColor(200, 200, 200, 255)) + painter.drawText(343, 160, 330 * self._scale, 255 * self._scale, Qt.AlignLeft | Qt.AlignTop, version[1]) + painter.setPen(QColor(255, 255, 255, 255)) # draw the loading image pen = QPen() - pen.setWidth(4 * self._scale) + pen.setWidth(6 * self._scale) pen.setColor(QColor(255, 255, 255, 255)) painter.setPen(pen) - painter.drawArc(130, 380, 32 * self._scale, 32 * self._scale, self._loading_image_rotation_angle * 16, 300 * 16) + painter.drawArc(60, 350, 32 * self._scale, 32 * self._scale, self._loading_image_rotation_angle * 16, 300 * 16) # draw message text if self._current_message: font = QFont() # Using system-default font here font.setPointSize(16) painter.setFont(font) - painter.drawText(180, 243, 330 * self._scale, 230 * self._scale, Qt.AlignLeft | Qt.AlignBottom, + painter.drawText(100, 328, 260, 64, + Qt.AlignLeft | Qt.AlignVCenter | Qt.TextWordWrap, self._current_message) painter.restore() @@ -86,7 +88,6 @@ class CuraSplashScreen(QSplashScreen): self._current_message = message self.messageChanged.emit(message) - self.repaint() def close(self): # set stop flags diff --git a/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py b/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py index 352d32c0fb..108cfa4c0d 100644 --- a/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py +++ b/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerJob.py @@ -44,8 +44,8 @@ class FirmwareUpdateCheckerJob(Job): reader = codecs.getreader("utf-8") # get machine name from the definition container - machine_name = self._container.definition.getName().lower() - machine_name_parts = machine_name.split(" ") + machine_name = self._container.definition.getName() + machine_name_parts = machine_name.lower().split(" ") # If it is not None, then we compare between the checked_version and the current_version # Now we just do that if the active printer is Ultimaker 3 or Ultimaker 3 Extended or any diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index d12ddc0e54..d0e77a15fe 100755 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1354,7 +1354,7 @@ "default_value": 2, "minimum_value": "0", "minimum_value_warning": "infill_line_width", - "value": "0 if infill_sparse_density == 0 else (infill_line_width * 100) / infill_sparse_density * (2 if infill_pattern == 'grid' else (3 if infill_pattern == 'triangles' or infill_pattern == 'cubic' or infill_pattern == 'cubicsubdiv' else (2 if infill_pattern == 'tetrahedral' or infill_pattern == 'quarter_cubic' else 1)))", + "value": "0 if infill_sparse_density == 0 else (infill_line_width * 100) / infill_sparse_density * (2 if infill_pattern == 'grid' else (3 if infill_pattern == 'triangles' or infill_pattern == 'cubic' or infill_pattern == 'cubicsubdiv' else (2 if infill_pattern == 'tetrahedral' or infill_pattern == 'quarter_cubic' else (1 if infill_pattern == 'cross' or infill_pattern == 'cross_3d' else 1))))", "limit_to_extruder": "infill_extruder_nr", "settable_per_mesh": true } @@ -1376,7 +1376,9 @@ "quarter_cubic": "Quarter Cubic", "concentric": "Concentric", "concentric_3d": "Concentric 3D", - "zigzag": "Zig Zag" + "zigzag": "Zig Zag", + "cross": "Cross", + "cross_3d": "Cross 3D" }, "default_value": "grid", "enabled": "infill_sparse_density > 0", @@ -1384,6 +1386,15 @@ "limit_to_extruder": "infill_extruder_nr", "settable_per_mesh": true }, + "zig_zaggify_infill": + { + "label": "Connect Infill Lines", + "description": "Connect the ends where the infill pattern meets the inner wall using a lines which follows the shape of the inner wall. Enabling this setting can make the infill adhere to the walls better and reduces the effects on infill on the quality of vertical surfaces. Disabling this setting reduces the amount of material used.", + "type": "bool", + "default_value": true, + "enabled": "infill_pattern == 'cross' or infill_pattern == 'cross_3d'", + "settable_per_mesh": true + }, "infill_angles": { "label": "Infill Line Directions", @@ -3360,7 +3371,8 @@ "triangles": "Triangles", "concentric": "Concentric", "concentric_3d": "Concentric 3D", - "zigzag": "Zig Zag" + "zigzag": "Zig Zag", + "cross": "Cross" }, "default_value": "zigzag", "enabled": "support_enable", @@ -5168,6 +5180,30 @@ "limit_to_extruder": "top_bottom_extruder_nr", "settable_per_mesh": true }, + "cross_infill_pocket_size": + { + "label": "Cross 3D Pocket Size", + "description": "The size of pockets at four-way crossings in the cross 3D pattern at heights where the pattern is touching itself.", + "unit": "mm", + "type": "float", + "default_value": 2.0, + "value": "infill_line_distance", + "minimum_value": "0", + "maximum_value_warning": "infill_line_distance * math.sqrt(2)", + "enabled": "infill_pattern == 'cross_3d'", + "limit_to_extruder": "infill_extruder_nr", + "settable_per_mesh": true + }, + "cross_infill_apply_pockets_alternatingly": + { + "label": "Alternate Cross 3D Pockets", + "description": "Only apply pockets at half of the four-way crossings in the cross 3D pattern and alternate the location of the pockets between heights where the pattern is touching itself.", + "type": "bool", + "default_value": true, + "enabled": "infill_pattern == 'cross_3d'", + "limit_to_extruder": "infill_extruder_nr", + "settable_per_mesh": true + }, "spaghetti_infill_enabled": { "label": "Spaghetti Infill", diff --git a/resources/images/cura.png b/resources/images/cura.png index f3aacf32a7..e3d069e8da 100644 Binary files a/resources/images/cura.png and b/resources/images/cura.png differ diff --git a/resources/images/loading.png b/resources/images/loading.png deleted file mode 100644 index c9a0151b28..0000000000 Binary files a/resources/images/loading.png and /dev/null differ diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index 276eacef29..4e68dfcbc0 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -766,6 +766,8 @@ Item visible: adhesionCheckBox.visible anchors.left: parent.left anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width + anchors.right: infillCellLeft.right + anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width anchors.verticalCenter: adhesionCheckBox.verticalCenter text: catalog.i18nc("@label", "Build Plate Adhesion"); font: UM.Theme.getFont("default"); diff --git a/resources/themes/cura-dark/icons/tab_status_unknown.svg b/resources/themes/cura-dark/icons/tab_status_unknown.svg new file mode 100644 index 0000000000..249ae55554 --- /dev/null +++ b/resources/themes/cura-dark/icons/tab_status_unknown.svg @@ -0,0 +1,15 @@ + + + + Unknown + Created with Sketch. + + + + + + + + + + \ No newline at end of file