Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
94cf29d
Build(deps): Bump requests from 2.32.3 to 2.32.4 in /scripts (#105)
dependabot[bot] Nov 26, 2025
3e3583b
Hugoclsc/feature/GitHub actions (#107)
HugoCLSC Nov 28, 2025
420a3e1
Hugoclsc/feature/GitHub actions (#113)
HugoCLSC Dec 5, 2025
bc1156c
Hugoclsc/feature/GitHub actions (#114)
HugoCLSC Dec 5, 2025
ca9eb86
Hugoclsc/feature/GitHub actions (#115)
HugoCLSC Dec 5, 2025
69deb3b
Hugoclsc/feature/GitHub actions (#116)
HugoCLSC Dec 5, 2025
8229438
Refactor/tests compliance (#117)
HugoCLSC Dec 10, 2025
8e48a21
ADD: added overriedCursor to blank cursor (#118)
Robert0Mart Dec 11, 2025
e852346
ADD: color degrade when ON/OFF (#120)
Robert0Mart Dec 11, 2025
868d0fd
Bugfix label overlap (#121)
Robert0Mart Dec 11, 2025
eb18055
Bugfix: Delete file handling and QDialog class refactoring (#128)
HugoCLSC Dec 12, 2025
260b126
Work fan page (#119)
Robert0Mart Dec 12, 2025
70e2c43
Fix issues intruduced in Bugfix label overlap #121 (#129)
HugoCLSC Dec 12, 2025
f703fc6
Fix Merge problems introduced on the previous pull requests (#131)
HugoCLSC Dec 15, 2025
ca9b7f0
Added standard pull request template (#133)
HugoCLSC Dec 15, 2025
3b91e46
Bugfix: fixed white dot on list_model.py (#130)
Robert0Mart Dec 15, 2025
6f4c3e3
Bugfix thumbnail not working (#123)
Robert0Mart Dec 18, 2025
6fbc375
Bugfix uninitilized variable access introduced on #123 (#141)
HugoCLSC Jan 2, 2026
de9fe96
Refactor `SensorPanel`: replace `QListWidgetItem` with `EntryListMode…
gmmcosta15 Jan 2, 2026
4d973b6
Refactor `filesPage.py`: Changed Files List `QtWidgets.QListWidgetIte…
gmmcosta15 Jan 2, 2026
d013f12
Work group button refactor (#137)
Robert0Mart Jan 2, 2026
db29de9
Bugfix `tunePage`: Add clickability and distinct icons to controllabl…
gmmcosta15 Jan 2, 2026
c3bfa56
Work display info UI (#140)
Robert0Mart Jan 2, 2026
11c8572
Work input shapper rework (#134)
Robert0Mart Jan 5, 2026
5339d51
Work connnectivity update page (#139)
Robert0Mart Jan 12, 2026
0e7a3e7
Bugfix/tab unlocking (#147)
Robert0Mart Jan 12, 2026
4ece704
jobStatusPage: only load filedata when printer is printing (#150)
gmmcosta15 Jan 12, 2026
fa53e8c
Bugfix/inputshaper page (#148)
Robert0Mart Jan 14, 2026
1465ea1
work popup features (#144)
Robert0Mart Jan 14, 2026
dd13e39
Improvement/Apply Z‑offset changes immediately, with an option to sav…
gmmcosta15 Jan 14, 2026
95d956f
Work network priority (#122)
Robert0Mart Jan 14, 2026
102a746
Bugfix: fixed loadwidget default being placeholder (gif) (#145)
Robert0Mart Jan 14, 2026
a9a486b
Bugfix/after merge fix (#151)
Robert0Mart Jan 14, 2026
646d997
Merge branch 'main' into dev
HugoCLSC Jan 14, 2026
1a3f83e
Fans controlling UI wasnt working (#153)
gmmcosta15 Jan 14, 2026
92e7e54
Bugfix/update page & Popup logic (#154)
Robert0Mart Jan 14, 2026
ca26de5
bugfix: ipv4 ip command error fix (#155)
gmmcosta15 Jan 15, 2026
0dd5d86
bugfix: fans_widget on tunepage are stacked (#156)
gmmcosta15 Jan 16, 2026
25f2afe
Merge branch 'main' into dev
HugoCLSC Jan 16, 2026
c17c7ae
Merge remote-tracking branch 'origin/main' into dev
HugoCLSC Jan 16, 2026
a5f3600
bugfix ztilt loadscreen (#158)
Robert0Mart Jan 19, 2026
7b1fdb7
Merge remote-tracking branch 'origin/main' into dev
HugoCLSC Jan 19, 2026
a17c8eb
bugfix: inputshaper load not hiding (#161)
Robert0Mart Jan 19, 2026
14a6084
bugfix/popup show right arrow (#163)
gmmcosta15 Jan 20, 2026
d0144bf
swap lower and raise nozzle icons (#164)
gmmcosta15 Jan 20, 2026
d62879f
Refactor loadscreen on the project (#165)
Robert0Mart Jan 20, 2026
61ff8fd
Merge remote-tracking branch 'origin/main' into dev
HugoCLSC Jan 21, 2026
5a6732c
Deleted Unused `ztilt_state` variable from control tab (#166)
HugoCLSC Jan 21, 2026
3219f82
Merge remote-tracking branch 'origin/main' into dev
HugoCLSC Jan 21, 2026
8ba3d63
ADD: Additional load messages (#169)
Robert0Mart Jan 28, 2026
72fb8a0
Refactor `NetworkWindow` (#174)
gmmcosta15 Feb 4, 2026
3323adf
Fix incorrect file removal (#177)
gmmcosta15 Feb 4, 2026
1a7e074
uild: overhaul Makefile, and expand dev deps (#183)
gmmcosta15 Mar 3, 2026
89f892e
bugfix: fixed missing home before ztilt (#180)
Robert0Mart Mar 3, 2026
bb6ddea
Feat/cancel page (#170)
Robert0Mart Mar 3, 2026
cc33f7b
Refactor the Logging System (#172)
gmmcosta15 Mar 3, 2026
9b9d5fe
Revert "Refactor the Logging System (#172)"
HugoCLSC Mar 3, 2026
66ef05d
Refactor the File Management System (#171)
gmmcosta15 Mar 3, 2026
1216fb8
Bugfix/filament loadscreen (#179)
Robert0Mart Mar 3, 2026
b73445b
feat(network): NetworkManager refactor and NetworkControlWindow
gmmcosta15 Mar 3, 2026
c3abe11
Feat/notification tab (#160)
Robert0Mart Mar 3, 2026
f9db18b
Del extras directory not needed
HugoCLSC Mar 3, 2026
2655049
Feat/eddy calibration panel (#188)
Robert0Mart Mar 3, 2026
1720ae0
feat(logger): overhaul logging system with module-aware names and c…
gmmcosta15 Mar 3, 2026
2d9d96e
fix(makefile): align clean, lint and format-check with CI (#187)
gmmcosta15 Mar 9, 2026
eea8cc0
Bugfix/nozzle calli hide (#189)
Robert0Mart Mar 9, 2026
f15cea3
feat(network): remove ethernet DHCP, require static IP for VLANs (#190)
gmmcosta15 Mar 9, 2026
fc38dc4
Bugfix/eddy current calibration home (#191)
Robert0Mart Mar 9, 2026
11cbfcf
refactor(keyboard): delete unused keys, always show . in all screens,…
gmmcosta15 Mar 9, 2026
1f8a308
USB tools (#193)
HugoCLSC Mar 11, 2026
53e7c41
Merge remote-tracking branch 'origin/main' into dev
HugoCLSC Mar 12, 2026
c05e39a
Fix merge issues
HugoCLSC Mar 12, 2026
615059e
Fix pyqt version
HugoCLSC Mar 12, 2026
f1478cc
Add '-' to label prefix
HugoCLSC Mar 12, 2026
f2ebd88
bugfix(logger): starts logger before the mainwindow (#196)
gmmcosta15 Mar 12, 2026
3915a39
Add legacy dir cleanup on start
HugoCLSC Mar 12, 2026
ce1c06d
Replace pillow dependency with pure PyQt6
HugoCLSC Mar 12, 2026
d524ec0
Merge remote-tracking branch 'origin/main' into dev
HugoCLSC Mar 12, 2026
a682dc7
Merge remote-tracking branch 'origin/main' into dev
HugoCLSC Mar 12, 2026
edce55a
Merge remote-tracking branch 'origin/main' into dev
HugoCLSC Mar 17, 2026
1d8f77b
bugfix: page hiding (#202)
Robert0Mart Mar 27, 2026
4ee0abc
Merge remote-tracking branch 'origin/main' into dev
HugoCLSC Apr 2, 2026
ef8d728
bugfix/z offset (#204)
gmmcosta15 Apr 2, 2026
6781ac8
Dynamically retrieve the max heater temperatures for numpads (#199)
HugoCLSC Apr 2, 2026
14c4407
bugfix: missing conection (#205)
Robert0Mart Apr 10, 2026
de5a95e
Fix Z-Offset Calibration (#206)
gmmcosta15 Apr 14, 2026
be027d8
Refactor/filament tab logic (#207)
Robert0Mart Apr 14, 2026
3cf8d4c
Fix config file fetching
HugoCLSC Apr 15, 2026
952f4b4
Pass config as argument to FilamentTab
HugoCLSC Apr 15, 2026
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
4 changes: 4 additions & 0 deletions BlocksScreen.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,7 @@ timeout: 5000

[usb_manager]
gcodes_dir: ~/printer_data/gcodes/

[filament_presence]
object: cutter_sensor
name: extruder_cutter
7 changes: 4 additions & 3 deletions BlocksScreen/lib/moonrakerComm.py
Original file line number Diff line number Diff line change
Expand Up @@ -280,9 +280,10 @@ def on_message(self, *args) -> None:
metadata=_entry,
)
elif "method" in response:
if (
str(response["method"]).lower() == "notify_klippy_disconnected"
): # Checkout for notify_klippy_disconnect
if str(response["method"]).lower() in (
"notify_klippy_disconnected",
"notify_klippy_shutdown",
):
self.evaluate_klippy_status()

message_event = (
Expand Down
67 changes: 48 additions & 19 deletions BlocksScreen/lib/panels/controlTab.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from __future__ import annotations

import re
import typing
from functools import partial
import logging

from helper_methods import normalize
from lib.moonrakerComm import MoonWebSocket
Expand All @@ -18,6 +18,9 @@
from PyQt6 import QtCore, QtGui, QtWidgets


_logger = logging.getLogger(__name__)


class ControlTab(QtWidgets.QStackedWidget):
"""Printer Control Stacked Widget"""

Expand All @@ -37,6 +40,9 @@ class ControlTab(QtWidgets.QStackedWidget):
disable_popups: typing.ClassVar[QtCore.pyqtSignal] = QtCore.pyqtSignal(
bool, name="disable-popups"
)
lock_ui: typing.ClassVar[QtCore.pyqtSignal] = QtCore.pyqtSignal(
bool, name="lock-ui"
)
request_numpad: typing.ClassVar[QtCore.pyqtSignal] = QtCore.pyqtSignal(
[str, int, "PyQt_PyObject"],
[str, int, "PyQt_PyObject", int, int],
Expand Down Expand Up @@ -79,6 +85,7 @@ def __init__(
self.probe_helper_page = ProbeHelper(self)
self.probe_helper_page.toggle_conn_page.connect(self.toggle_conn_page)
self.probe_helper_page.disable_popups.connect(self.disable_popups)
self.probe_helper_page.lock_ui.connect(self.lock_ui)
self.addWidget(self.probe_helper_page)
self.probe_helper_page.call_load_panel.connect(self.call_load_panel)
self.printcores_page = SwapPrintcorePage(self)
Expand Down Expand Up @@ -252,24 +259,6 @@ def __init__(
self.numpadPage.request_back.connect(self.request_back_button)
self.addWidget(self.numpadPage)

self.panel.extruder_temp_display.clicked.connect(
lambda: self.request_numpad[str, int, "PyQt_PyObject", int, int].emit(
"Extruder Temperature",
int(round(float(self.panel.extruder_temp_display.secondary_text))),
self.on_numpad_change,
0,
370, # TODO: Get this value from printer objects
)
)
self.panel.bed_temp_display.clicked.connect(
lambda: self.request_numpad[str, int, "PyQt_PyObject", int, int].emit(
"Bed Temperature",
int(round(float(self.panel.bed_temp_display.secondary_text))),
self.on_numpad_change,
0,
120, # TODO: Get this value from printer objects
)
)
self.request_numpad[str, int, "PyQt_PyObject", int, int].connect(
self.on_numpad_request
)
Expand Down Expand Up @@ -304,6 +293,8 @@ def __init__(
self.printer.fan_update[str, str, float].connect(self.on_fan_object_update)
self.printer.fan_update[str, str, int].connect(self.on_fan_object_update)

self.printer.printer_config.connect(self.on_printer_config)

def _handle_z_tilt_object_update(self, value, state):
if state:
self.call_load_panel.emit(False, "")
Expand Down Expand Up @@ -470,6 +461,44 @@ def _handle_gcode_response(self, messages: list):
f"Retries: {retries_done}/{retries_total} | Range: {probed_range:.6f} | Tolerance: {tolerance:.6f}",
)

@QtCore.pyqtSlot(dict, name="printer_config")
def on_printer_config(self, config: dict) -> None:
"""Slot that receives the full printer configuration,

Additionally, this method configures the signal connections
between controllable heaters and numpad calls
"""
try:
self.panel.extruder_temp_display.clicked.disconnect()
self.panel.bed_temp_display.clicked.disconnect()
except Exception:
_logger.debug("Signals were not connected")
extruder = config.get("extruder", None) or {}
bed = config.get("heater_bed", None) or {}
e_min_temp = extruder.get("min_temp", 0)
e_max_temp = extruder.get("max_temp", 300)
b_max_temp = bed.get("max_temp", 100)
b_min_temp = bed.get("min_temp", 0)
# Configure numpads
self.panel.extruder_temp_display.clicked.connect(
lambda: self.request_numpad[str, int, "PyQt_PyObject", int, int].emit(
"Extruder Temperature",
int(round(float(self.panel.extruder_temp_display.secondary_text))),
self.on_numpad_change,
int(e_min_temp),
int(e_max_temp),
)
)
self.panel.bed_temp_display.clicked.connect(
lambda: self.request_numpad[str, int, "PyQt_PyObject", int, int].emit(
"Bed Temperature",
int(round(float(self.panel.bed_temp_display.secondary_text))),
self.on_numpad_change,
int(b_min_temp),
int(b_max_temp),
)
)

def handle_ztilt(self):
"""Handle Z-Tilt Adjustment"""
self.call_load_panel.emit(True, "Please wait, performing Z-axis calibration.")
Expand Down
Loading
Loading