Skip to content
Merged
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
2 changes: 1 addition & 1 deletion BlocksScreen/devices/storage/usb_controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from PyQt6 import QtCore

from .udisks2 import UDisksDBusAsync
from lib.panels.widgets.bannerPopup import BannerPopup
from lib.panels.widgets.Common.bannerPopup import BannerPopup

ResType: typing.TypeAlias = typing.Literal["always", "none"]

Expand Down
760 changes: 253 additions & 507 deletions BlocksScreen/lib/panels/controlTab.py

Large diffs are not rendered by default.

88 changes: 33 additions & 55 deletions BlocksScreen/lib/panels/filamentTab.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,23 @@

from devices.amu import AMUManager
from devices.amu.models import GateStatus
from lib.panels.widgets.addFilamentPage import AddFilamentPage
from lib.panels.widgets.addSpoolPage import AddSpoolPage
from lib.panels.widgets.amuPage import AMUpage
from lib.panels.widgets.basePopup import BasePopup
from lib.panels.widgets.basicFilamentPanel import BasicFilamentPanel
from lib.panels.widgets.colorWheelWidget import ColorWheelWidget
from lib.panels.widgets.keyboardPage import CustomQwertyKeyboard
from lib.panels.widgets.loadWidget import LoadingOverlayWidget
from lib.panels.widgets.numpadPage import CustomNumpad
from lib.panels.widgets.spoolmanPage import SpoolmanPage
from lib.panels.widgets.Common.basePopup import BasePopup
from lib.panels.widgets.Common.keyboardPage import CustomQwertyKeyboard
from lib.panels.widgets.Common.loadWidget import LoadingOverlayWidget
from lib.panels.widgets.Common.numpadPage import CustomNumpad
from lib.panels.widgets.FilamentTab.addFilamentPage import AddFilamentPage
from lib.panels.widgets.FilamentTab.addSpoolPage import AddSpoolPage
from lib.panels.widgets.FilamentTab.amuPage import AMUpage
from lib.panels.widgets.FilamentTab.basicFilamentPanel import BasicFilamentPanel
from lib.panels.widgets.FilamentTab.colorWheelWidget import ColorWheelWidget
from lib.panels.widgets.FilamentTab.spoolmanPage import SpoolmanPage
from lib.printer import Printer
from lib.utils.blocks_button import BlocksCustomButton
from lib.utils.blocks_frame import BlocksCustomFrame
from lib.utils.blocks_linedit import BlocksCustomLinEdit
from lib.utils.icon_button import IconButton
from lib.utils.list_model import EntryDelegate, EntryListModel, ListItem
from lib.utils.menu_grid import fixed_menu_grid
from lib.utils.toolmap import MmuToolmapWidget
from PyQt6 import QtCore, QtGui, QtWidgets

Expand Down Expand Up @@ -48,8 +49,8 @@ def __init__(
self.amu_manager: AMUManager = amu_manager
self.amu_configured = False
self._popup_callback = None
self.ui = self.setupUi()
self.change_page(self.indexOf(self.ui))
self._setup_ui()
self.change_page(self.indexOf(self.filament_control_page))

self._previous_gate_states: dict[int, bool] = {}
self.pre_gate_idx = {}
Expand Down Expand Up @@ -1025,59 +1026,42 @@ def on_mmu_state_changed(self, mmu_state):

self.load_status_label.setText(mmu_state.action)

def setupUi(self):
@staticmethod
def _hblank() -> QtWidgets.QWidget:
blank = QtWidgets.QWidget()
blank.setFixedSize(60, 60)
return blank

def _setup_ui(self):
"""Build the tab's landing page (title + Filament Control / Spoolman buttons)."""
self.resize(710, 410)
self.setLayoutDirection(QtCore.Qt.LayoutDirection.LeftToRight)
widget = QtWidgets.QWidget()
widget.setMinimumSize(QtCore.QSize(710, 410))
widget.setMaximumSize(QtCore.QSize(710, 410))
self.setObjectName("filament_page")
self.verticalLayout = QtWidgets.QVBoxLayout()
self.filament_control_page = QtWidgets.QWidget()
self.filament_control_page.setFixedSize(710, 410)
self.verticalLayout = QtWidgets.QVBoxLayout(self.filament_control_page)
self.verticalLayout.setObjectName("verticalLayout")
self.fp_header_layout = QtWidgets.QHBoxLayout()
self.fp_header_layout.setObjectName("fp_header_layout")
self.fp_header_layout.addWidget(self._hblank())

self.fp_header_layout.addItem(
QtWidgets.QSpacerItem(
60,
60,
QtWidgets.QSizePolicy.Policy.Fixed,
QtWidgets.QSizePolicy.Policy.Minimum,
)
)
self.fp_header_title = QtWidgets.QLabel(parent=self)
self.fp_header_title = QtWidgets.QLabel(parent=self.filament_control_page)
sizePolicy = QtWidgets.QSizePolicy(
QtWidgets.QSizePolicy.Policy.MinimumExpanding,
QtWidgets.QSizePolicy.Policy.Fixed,
)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(
self.fp_header_title.sizePolicy().hasHeightForWidth()
QtWidgets.QSizePolicy.Policy.Expanding,
QtWidgets.QSizePolicy.Policy.Minimum,
)
self.fp_header_title.setSizePolicy(sizePolicy)
self.fp_header_title.setMinimumSize(QtCore.QSize(300, 60))
self.fp_header_title.setMinimumSize(QtCore.QSize(0, 60))
self.fp_header_title.setMaximumSize(QtCore.QSize(16777215, 60))
font = QtGui.QFont()
font.setFamily("Momcake")
font.setPointSize(24)
font.setBold(True)
font.setWeight(75)
self.fp_header_title.setFont(font)
self.fp_header_title.setStyleSheet("background: transparent; color: white;")
self.fp_header_title.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter)
self.fp_header_title.setObjectName("fp_header_title")
self.fp_header_layout.addWidget(self.fp_header_title)

self.fp_header_layout.addItem(
QtWidgets.QSpacerItem(
60,
60,
QtWidgets.QSizePolicy.Policy.Fixed,
QtWidgets.QSizePolicy.Policy.Minimum,
)
)
self.fp_header_layout.addWidget(self._hblank())

self.verticalLayout.addLayout(self.fp_header_layout)
self.fp_content_layout = QtWidgets.QGridLayout()
Expand Down Expand Up @@ -1124,17 +1108,11 @@ def setupUi(self):

self.fp_content_layout.addWidget(self.fp_button_2, 1, 1, 1, 1)

self.verticalLayout.addLayout(self.fp_content_layout)
widget.setLayout(self.verticalLayout)

self.fp_content_layout.setRowMinimumHeight(
0, int(87.5)
) # 87.5 to compensate for not having margin on the rest of the buttons
self.fp_content_layout.setRowMinimumHeight(
2, int(87.5)
) # dont ask how i got this value , it was try and repeat
self.verticalLayout.addWidget(
fixed_menu_grid(self.filament_control_page, self.fp_content_layout)
)

self.addWidget(widget)
self.addWidget(self.filament_control_page)
self.fp_header_title.setText("Filament")
self.fp_button_1.setText("Filament\nControl")
self.fp_button_2.setText("Spoolman")
Loading
Loading