frontengine 0.0.57__tar.gz → 0.0.59__tar.gz

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.
Files changed (105) hide show
  1. {frontengine-0.0.57 → frontengine-0.0.59}/PKG-INFO +1 -1
  2. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/show/video/video_player.py +2 -3
  3. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/show/web/webview.py +10 -1
  4. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/main_ui.py +6 -0
  5. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/menu/help_menu.py +19 -0
  6. frontengine-0.0.59/frontengine/ui/menu/language_menu.py +88 -0
  7. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/page/video/video_setting_ui.py +7 -8
  8. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/page/web/web_setting_ui.py +4 -2
  9. frontengine-0.0.59/frontengine/utils/critical_exit/critical_exit.py +21 -0
  10. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/utils/multi_language/english.py +7 -0
  11. frontengine-0.0.59/frontengine/utils/multi_language/france.py +139 -0
  12. frontengine-0.0.59/frontengine/utils/multi_language/germany.py +139 -0
  13. frontengine-0.0.59/frontengine/utils/multi_language/italy.py +139 -0
  14. frontengine-0.0.59/frontengine/utils/multi_language/language_wrapper.py +41 -0
  15. frontengine-0.0.59/frontengine/utils/multi_language/russian.py +139 -0
  16. frontengine-0.0.59/frontengine/utils/multi_language/simplified_chinese.py +139 -0
  17. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/utils/multi_language/traditional_chinese.py +7 -0
  18. frontengine-0.0.59/frontengine/utils/redirect_manager/__init__.py +0 -0
  19. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine.egg-info/PKG-INFO +1 -1
  20. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine.egg-info/SOURCES.txt +7 -0
  21. {frontengine-0.0.57 → frontengine-0.0.59}/pyproject.toml +1 -1
  22. frontengine-0.0.57/frontengine/ui/menu/language_menu.py +0 -43
  23. frontengine-0.0.57/frontengine/utils/multi_language/language_wrapper.py +0 -26
  24. {frontengine-0.0.57 → frontengine-0.0.59}/LICENSE +0 -0
  25. {frontengine-0.0.57 → frontengine-0.0.59}/README.md +0 -0
  26. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/__init__.py +0 -0
  27. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/show/__init__.py +0 -0
  28. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/show/gif/__init__.py +0 -0
  29. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/show/gif/paint_gif.py +0 -0
  30. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/show/image/__init__.py +0 -0
  31. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/show/image/paint_image.py +0 -0
  32. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/show/load/__init__.py +0 -0
  33. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/show/load/load_someone_make_ui.py +0 -0
  34. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/show/scene/__init__.py +0 -0
  35. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/show/scene/extend_graphic_scene.py +0 -0
  36. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/show/scene/extend_graphic_view.py +0 -0
  37. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/show/scene/scene.py +0 -0
  38. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/show/sound_player/__init__.py +0 -0
  39. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/show/sound_player/sound_effect.py +0 -0
  40. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/show/sound_player/sound_player.py +0 -0
  41. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/show/text/__init__.py +0 -0
  42. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/show/text/draw_text.py +0 -0
  43. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/show/video/__init__.py +0 -0
  44. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/show/web/__init__.py +0 -0
  45. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/system_tray/__init__.py +0 -0
  46. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/system_tray/extend_system_tray.py +0 -0
  47. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/__init__.py +0 -0
  48. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/color/__init__.py +0 -0
  49. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/color/global_color.py +0 -0
  50. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/dialog/__init__.py +0 -0
  51. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/dialog/choose_file_dialog.py +0 -0
  52. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/dialog/save_file_dialog.py +0 -0
  53. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/menu/__init__.py +0 -0
  54. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/menu/how_to_menu.py +0 -0
  55. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/page/__init__.py +0 -0
  56. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/page/control_center/__init__.py +0 -0
  57. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/page/control_center/control_center_ui.py +0 -0
  58. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/page/gif/__init__.py +0 -0
  59. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/page/gif/gif_setting_ui.py +0 -0
  60. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/page/image/__init__.py +0 -0
  61. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/page/image/image_setting_ui.py +0 -0
  62. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/page/scene_setting/__init__.py +0 -0
  63. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/page/scene_setting/scene_manager.py +0 -0
  64. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/page/scene_setting/scene_page/__init__.py +0 -0
  65. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/page/scene_setting/scene_page/gif.py +0 -0
  66. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/page/scene_setting/scene_page/image.py +0 -0
  67. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/page/scene_setting/scene_page/sound.py +0 -0
  68. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/page/scene_setting/scene_page/text.py +0 -0
  69. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/page/scene_setting/scene_page/video.py +0 -0
  70. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/page/scene_setting/scene_page/web.py +0 -0
  71. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/page/scene_setting/scene_setting_ui.py +0 -0
  72. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/page/sound_player/__init__.py +0 -0
  73. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/page/sound_player/sound_player_setting_ui.py +0 -0
  74. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/page/text/__init__.py +0 -0
  75. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/page/text/text_setting_ui.py +0 -0
  76. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/page/utils.py +0 -0
  77. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/page/video/__init__.py +0 -0
  78. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/ui/page/web/__init__.py +0 -0
  79. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/user_setting/__init__.py +0 -0
  80. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/user_setting/scene_setting.py +0 -0
  81. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/user_setting/user_setting_file.py +0 -0
  82. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/utils/__init__.py +0 -0
  83. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/utils/browser/__init__.py +0 -0
  84. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/utils/browser/browser.py +0 -0
  85. {frontengine-0.0.57/frontengine/utils/file → frontengine-0.0.59/frontengine/utils/critical_exit}/__init__.py +0 -0
  86. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/utils/exception/__init__.py +0 -0
  87. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/utils/exception/exception_tags.py +0 -0
  88. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/utils/exception/exceptions.py +0 -0
  89. {frontengine-0.0.57/frontengine/utils/json → frontengine-0.0.59/frontengine/utils/file}/__init__.py +0 -0
  90. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/utils/file/open/__init__.py +0 -0
  91. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/utils/file/open/open_file.py +0 -0
  92. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/utils/file/save/__init__.py +0 -0
  93. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/utils/file/save/save_file.py +0 -0
  94. {frontengine-0.0.57/frontengine/utils/logging → frontengine-0.0.59/frontengine/utils/json}/__init__.py +0 -0
  95. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/utils/json/json_file.py +0 -0
  96. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/utils/json_format/__init__.py +0 -0
  97. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/utils/json_format/json_process.py +0 -0
  98. {frontengine-0.0.57/frontengine/utils/multi_language → frontengine-0.0.59/frontengine/utils/logging}/__init__.py +0 -0
  99. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/utils/logging/loggin_instance.py +0 -0
  100. {frontengine-0.0.57/frontengine/utils/redirect_manager → frontengine-0.0.59/frontengine/utils/multi_language}/__init__.py +0 -0
  101. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine/utils/redirect_manager/redirect_manager_class.py +0 -0
  102. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine.egg-info/dependency_links.txt +0 -0
  103. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine.egg-info/requires.txt +0 -0
  104. {frontengine-0.0.57 → frontengine-0.0.59}/frontengine.egg-info/top_level.txt +0 -0
  105. {frontengine-0.0.57 → frontengine-0.0.59}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: frontengine
