Skip to content

Commit

Permalink
add selection indicator
Browse files Browse the repository at this point in the history
  • Loading branch information
X-sam committed Jul 16, 2024
1 parent 8c9b0e7 commit d6265c9
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 5 deletions.
2 changes: 1 addition & 1 deletion src/main/python/main/ayab/ayab.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
17 changes: 13 additions & 4 deletions src/main/python/main/ayab/knitprogress.py
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand All @@ -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()
Expand Down Expand Up @@ -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}")))
Expand Down Expand Up @@ -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)
7 changes: 7 additions & 0 deletions src/main/python/main/ayab/main_gui.ui
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,13 @@
</property>
<item>
<layout class="QHBoxLayout" name="horizontal_layout">
<item>
<widget class="QLabel" name="label_selection">
<property name="text">
<string/>
</property>
</widget>
</item>
<item alignment="Qt::AlignHCenter|Qt::AlignVCenter">
<widget class="QLabel" name="label_current_color">
<property name="font">
Expand Down
5 changes: 5 additions & 0 deletions src/main/python/main/ayab/progressbar.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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,
Expand All @@ -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:
Expand Down

0 comments on commit d6265c9

Please sign in to comment.