BonPrinter v1.2.0
Thermal Printer tool
Loading...
Searching...
No Matches
open_notepad.py
Go to the documentation of this file.
1"""!
2********************************************************************************
3@file open_notepad.py
4@brief open notepad file in thread to prevent freeze of window
5********************************************************************************
6"""
7
8import os
9import enum
10import subprocess
11import logging
12from typing import Callable, Any
13
14from Source.version import __title__
15from Source.Util.gui_toolkit import SIGNAL, THREAD, emit_signal, connect_signal, disconnect_signal
16
17log = logging.getLogger(__title__)
18
19
20class ENotepadSelection(str, enum.Enum):
21 """!
22 @brief File selection to open notepad.
23 """
24 USER = "User"
25 ARTICLES = "Articles"
26 STATUS = "Status"
27 REPORT = "Report"
28 UNKNOWN = "Unknown"
29
30
31class OpenNotepadWorker(THREAD):
32 """!
33 @brief Open Notepad Worker.
34 """
35 notepad_signal = SIGNAL()
36
37 def __init__(self) -> None:
38 super().__init__()
39 self.s_file = ""
40 self.e_selection = ENotepadSelection.UNKNOWN
42
43 def open_report_file(self, s_file_name_path: str, e_selection: ENotepadSelection, callback: Callable[[], Any]) -> None:
44 """!
45 @brief Open report file. Set data to open and start open thread
46 @param s_file_name_path : file to open
47 @param e_selection : Status of file to open
48 @param callback : callback for connected signal
49 """
50 self.s_file = s_file_name_path
51 self.e_selection = e_selection
52 self.start() # function "run" is called by thread
53 if self.signal_is_connected:
54 disconnect_signal(self.notepad_signal) # disconnect old signal
55 connect_signal(self.notepad_signal, callback)
56 self.signal_is_connected = True
57
58 def run(self) -> None:
59 """!
60 @brief Open file in Notepad.
61 """
62 with subprocess.Popen(["notepad.exe", self.s_file]):
63 pass
64 if self.e_selection == ENotepadSelection.STATUS:
65 os.remove(self.s_file)
66 emit_signal(self.notepad_signal)
File selection to open notepad.
None open_report_file(self, str s_file_name_path, ENotepadSelection e_selection, Callable[[], Any] callback)
Open report file.
None run(self)
Open file in Notepad.