3
- Version: 0.0.57
3
+ Version: 0.0.59
4
4
  Summary: FrontEngine is BingGPT that can use-define front end or only use like screen saver
5
5
  Author-email: JE-Chen <jechenmailman@gmail.com>
6
6
  License: MIT
@@ -7,6 +7,7 @@ from PySide6.QtMultimedia import QMediaPlayer, QAudioOutput
7
7
  from PySide6.QtMultimediaWidgets import QVideoWidget
8
8
  from PySide6.QtWidgets import QMessageBox
9
9
 
10
+ from frontengine.utils.logging.loggin_instance import front_engine_logger
10
11
  from frontengine.utils.multi_language.language_wrapper import language_wrapper
11
12
 
12
13
 
@@ -17,13 +18,11 @@ class VideoWidget(QVideoWidget):
17
18
  self.opacity: float = 0.2
18
19
  self.volume: float = 1
19
20
  self.play_rate: float = 1
20
- self.setAttribute(
21
- Qt.WidgetAttribute.WA_TranslucentBackground
22
- )
23
21
  self.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose)
24
22
  self.media_player = QMediaPlayer()
25
23
  self.video_path = Path(video_path)
26
24
  if self.video_path.exists() and self.video_path.is_file():
25
+ front_engine_logger.info("start_play_video")
27
26
  self.video_file_path = str(self.video_path)
28
27
  self.audioOutput = QAudioOutput()
29
28
  # QUrl non ascii path encode, Avoid read wrong path and file name
@@ -2,7 +2,7 @@ import os
2
2
  from pathlib import Path
3
3
 
4
4
  from PySide6.QtCore import Qt, QUrl
5
- from PySide6.QtGui import QIcon
5
+ from PySide6.QtGui import QIcon, QAction
6
6
  from PySide6.QtWebEngineWidgets import QWebEngineView
7
7
  from PySide6.QtWidgets import QMessageBox
8
8
 
@@ -35,6 +35,13 @@ class WebWidget(QWebEngineView):
35
35
  if self.icon_path.exists() and self.icon_path.is_file():
36
36
  self.setWindowIcon(QIcon(str(self.icon_path)))
37
37
 
38
+ def contextMenuEvent(self, event):
39
+ self.menu = self.createStandardContextMenu()
40
+ self.close_action = QAction("Close")
41
+ self.close_action.triggered.connect(self.close)
42
+ self.menu.addAction(self.close_action)
43
+ self.menu.popup(event.globalPos())
44
+
38
45
  def set_ui_variable(self, opacity: float = 0.2) -> None:
39
46
  self.opacity = opacity
40
47
  self.setWindowOpacity(opacity)
@@ -56,6 +63,8 @@ class WebWidget(QWebEngineView):
56
63
  )
57
64
 
58
65
  def mousePressEvent(self, event) -> None:
66
+ # if event.button() == Qt.MouseButton.MiddleButton:
67
+ print(event.button())
59
68
  super().mousePressEvent(event)
60
69
 
61
70
  def mouseDoubleClickEvent(self, event) -> None:
