st-ten-1/src/ui/barcode_recipe_selection/barcode_recipe_selection.py

64 lines
2.1 KiB
Python
Raw Normal View History

2023-03-03 17:51:35 +00:00
import sys
from PyQt5 import Qt
from lib.helpers import timing
from PyQt5.QtCore import Qt, QTimer, QThread
from PyQt5.QtGui import QKeySequence, QPixmap, QPalette, QColor
from PyQt5.QtWidgets import QShortcut, QApplication
from ui.widget import Widget
test_scan="xxx\nyyy\nzzz"
class Barcode_Recipe_Selection(Widget):
2023-03-25 14:42:32 +00:00
def __init__(self, parent):
2023-03-03 17:51:35 +00:00
super().__init__()
2023-03-25 14:42:32 +00:00
self.parent=parent
2023-03-03 17:51:35 +00:00
self.barcode_input_l.textChanged.connect(self.get)
self.status_palettes = {
True: QPalette(),
"": QPalette(),
"warning": QPalette(),
False: QPalette(),
None: QPalette(),
}
self.status_palettes[True].setColor(QPalette.Base, Qt.green)
self.status_palettes[False].setColor(QPalette.Base, Qt.red)
self.status_palettes["warning"].setColor(QPalette.Base, QColor(255, 165, 0))
self.status_palettes[""].setColor(QPalette.Base, QColor(255, 255, 0))
2023-03-25 15:09:23 +00:00
self.recipe_selection_b.clicked.connect(self.parent.set_recipe_mode_table)
2023-03-03 17:51:35 +00:00
self.barcode_input_l.setFocus()
2023-03-25 14:42:32 +00:00
2023-03-03 17:51:35 +00:00
self.focus_timer = QTimer()
self.focus_timer.setSingleShot(True)
self.focus_timer.timeout.connect(self.set_focus)
def start(self, recipe=None, step=None, pieces=None):
self.barcode_input_l.setPalette(self.status_palettes[None])
self.barcode_input_l.setPlainText("")
self.barcode_input_l.setFocus()
self.focus_timer.start(500)
def get(self, data=None, override=False):
if data is None:
data = self.barcode_input_l.toPlainText()
if not len(data):
data = None
if data is None:
return
self.barcode_input_l.setPalette(self.status_palettes[True])
else:
self.barcode_input_l.setPalette(self.status_palettes[False])
self.focus_timer.start(1000)
# LOOKUP RECIPE
def set_focus(self):
self.barcode_input_l.setFocus()
self.barcode_input_l.setPlainText("")
self.barcode_input_l.setPalette(self.status_palettes[""])