frontengine 0.0.72__py3-none-any.whl → 0.0.74__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- frontengine/show/clicker/clicker_scene.py +3 -0
- frontengine/show/clicker/clicker_ui.py +3 -0
- frontengine/show/gif/paint_gif.py +12 -0
- frontengine/show/image/paint_image.py +11 -0
- frontengine/show/load/load_someone_make_ui.py +8 -0
- frontengine/show/particle/particle_scene.py +11 -0
- frontengine/show/particle/particle_ui.py +12 -0
- frontengine/show/particle/particle_utils.py +35 -0
- frontengine/show/scene/extend_graphic_scene.py +3 -0
- frontengine/show/scene/extend_graphic_view.py +6 -0
- frontengine/show/scene/scene.py +8 -0
- frontengine/show/sound_player/sound_effect.py +4 -0
- frontengine/show/sound_player/sound_player.py +4 -0
- frontengine/show/text/draw_text.py +16 -0
- frontengine/show/video/video_player.py +11 -0
- frontengine/show/web/webview.py +12 -0
- frontengine/system_tray/extend_system_tray.py +5 -0
- frontengine/ui/dialog/choose_file_dialog.py +25 -0
- frontengine/ui/dialog/save_file_dialog.py +4 -0
- frontengine/ui/menu/help_menu.py +4 -0
- frontengine/ui/menu/how_to_menu.py +2 -0
- frontengine/ui/menu/language_menu.py +6 -0
- frontengine/ui/page/control_center/control_center_ui.py +20 -9
- frontengine/ui/page/gif/gif_setting_ui.py +7 -0
- frontengine/ui/page/image/image_setting_ui.py +6 -0
- frontengine/ui/page/particle/particle_setting_ui.py +6 -0
- frontengine/ui/page/scene_setting/scene_page/gif.py +6 -0
- frontengine/ui/page/scene_setting/scene_page/image.py +5 -0
- frontengine/ui/page/scene_setting/scene_page/sound.py +5 -0
- frontengine/ui/page/scene_setting/scene_page/text.py +5 -0
- frontengine/utils/logging/loggin_instance.py +19 -9
- frontengine/utils/redirect_manager/redirect_manager_class.py +22 -17
- {frontengine-0.0.72.dist-info → frontengine-0.0.74.dist-info}/METADATA +3 -3
- {frontengine-0.0.72.dist-info → frontengine-0.0.74.dist-info}/RECORD +37 -38
- {frontengine-0.0.72.dist-info → frontengine-0.0.74.dist-info}/WHEEL +1 -1
- frontengine/gl_widget/__init__.py +0 -0
- {frontengine-0.0.72.dist-info → frontengine-0.0.74.dist-info}/LICENSE +0 -0
- {frontengine-0.0.72.dist-info → frontengine-0.0.74.dist-info}/top_level.txt +0 -0
@@ -1,7 +1,10 @@
|
|
1
1
|
from PySide6.QtWidgets import QGraphicsScene
|
2
2
|
|
3
|
+
from frontengine.utils.logging.loggin_instance import front_engine_logger
|
4
|
+
|
3
5
|
|
4
6
|
class ClickerGraphicScene(QGraphicsScene):
|
5
7
|
|
6
8
|
def __init__(self):
|
9
|
+
front_engine_logger.info("Init ClickerGraphicScene")
|
7
10
|
super().__init__()
|
@@ -3,11 +3,13 @@ from PySide6.QtWidgets import QWidget, QGridLayout
|
|
3
3
|
|
4
4
|
from frontengine.show.clicker.clicker_scene import ClickerGraphicScene
|
5
5
|
from frontengine.show.scene.extend_graphic_view import ExtendGraphicView
|
6
|
+
from frontengine.utils.logging.loggin_instance import front_engine_logger
|
6
7
|
|
7
8
|
|
8
9
|
class ClickerWidget(QWidget):
|
9
10
|
|
10
11
|
def __init__(self):
|
12
|
+
front_engine_logger.info("Init ClickerWidget")
|
11
13
|
super().__init__()
|
12
14
|
self.setAttribute(Qt.WidgetAttribute.WA_TranslucentBackground)
|
13
15
|
self.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose)
|
@@ -19,6 +21,7 @@ class ClickerWidget(QWidget):
|
|
19
21
|
self.setLayout(self.grid_layout)
|
20
22
|
|
21
23
|
def set_ui_window_flag(self, show_on_bottom: bool = False) -> None:
|
24
|
+
front_engine_logger.info("ClickerWidget set_ui_window_flag")
|
22
25
|
self.setWindowFlag(
|
23
26
|
Qt.WindowType.WindowTransparentForInput |
|
24
27
|
Qt.WindowType.FramelessWindowHint |
|
@@ -5,12 +5,17 @@ from PySide6.QtCore import Qt, QRect
|
|
5
5
|
from PySide6.QtGui import QMovie, QPainter, QIcon
|
6
6
|
from PySide6.QtWidgets import QWidget, QLabel, QMessageBox
|
7
7
|
|
8
|
+
from frontengine.utils.logging.loggin_instance import front_engine_logger
|
8
9
|
from frontengine.utils.multi_language.language_wrapper import language_wrapper
|
9
10
|
|
10
11
|
|
11
12
|
class GifWidget(QWidget):
|
12
13
|
|
13
14
|
def __init__(self, gif_image_path: str, draw_location_x: int = 0, draw_location_y: int = 0):
|
15
|
+
front_engine_logger.info("Init GifWidget"
|
16
|
+
f"gif_image_path: {gif_image_path} "
|
17
|
+
f"draw_location_x: {draw_location_x} "
|
18
|
+
f"draw_location_y: {draw_location_y}")
|
14
19
|
super().__init__()
|
15
20
|
self.draw_location_x = draw_location_x
|
16
21
|
self.draw_location_y = draw_location_y
|
@@ -41,13 +46,16 @@ class GifWidget(QWidget):
|
|
41
46
|
self.setWindowIcon(QIcon(str(self.icon_path)))
|
42
47
|
|
43
48
|
def set_gif_variable(self, speed: int = 100) -> None:
|
49
|
+
front_engine_logger.info(f"GifWidget set_gif_variable speed: {speed}")
|
44
50
|
self.speed = speed
|
45
51
|
self.movie.setSpeed(self.speed)
|
46
52
|
|
47
53
|
def set_ui_variable(self, opacity: float = 0.2) -> None:
|
54
|
+
front_engine_logger.info(f"GifWidget set_ui_variable opacity: {opacity}")
|
48
55
|
self.opacity = opacity
|
49
56
|
|
50
57
|
def set_ui_window_flag(self, show_on_bottom: bool = False) -> None:
|
58
|
+
front_engine_logger.info(f"GifWidget set_ui_window_flag show_on_bottom: {show_on_bottom}")
|
51
59
|
self.setWindowFlag(
|
52
60
|
Qt.WindowType.WindowTransparentForInput |
|
53
61
|
Qt.WindowType.FramelessWindowHint |
|
@@ -59,6 +67,7 @@ class GifWidget(QWidget):
|
|
59
67
|
self.setWindowFlag(Qt.WindowType.WindowStaysOnBottomHint)
|
60
68
|
|
61
69
|
def paintEvent(self, event) -> None:
|
70
|
+
front_engine_logger.info(f"GifWidget paintEvent event: {event}")
|
62
71
|
current_gif_frame = self.movie.currentPixmap()
|
63
72
|
painter = QPainter(self)
|
64
73
|
painter.setOpacity(self.opacity)
|
@@ -71,11 +80,14 @@ class GifWidget(QWidget):
|
|
71
80
|
painter.restore()
|
72
81
|
|
73
82
|
def mousePressEvent(self, event) -> None:
|
83
|
+
front_engine_logger.info(f"GifWidget mousePressEvent event: {event}")
|
74
84
|
super().mousePressEvent(event)
|
75
85
|
|
76
86
|
def mouseDoubleClickEvent(self, event) -> None:
|
87
|
+
front_engine_logger.info(f"GifWidget mouseDoubleClickEvent event: {event}")
|
77
88
|
super().mouseDoubleClickEvent(event)
|
78
89
|
|
79
90
|
def mouseGrabber(self) -> None:
|
91
|
+
front_engine_logger.info(f"GifWidget mouseGrabber event: {event}")
|
80
92
|
super().mouseGrabber()
|
81
93
|
|
@@ -5,12 +5,17 @@ from PySide6.QtCore import Qt, QRect
|
|
5
5
|
from PySide6.QtGui import QPainter, QImage, QIcon
|
6
6
|
from PySide6.QtWidgets import QWidget, QMessageBox
|
7
7
|
|
8
|
+
from frontengine.utils.logging.loggin_instance import front_engine_logger
|
8
9
|
from frontengine.utils.multi_language.language_wrapper import language_wrapper
|
9
10
|
|
10
11
|
|
11
12
|
class ImageWidget(QWidget):
|
12
13
|
|
13
14
|
def __init__(self, image_path: str, draw_location_x: int = 0, draw_location_y: int = 0):
|
15
|
+
front_engine_logger.info("Init ImageWidget"
|
16
|
+
f"image_path: {image_path} "
|
17
|
+
f"draw_location_x: {draw_location_x} "
|
18
|
+
f" draw_location_y: {draw_location_y}")
|
14
19
|
super().__init__()
|
15
20
|
self.draw_location_x = draw_location_x
|
16
21
|
self.draw_location_y = draw_location_y
|
@@ -34,6 +39,7 @@ class ImageWidget(QWidget):
|
|
34
39
|
self.setWindowIcon(QIcon(str(self.icon_path)))
|
35
40
|
|
36
41
|
def set_ui_window_flag(self, show_on_bottom: bool = False) -> None:
|
42
|
+
front_engine_logger.info(f"ImageWidget set_ui_window_flag show_on_bottom: {show_on_bottom}")
|
37
43
|
self.setWindowFlag(
|
38
44
|
Qt.WindowType.WindowTransparentForInput |
|
39
45
|
Qt.WindowType.FramelessWindowHint |
|
@@ -45,9 +51,11 @@ class ImageWidget(QWidget):
|
|
45
51
|
self.setWindowFlag(Qt.WindowType.WindowStaysOnBottomHint)
|
46
52
|
|
47
53
|
def set_ui_variable(self, opacity: float = 0.2) -> None:
|
54
|
+
front_engine_logger.info(f"ImageWidget set_ui_variable opacity: {opacity}")
|
48
55
|
self.opacity = opacity
|
49
56
|
|
50
57
|
def paintEvent(self, event) -> None:
|
58
|
+
front_engine_logger.info(f"ImageWidget paintEvent event: {event}")
|
51
59
|
painter = QPainter(self)
|
52
60
|
painter.setOpacity(self.opacity)
|
53
61
|
painter.drawImage(
|
@@ -56,10 +64,13 @@ class ImageWidget(QWidget):
|
|
56
64
|
painter.restore()
|
57
65
|
|
58
66
|
def mousePressEvent(self, event) -> None:
|
67
|
+
front_engine_logger.info(f"ImageWidget mousePressEvent event: {event}")
|
59
68
|
super().mousePressEvent(event)
|
60
69
|
|
61
70
|
def mouseDoubleClickEvent(self, event) -> None:
|
71
|
+
front_engine_logger.info(f"ImageWidget mouseDoubleClickEvent event: {event}")
|
62
72
|
super().mouseDoubleClickEvent(event)
|
63
73
|
|
64
74
|
def mouseGrabber(self) -> None:
|
75
|
+
front_engine_logger.info(f"ImageWidget mouseGrabber")
|
65
76
|
super().mouseGrabber()
|
@@ -5,9 +5,13 @@ from PySide6.QtUiTools import QUiLoader
|
|
5
5
|
from PySide6.QtWidgets import QWidget
|
6
6
|
|
7
7
|
from frontengine.utils.exception.exceptions import FrontEngineLoadUIException
|
8
|
+
from frontengine.utils.logging.loggin_instance import front_engine_logger
|
8
9
|
|
9
10
|
|
10
11
|
def load_extend_ui_file(ui_path: str, show_all_screen: bool = False) -> None:
|
12
|
+
front_engine_logger.info("load_someone_make_ui.py load_extend_ui_file "
|
13
|
+
f"ui_path: {ui_path} "
|
14
|
+
f"show_all_screen: {show_all_screen}")
|
11
15
|
ui: QWidget = load_ui_file(ui_path)
|
12
16
|
if show_all_screen:
|
13
17
|
ui.showFullScreen()
|
@@ -21,6 +25,8 @@ def load_extend_ui_file(ui_path: str, show_all_screen: bool = False) -> None:
|
|
21
25
|
|
22
26
|
|
23
27
|
def load_ui_file(ui_path: str) -> QWidget:
|
28
|
+
front_engine_logger.info("load_someone_make_ui.py load_extend_ui_file "
|
29
|
+
f"ui_path: {ui_path}")
|
24
30
|
ui: QWidget = QUiLoader().load(ui_path)
|
25
31
|
if not ui:
|
26
32
|
raise FrontEngineLoadUIException
|
@@ -28,6 +34,8 @@ def load_ui_file(ui_path: str) -> QWidget:
|
|
28
34
|
|
29
35
|
|
30
36
|
def read_extend_ui(ui: QWidget) -> Union[QWidget, None]:
|
37
|
+
front_engine_logger.info("load_someone_make_ui.py load_extend_ui_file "
|
38
|
+
f"ui: {ui}")
|
31
39
|
if isinstance(ui, QWidget) is False:
|
32
40
|
return
|
33
41
|
else:
|
@@ -8,6 +8,7 @@ from PySide6.QtWidgets import QGraphicsScene
|
|
8
8
|
from frontengine.show.particle.particle_utils import particle_down, particle_up, particle_left, particle_right, \
|
9
9
|
particle_left_down, particle_left_up, particle_right_down, particle_right_up, particle_random_minus, \
|
10
10
|
particle_random_add, particle_random
|
11
|
+
from frontengine.utils.logging.loggin_instance import front_engine_logger
|
11
12
|
|
12
13
|
|
13
14
|
class ParticleGraphicScene(QGraphicsScene):
|
@@ -16,6 +17,14 @@ class ParticleGraphicScene(QGraphicsScene):
|
|
16
17
|
particle_count: int = 500,
|
17
18
|
screen_height: int = 1920, screen_width: int = 1080, opacity: float = 0.2,
|
18
19
|
particle_speed: int = 1):
|
20
|
+
front_engine_logger.info("Init ParticleGraphicScene "
|
21
|
+
f"particle_pixmap: {particle_pixmap} "
|
22
|
+
f"particle_direction: {particle_direction} "
|
23
|
+
f"particle_count: {particle_count} "
|
24
|
+
f"screen_height: {screen_height} "
|
25
|
+
f"screen_width: {screen_width} "
|
26
|
+
f"opacity: {opacity} "
|
27
|
+
f"particle_speed: {particle_speed} ")
|
19
28
|
super().__init__()
|
20
29
|
self.particle_pixmap: QPixmap = particle_pixmap
|
21
30
|
self.particle_direction: str = particle_direction
|
@@ -46,6 +55,7 @@ class ParticleGraphicScene(QGraphicsScene):
|
|
46
55
|
self.update_timer.start()
|
47
56
|
|
48
57
|
def create_particle(self):
|
58
|
+
front_engine_logger.info("ParticleGraphicScene create_particle")
|
49
59
|
self.particle_dict = {}
|
50
60
|
for count in range(self.particle_count):
|
51
61
|
item = self.addPixmap(self.particle_pixmap)
|
@@ -61,6 +71,7 @@ class ParticleGraphicScene(QGraphicsScene):
|
|
61
71
|
})
|
62
72
|
|
63
73
|
def update_particle_xy(self):
|
74
|
+
front_engine_logger.info("ParticleGraphicScene update_particle_xy")
|
64
75
|
self.update_function(self.particle_dict, self.particle_speed)
|
65
76
|
for particle_key, particle in self.particle_dict.items():
|
66
77
|
pixmap_item = particle.get("pixmap_item")
|
@@ -4,6 +4,7 @@ from PySide6.QtWidgets import QWidget, QGridLayout
|
|
4
4
|
|
5
5
|
from frontengine.show.particle.particle_scene import ParticleGraphicScene
|
6
6
|
from frontengine.show.scene.extend_graphic_view import ExtendGraphicView
|
7
|
+
from frontengine.utils.logging.loggin_instance import front_engine_logger
|
7
8
|
|
8
9
|
|
9
10
|
class ParticleWidget(QWidget):
|
@@ -11,6 +12,15 @@ class ParticleWidget(QWidget):
|
|
11
12
|
def __init__(self, pixmap: QPixmap, particle_size: int, particle_direction: str, particle_count: int = 50,
|
12
13
|
screen_height: int = 1080, screen_width: int = 1920, opacity: float = 0.2,
|
13
14
|
particle_speed: int = 1):
|
15
|
+
front_engine_logger.info("Init ParticleWidget "
|
16
|
+
f"pixmap: {pixmap} "
|
17
|
+
f"particle_size: {particle_size} "
|
18
|
+
f"particle_direction: {particle_direction} "
|
19
|
+
f"particle_count: {particle_count} "
|
20
|
+
f"screen_height: {screen_height} "
|
21
|
+
f"screen_width: {screen_width} "
|
22
|
+
f"opacity: {opacity} "
|
23
|
+
f"particle_speed: {particle_speed}")
|
14
24
|
super().__init__()
|
15
25
|
self.setAttribute(Qt.WidgetAttribute.WA_TranslucentBackground)
|
16
26
|
self.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose)
|
@@ -28,6 +38,8 @@ class ParticleWidget(QWidget):
|
|
28
38
|
self.setLayout(self.grid_layout)
|
29
39
|
|
30
40
|
def set_ui_window_flag(self, show_on_bottom: bool = False) -> None:
|
41
|
+
front_engine_logger.info("ParticleWidget set_ui_window_flag "
|
42
|
+
f"show_on_bottom: {show_on_bottom}")
|
31
43
|
self.setWindowFlag(
|
32
44
|
Qt.WindowType.WindowTransparentForInput |
|
33
45
|
Qt.WindowType.FramelessWindowHint |
|
@@ -1,60 +1,95 @@
|
|
1
1
|
import random
|
2
2
|
from typing import Dict, Callable
|
3
3
|
|
4
|
+
from frontengine.utils.logging.loggin_instance import front_engine_logger
|
5
|
+
|
4
6
|
|
5
7
|
def particle_down(particle_dict: Dict[str, dict], particle_speed: int = 30) -> None:
|
8
|
+
front_engine_logger.info("particle_utils.py particle_down "
|
9
|
+
f"particle_dict: {particle_dict} "
|
10
|
+
f"particle_speed: {particle_speed}")
|
6
11
|
for particle in particle_dict.values():
|
7
12
|
particle.update({"y": particle.get("y") + random.randint(0, particle_speed)})
|
8
13
|
|
9
14
|
|
10
15
|
def particle_up(particle_dict: Dict[str, dict], particle_speed: int = 30) -> None:
|
16
|
+
front_engine_logger.info("particle_utils.py particle_up "
|
17
|
+
f"particle_dict: {particle_dict} "
|
18
|
+
f"particle_speed: {particle_speed}")
|
11
19
|
for particle in particle_dict.values():
|
12
20
|
particle.update({"y": particle.get("y") - random.randint(0, particle_speed)})
|
13
21
|
|
14
22
|
|
15
23
|
def particle_left(particle_dict: Dict[str, dict], particle_speed: int = 30) -> None:
|
24
|
+
front_engine_logger.info("particle_utils.py particle_left "
|
25
|
+
f"particle_dict: {particle_dict} "
|
26
|
+
f"particle_speed: {particle_speed}")
|
16
27
|
for particle in particle_dict.values():
|
17
28
|
particle.update({"x": particle.get("x") - random.randint(0, particle_speed)})
|
18
29
|
|
19
30
|
|
20
31
|
def particle_right(particle_dict: Dict[str, dict], particle_speed: int = 30) -> None:
|
32
|
+
front_engine_logger.info("particle_utils.py particle_right "
|
33
|
+
f"particle_dict: {particle_dict} "
|
34
|
+
f"particle_speed: {particle_speed}")
|
21
35
|
for particle in particle_dict.values():
|
22
36
|
particle.update({"x": particle.get("x") + random.randint(0, particle_speed)})
|
23
37
|
|
24
38
|
|
25
39
|
def particle_left_down(particle_dict: Dict[str, dict], particle_speed: int = 30) -> None:
|
40
|
+
front_engine_logger.info("particle_utils.py particle_left_down "
|
41
|
+
f"particle_dict: {particle_dict} "
|
42
|
+
f"particle_speed: {particle_speed}")
|
26
43
|
particle_left(particle_dict, particle_speed)
|
27
44
|
particle_down(particle_dict, particle_speed)
|
28
45
|
|
29
46
|
|
30
47
|
def particle_left_up(particle_dict: Dict[str, dict], particle_speed: int = 30) -> None:
|
48
|
+
front_engine_logger.info("particle_utils.py particle_left_up "
|
49
|
+
f"particle_dict: {particle_dict} "
|
50
|
+
f"particle_speed: {particle_speed}")
|
31
51
|
particle_left(particle_dict, particle_speed)
|
32
52
|
particle_up(particle_dict, particle_speed)
|
33
53
|
|
34
54
|
|
35
55
|
def particle_right_down(particle_dict: Dict[str, dict], particle_speed: int = 30) -> None:
|
56
|
+
front_engine_logger.info("particle_utils.py particle_right_down "
|
57
|
+
f"particle_dict: {particle_dict} "
|
58
|
+
f"particle_speed: {particle_speed}")
|
36
59
|
particle_right(particle_dict, particle_speed)
|
37
60
|
particle_down(particle_dict, particle_speed)
|
38
61
|
|
39
62
|
|
40
63
|
def particle_right_up(particle_dict: Dict[str, dict], particle_speed: int = 30) -> None:
|
64
|
+
front_engine_logger.info("particle_utils.py particle_right_up "
|
65
|
+
f"particle_dict: {particle_dict} "
|
66
|
+
f"particle_speed: {particle_speed}")
|
41
67
|
particle_right(particle_dict, particle_speed)
|
42
68
|
particle_up(particle_dict, particle_speed)
|
43
69
|
|
44
70
|
|
45
71
|
def particle_random_minus(particle_dict: Dict[str, dict], particle_speed: int = 30) -> None:
|
72
|
+
front_engine_logger.info("particle_utils.py particle_random_minus "
|
73
|
+
f"particle_dict: {particle_dict} "
|
74
|
+
f"particle_speed: {particle_speed}")
|
46
75
|
for particle in particle_dict.values():
|
47
76
|
particle.update({"y": particle.get("y") + random.randint(0, particle_speed)})
|
48
77
|
particle.update({"x": particle.get("x") - random.randint(0, particle_speed)})
|
49
78
|
|
50
79
|
|
51
80
|
def particle_random_add(particle_dict: Dict[str, dict], particle_speed: int = 30) -> None:
|
81
|
+
front_engine_logger.info("particle_utils.py particle_random_add "
|
82
|
+
f"particle_dict: {particle_dict} "
|
83
|
+
f"particle_speed: {particle_speed}")
|
52
84
|
for particle in particle_dict.values():
|
53
85
|
particle.update({"y": particle.get("y") - random.randint(0, particle_speed)})
|
54
86
|
particle.update({"x": particle.get("x") + random.randint(0, particle_speed)})
|
55
87
|
|
56
88
|
|
57
89
|
def particle_random(particle_dict: Dict[str, dict], particle_speed: int = 30) -> None:
|
90
|
+
front_engine_logger.info("particle_utils.py particle_random "
|
91
|
+
f"particle_dict: {particle_dict} "
|
92
|
+
f"particle_speed: {particle_speed}")
|
58
93
|
function: Callable = random.choice(
|
59
94
|
[particle_down, particle_up, particle_left, particle_right, particle_right_up, particle_left_down,
|
60
95
|
particle_left_up, particle_right_down, particle_random_add, particle_random_minus])
|
@@ -1,7 +1,10 @@
|
|
1
1
|
from PySide6.QtWidgets import QGraphicsScene
|
2
2
|
|
3
|
+
from frontengine.utils.logging.loggin_instance import front_engine_logger
|
4
|
+
|
3
5
|
|
4
6
|
class ExtendGraphicScene(QGraphicsScene):
|
5
7
|
|
6
8
|
def __init__(self):
|
9
|
+
front_engine_logger.info("Init ExtendGraphicScene")
|
7
10
|
super().__init__()
|
@@ -1,10 +1,14 @@
|
|
1
1
|
from PySide6.QtCore import Qt, QPoint
|
2
2
|
from PySide6.QtWidgets import QGraphicsView
|
3
3
|
|
4
|
+
from frontengine.utils.logging.loggin_instance import front_engine_logger
|
5
|
+
|
4
6
|
|
5
7
|
class ExtendGraphicView(QGraphicsView):
|
6
8
|
|
7
9
|
def __init__(self, *args):
|
10
|
+
front_engine_logger.info("Init ExtendGraphicView "
|
11
|
+
f"args: {args}")
|
8
12
|
super().__init__(*args)
|
9
13
|
self.setWindowFlag(
|
10
14
|
Qt.WindowType.FramelessWindowHint |
|
@@ -23,6 +27,8 @@ class ExtendGraphicView(QGraphicsView):
|
|
23
27
|
if len(self.scene().items()) == 0:
|
24
28
|
pass
|
25
29
|
else:
|
30
|
+
front_engine_logger.info("ExtendGraphicView wheelEvent"
|
31
|
+
f"event: {event}")
|
26
32
|
current_position = event.position()
|
27
33
|
scene_position = self.mapToScene(QPoint(int(current_position.x()), int(current_position.y())))
|
28
34
|
view_width = self.viewport().width()
|
frontengine/show/scene/scene.py
CHANGED
@@ -10,6 +10,7 @@ from frontengine.show.sound_player.sound_player import SoundPlayer
|
|
10
10
|
from frontengine.show.text.draw_text import TextWidget
|
11
11
|
from frontengine.show.video.video_player import VideoWidget
|
12
12
|
from frontengine.show.web.webview import WebWidget
|
13
|
+
from frontengine.utils.logging.loggin_instance import front_engine_logger
|
13
14
|
|
14
15
|
|
15
16
|
class SceneManager(object):
|
@@ -17,12 +18,14 @@ class SceneManager(object):
|
|
17
18
|
def __init__(
|
18
19
|
self
|
19
20
|
):
|
21
|
+
front_engine_logger.info("Init SceneManager")
|
20
22
|
super().__init__()
|
21
23
|
self.graphic_scene = ExtendGraphicScene()
|
22
24
|
self.widget_list: List[QGraphicsProxyWidget] = list()
|
23
25
|
self.view_list: List[ExtendGraphicView] = []
|
24
26
|
|
25
27
|
def add_image(self, setting_dict: Dict) -> QGraphicsProxyWidget:
|
28
|
+
front_engine_logger.info(f"SceneManager setting_dict: {setting_dict}")
|
26
29
|
image_path = setting_dict.get("file_path")
|
27
30
|
image_widget = ImageWidget(image_path)
|
28
31
|
opacity = float(setting_dict.get("opacity")) / 100
|
@@ -33,6 +36,7 @@ class SceneManager(object):
|
|
33
36
|
return proxy_widget
|
34
37
|
|
35
38
|
def add_gif(self, setting_dict: Dict) -> QGraphicsProxyWidget:
|
39
|
+
front_engine_logger.info(f"SceneManager add_gif setting_dict: {setting_dict}")
|
36
40
|
gif_image_path = setting_dict.get("file_path")
|
37
41
|
gif_widget = GifWidget(gif_image_path)
|
38
42
|
speed = int(setting_dict.get("speed"))
|
@@ -46,6 +50,7 @@ class SceneManager(object):
|
|
46
50
|
return proxy_widget
|
47
51
|
|
48
52
|
def add_sound(self, setting_dict: Dict) -> QGraphicsProxyWidget:
|
53
|
+
front_engine_logger.info(f"SceneManager add_sound setting_dict: {setting_dict}")
|
49
54
|
sound_path = setting_dict.get("file_path")
|
50
55
|
sound_widget = SoundPlayer(sound_path)
|
51
56
|
volume = float(setting_dict.get("volume")) / 100
|
@@ -56,6 +61,7 @@ class SceneManager(object):
|
|
56
61
|
return proxy_widget
|
57
62
|
|
58
63
|
def add_text(self, setting_dict: Dict) -> QGraphicsProxyWidget:
|
64
|
+
front_engine_logger.info(f"SceneManager add_text setting_dict: {setting_dict}")
|
59
65
|
text = setting_dict.get("text")
|
60
66
|
text_widget = TextWidget(text)
|
61
67
|
font_size = int(setting_dict.get("font_size"))
|
@@ -71,6 +77,7 @@ class SceneManager(object):
|
|
71
77
|
return proxy_widget
|
72
78
|
|
73
79
|
def add_video(self, video_setting: Dict) -> QGraphicsProxyWidget:
|
80
|
+
front_engine_logger.info(f"SceneManager add_video video_setting: {video_setting}")
|
74
81
|
video_path = video_setting.get("file_path")
|
75
82
|
video_widget = VideoWidget(video_path)
|
76
83
|
opacity = float(video_setting.get("opacity")) / 100
|
@@ -86,6 +93,7 @@ class SceneManager(object):
|
|
86
93
|
return proxy_widget
|
87
94
|
|
88
95
|
def add_web(self, setting_dict: Dict) -> QGraphicsProxyWidget:
|
96
|
+
front_engine_logger.info(f"SceneManager add_web setting_dict: {setting_dict}")
|
89
97
|
url = setting_dict.get("url")
|
90
98
|
web_widget = WebWidget(url)
|
91
99
|
opacity = float(setting_dict.get("opacity")) / 100
|
@@ -6,12 +6,14 @@ from PySide6.QtGui import QIcon
|
|
6
6
|
from PySide6.QtMultimedia import QSoundEffect
|
7
7
|
from PySide6.QtWidgets import QWidget, QMessageBox
|
8
8
|
|
9
|
+
from frontengine.utils.logging.loggin_instance import front_engine_logger
|
9
10
|
from frontengine.utils.multi_language.language_wrapper import language_wrapper
|
10
11
|
|
11
12
|
|
12
13
|
class SoundEffectWidget(QWidget):
|
13
14
|
|
14
15
|
def __init__(self, sound_path: str):
|
16
|
+
front_engine_logger.info(f"Init SoundEffectWidget sound_path: {sound_path}")
|
15
17
|
super().__init__()
|
16
18
|
self.volume: float = 1
|
17
19
|
self.setWindowFlag(
|
@@ -44,9 +46,11 @@ class SoundEffectWidget(QWidget):
|
|
44
46
|
self.setWindowIcon(QIcon(str(self.icon_path)))
|
45
47
|
|
46
48
|
def set_sound_effect_variable(self, volume: float = 1) -> None:
|
49
|
+
front_engine_logger.info(f"SoundEffectWidget set_sound_effect_variable volume:{volume}")
|
47
50
|
self.volume = volume
|
48
51
|
self.sound_player.setVolume(self.volume)
|
49
52
|
|
50
53
|
def closeEvent(self, event) -> None:
|
54
|
+
front_engine_logger.info(f"SoundEffectWidget closeEvent event:{event}")
|
51
55
|
super().closeEvent(event)
|
52
56
|
self.sound_player.stop()
|
@@ -6,12 +6,14 @@ from PySide6.QtGui import QIcon
|
|
6
6
|
from PySide6.QtMultimedia import QMediaPlayer, QAudioOutput
|
7
7
|
from PySide6.QtWidgets import QWidget, QMessageBox
|
8
8
|
|
9
|
+
from frontengine.utils.logging.loggin_instance import front_engine_logger
|
9
10
|
from frontengine.utils.multi_language.language_wrapper import language_wrapper
|
10
11
|
|
11
12
|
|
12
13
|
class SoundPlayer(QWidget):
|
13
14
|
|
14
15
|
def __init__(self, sound_path: str):
|
16
|
+
front_engine_logger.info(f"Init SoundPlayer sound_path: {sound_path}")
|
15
17
|
super().__init__()
|
16
18
|
self.volume: float = 1
|
17
19
|
self.setWindowFlag(
|
@@ -45,9 +47,11 @@ class SoundPlayer(QWidget):
|
|
45
47
|
self.setWindowIcon(QIcon(str(self.icon_path)))
|
46
48
|
|
47
49
|
def set_player_variable(self, volume: float = 1) -> None:
|
50
|
+
front_engine_logger.info(f"SoundPlayer set_player_variable volume: {volume}")
|
48
51
|
self.volume = volume
|
49
52
|
self.media_player_audio.setVolume(self.volume)
|
50
53
|
|
51
54
|
def closeEvent(self, event) -> None:
|
55
|
+
front_engine_logger.info(f"SoundPlayer closeEvent event: {event}")
|
52
56
|
super().closeEvent(event)
|
53
57
|
self.media_player.stop()
|
@@ -5,11 +5,18 @@ from PySide6.QtCore import Qt, QRect
|
|
5
5
|
from PySide6.QtGui import QPainter, QFontDatabase, QIcon
|
6
6
|
from PySide6.QtWidgets import QWidget
|
7
7
|
|
8
|
+
from frontengine.utils.logging.loggin_instance import front_engine_logger
|
9
|
+
|
8
10
|
|
9
11
|
class TextWidget(QWidget):
|
10
12
|
|
11
13
|
def __init__(self, text: str, draw_location_x: int = 0, draw_location_y: int = 0,
|
12
14
|
alignment: str = "Center"):
|
15
|
+
front_engine_logger.info(f"Init TextWidget "
|
16
|
+
f"text: {text} "
|
17
|
+
f"draw_location_x: {draw_location_x} "
|
18
|
+
f"draw_location_y: {draw_location_y} "
|
19
|
+
f"alignment: {alignment}")
|
13
20
|
super().__init__()
|
14
21
|
self.draw_location_x = draw_location_x
|
15
22
|
self.draw_location_y = draw_location_y
|
@@ -35,6 +42,7 @@ class TextWidget(QWidget):
|
|
35
42
|
self.setWindowIcon(QIcon(str(self.icon_path)))
|
36
43
|
|
37
44
|
def set_ui_window_flag(self, show_on_bottom: bool = False) -> None:
|
45
|
+
front_engine_logger.info(f"SoundPlayer set_ui_window_flag show_on_bottom: {show_on_bottom}")
|
38
46
|
self.setWindowFlag(
|
39
47
|
Qt.WindowType.WindowTransparentForInput |
|
40
48
|
Qt.WindowType.FramelessWindowHint |
|
@@ -46,15 +54,19 @@ class TextWidget(QWidget):
|
|
46
54
|
self.setWindowFlag(Qt.WindowType.WindowStaysOnBottomHint)
|
47
55
|
|
48
56
|
def set_font_variable(self, font_size: int = 100) -> None:
|
57
|
+
front_engine_logger.info(f"SoundPlayer set_font_variable font_size: {font_size}")
|
49
58
|
self.font_size = font_size
|
50
59
|
|
51
60
|
def set_ui_variable(self, opacity: float = 0.2) -> None:
|
61
|
+
front_engine_logger.info(f"SoundPlayer set_ui_variable opacity: {opacity}")
|
52
62
|
self.opacity = opacity
|
53
63
|
|
54
64
|
def set_font(self):
|
65
|
+
front_engine_logger.info(f"SoundPlayer set_font")
|
55
66
|
self.draw_font = QFontDatabase.font(self.font().family(), "", self.font_size)
|
56
67
|
|
57
68
|
def set_alignment(self, alignment: str = "Center") -> None:
|
69
|
+
front_engine_logger.info(f"SoundPlayer set_alignment alignment: {alignment}")
|
58
70
|
if alignment == "TopLeft":
|
59
71
|
self.alignment = (Qt.AlignmentFlag.AlignTop | Qt.AlignmentFlag.AlignLeft)
|
60
72
|
elif alignment == "TopRight":
|
@@ -67,6 +79,7 @@ class TextWidget(QWidget):
|
|
67
79
|
self.alignment = Qt.AlignmentFlag.AlignCenter
|
68
80
|
|
69
81
|
def paintEvent(self, event) -> None:
|
82
|
+
front_engine_logger.info(f"SoundPlayer paintEvent event: {event}")
|
70
83
|
painter = QPainter(self)
|
71
84
|
painter.setFont(
|
72
85
|
self.draw_font
|
@@ -81,10 +94,13 @@ class TextWidget(QWidget):
|
|
81
94
|
painter.restore()
|
82
95
|
|
83
96
|
def mousePressEvent(self, event) -> None:
|
97
|
+
front_engine_logger.info(f"SoundPlayer mousePressEvent event: {event}")
|
84
98
|
super().mousePressEvent(event)
|
85
99
|
|
86
100
|
def mouseDoubleClickEvent(self, event) -> None:
|
101
|
+
front_engine_logger.info(f"SoundPlayer mouseDoubleClickEvent event: {event}")
|
87
102
|
super().mouseDoubleClickEvent(event)
|
88
103
|
|
89
104
|
def mouseGrabber(self) -> None:
|
105
|
+
front_engine_logger.info("SoundPlayer mouseGrabber ")
|
90
106
|
super().mouseGrabber()
|
@@ -14,6 +14,7 @@ from frontengine.utils.multi_language.language_wrapper import language_wrapper
|
|
14
14
|
class VideoWidget(QVideoWidget):
|
15
15
|
|
16
16
|
def __init__(self, video_path: str):
|
17
|
+
front_engine_logger.info(f"Init VideoWidget video_path: {video_path}")
|
17
18
|
super().__init__()
|
18
19
|
self.opacity: float = 0.2
|
19
20
|
self.volume: float = 1
|
@@ -47,6 +48,7 @@ class VideoWidget(QVideoWidget):
|
|
47
48
|
|
48
49
|
|
49
50
|
def set_ui_window_flag(self, show_on_bottom: bool = False) -> None:
|
51
|
+
front_engine_logger.info(f"VideoWidget set_ui_window_flag show_on_bottom: {show_on_bottom}")
|
50
52
|
self.setWindowFlag(
|
51
53
|
Qt.WindowType.WindowTransparentForInput |
|
52
54
|
Qt.WindowType.FramelessWindowHint |
|
@@ -59,27 +61,36 @@ class VideoWidget(QVideoWidget):
|
|
59
61
|
self.setWindowFlag(Qt.WindowType.WindowStaysOnBottomHint)
|
60
62
|
|
61
63
|
def set_ui_variable(self, opacity: float = 0.2) -> None:
|
64
|
+
front_engine_logger.info(f"VideoWidget set_ui_variable opacity: {opacity}")
|
62
65
|
self.opacity = opacity
|
63
66
|
self.setWindowOpacity(self.opacity)
|
64
67
|
|
65
68
|
def set_player_variable(self, play_rate: float = 1, volume: float = 1) -> None:
|
69
|
+
front_engine_logger.info("VideoWidget set_player_variable "
|
70
|
+
f"play_rate: {play_rate} "
|
71
|
+
f"volume: {volume}")
|
66
72
|
self.play_rate = play_rate
|
67
73
|
self.volume = volume
|
68
74
|
self.media_player.setPlaybackRate(self.play_rate)
|
69
75
|
self.media_player.audioOutput().setVolume(self.volume)
|
70
76
|
|
71
77
|
def closeEvent(self, event) -> None:
|
78
|
+
front_engine_logger.info(f"VideoWidget closeEvent event: {event}")
|
72
79
|
super().closeEvent(event)
|
73
80
|
self.media_player.stop()
|
74
81
|
|
75
82
|
def video_player_error(self) -> None:
|
83
|
+
front_engine_logger.info("VideoWidget video_player_error")
|
76
84
|
print(self.media_player.error())
|
77
85
|
|
78
86
|
def mousePressEvent(self, event) -> None:
|
87
|
+
front_engine_logger.info(f"VideoWidget mousePressEvent event: {event}")
|
79
88
|
super().mousePressEvent(event)
|
80
89
|
|
81
90
|
def mouseDoubleClickEvent(self, event) -> None:
|
91
|
+
front_engine_logger.info(f"VideoWidget mouseDoubleClickEvent event: {event}")
|
82
92
|
super().mouseDoubleClickEvent(event)
|
83
93
|
|
84
94
|
def mouseGrabber(self) -> None:
|
95
|
+
front_engine_logger.info("VideoWidget mouseGrabber")
|
85
96
|
super().mouseGrabber()
|