@@ -6,6 +6,7 @@ from typing import Dict, Type
6
6
  from PySide6.QtCore import QTimer, QCoreApplication
7
7
  from PySide6.QtGui import QIcon, QAction, Qt
8
8
  from PySide6.QtWidgets import QMainWindow, QApplication, QGridLayout, QTabWidget, QMenuBar, QWidget
9
+ from je_auto_control import CriticalExit, keyboard_keys_table
9
10
  from qt_material import apply_stylesheet, QtStyleTools
10
11
 
11
12
  from frontengine.system_tray.extend_system_tray import ExtendSystemTray
@@ -21,6 +22,7 @@ from frontengine.ui.page.text.text_setting_ui import TextSettingUI
21
22
  from frontengine.ui.page.video.video_setting_ui import VideoSettingUI
22
23
  from frontengine.ui.page.web.web_setting_ui import WEBSettingUI
23
24
  from frontengine.user_setting.user_setting_file import write_user_setting, read_user_setting, user_setting_dict
25
+ from frontengine.utils.critical_exit.critical_exit import FrontEngineCriticalExit
24
26
  from frontengine.utils.multi_language.language_wrapper import language_wrapper
25
27
 
26
28
  FrontEngine_EXTEND_TAB: Dict[str, Type[QWidget]] = {}
@@ -97,6 +99,10 @@ class FrontEngineMainUI(QMainWindow, QtStyleTools):
97
99
  build_language_menu(self)
98
100
  build_help_menu(self)
99
101
  build_how_to_menu(self)
102
+ # Set critical exit
103
+ self.critical_ext = FrontEngineCriticalExit()
104
+ self.critical_ext.set_critical_key(keyboard_keys_table.get("f12"))
105
+ self.critical_ext.init_critical_exit()
100
106
  # Set Icon
101
107
  self.icon_path = Path(os.getcwd() + "/je_driver_icon.ico")
102
108
  self.icon = QIcon(str(self.icon_path))
@@ -1,6 +1,9 @@
1
1
  from __future__ import annotations
2
+
2
3
  from typing import TYPE_CHECKING
3
4
 
5
+ from PySide6.QtWidgets import QMessageBox
6
+
4
7
  if TYPE_CHECKING:
5
8
  from frontengine.ui.main_ui import FrontEngineMainUI
6
9
 
@@ -22,4 +25,20 @@ def build_help_menu(ui_we_want_to_set: FrontEngineMainUI) -> None:
22
25
  ui_we_want_to_set.help_menu.addAction(
23
26
  ui_we_want_to_set.help_menu.open_issue_action
24
27
  )
28
+ ui_we_want_to_set.help_menu.how_to_critical_exit = QAction(
29
+ language_wrapper.language_word_dict.get("how_to_critical_exit_action")
30
+ )
31
+ ui_we_want_to_set.help_menu.how_to_critical_exit.triggered.connect(
32
+ lambda: how_to_critical_exit(ui_we_want_to_set)
33
+ )
34
+ ui_we_want_to_set.help_menu.addAction(
35
+ ui_we_want_to_set.help_menu.how_to_critical_exit
36
+ )
25
37
 
