diff --git a/src/main/python/main/ayab/ayab.py b/src/main/python/main/ayab/ayab.py index 010c0ecc..f73f4de8 100644 --- a/src/main/python/main/ayab/ayab.py +++ b/src/main/python/main/ayab/ayab.py @@ -77,10 +77,10 @@ def __init__(self, app_context: AppContext): # self.setStatusBar(self.statusbar) self.about: About = About(self) self.scene: Scene = Scene(self) - self.knitprog = KnitProgress(self) self.engine: Engine = Engine(self) self.hw_test = HardwareTestDialog(self) self.progbar = ProgressBar(self) + self.knitprog = KnitProgress(self) self.flash = FirmwareFlash(self) self.audio = AudioPlayer(self) self.knit_thread = GenericThread(self.engine.run, Operation.KNIT) diff --git a/src/main/python/main/ayab/knitprogress.py b/src/main/python/main/ayab/knitprogress.py index 9f006625..033e8ff1 100644 --- a/src/main/python/main/ayab/knitprogress.py +++ b/src/main/python/main/ayab/knitprogress.py @@ -47,6 +47,7 @@ def __init__(self, parent: GuiMain): self.clear() self.setRowCount(0) self.__prefs: Preferences = parent.prefs + self.__progbar = parent.progbar self.setGeometry(QRect(0, 0, 700, 220)) self.setContentsMargins(1, 1, 1, 1) self.verticalHeader().setSectionResizeMode( @@ -62,6 +63,7 @@ def __init__(self, parent: GuiMain): self.previousStatus: Optional[Status] = None self.scene = parent.scene + self.currentItemChanged.connect(self.onStitchSelect) def start(self) -> None: self.clearContents() @@ -149,19 +151,18 @@ def instantiate_row_from_columns(self, midline: int, columns: List[QTableWidgetI self.setVerticalHeaderItem(0, QTableWidgetItem("To Be Selected")) for i, col in enumerate(columns): self.setItem(0, i, col) - self.setColumnWidth(i, cast(int, self.__prefs.settings.value("lower_display_stitch_width"))) + self.setColumnWidth(i, self.__prefs.value("lower_display_stitch_width")) # when width is under 20, the column numbers are unreadable. if self.columnWidth(i) < 20: self.horizontalHeader().setVisible(False) - continue - self.horizontalHeader().setVisible(True) + else: + self.horizontalHeader().setVisible(True) if i < midline: header = QTableWidgetItem(f"{(midline)-(i)}") header.font().setBold(True) header.setForeground(QBrush(QColor(f"#{self.orange:06x}"))) header.setTextAlignment(Qt.AlignmentFlag.AlignCenter) self.setHorizontalHeaderItem(i, header) - self.horizontalHeader().setMinimumSectionSize(0) else: header = QTableWidgetItem(f"{(i+1)-(midline)}") header.setForeground(QBrush(QColor(f"#{self.green:06x}"))) @@ -226,3 +227,11 @@ def __stitch(self, color: int, bit: bool, alt_color: Optional[int] = None, bg_co if bg_color is not None: stitch.setBackground(QBrush(bg_color)) return stitch + + def onStitchSelect(self, current: QTableWidgetItem) -> None: + if self.horizontalHeaderItem(current.column()).foreground().color().red() == 187: + side = "Green" + else: + side = "Orange" + selectionString = f"Selection: {self.verticalHeaderItem(current.row()).text()} , stitch {side}-{self.horizontalHeaderItem(current.column()).text()}" + self.__progbar.setSelectionLabel(selectionString) diff --git a/src/main/python/main/ayab/main_gui.ui b/src/main/python/main/ayab/main_gui.ui index 7dd30cdb..a8672e49 100644 --- a/src/main/python/main/ayab/main_gui.ui +++ b/src/main/python/main/ayab/main_gui.ui @@ -34,6 +34,13 @@ + + + + + + + diff --git a/src/main/python/main/ayab/progressbar.py b/src/main/python/main/ayab/progressbar.py index 4d723bb5..649caabd 100644 --- a/src/main/python/main/ayab/progressbar.py +++ b/src/main/python/main/ayab/progressbar.py @@ -34,6 +34,7 @@ def __init__(self, parent: GuiMain): self.__row_label = parent.ui.label_current_row self.__color_label = parent.ui.label_current_color self.__status_label = parent.engine.status.ui.label_progress + self.__selection_label = parent.ui.label_selection self.reset() def reset(self) -> None: @@ -45,6 +46,7 @@ def reset(self) -> None: self.__row_label.setText("") self.__color_label.setText("") self.__status_label.setText("") + self.__selection_label.setText("") def update( self, @@ -60,6 +62,9 @@ def update( self.refresh() return True + def setSelectionLabel(self, text: str) -> None: + self.__selection_label.setText(text) + def refresh(self) -> None: """Updates the color and row in progress bar""" if self.row < 0 or self.total < 0: