Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 21 additions & 14 deletions BlocksScreen/lib/panels/controlTab.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
from functools import partial
import re
from lib.moonrakerComm import MoonWebSocket
from lib.panels.widgets.loadPage import LoadScreen
from lib.panels.widgets.loadWidget import LoadingOverlayWidget
from lib.panels.widgets.basePopup import BasePopup
from lib.panels.widgets.numpadPage import CustomNumpad
from lib.panels.widgets.printcorePage import SwapPrintcorePage
from lib.panels.widgets.probeHelperPage import ProbeHelper
Expand Down Expand Up @@ -79,8 +80,12 @@ def __init__(
self.addWidget(self.probe_helper_page)
self.printcores_page = SwapPrintcorePage(self)
self.addWidget(self.printcores_page)
self.loadpage = LoadScreen(self, LoadScreen.AnimationGIF.DEFAULT)
self.addWidget(self.loadpage)

self.loadscreen = BasePopup(self, floating=False, dialog=False)
self.loadwidget = LoadingOverlayWidget(
self, LoadingOverlayWidget.AnimationGIF.DEFAULT
)
self.loadscreen.add_widget(self.loadwidget)

self.sliderPage = SliderPage(self)
self.addWidget(self.sliderPage)
Expand Down Expand Up @@ -415,17 +420,17 @@ def handle_printcoreupdate(self, value: dict):
return

if value["swapping"] == "in_pos":
self.loadpage.hide()
self.loadscreen.hide()
self.printcores_page.show()
self.disable_popups.emit(True)
self.printcores_page.setText(
"Please Insert Print Core \n \n Afterwards click continue"
)
if value["swapping"] == "unloading":
self.loadpage.set_status_message("Unloading print core")
self.loadwidget.set_status_message("Unloading print core")

if value["swapping"] == "cleaning":
self.loadpage.set_status_message("Cleaning print core")
self.loadwidget.set_status_message("Cleaning print core")

def _handle_gcode_response(self, messages: list):
"""Handle gcode response for Z-tilt adjustment"""
Expand All @@ -448,21 +453,23 @@ def _handle_gcode_response(self, messages: list):
probed_range = float(match.group(3))
tolerance = float(match.group(4))
if retries_done == retries_total:
self.loadpage.hide()
self.loadscreen.hide()
return

if probed_range < tolerance:
self.loadpage.hide()
self.loadscreen.hide()
return

self.loadpage.set_status_message(
self.loadwidget.set_status_message(
f"Retries: {retries_done}/{retries_total} | Range: {probed_range:.6f} | Tolerance: {tolerance:.6f}"
)

def handle_ztilt(self):
"""Handle Z-Tilt Adjustment"""
self.loadpage.show()
self.loadpage.set_status_message("Please wait, performing Z-axis calibration.")
self.loadscreen.show()
self.loadwidget.set_status_message(
"Please wait, performing Z-axis calibration."
)
self.run_gcode_signal.emit("G28\nM400\nZ_TILT_ADJUST")

@QtCore.pyqtSlot(str, name="on-klippy-status")
Expand All @@ -479,8 +486,8 @@ def on_klippy_status(self, state: str):
def show_swapcore(self):
"""Show swap printcore"""
self.run_gcode_signal.emit("CHANGE_PRINTCORES")
self.loadpage.show()
self.loadpage.set_status_message("Preparing to swap print core")
self.loadscreen.show()
self.loadwidget.set_status_message("Preparing to swap print core")

def handle_swapcore(self):
"""Handle swap printcore routine finish"""
Expand Down Expand Up @@ -652,7 +659,7 @@ def on_toolhead_update(self, field: str, values: list) -> None:
self.panel.mva_z_value_label.setText(f"{values[2]:.3f}")

if values[0] == "252,50" and values[1] == "250" and values[2] == "50":
self.loadpage.hide
self.loadscreen.hide
self.toolhead_info.update({f"{field}": values})

@QtCore.pyqtSlot(str, str, float, name="on-extruder-update")
Expand Down
16 changes: 10 additions & 6 deletions BlocksScreen/lib/panels/filamentTab.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
from lib.filament import Filament
from lib.ui.filamentStackedWidget_ui import Ui_filamentStackedWidget

from lib.panels.widgets.loadPage import LoadScreen
from lib.panels.widgets.loadWidget import LoadingOverlayWidget
from lib.panels.widgets.basePopup import BasePopup
from lib.panels.widgets.popupDialogWidget import Popup
from PyQt6 import QtCore, QtGui, QtWidgets

Expand Down Expand Up @@ -41,8 +42,11 @@ def __init__(self, parent: QtWidgets.QWidget, printer: Printer, ws, /) -> None:
self.target_temp: int = 0
self.current_temp: int = 0
self.popup = Popup(self)
self.loadscreen = LoadScreen(self, LoadScreen.AnimationGIF.DEFAULT)
self.addWidget(self.loadscreen)
self.loadscreen = BasePopup(self, floating=False, dialog=False)
self.loadwidget = LoadingOverlayWidget(
self, LoadingOverlayWidget.AnimationGIF.DEFAULT
)
self.loadscreen.add_widget(self.loadwidget)
self.has_load_unload_objects = None
self._filament_state = self.FilamentStates.UNKNOWN
self._sensor_states = {}
Expand Down Expand Up @@ -129,16 +133,16 @@ def on_extruder_update(

if self.target_temp != 0:
if self.current_temp == self.target_temp:
self.loadscreen.set_status_message("Extruder heated up \n Please wait")
self.loadwidget.set_status_message("Extruder heated up \n Please wait")
return
if field == "temperature":
self.current_temp = round(new_value, 0)
self.loadscreen.set_status_message(
self.loadwidget.set_status_message(
f"Heating up ({new_value}/{self.target_temp}) \n Please wait"
)
if field == "target":
self.target_temp = round(new_value, 0)
self.loadscreen.set_status_message("Heating up \n Please wait")
self.loadwidget.set_status_message("Heating up \n Please wait")

@QtCore.pyqtSlot(bool, name="on_load_filament")
def on_load_filament(self, status: bool):
Expand Down
24 changes: 14 additions & 10 deletions BlocksScreen/lib/panels/printTab.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@
from lib.panels.widgets.slider_selector_page import SliderPage
from lib.utils.blocks_button import BlocksCustomButton
from lib.panels.widgets.numpadPage import CustomNumpad
from lib.panels.widgets.loadPage import LoadScreen
from lib.panels.widgets.dialogPage import DialogPage
from lib.panels.widgets.loadWidget import LoadingOverlayWidget
from lib.panels.widgets.basePopup import BasePopup
from configfile import BlocksScreenConfig, get_configparser
from PyQt6 import QtCore, QtGui, QtWidgets

Expand Down Expand Up @@ -85,14 +85,18 @@ def __init__(
self.numpadPage = CustomNumpad(self)
self.numpadPage.request_back.connect(self.back_button)
self.addWidget(self.numpadPage)
self.loadscreen = LoadScreen(self, LoadScreen.AnimationGIF.DEFAULT)
self.addWidget(self.loadscreen)

self.loadscreen = BasePopup(self, floating=False, dialog=False)
self.loadwidget = LoadingOverlayWidget(
self, LoadingOverlayWidget.AnimationGIF.DEFAULT
)
self.loadscreen.add_widget(self.loadwidget)

self.file_data: Files = file_data
self.filesPage_widget = FilesPage(self)
self.addWidget(self.filesPage_widget)

self.dialogPage = DialogPage(self)
self.BasePopup = BasePopup(self)

self.confirmPage_widget = ConfirmWidget(self)
self.addWidget(self.confirmPage_widget)
Expand Down Expand Up @@ -295,18 +299,18 @@ def on_slidePage_request(
@QtCore.pyqtSlot(str, name="delete_file")
def delete_file(self, filename: str, directory: str = "gcodes") -> None:
"""Handle Delete file signal, shows confirmation dialog"""
self.dialogPage.set_message("Are you sure you want to delete this file?")
self.dialogPage.accepted.connect(
self.BasePopup.set_message("Are you sure you want to delete this file?")
self.BasePopup.accepted.connect(
lambda: self._on_delete_file_confirmed(filename, directory)
)
self.dialogPage.open()
self.BasePopup.open()

def _on_delete_file_confirmed(self, filename: str, directory: str) -> None:
"""Handle confirmed file deletion after user accepted the dialog"""
self.file_data.on_request_delete_file(filename, directory)
self.request_back.emit()
self.filesPage_widget.reset_dir()
self.dialogPage.disconnect()
self.BasePopup.disconnect()

def paintEvent(self, a0: QtGui.QPaintEvent) -> None:
"""Widget painting"""
Expand Down Expand Up @@ -341,7 +345,7 @@ def handle_cancel_print(self) -> None:
self.on_cancel_print.emit()
self.loadscreen.show()
self.loadscreen.setModal(True)
self.loadscreen.set_status_message("Cancelling print...\nPlease wait")
self.loadwidget.set_status_message("Cancelling print...\nPlease wait")

def change_page(self, index: int) -> None:
"""Requests a page change page to the global manager
Expand Down
Loading