38
+
39
+ def how_to_critical_exit(ui_we_want_to_set: FrontEngineMainUI):
40
+ message_box: QMessageBox = QMessageBox(ui_we_want_to_set)
41
+ message_box.setText(
42
+ language_wrapper.language_word_dict.get("how_to_critical_exit")
43
+ )
44
+ message_box.show()
@@ -0,0 +1,88 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING
4
+
5
+ if TYPE_CHECKING:
6
+ from frontengine.ui.main_ui import FrontEngineMainUI
7
+ from PySide6.QtGui import QAction
8
+ from PySide6.QtWidgets import QMessageBox
9
+
10
+ from frontengine.user_setting.user_setting_file import user_setting_dict
11
+ from frontengine.utils.multi_language.language_wrapper import language_wrapper
12
+
13
+
14
+ def build_language_menu(ui_we_want_to_set: FrontEngineMainUI) -> None:
15
+ ui_we_want_to_set.language_menu = ui_we_want_to_set.menu_bar.addMenu(
16
+ language_wrapper.language_word_dict.get("menu_bar_language")
17
+ )
18
+ ui_we_want_to_set.language_menu.change_to_english_language_action = QAction(
19
+ language_wrapper.language_word_dict.get("language_menu_bar_english")
20
+ )
21
+ ui_we_want_to_set.language_menu.change_to_english_language_action.triggered.connect(
22
+ lambda: set_language("English", ui_we_want_to_set)
23
+ )
24
+ ui_we_want_to_set.language_menu.change_to_traditional_chinese_language_action = QAction(
25
+ language_wrapper.language_word_dict.get("language_menu_bar_traditional_chinese")
26
+ )
27
+ ui_we_want_to_set.language_menu.change_to_traditional_chinese_language_action.triggered.connect(
28
+ lambda: set_language("Traditional_Chinese", ui_we_want_to_set)
29
+ )
30
+ ui_we_want_to_set.language_menu.change_to_simplified_chinese_language_action = QAction(
31
+ language_wrapper.language_word_dict.get("language_menu_bar_simplified_chinese")
32
+ )
33
+ ui_we_want_to_set.language_menu.change_to_simplified_chinese_language_action.triggered.connect(
34
+ lambda: set_language("Simplified_Chinese", ui_we_want_to_set)
35
+ )
36
+ ui_we_want_to_set.language_menu.change_to_deutsch_language_action = QAction(
37
+ language_wrapper.language_word_dict.get("language_menu_bar_germany")
38
+ )
39
+ ui_we_want_to_set.language_menu.change_to_deutsch_language_action.triggered.connect(
40
+ lambda: set_language("Deutsch", ui_we_want_to_set)
41
+ )
42
+ ui_we_want_to_set.language_menu.change_to_russian_language_action = QAction(
43
+ language_wrapper.language_word_dict.get("language_menu_bar_russian")
44
+ )
45
+ ui_we_want_to_set.language_menu.change_to_russian_language_action.triggered.connect(
46
+ lambda: set_language("Russian", ui_we_want_to_set)
47
+ )
48
+ ui_we_want_to_set.language_menu.change_to_france_language_action = QAction(
49
+ language_wrapper.language_word_dict.get("language_menu_bar_french")
50
+ )
51
+ ui_we_want_to_set.language_menu.change_to_france_language_action.triggered.connect(
52
+ lambda: set_language("France", ui_we_want_to_set)
53
+ )
54
+ ui_we_want_to_set.language_menu.change_to_italian_language_action = QAction(
55
+ language_wrapper.language_word_dict.get("language_menu_bar_italian")
56
+ )
57
+ ui_we_want_to_set.language_menu.change_to_italian_language_action.triggered.connect(
58
+ lambda: set_language("Italy", ui_we_want_to_set)
59
+ )
60
+ ui_we_want_to_set.language_menu.addAction(
61
+ ui_we_want_to_set.language_menu.change_to_english_language_action
62
+ )
63
+ ui_we_want_to_set.language_menu.addAction(
64
+ ui_we_want_to_set.language_menu.change_to_traditional_chinese_language_action
65
+ )
66
+ ui_we_want_to_set.language_menu.addAction(
67
+ ui_we_want_to_set.language_menu.change_to_simplified_chinese_language_action
68
+ )
69
+ ui_we_want_to_set.language_menu.addAction(
70
+ ui_we_want_to_set.language_menu.change_to_deutsch_language_action
71
+ )
72
+ ui_we_want_to_set.language_menu.addAction(
73
+ ui_we_want_to_set.language_menu.change_to_russian_language_action
74
+ )
75
+ ui_we_want_to_set.language_menu.addAction(
76
+ ui_we_want_to_set.language_menu.change_to_france_language_action
77
+ )
78
+ ui_we_want_to_set.language_menu.addAction(
79
+ ui_we_want_to_set.language_menu.change_to_italian_language_action
80
+ )
81
+
82
+
83
+ def set_language(language: str, ui_we_want_to_set: FrontEngineMainUI) -> None:
84
+ language_wrapper.reset_language(language)
85
+ user_setting_dict.update({"language": language})
86
+ message_box = QMessageBox(ui_we_want_to_set)
87
+ message_box.setText(language_wrapper.language_word_dict.get("language_menu_bar_please_restart_messagebox"))
88
+ message_box.show()
@@ -1,5 +1,5 @@
1
1
  from PySide6.QtCore import Qt
2
- from PySide6.QtGui import QScreen, QGuiApplication
2
+ from PySide6.QtGui import QGuiApplication
3
3
  from PySide6.QtWidgets import QWidget, QGridLayout, QSlider, QLabel, QPushButton, QMessageBox, QCheckBox, QDialog
4
4
 
5
5
  from frontengine.show.video.video_player import VideoWidget
@@ -123,8 +123,7 @@ class VideoSettingUI(QWidget):
123
123
  monitors = QGuiApplication.screens()
124
124
  if self.show_all_screen is False and len(monitors) <= 1:
125
125
  video_widget = self._create_video_widget()
126
- video_widget.set_ui_window_flag(self.show_on_bottom_checkbox.isChecked())
127
- video_widget.showMaximized()
126
+ video_widget.showFullScreen()
128
127
  elif self.show_all_screen is False and len(monitors) >= 2:
129
128
  input_dialog, combobox = monitor_choose_dialog(self, monitors)
130
129
  result = input_dialog.exec_()
@@ -132,10 +131,10 @@ class VideoSettingUI(QWidget):
132
131
  select_monitor_index = int(combobox.currentText())
133
132
  if len(monitors) > select_monitor_index:
134
133
  monitor = monitors[select_monitor_index]
135
- gif_widget = self._create_video_widget()
136
- gif_widget.setScreen(monitor)
137
- gif_widget.move(monitor.availableGeometry().topLeft())
138
- gif_widget.showFullScreen()
134
+ video_widget = self._create_video_widget()
135
+ video_widget.setScreen(monitor)
136
+ video_widget.move(monitor.availableGeometry().topLeft())
137
+ video_widget.showFullScreen()
139
138
  else:
140
139
  count = 0
141
140
  for monitor in monitors:
@@ -144,7 +143,7 @@ class VideoSettingUI(QWidget):
144
143
  video_widget.media_player.audioOutput().setVolume(0)
