Skip to content

Tomer's USB refactor #11

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 15 commits into from
Apr 16, 2024
1 change: 1 addition & 0 deletions scripts/gui_dev.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#!/usr/bin/env bash

while true; do
LABELLE_DEV_MODE_NO_MARGINS=$LABELLE_DEV_MODE_NO_MARGINS \
LABELLE_VERBOSE=$LABELLE_VERBOSE \
labelle-gui -v;
sleep 1
Expand Down
2 changes: 1 addition & 1 deletion src/labelle/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from labelle.lib.dymo_labeler import DymoLabeler
from labelle.lib.devices.dymo_labeler import DymoLabeler
from labelle.metadata import __version__

__all__ = ["__version__", "DymoLabeler"]
11 changes: 9 additions & 2 deletions src/labelle/cli/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,11 @@
USE_QR,
e_qrcode,
)
from labelle.lib.dymo_labeler import DymoLabeler
from labelle.lib.devices.device_manager import DeviceManager
from labelle.lib.devices.dymo_labeler import DymoLabeler
from labelle.lib.env_config import is_verbose_env_vars
from labelle.lib.font_config import NoFontFound, get_available_fonts, get_font_path
from labelle.lib.logger import configure_logging, is_verbose_env_vars, set_not_verbose
from labelle.lib.logger import configure_logging, set_not_verbose
from labelle.lib.render_engines import (
BarcodeRenderEngine,
BarcodeWithTextRenderEngine,
Expand Down Expand Up @@ -335,6 +337,11 @@ def run():
min_width_px=min_payload_len_px,
)
bitmap, _ = render.render(render_context)

device_manager = DeviceManager()
device = device_manager.scan()
device = device_manager.find_and_select_device()
device.setup()
dymo_labeler.print(bitmap)


Expand Down
27 changes: 16 additions & 11 deletions src/labelle/gui/gui.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,13 @@

from labelle.gui.common import crash_msg_box
from labelle.lib.constants import ICON_DIR
from labelle.lib.dymo_labeler import (
from labelle.lib.devices.device_manager import DeviceManager, DeviceManagerError
from labelle.lib.devices.dymo_labeler import (
DymoLabeler,
DymoLabelerDetectError,
DymoLabelerPrintError,
)
from labelle.lib.logger import configure_logging, is_verbose_env_vars, set_not_verbose
from labelle.lib.env_config import is_verbose_env_vars
from labelle.lib.logger import configure_logging, set_not_verbose
from labelle.lib.render_engines import RenderContext
from labelle.lib.utils import system_run

Expand All @@ -36,8 +37,9 @@
LOG = logging.getLogger(__name__)


class DymoPrintWindow(QWidget):
class LabelleWindow(QWidget):
label_bitmap_to_print: Optional[Image.Image]
device_manager: DeviceManager
dymo_labeler: DymoLabeler
render_context: RenderContext
tape_size_mm: QComboBox
Expand Down Expand Up @@ -82,6 +84,7 @@ def init_elements(self):
shadow.setBlurRadius(15)
self.label_render.setGraphicsEffect(shadow)

self.device_manager = DeviceManager()
self.dymo_labeler = DymoLabeler()
for tape_size_mm in self.dymo_labeler.SUPPORTED_TAPE_SIZES_MM:
self.tape_size_mm.addItem(str(tape_size_mm), tape_size_mm)
Expand Down Expand Up @@ -111,10 +114,9 @@ def init_elements(self):
self.label_list.populate()

def init_timers(self):
self.check_status()
self.refresh_devices()
self.status_time = QTimer()
self.status_time.timeout.connect(self.check_status)
self.status_time.setInterval(2000)
self.status_time.timeout.connect(self.refresh_devices)
self.status_time.start(2000)

def init_connections(self):
Expand Down Expand Up @@ -220,12 +222,15 @@ def print_label(self):
except DymoLabelerPrintError as err:
crash_msg_box(self, "Printing Failed!", err)

def check_status(self):
def refresh_devices(self):
self.error_label.setText("")
try:
self.dymo_labeler.detect()
self.device_manager.scan()
device = self.device_manager.find_and_select_device()
device.setup()
self.dymo_labeler.device = device
is_enabled = True
except DymoLabelerDetectError as e:
except DeviceManagerError as e:
error = str(e)
if self.last_error != error:
self.last_error = error
Expand Down Expand Up @@ -258,6 +263,6 @@ def main():
with system_run():
app = QApplication(sys.argv)
parse(app)
window = DymoPrintWindow()
window = LabelleWindow()
window.show()
sys.exit(app.exec())
4 changes: 3 additions & 1 deletion src/labelle/gui/q_dymo_label_widgets.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

from labelle.gui.common import crash_msg_box
from labelle.lib.constants import AVAILABLE_BARCODES, ICON_DIR
from labelle.lib.env_config import is_dev_mode_no_margins
from labelle.lib.font_config import get_available_fonts
from labelle.lib.render_engines import (
BarcodeRenderEngine,
Expand Down Expand Up @@ -113,7 +114,8 @@ def __init__(self, render_context: RenderContext, parent: Optional[QWidget] = No
super().__init__(parent)
self.render_context = render_context

self.label = QPlainTextEdit("text")
default_label_text = "." if is_dev_mode_no_margins() else "text"
self.label = QPlainTextEdit(default_label_text)
self.label.setFixedHeight(15 * (len(self.label.toPlainText().splitlines()) + 2))
self.setFixedHeight(self.label.height() + 10)
self.font_style = FontStyle()
Expand Down
2 changes: 1 addition & 1 deletion src/labelle/gui/q_dymo_labels_list.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
QrDymoLabelWidget,
TextDymoLabelWidget,
)
from labelle.lib.dymo_labeler import DymoLabeler
from labelle.lib.devices.dymo_labeler import DymoLabeler
from labelle.lib.render_engines import (
HorizontallyCombinedRenderEngine,
PrintPayloadRenderEngine,
Expand Down
211 changes: 0 additions & 211 deletions src/labelle/lib/detect.py

This file was deleted.

Empty file.
Loading