145
144
  video_widget.setScreen(monitor)
146
145
  video_widget.move(monitor.availableGeometry().topLeft())
147
- video_widget.showMaximized()
146
+ video_widget.showFullScreen()
148
147
  count = count + 1
149
148
 
150
149
  def choose_and_copy_file_to_cwd_gif_dir_then_play(self) -> None:
@@ -1,4 +1,4 @@
1
- from PySide6.QtCore import Qt
1
+ from PySide6.QtCore import Qt, QEvent
2
2
  from PySide6.QtGui import QScreen
3
3
  from PySide6.QtWidgets import QWidget, QGridLayout, QLabel, QSlider, QLineEdit, QPushButton, QCheckBox, QDialog
4
4
 
@@ -88,8 +88,10 @@ class WEBSettingUI(QWidget):
88
88
  self.show_on_bottom_checkbox.isChecked()
89
89
  )
90
90
  self.web_widget_list.append(web_widget)
91
+
91
92
  return web_widget
92
93
 
94
+
93
95
  def opacity_trick(self) -> None:
94
96
  self.opacity_slider_value_label.setText(str(self.opacity_slider.value()))
95
97
 
@@ -97,7 +99,7 @@ class WEBSettingUI(QWidget):
97
99
  monitors = QScreen.virtualSiblings(self.screen())
98
100
  if self.show_all_screen is False and len(monitors) <= 1:
99
101
  web_widget = self._create_web_widget()
100
- web_widget.showMaximized()
102
+ web_widget.showFullScreen()
101
103
  elif self.show_all_screen is False and len(monitors) >= 2:
102
104
  input_dialog, combobox = monitor_choose_dialog(self, monitors)
103
105
  result = input_dialog.exec_()
@@ -0,0 +1,21 @@
1
+ import _thread
2
+ import sys
3
+
4
+ from PySide6.QtWidgets import QApplication
5
+ from je_auto_control import CriticalExit
6
+ from je_auto_control.wrapper.platform_wrapper import keyboard_check
7
+
8
+
9
+ class FrontEngineCriticalExit(CriticalExit):
10
+
11
+ def run(self) -> None:
12
+ """
13
+ listener keycode _exit_check_key to interrupt
14
+ """
15
+ try:
16
+ while True:
17
+ if keyboard_check.check_key_is_press(self._exit_check_key):
18
+ _thread.interrupt_main()
19
+ QApplication.exit(0)
20
+ except Exception as error:
21
+ print(repr(error), file=sys.stderr)
@@ -5,6 +5,11 @@ english_word_dict = {
5
5
  # Language Menubar
6
6
  "language_menu_bar_english": "English",
7
7
  "language_menu_bar_traditional_chinese": "Traditional Chinese",
8
+ "language_menu_bar_simplified_chinese": "Simplified Chinese",
9
+ "language_menu_bar_germany": "Deutsch",
10
+ "language_menu_bar_russian": "Russian",
11
+ "language_menu_bar_french": "French",
12
+ "language_menu_bar_italian": "Italian",
8
13
  "language_menu_bar_please_restart_messagebox": "Please restart",
9
14
  # Tab text
10
15
  "tab_video_text": "Video",
@@ -125,6 +130,8 @@ english_word_dict = {
125
130
  # Help Menu
126
131
  "help_menu_label": "Help menu",
127
132
  "help_menu_open_issue": "Open issue tracker",
133
+ "how_to_critical_exit_action": "How to force close",
134
+ "how_to_critical_exit": "Press F12 to close urgently",
128
135
  # HowTo Menu
129
136
  "doc_menu_label": "Doc menu",
130
137
  "doc_menu_open_doc": "Open doc",
@@ -0,0 +1,139 @@
1
+ french_word_dict = {
2
+ # Menubar
3
+ "menu_bar_language": "Choisir la langue",
4
+ "menu_bar_ui_style": "Choisir le style d'interface",
5
+ # Language Menubar
6
+ "language_menu_bar_english": "Anglais",
7
+ "language_menu_bar_traditional_chinese": "Chinois traditionnel",
8
+ "language_menu_bar_simplified_chinese": "Chinois simplifié",
9
+ "language_menu_bar_germany": "allemand",
10
+ "language_menu_bar_russian": "russe",
11
+ "language_menu_bar_french": "français",
12
+ "language_menu_bar_italian": "italien",
13
+ "language_menu_bar_please_restart_messagebox": "Veuillez redémarrer pour appliquer les changements",
14
+ # Tab text
15
+ "tab_video_text": "Vidéo",
16
+ "tab_image_text": "Image",
17
+ "tab_web_text": "Web",
18
+ "tab_gif_text": "GIF et WEBP",
19
+ "tab_sound_text": "Musique",
20
+ "tab_text_text": "Texte",
21
+ "tab_external_ui": "UI externe",
22
+ "tab_control_center_text": "Centre de contrôle",
23
+ "chat_ui_text": "Chat",
24
+ # Messagebox text
25
+ "paint_gif_message_text": "Erreur dans le fichier GIF ou WEBP",
26
+ "paint_image_message_box_text": "Erreur d'image",
27
+ "sound_effect_message_box_text": "Erreur de musique",
28
+ "sound_player_message_box_text": "Erreur de musique",
29
+ "video_player_message_box_text": "Erreur de vidéo",
30
+ "webview_message_box_text": "Erreur de page web",
31
+ "cant_find_extend_ui_message_box_text": "UI introuvable",
32
+ # Control Center UI
33
+ "control_center_close_all_video": "Fermer toutes les vidéos",
34
+ "control_center_close_all_image": "Fermer toutes les images",
35
+ "control_center_close_all_gif": "Fermer tous les GIF",
36
+ "control_center_close_all_web": "Fermer toutes les pages web",
37
+ "control_center_close_all_sound": "Fermer toute la musique",
38
+ "control_center_close_all_text": "Fermer tout le texte",
39
+ "control_center_scene": "Fermer la scène",
40
+ "control_center_clear_log_panel": "Effacer le journal",
41
+ "chat_scene_close": "Fermer toutes les discussions",
42
+ "control_center_close_all": "Fermer tout",
43
+ # General
44
+ "Opacity": "Opacité",
45
+ "Speed": "Vitesse",
46
+ "Not Ready": "Pas prêt",
47
+ "Ready": "Prêt",
48
+ "Show on all screen": "Afficher sur tous les écrans",
49
+ "Volume": "Volume",
50
+ "Font size": "Taille de police",
51
+ "Play rate": "Vitesse de lecture",
52
+ "not_prepare": "Pas prêt",
53
+ "Show on bottom": "Afficher en bas de toutes les fenêtres",
54
+ "url": "Lien",
55
+ "text": "Texte",
56
+ "ui_path": "Chemin UI",
57
+ "position_x": "Coordonnée X",
58
+ "position_y": "Coordonnée Y",
59
+ "seconds": "Secondes",
60
+ "close_delay": "Temps avant disparition des sous-titres en secondes",
61
+ "country_code": "Code de pays",
62
+ "show_on_which_monitor": "Afficher sur quel écran",
63
+ "ok": "OK",
64
+ "no": "Non",
65
+ # GIF setting ui
66
+ "gif_setting_ui_choose_file": "Choisir un fichier GIF ou WEBP",
67
+ "gif_setting_ui_play": "Lancer la lecture du GIF ou WEBP",
68
+ "gif_setting_message_box": "Veuillez choisir un fichier GIF ou WEBP",
69
+ # Image setting ui
70
+ "image_setting_choose_file": "Choisir une image",
71
+ "image_setting_ui_play": "Lancer la lecture de l'image",
72
+ "image_setting_message_box": "Veuillez choisir une image",
73
+ # Sound player setting ui
74
+ "sound_player_setting_choose_wav_file": "Choisir un fichier wav",
75
+ "sound_player_setting_choose_sound_file": "Veuillez choisir un fichier audio",
76
+ "sound_player_setting_play_wav": "Lancer la lecture du wav",
77
+ "sound_player_setting_play_sound": "Lancer la lecture du fichier audio",
78
+ "sound_player_setting_message_box_wav": "Veuillez choisir un fichier wav",
79
+ "sound_player_setting_message_box_sound": "Veuillez choisir un fichier audio",
80
+ # Text setting ui
81
+ "text_setting_start_draw": "Commencer à dessiner le texte sur l'écran",
82
+ "text_setting_choose_alignment": "Choisir l'alignement du texte",
83
+ "text_setting_alignment_Top": "En haut",
84
+ # Video setting ui
85
+ "video_setting_choose_file": "Choisir un fichier vidéo",
86
+ "video_setting_start_play": "Lancer la lecture de la vidéo",
87
+ "video_setting_message_box": "Veuillez choisir un fichier vidéo",
88
+ # Web setting ui
89
+ "web_setting_open_url": "Ouvrir une page web avec une URL",
90
+ "web_setting_open_local_file": "Ouvrir une page web locale",
91
+ "web_setting_open_enable_input": "Activer l'entrée",
92
+ # Scene UI
93
+ "tab_scene_text": "Scène",
94
+ "scene_start": "Commencer la scène",
95
+ "scene_table_view_type": "Type",
96
+ "scene_file_path": "Chemin du fichier",
97
+ "scene_setting_start_scene_button": "Commencer la scène",
98
+ "scene_add_image": "Ajouter une image à la scène",
99
+ "scene_add_gif": "Ajouter un GIF à la scène",
100
+ "scene_add_sound": "Ajouter un son à la scène",
101
+ "scene_add_text": "Ajouter du texte à la scène",
102
+ "scene_add_video": "Ajouter une vidéo à la scène",
103
+ "scene_add_web": "Ajouter une page web à la scène",
104
+ "scene_url_label": "URL",
105
+ "scene_add_UI": "Ajouter UI à la scène",
106
+ "scene_choose_message_box": "Veuillez choisir un fichier de scène",
107
+ "scene_choose_output_path_message_box": "Veuillez choisir un chemin de sortie pour le fichier de scène",
108
+ "scene_output": "Exporter le fichier de scène",
109
+ "scene_input": "Charger le fichier de scène",
110
+ "scene_script_clear": "Effacer tous les scripts",
111
+ "scene_script": "Script de scène",
112
+ # Chat scene input
113
+ "chat_scene_input_title": "Entrer le contenu de la discussion",
114
+ "chat_scene_send_chat": "Envoyer le texte",
115
+ # Chat scene
116
+ "chat_scene_start_button": "Commencer à discuter",
117
+ "chat_scene_new_topic": "Commencer un nouveau sujet",
118
+ "chat_scene_creative": "Créatif",
119
+ "chat_scene_precise": "Précis",
120
+ "chat_scene_balanced": "Équilibré",
121
+ "chat_gpt_exception": "Erreur GPT, veuillez réessayer ou commencer un nouveau sujet",
122
+ "should_we_show_toast": "Afficher la conversation ?",
123
+ # Chat voice input
124
+ "start_chat_voice_input_ui": "Ouvrir l'interface d'entrée vocale",
125
+ "chat_recognizer_voice_button": "Commencer l'enregistrement vocal",
126
+ # Image Generation
127
+ "image_generation_tab": "Génération d'images",
128
+ "start_generate_image": "Commencer la génération d'images",
129
+ "input_error": "Veuillez éviter les entrées vides ou les espaces",
130
+ "save_generation_image": "Sauvegarder l'image",
131
+ # Help Menu
132
+ "help_menu_label": "Menu Aide",
133
+ "help_menu_open_issue": "Ouvrir un rapport de problème",
134
+ "how_to_critical_exit_action": " Comment forcer la fermeture",
135
+ "how_to_critical_exit": "Appuyez sur F12 pour fermer d’urgence",
136
+ # HowTo Menu
137
+ "doc_menu_label": "Menu Documentation",
138
+ "doc_menu_open_doc": "Ouvrir la documentation",
139
+ }
@@ -0,0 +1,139 @@
1
+ germany_word_dict = {
2
+ # Menüleiste
3
+ "menu_bar_language": "Sprache auswählen",
4
+ "menu_bar_ui_style": "UI-Stil auswählen",
5
+ # Sprache Menüleiste
6
+ "language_menu_bar_english": "Englisch",
7
+ "language_menu_bar_traditional_chinese": "Traditionelles Chinesisch",
8
+ "language_menu_bar_simplified_chinese": "Vereinfachtes Chinesisch",
9
+ "language_menu_bar_germany": "Deutsch",
10
+ "language_menu_bar_russian": "Russisch",
11
+ "language_menu_bar_french": "Französisch",
12
+ "language_menu_bar_italian": "Italienisch",
13
+ "language_menu_bar_please_restart_messagebox": "Bitte neustarten, um Änderungen zu übernehmen",
14
+ # Tab-Text
15
+ "tab_video_text": "Video",
16
+ "tab_image_text": "Bild",
17
+ "tab_web_text": "Webseite",
18
+ "tab_gif_text": "GIF und WEBP",
19
+ "tab_sound_text": "Musik",
20
+ "tab_text_text": "Text",
21
+ "tab_external_ui": "Externes UI",
22
+ "tab_control_center_text": "Kontrollzentrum",
23
+ "chat_ui_text": "Chat",
24
+ # Meldungsfeld-Text
25
+ "paint_gif_message_text": "GIF- oder WEBP-Datei ist fehlerhaft",
26
+ "paint_image_message_box_text": "Bildfehler",
27
+ "sound_effect_message_box_text": "Musikfehler",
28
+ "sound_player_message_box_text": "Musikfehler",
29
+ "video_player_message_box_text": "Videofehler",
30
+ "webview_message_box_text": "Webseitenfehler",
31
+ "cant_find_extend_ui_message_box_text": "UI nicht gefunden",
32
+ # Kontrollzentrum UI
33
+ "control_center_close_all_video": "Alle Videos schließen",
34
+ "control_center_close_all_image": "Alle Bilder schließen",
35
+ "control_center_close_all_gif": "Alle GIFs schließen",
36
+ "control_center_close_all_web": "Alle Webseiten schließen",
37
+ "control_center_close_all_sound": "Alle Musik schließen",
38
+ "control_center_close_all_text": "Allen Text schließen",
39
+ "control_center_scene": "Szene schließen",
40
+ "control_center_clear_log_panel": "Log löschen",
41
+ "chat_scene_close": "Alle Chats schließen",
42
+ "control_center_close_all": "Alles schließen",
43
+ # Allgemein
44
+ "Opacity": "Deckkraft",
45
+ "Speed": "Geschwindigkeit",
46
+ "Not Ready": "Nicht bereit",
47
+ "Ready": "Bereit",
48
+ "Show on all screen": "Auf allen Bildschirmen anzeigen",
49
+ "Volume": "Lautstärke",
50
+ "Font size": "Schriftgröße",
51
+ "Play rate": "Wiedergabegeschwindigkeit",
52
+ "not_prepare": "Noch nicht bereit",
53
+ "Show on bottom": "Unten auf allen Fenstern anzeigen",
54
+ "url": "URL",
55
+ "text": "Text",
56
+ "ui_path": "UI-Pfad",
57
+ "position_x": "X-Position",
58
+ "position_y": "Y-Position",
59
+ "seconds": "Sekunden",
60
+ "close_delay": "Untertitel Ausblendzeit Sekunden",
61
+ "country_code": "Ländercode",
62
+ "show_on_which_monitor": "Auf welchem Monitor anzeigen",
63
+ "ok": "OK",
64
+ "no": "Nein",
65
+ # GIF-Einstellungs-UI
66
+ "gif_setting_ui_choose_file": "GIF- oder WEBP-Datei auswählen",
67
+ "gif_setting_ui_play": "GIF oder WEBP abspielen",
68
+ "gif_setting_message_box": "Bitte GIF- oder WEBP-Datei auswählen",
69
+ # Bild-Einstellungs-UI
70
+ "image_setting_choose_file": "Bild auswählen",
71
+ "image_setting_ui_play": "Bild abspielen",
72
+ "image_setting_message_box": "Bitte Bild auswählen",
73
+ # Sound-Player-Einstellungs-UI
74
+ "sound_player_setting_choose_wav_file": "WAV-Datei auswählen",
75
+ "sound_player_setting_choose_sound_file": "Bitte Audiodatei auswählen",
76
+ "sound_player_setting_play_wav": "WAV abspielen",
77
+ "sound_player_setting_play_sound": "Audiodatei abspielen",
78
+ "sound_player_setting_message_box_wav": "Bitte WAV-Datei auswählen",
79
+ "sound_player_setting_message_box_sound": "Bitte Audiodatei auswählen",
80
+ # Text-Einstellungs-UI
81
+ "text_setting_start_draw": "Text auf Bildschirm zeichnen",
82
+ "text_setting_choose_alignment": "Textausrichtung auswählen",
83
+ "text_setting_alignment_Top": "Oben",
84
+ # Video-Einstellungs-UI
85
+ "video_setting_choose_file": "Videodatei auswählen",
86
+ "video_setting_start_play": "Video abspielen",
87
+ "video_setting_message_box": "Bitte Videodatei auswählen",
88
+ # Web-Einstellungs-UI
89
+ "web_setting_open_url": "Webseite über URL öffnen",
90
+ "web_setting_open_local_file": "Lokale Webseite öffnen",
91
+ "web_setting_open_enable_input": "Eingabe aktivieren",
92
+ # Szenen-UI
93
+ "tab_scene_text": "Szene",
94
+ "scene_start": "Szene starten",
95
+ "scene_table_view_type": "Typ",
96
+ "scene_file_path": "Dateipfad",
97
+ "scene_setting_start_scene_button": "Szene starten",
98
+ "scene_add_image": "Bild zur Szene hinzufügen",
99
+ "scene_add_gif": "Gif zur Szene hinzufügen",
100
+ "scene_add_sound": "Ton zur Szene hinzufügen",
101
+ "scene_add_text": "Text zur Szene hinzufügen",
102
+ "scene_add_video": "Video zur Szene hinzufügen",
103
+ "scene_add_web": "Webseite zur Szene hinzufügen",
104
+ "scene_url_label": "URL",
105
+ "scene_add_UI": "UI zur Szene hinzufügen",
106
+ "scene_choose_message_box": "Bitte Szenendatei auswählen",
107
+ "scene_choose_output_path_message_box": "Bitte Ausgabepfad für Szenendatei auswählen",
108
+ "scene_output": "Szenendatei ausgeben",
109
+ "scene_input": "Szenendatei laden",
110
+ "scene_script_clear": "Alle Skripte löschen",
111
+ "scene_script": "Szenen-Skript",
112
+ # Chat-Szenen-Eingabe
113
+ "chat_scene_input_title": "Chat-Inhalt eingeben",
114
+ "chat_scene_send_chat": "Text senden",
115
+ # Chat-Szene
116
+ "chat_scene_start_button": "Chat starten",
117
+ "chat_scene_new_topic": "Neues Thema starten",
118
+ "chat_scene_creative": "Kreativ",
119
+ "chat_scene_precise": "Präzise",
120
+ "chat_scene_balanced": "Ausgeglichen",
121
+ "chat_gpt_exception": "GPT-Fehler, bitte erneut versuchen oder neues Thema starten",
122
+ "should_we_show_toast": "Dialog anzeigen?",
123
+ # Chat-Spracheingabe
124
+ "start_chat_voice_input_ui": "Spracheingabe-Oberfläche öffnen",
125
+ "chat_recognizer_voice_button": "Sprachaufnahme starten",
126
+ # Bild-Generierung
127
+ "image_generation_tab": "Bild generieren",
128
+ "start_generate_image": "Bild generieren starten",
129
+ "input_error": "Bitte geben Sie etwas ein (keine Leerzeichen)",
130
+ "save_generation_image": "Generiertes Bild speichern",
131
+ # Hilfe-Menü
132
+ "help_menu_label": "Hilfe-Menü",
133
+ "help_menu_open_issue": "Problem melden",
134
+ "how_to_critical_exit_action": "Wie erzwinge ich das Schließen",
135
+ "how_to_critical_exit": "Drücken Sie F12, um dringend zu schließen",
136
+ # HowTo-Menü
137
+ "doc_menu_label": "Dokumentations-Menü",
138
+ "doc_menu_open_doc": "Dokumentation öffnen",
139
+ }