frontengine-dev 0.0.57__py3-none-any.whl → 0.0.58__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.
Files changed (54) hide show
  1. frontengine/__init__.py +1 -2
  2. frontengine/show/scene/extend_graphic_scene.py +0 -1
  3. frontengine/show/scene/extend_graphic_view.py +2 -1
  4. frontengine/show/scene/scene.py +23 -41
  5. frontengine/show/text/draw_text.py +28 -3
  6. frontengine/ui/dialog/choose_file_dialog.py +0 -9
  7. frontengine/ui/main_ui.py +2 -0
  8. frontengine/ui/menu/how_to_menu.py +13 -2
  9. frontengine/ui/page/control_center/control_center_ui.py +2 -6
  10. frontengine/ui/page/gif/gif_setting_ui.py +16 -4
  11. frontengine/ui/page/image/image_setting_ui.py +15 -3
  12. frontengine/ui/page/scene_setting/scene_manager.py +96 -0
  13. frontengine/ui/page/scene_setting/scene_page/gif.py +102 -0
  14. frontengine/ui/page/scene_setting/scene_page/image.py +83 -0
  15. frontengine/ui/page/scene_setting/scene_page/sound.py +84 -0
  16. frontengine/ui/page/scene_setting/scene_page/text.py +93 -0
  17. frontengine/ui/page/scene_setting/scene_page/video.py +122 -0
  18. frontengine/ui/page/scene_setting/scene_page/web.py +66 -0
  19. frontengine/ui/page/scene_setting/scene_setting_ui.py +30 -23
  20. frontengine/ui/page/sound_player/sound_player_setting_ui.py +0 -1
  21. frontengine/ui/page/text/text_setting_ui.py +35 -7
  22. frontengine/ui/page/utils.py +23 -0
  23. frontengine/ui/page/video/video_setting_ui.py +15 -3
  24. frontengine/ui/page/web/web_setting_ui.py +15 -3
  25. frontengine/user_setting/scene_setting.py +34 -0
  26. frontengine/utils/multi_language/english.py +10 -3
  27. frontengine/utils/multi_language/traditional_chinese.py +11 -3
  28. {frontengine_dev-0.0.57.dist-info → frontengine_dev-0.0.58.dist-info}/METADATA +1 -1
  29. {frontengine_dev-0.0.57.dist-info → frontengine_dev-0.0.58.dist-info}/RECORD +33 -45
  30. frontengine/ui/page/scene_setting/scene_tabs/Image.py +0 -61
  31. frontengine/ui/page/scene_setting/scene_tabs/gif.py +0 -74
  32. frontengine/ui/page/scene_setting/scene_tabs/scene_control.py +0 -78
  33. frontengine/ui/page/scene_setting/scene_tabs/sound.py +0 -44
  34. frontengine/ui/page/scene_setting/scene_tabs/tableview_model.py +0 -65
  35. frontengine/ui/page/scene_setting/scene_tabs/text.py +0 -77
  36. frontengine/ui/page/scene_setting/scene_tabs/ui.py +0 -56
  37. frontengine/ui/page/scene_setting/scene_tabs/video.py +0 -88
  38. frontengine/ui/page/scene_setting/scene_tabs/web.py +0 -74
  39. frontengine/user_setting/gif/__init__.py +0 -0
  40. frontengine/user_setting/gif/gif_setting.py +0 -5
  41. frontengine/user_setting/image/__init__.py +0 -0
  42. frontengine/user_setting/image/image_setting.py +0 -4
  43. frontengine/user_setting/sound/__init__.py +0 -0
  44. frontengine/user_setting/sound/sound_setting.py +0 -4
  45. frontengine/user_setting/text/__init__.py +0 -0
  46. frontengine/user_setting/text/text_setting.py +0 -5
  47. frontengine/user_setting/video/__init__.py +0 -0
  48. frontengine/user_setting/video/video_setting.py +0 -6
  49. frontengine/user_setting/web/__init__.py +0 -0
  50. frontengine/user_setting/web/web_setting.py +0 -4
  51. /frontengine/ui/page/scene_setting/{scene_tabs → scene_page}/__init__.py +0 -0
  52. {frontengine_dev-0.0.57.dist-info → frontengine_dev-0.0.58.dist-info}/LICENSE +0 -0
  53. {frontengine_dev-0.0.57.dist-info → frontengine_dev-0.0.58.dist-info}/WHEEL +0 -0
  54. {frontengine_dev-0.0.57.dist-info → frontengine_dev-0.0.58.dist-info}/top_level.txt +0 -0
@@ -1,9 +1,10 @@
1
1
  from PySide6.QtCore import Qt
2
2
  from PySide6.QtGui import QScreen, QGuiApplication
3
- from PySide6.QtWidgets import QWidget, QGridLayout, QSlider, QLabel, QPushButton, QMessageBox, QCheckBox
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
6
6
  from frontengine.ui.dialog.choose_file_dialog import choose_video
7
+ from frontengine.ui.page.utils import monitor_choose_dialog
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
 
@@ -119,13 +120,24 @@ class VideoSettingUI(QWidget):
119
120
  message_box.show()
120
121
  else:
121
122
  front_engine_logger.info("start_play_gif")
122
- if not self.show_all_screen:
123
+ monitors = QGuiApplication.screens()
124
+ if self.show_all_screen is False and len(monitors) <= 1:
123
125
  video_widget = self._create_video_widget()
124
126
  video_widget.set_ui_window_flag(self.show_on_bottom_checkbox.isChecked())
125
127
  video_widget.showMaximized()
128
+ elif self.show_all_screen is False and len(monitors) >= 2:
129
+ input_dialog, combobox = monitor_choose_dialog(self, monitors)
130
+ result = input_dialog.exec_()
131
+ if result == QDialog.DialogCode.Accepted:
132
+ select_monitor_index = int(combobox.currentText())
133
+ if len(monitors) > select_monitor_index:
134
+ 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()
126
139
  else:
127
140
  count = 0
128
- monitors = QGuiApplication.screens()
129
141
  for monitor in monitors:
130
142
  video_widget = self._create_video_widget()
131
143
  if count >= 1:
@@ -1,8 +1,9 @@
1
1
  from PySide6.QtCore import Qt
2
2
  from PySide6.QtGui import QScreen
3
- from PySide6.QtWidgets import QWidget, QGridLayout, QLabel, QSlider, QLineEdit, QPushButton, QCheckBox
3
+ from PySide6.QtWidgets import QWidget, QGridLayout, QLabel, QSlider, QLineEdit, QPushButton, QCheckBox, QDialog
4
4
 
5
5
  from frontengine.show.web.webview import WebWidget
6
+ from frontengine.ui.page.utils import monitor_choose_dialog
6
7
  from frontengine.utils.logging.loggin_instance import front_engine_logger
7
8
  from frontengine.utils.multi_language.language_wrapper import language_wrapper
8
9
 
@@ -93,12 +94,23 @@ class WEBSettingUI(QWidget):
93
94
  self.opacity_slider_value_label.setText(str(self.opacity_slider.value()))
94
95
 
95
96
  def start_open_web_with_url(self) -> None:
96
- if not self.show_all_screen:
97
+ monitors = QScreen.virtualSiblings(self.screen())
98
+ if self.show_all_screen is False and len(monitors) <= 1:
97
99
  web_widget = self._create_web_widget()
98
100
  web_widget.showMaximized()
101
+ elif self.show_all_screen is False and len(monitors) >= 2:
102
+ input_dialog, combobox = monitor_choose_dialog(self, monitors)
103
+ result = input_dialog.exec_()
104
+ if result == QDialog.DialogCode.Accepted:
105
+ select_monitor_index = int(combobox.currentText())
106
+ if len(monitors) > select_monitor_index:
107
+ monitor = monitors[select_monitor_index]
108
+ gif_widget = self._create_web_widget()
109
+ gif_widget.setScreen(monitor)
110
+ gif_widget.move(monitor.availableGeometry().topLeft())
111
+ gif_widget.showFullScreen()
99
112
  else:
100
113
  front_engine_logger.info("start_open_web_with_url")
101
- monitors = QScreen.virtualSiblings(self.screen())
102
114
  for monitor in monitors:
103
115
  web_widget = self._create_web_widget()
104
116
  web_widget.setScreen(monitor)
@@ -0,0 +1,34 @@
1
+ import os
2
+
3
+ from PySide6.QtWidgets import QWidget, QFileDialog
4
+
5
+ from frontengine.ui.dialog.choose_file_dialog import choose_file
6
+ from frontengine.utils.json.json_file import write_json, read_json
7
+ from frontengine.utils.logging.loggin_instance import front_engine_logger
8
+ from frontengine.utils.multi_language.language_wrapper import language_wrapper
9
+
10
+ scene_json = {
11
+
12
+ }
13
+
14
+
15
+ def choose_scene_json(
16
+ trigger_ui: QWidget, file_filter: str = "Json (*.json;)", extensions: list = None) -> str:
17
+ front_engine_logger.info("choose_scene_json")
18
+ extensions = extensions or [".json"]
19
+ file_path = choose_file(
20
+ trigger_ui=trigger_ui, file_filter=file_filter, extensions=extensions,
21
+ warning_message=language_wrapper.language_word_dict.get("scene_choose_message_box"))
22
+ if file_path:
23
+ scene_json.update(read_json(file_path))
24
+
25
+
26
+ def write_scene_file(parent_qt_instance: QWidget, file_filter: str = "Json (*.json;)"):
27
+ file_path = QFileDialog().getSaveFileName(
28
+ parent=parent_qt_instance,
29
+ dir=os.getcwd(),
30
+ filter=file_filter
31
+ )
32
+ if file_path:
33
+ file_path = file_path[0]
34
+ write_json(str(file_path), scene_json)
@@ -54,6 +54,9 @@ english_word_dict = {
54
54
  "seconds": "sec",
55
55
  "close_delay": "Message disappear time sec",
56
56
  "country_code": "locale code",
57
+ "show_on_which_monitor": "Show on which monitor",
58
+ "ok": "ok",
59
+ "no": "no",
57
60
  # GIF setting ui
58
61
  "gif_setting_ui_choose_file": "Choose GIF or WEBP file",
59
62
  "gif_setting_ui_play": "Start Play GIF or WEBP",
@@ -71,6 +74,7 @@ english_word_dict = {
71
74
  "sound_player_setting_message_box_sound": "Please choose a sound file",
72
75
  # Text setting ui
73
76
  "text_setting_start_draw": "Start draw text on screen",
77
+ "text_setting_choose_position": "Choose text alignment",
74
78
  # Video setting ui
75
79
  "video_setting_choose_file": "Choose video file",
76
80
  "video_setting_start_play": "Start Play Video",
@@ -81,6 +85,7 @@ english_word_dict = {
81
85
  "web_setting_open_enable_input": "Enable input",
82
86
  # Scene UI
83
87
  "tab_scene_text": "Scene",
88
+ "scene_start": "Start scene",
84
89
  "scene_table_view_type": "Type",
85
90
  "scene_file_path": "File path",
86
91
  "scene_setting_start_scene_button": "Start Scene",
@@ -90,13 +95,14 @@ english_word_dict = {
90
95
  "scene_add_text": "Add text to scene",
91
96
  "scene_add_video": "Add video to scene",
92
97
  "scene_add_web": "Add web to scene",
98
+ "scene_url_label": "URL",
93
99
  "scene_add_UI": "Add ui to scene",
94
100
  "scene_choose_message_box": "Please choose a scene file",
95
101
  "scene_choose_output_path_message_box": "Please choose a scene file output path",
96
102
  "scene_output": "output scene file",
97
103
  "scene_input": "load scene file",
98
- "tableview_clear": "clear all setting",
99
- "scene_control_panel": "Scene control panel",
104
+ "scene_script_clear": "clear all script",
105
+ "scene_script": "Scene script",
100
106
  # Chat scene input
101
107
  "chat_scene_input_title": "input chat content",
102
108
  "chat_scene_send_chat": "send text",
@@ -120,5 +126,6 @@ english_word_dict = {
120
126
  "help_menu_label": "Help menu",
121
127
  "help_menu_open_issue": "Open issue tracker",
122
128
  # HowTo Menu
123
- "how_to_menu_label": "How to menu",
129
+ "doc_menu_label": "Doc menu",
130
+ "doc_menu_open_doc": "Open doc",
124
131
  }
@@ -54,6 +54,9 @@ traditional_chinese_word_dict = {
54
54
  "seconds": "秒",
55
55
  "close_delay": "字幕消失時間 秒",
56
56
  "country_code": "區域代碼",
57
+ "show_on_which_monitor": "顯示在哪個螢幕",
58
+ "ok": "確定",
59
+ "no": "否",
57
60
  # GIF setting ui
58
61
  "gif_setting_ui_choose_file": "選擇 GIF 或 WEBP 檔案",
59
62
  "gif_setting_ui_play": "開始撥放 GIF 或 WEBP",
@@ -71,6 +74,8 @@ traditional_chinese_word_dict = {
71
74
  "sound_player_setting_message_box_sound": "請選擇音檔",
72
75
  # Text setting ui
73
76
  "text_setting_start_draw": "開始在螢幕上繪製文字",
77
+ "text_setting_choose_alignment": "選擇文字排列方式",
78
+ "text_setting_alignment_Top": "置頂",
74
79
  # Video setting ui
75
80
  "video_setting_choose_file": "選擇影片檔案",
76
81
  "video_setting_start_play": "開始撥放影片",
@@ -81,6 +86,7 @@ traditional_chinese_word_dict = {
81
86
  "web_setting_open_enable_input": "啟用輸入",
82
87
  # Scene UI
83
88
  "tab_scene_text": "場景",
89
+ "scene_start": "開始場景",
84
90
  "scene_table_view_type": "類型",
85
91
  "scene_file_path": "檔案路徑",
86
92
  "scene_setting_start_scene_button": "開始場景",
@@ -90,13 +96,14 @@ traditional_chinese_word_dict = {
90
96
  "scene_add_text": "添加文字到場景",
91
97
  "scene_add_video": "添加影片到場景",
92
98
  "scene_add_web": "添加網頁到場景",
99
+ "scene_url_label": "網址",
93
100
  "scene_add_UI": "添加UI到場景",
94
101
  "scene_choose_message_box": "請選擇場景檔案",
95
102
  "scene_choose_output_path_message_box": "請選擇場景檔案輸出路徑",
96
103
  "scene_output": "輸出場景檔案",
97
104
  "scene_input": "讀取場景檔案",
98
- "tableview_clear": "清除所有設定",
99
- "scene_control_panel": "場景控制中心",
105
+ "scene_script_clear": "清除所有腳本",
106
+ "scene_script": "場景腳本",
100
107
  # Chat scene input
101
108
  "chat_scene_input_title": "輸入聊天內容",
102
109
  "chat_scene_send_chat": "送出文字",
@@ -120,5 +127,6 @@ traditional_chinese_word_dict = {
120
127
  "help_menu_label": "幫助選單",
121
128
  "help_menu_open_issue": "開啟問題回報",
122
129
  # HowTo Menu
123
- "how_to_menu_label": "問題選單",
130
+ "doc_menu_label": "文件選單",
131
+ "doc_menu_open_doc": "開啟文件",
124
132
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: frontengine_dev
3
- Version: 0.0.57
3
+ Version: 0.0.58
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
@@ -1,4 +1,4 @@
1
- frontengine/__init__.py,sha256=bfPIO2Y3oRwkh7NaTch9vZ9780VWTvqmPQBcWZpG6H8,2049
1
+ frontengine/__init__.py,sha256=kRQu2NKQX6VjF70N7Alqp31mxqJ5SRZL1Ri4abYvz0c,1938
2
2
  frontengine/show/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  frontengine/show/gif/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  frontengine/show/gif/paint_gif.py,sha256=N_jj4wf5sPYj1vEjFFqlBDcjCD8hxF45ipRJ5yO6XOs,3024
@@ -7,14 +7,14 @@ frontengine/show/image/paint_image.py,sha256=BtKyFJP7UdOLMBsCoQ1fnT8ft-cUxDaufFz
7
7
  frontengine/show/load/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
8
  frontengine/show/load/load_someone_make_ui.py,sha256=yjMrkA76VEYkKXygwKmoKaADymjjDlebI-7PNa6DrEo,1010
9
9
  frontengine/show/scene/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
- frontengine/show/scene/extend_graphic_scene.py,sha256=YfxAvMllAOS67XtyEoTiVWultD_NamWdH2plV75QcQ0,150
11
- frontengine/show/scene/extend_graphic_view.py,sha256=RHchIGI3UWjmrpAo9aIfyTvCV_ENGIbn_FOrq-nZ46w,1935
12
- frontengine/show/scene/scene.py,sha256=BZVNgeXR46p6hfHusUEX7dVCoxk9eUA0vksuWafLr8c,5337
10
+ frontengine/show/scene/extend_graphic_scene.py,sha256=7UiEr_kRbhheGOj_rYeq3fAUtRacq2WH8fQZV0Q-tA4,148
11
+ frontengine/show/scene/extend_graphic_view.py,sha256=b5yAA_PqMTCnn7-63Q8Fhm9HBiWfjo48_1xjh2nP67I,1999
12
+ frontengine/show/scene/scene.py,sha256=3DkiM0-JT2RT-1aAXz5imHd8pg6ngt7Pv7QniZUvAs8,4420
13
13
  frontengine/show/sound_player/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
14
  frontengine/show/sound_player/sound_effect.py,sha256=pHsf0DC1cHwo66neudKzIUqiuWihlXR1a34-_AQrbo0,2032
15
15
  frontengine/show/sound_player/sound_player.py,sha256=VOXwKI6-VdMH18u__atCay3wVJFu3TTHiygnQ8MNCTE,2135
16
16
  frontengine/show/text/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
- frontengine/show/text/draw_text.py,sha256=YPTSbz8c2dTDD-qZ6kT-HpfmF5d_1prxSA2Dv9HuHCw,2320
17
+ frontengine/show/text/draw_text.py,sha256=7uXWXDVU6TE5sfQ52bXCNkl0uBIR3dku7xyZPKOqRD4,3685
18
18
  frontengine/show/video/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
19
  frontengine/show/video/video_player.py,sha256=Gp1LErz7-xdPYajgEcpnLC_qOZ78NcgDI8AHG8TIF6c,3321
20
20
  frontengine/show/web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -22,57 +22,45 @@ frontengine/show/web/webview.py,sha256=ScRoJ43ftjUoU-qdrtsPv4QIywEtdseAPpj1Seqk_
22
22
  frontengine/system_tray/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
23
  frontengine/system_tray/extend_system_tray.py,sha256=k4u2lEox-fCwmQKy1qnek9SGoqUkMFv8Av_DcNanwcE,1595
24
24
  frontengine/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
- frontengine/ui/main_ui.py,sha256=LP99Hbh48YMmw9z0BbKCilXhSCyjq0npzzk8kqVBtxo,7488
25
+ frontengine/ui/main_ui.py,sha256=geyNI7dI5pbnRBvAoRVVEYUtfmQp5pk3w1Xf_BXj93k,7584
26
26
  frontengine/ui/color/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
27
  frontengine/ui/color/global_color.py,sha256=Rh-R-X2BHVjcK5MTBZ1nEMVHgLj1rP4nk-wTQKbiwFA,125
28
28
  frontengine/ui/dialog/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
- frontengine/ui/dialog/choose_file_dialog.py,sha256=2axmBspnOgiKIoEkc7XICPc40HQeZbqEQ6TltNovMFI,3456
29
+ frontengine/ui/dialog/choose_file_dialog.py,sha256=Xu7c_2cQav3LyQF9S2HEW_PBEvJNaZCYPcliiteQpV8,3036
30
30
  frontengine/ui/dialog/save_file_dialog.py,sha256=e-sgUsmEAU1JSvzzmTmc2pf9rnW61alOgd48ESTYG1I,373
31
31
  frontengine/ui/menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
32
  frontengine/ui/menu/help_menu.py,sha256=_eNm60mrilBCVXumxnFuWDR48IONDjN5CDMAAgcyhAY,965
33
- frontengine/ui/menu/how_to_menu.py,sha256=kBhfAeFM2GK61OO5kqWlxFo8Pz2LUoSaNfkwsbneF1Y,499
33
+ frontengine/ui/menu/how_to_menu.py,sha256=s1azoiD8H2lApbFPcrv8QvsR1mwh6O_gFHRngQ7bsbc,952
34
34
  frontengine/ui/menu/language_menu.py,sha256=--9_RxoeefPlCx8i9q7PoRDCmQp9715hpWyMaegJWGE,1953
35
35
  frontengine/ui/page/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
+ frontengine/ui/page/utils.py,sha256=UxHVStfVg-6563T20pEjnVMYzMvy9JePAj1VOm8HX_g,1103
36
37
  frontengine/ui/page/control_center/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
- frontengine/ui/page/control_center/control_center_ui.py,sha256=kkzoaFsjLuYMExgNITuWk1n5iwY5RZnPKWkOoKUrWwY,8157
38
+ frontengine/ui/page/control_center/control_center_ui.py,sha256=zyFdFML00ZHcC8NV2Lws95EssIDM_WUMU6h3qePhU7Y,7992
38
39
  frontengine/ui/page/gif/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
- frontengine/ui/page/gif/gif_setting_ui.py,sha256=Sr8lJk2lq5kOhATP9Cz2fgFzjXgWqbV2zLuwSVDttng,6103
40
+ frontengine/ui/page/gif/gif_setting_ui.py,sha256=HherbCmOJgO5TLXHt9sflTspmCQh1pv1IGyfKmp7kog,6908
40
41
  frontengine/ui/page/image/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
41
- frontengine/ui/page/image/image_setting_ui.py,sha256=4lPtOwx15ZWhxu9fI-k55AFWXZoZC4FDC8h_LiK1PNM,5232
42
+ frontengine/ui/page/image/image_setting_ui.py,sha256=0in02Swq_qM-jZNevgoZe0QzjbnAl5L0ZMHOTHzQbrQ,6038
42
43
  frontengine/ui/page/scene_setting/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
- frontengine/ui/page/scene_setting/scene_setting_ui.py,sha256=ikmicNQ3zwvn-L_NIuNQ6xScPamFQF_O4b3Ds8Wj764,2540
44
- frontengine/ui/page/scene_setting/scene_tabs/Image.py,sha256=qMJ4y8wg_xJ6jMJe_1xGqz6Yo8fJDFR37-mRFNku9-U,3131
45
- frontengine/ui/page/scene_setting/scene_tabs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
46
- frontengine/ui/page/scene_setting/scene_tabs/gif.py,sha256=SFOWlwV_Z5izG7X5UrYOhK-t14AOyVSkU28yThfY3ec,3785
47
- frontengine/ui/page/scene_setting/scene_tabs/scene_control.py,sha256=jG7EXU5S2YyViPQy9fyn68SQkYs-2cAds3FBn8j8E00,4019
48
- frontengine/ui/page/scene_setting/scene_tabs/sound.py,sha256=FFi58AvQ6BbDAT1WxujMpHznSIpqX0GYze3rCpYJbPc,2032
49
- frontengine/ui/page/scene_setting/scene_tabs/tableview_model.py,sha256=vt3sNwWs7w05wjDadU0pupmsP7S5qnCYWZQ_ppkU27k,2810
50
- frontengine/ui/page/scene_setting/scene_tabs/text.py,sha256=Tj6Dqa-p1siHWihz4G-6e5SN037KRcpKJ6c08q16EFg,3937
51
- frontengine/ui/page/scene_setting/scene_tabs/ui.py,sha256=457znYe0QyzjwkdWHr19i1vRF5IMT_i__a4fv_-Pr9c,2849
52
- frontengine/ui/page/scene_setting/scene_tabs/video.py,sha256=5KW1s4O3n6_NJyOdlIm8HXpEVaeOhl5isUMPatYH6Rc,4586
53
- frontengine/ui/page/scene_setting/scene_tabs/web.py,sha256=PyKQaZrgurQ0OG8OOMgrePm_xU2MY7jVssXh4iD0tFA,3875
44
+ frontengine/ui/page/scene_setting/scene_manager.py,sha256=XrdIAWCxTDqrCXOiFCEOI6BSpD3nv3qSpkG7JFM9JD4,4675
45
+ frontengine/ui/page/scene_setting/scene_setting_ui.py,sha256=jc6BGKHJGmPbFxChyILW3BBU_EF1yT0l63OJNqJYWSM,2590
46
+ frontengine/ui/page/scene_setting/scene_page/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
+ frontengine/ui/page/scene_setting/scene_page/gif.py,sha256=DS6HHx-SRtliWwr-KD8UpH6lxufeudyUVQgv41iMdE0,4436
48
+ frontengine/ui/page/scene_setting/scene_page/image.py,sha256=vBOG6kgNEsQU5DEivrwvP2tzq4KkTW5EkKIRe7XDKUI,3495
49
+ frontengine/ui/page/scene_setting/scene_page/sound.py,sha256=KeVUQ-B5hg1BkdBNUl1oRRcT6dZuL5s4_g8trwS_tDg,3637
50
+ frontengine/ui/page/scene_setting/scene_page/text.py,sha256=uWLobsSK0S8qDVQARghGs-mQNZT0c7zXC43tJM8UGFQ,4358
51
+ frontengine/ui/page/scene_setting/scene_page/video.py,sha256=b1oI57ZDA3R__AD6JxKT1Mvs2FR1Vaxni82ZTgkbiYk,5517
52
+ frontengine/ui/page/scene_setting/scene_page/web.py,sha256=vYBbPvPHJqw3FjeImDj4y8YWLV4FpTLZnrbK3_RbBAY,2845
54
53
  frontengine/ui/page/sound_player/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
- frontengine/ui/page/sound_player/sound_player_setting_ui.py,sha256=mu7c0DtkKrvGgH2VTDY-W5N1BAK6oJewT-_5qYgeZFM,6038
54
+ frontengine/ui/page/sound_player/sound_player_setting_ui.py,sha256=OFRxUyUXVj3-PiHezjnspVqW-uabAd2vKu1ipEy-4p0,6000
56
55
  frontengine/ui/page/text/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
- frontengine/ui/page/text/text_setting_ui.py,sha256=vuvag85AAfPJ5vYulv923ggcFWTunf6SLOkiqK5l6ho,4778
56
+ frontengine/ui/page/text/text_setting_ui.py,sha256=nSrXkezs7X9-7Kd16raaz3WZJFwyL4cuz3j74VQIS9U,6317
58
57
  frontengine/ui/page/video/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
59
- frontengine/ui/page/video/video_setting_ui.py,sha256=QIIQR-uXxha3Eeb5JtV6SqdbrY7iopszgNcJNGMt2g4,7404
58
+ frontengine/ui/page/video/video_setting_ui.py,sha256=1vWRXSJwvteQ4179Vnb5e4ZlHoMhSKdqpsaeCBGzI1g,8210
60
59
  frontengine/ui/page/web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
61
- frontengine/ui/page/web/web_setting_ui.py,sha256=y1Wr33YDX6Xe_robfSi_2b6p4aIowbS_Z2pw8ySB9kI,4823
60
+ frontengine/ui/page/web/web_setting_ui.py,sha256=UtvZM3C-37PVdUu7hVqvoR5gDvXuKZSWg0g8VSQYRy8,5583
62
61
  frontengine/user_setting/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
62
+ frontengine/user_setting/scene_setting.py,sha256=lTIDCWN3e2zQJJ5XMQRQlvHDHCsj5Opl6ek5geOEgfk,1211
63
63
  frontengine/user_setting/user_setting_file.py,sha256=yMAPFfzNpYv6qBcFqNoFoxc68bgo1tmaZJWP9txh_ng,635
64
- frontengine/user_setting/gif/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
- frontengine/user_setting/gif/gif_setting.py,sha256=PcZWWl2ik0cD7fXoJ3KBD-g0GDaubi-JsmyxaCGYQ64,89
66
- frontengine/user_setting/image/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
67
- frontengine/user_setting/image/image_setting.py,sha256=GkEbR2ZJCpwYAqRBfrVQbGJoTQsIhAlgqHm9RNMJkAQ,79
68
- frontengine/user_setting/sound/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
69
- frontengine/user_setting/sound/sound_setting.py,sha256=VWFNDTT2uSXjs1bxUGnOAMNWdqHT_0vgV8OAWd2E3Nc,72
70
- frontengine/user_setting/text/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
- frontengine/user_setting/text/text_setting.py,sha256=AxCajm83JfL-TBpVgAaDvJlpV1FsfNCKBTVUsC8Zk98,98
72
- frontengine/user_setting/video/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
73
- frontengine/user_setting/video/video_setting.py,sha256=LIPZpUBNMTPhW_gbH3g8rUqZ1rsqXcUZu5BFmhrCB-o,118
74
- frontengine/user_setting/web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
- frontengine/user_setting/web/web_setting.py,sha256=9Nn0AXvYtOvucWB0DtsM_DTYyxUuFMarmKT0VODMETI,72
76
64
  frontengine/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
77
65
  frontengine/utils/browser/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
78
66
  frontengine/utils/browser/browser.py,sha256=BQBjJpbTubqruUvg75O21SUhawFdVhDmuYxtd_FN1Gs,85
@@ -91,13 +79,13 @@ frontengine/utils/json_format/json_process.py,sha256=xJt_4Hm_o3sNDoeGtRW9Q7fsRj3
91
79
  frontengine/utils/logging/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
92
80
  frontengine/utils/logging/loggin_instance.py,sha256=Zjr384o2q8x0QWv_hNoHIM_zCp5-HFgW14t-d30GUcQ,598
93
81
  frontengine/utils/multi_language/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
94
- frontengine/utils/multi_language/english.py,sha256=RQjFPbw_gGtrecjqWOB2fvbGrxen9IzbQZOn3LA9BIg,5249
82
+ frontengine/utils/multi_language/english.py,sha256=hTFFiiIhTE3y3GFHHMERqCx7QxTNy-4kdXEgGL15g08,5486
95
83
  frontengine/utils/multi_language/language_wrapper.py,sha256=KBqsG6ng5LSJkGqmu_YDxI8yAjXwgHM12DOzVgh_HXI,848
96
- frontengine/utils/multi_language/traditional_chinese.py,sha256=UsxnYM22Q1HQ5pPs5gsR69VVLK6N6zdrAbOE7JYTjpM,5411
84
+ frontengine/utils/multi_language/traditional_chinese.py,sha256=sPRVRcrvdATU67rlKBCSx2ZM8d3CBvDzWjmjsiuxEPA,5715
97
85
  frontengine/utils/redirect_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
98
86
  frontengine/utils/redirect_manager/redirect_manager_class.py,sha256=zGJeVpjRU12MCnhVAdksAIhK_IhddI4cNKVb7DMgOZA,1888
99
- frontengine_dev-0.0.57.dist-info/LICENSE,sha256=b3VlPBXnrDylKGffOEOLWMgOX-yfd65XC7PA1_sox2o,1085
100
- frontengine_dev-0.0.57.dist-info/METADATA,sha256=Tey1Y8hDW8E61BOMrvZ287r96WVPe9l9lUpFfzGp5KQ,2165
101
- frontengine_dev-0.0.57.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
102
- frontengine_dev-0.0.57.dist-info/top_level.txt,sha256=btCybScN_ubeQ8phsSDBB0T-HyHjqt7b-WPy61uTox0,12
103
- frontengine_dev-0.0.57.dist-info/RECORD,,
87
+ frontengine_dev-0.0.58.dist-info/LICENSE,sha256=b3VlPBXnrDylKGffOEOLWMgOX-yfd65XC7PA1_sox2o,1085
88
+ frontengine_dev-0.0.58.dist-info/METADATA,sha256=ggVuKDGeYIqy8SXoH4pisRys_0mKV57jhOUcnQYm9gc,2165
89
+ frontengine_dev-0.0.58.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
90
+ frontengine_dev-0.0.58.dist-info/top_level.txt,sha256=btCybScN_ubeQ8phsSDBB0T-HyHjqt7b-WPy61uTox0,12
91
+ frontengine_dev-0.0.58.dist-info/RECORD,,
@@ -1,61 +0,0 @@
1
- from PySide6.QtCore import Qt
2
- from PySide6.QtGui import QIntValidator
3
- from PySide6.QtWidgets import QWidget, QBoxLayout, QPushButton, QSlider, QLabel, QLineEdit, QHBoxLayout
4
- from frontengine.utils.multi_language.language_wrapper import language_wrapper
5
-
6
- from frontengine.ui.dialog.choose_file_dialog import choose_image
7
- from frontengine.ui.page.scene_setting.scene_tabs.tableview_model import add_row_data
8
- from frontengine.utils.logging.loggin_instance import front_engine_logger
9
-
10
-
11
- class ImageSceneSettingUI(QWidget):
12
-
13
- def __init__(self):
14
- super().__init__()
15
- self.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose)
16
- self.box_layout = QBoxLayout(QBoxLayout.Direction.TopToBottom)
17
- # Image button
18
- self.image_button = QPushButton(
19
- language_wrapper.language_word_dict.get("scene_add_image")
20
- )
21
- self.image_button.clicked.connect(self.add_image)
22
- # Opacity slider
23
- self.opacity_slider = QSlider()
24
- self.opacity_slider.setMinimum(1)
25
- self.opacity_slider.setMaximum(100)
26
- self.opacity_slider.setTickInterval(1)
27
- self.opacity_slider.setValue(20)
28
- self.opacity_slider.setOrientation(Qt.Orientation.Horizontal)
29
- self.opacity_label = QLabel()
30
- self.opacity_label.setText(language_wrapper.language_word_dict.get("Opacity"))
31
- self.opacity_box_h_layout = QHBoxLayout()
32
- self.opacity_box_h_layout.addWidget(self.opacity_label)
33
- self.opacity_box_h_layout.addWidget(self.opacity_slider)
34
- # Position x input
35
- self.position_x_input_label = QLabel(language_wrapper.language_word_dict.get("position_x"))
36
- self.position_x_input = QLineEdit()
37
- self.position_x_input.setValidator(QIntValidator(0, 999999, self))
38
- self.position_x_layout = QHBoxLayout()
39
- self.position_x_layout.addWidget(self.position_x_input_label)
40
- self.position_x_layout.addWidget(self.position_x_input)
41
- # Position y input
42
- self.position_y_input_label = QLabel(language_wrapper.language_word_dict.get("position_y"))
43
- self.position_y_input = QLineEdit()
44
- self.position_y_input.setValidator(QIntValidator(0, 999999, self))
45
- self.position_y_layout = QHBoxLayout()
46
- self.position_y_layout.addWidget(self.position_y_input_label)
47
- self.position_y_layout.addWidget(self.position_y_input)
48
- # Set UI
49
- self.box_layout.addLayout(self.opacity_box_h_layout)
50
- self.box_layout.addLayout(self.position_x_layout)
51
- self.box_layout.addLayout(self.position_y_layout)
52
- self.box_layout.addWidget(self.image_button)
53
- self.setLayout(self.box_layout)
54
-
55
- def add_image(self) -> None:
56
- image_path = choose_image(self)
57
- if image_path is not None:
58
- row_data = ["IMAGE", image_path, "", "", str(self.opacity_slider.value()), "", "", "", "", "", "",
59
- self.position_x_input.text(), self.position_y_input.text()]
60
- front_engine_logger.info(f"add image, param: {row_data}")
61
- add_row_data(row_data)
@@ -1,74 +0,0 @@
1
- from PySide6.QtCore import Qt
2
- from PySide6.QtGui import QIntValidator
3
- from PySide6.QtWidgets import QWidget, QBoxLayout, QPushButton, QSlider, QLabel, QLineEdit, QHBoxLayout
4
- from frontengine.utils.multi_language.language_wrapper import language_wrapper
5
-
6
- from frontengine.ui.dialog.choose_file_dialog import choose_gif
7
- from frontengine.ui.page.scene_setting.scene_tabs.tableview_model import add_row_data
8
- from frontengine.utils.logging.loggin_instance import front_engine_logger
9
-
10
-
11
- class GIFSceneSettingUI(QWidget):
12
-
13
- def __init__(self):
14
- super().__init__()
15
- self.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose)
16
- self.box_layout = QBoxLayout(QBoxLayout.Direction.TopToBottom)
17
- # GIF button
18
- self.gif_button = QPushButton(
19
- language_wrapper.language_word_dict.get("scene_add_gif")
20
- )
21
- self.gif_button.clicked.connect(self.add_gif)
22
- # Opacity slider
23
- self.opacity_slider = QSlider()
24
- self.opacity_slider.setMinimum(1)
25
- self.opacity_slider.setMaximum(100)
26
- self.opacity_slider.setTickInterval(1)
27
- self.opacity_slider.setValue(20)
28
- self.opacity_slider.setOrientation(Qt.Orientation.Horizontal)
29
- self.opacity_label = QLabel()
30
- self.opacity_label.setText(language_wrapper.language_word_dict.get("Opacity"))
31
- self.opacity_box_h_layout = QHBoxLayout()
32
- self.opacity_box_h_layout.addWidget(self.opacity_label)
33
- self.opacity_box_h_layout.addWidget(self.opacity_slider)
34
- # Speed slider
35
- self.speed_slider = QSlider()
36
- self.speed_slider.setMinimum(1)
37
- self.speed_slider.setMaximum(100)
38
- self.speed_slider.setTickInterval(1)
39
- self.speed_slider.setValue(100)
40
- self.speed_slider.setOrientation(Qt.Orientation.Horizontal)
41
- self.speed_label = QLabel()
42
- self.speed_label.setText(language_wrapper.language_word_dict.get("Speed"))
43
- self.speed_box_h_layout = QHBoxLayout()
44
- self.speed_box_h_layout.addWidget(self.speed_label)
45
- self.speed_box_h_layout.addWidget(self.speed_slider)
46
- # Position x input
47
- self.position_x_input_label = QLabel(language_wrapper.language_word_dict.get("position_x"))
48
- self.position_x_input = QLineEdit()
49
- self.position_x_input.setValidator(QIntValidator(0, 999999, self))
50
- self.position_x_layout = QHBoxLayout()
51
- self.position_x_layout.addWidget(self.position_x_input_label)
52
- self.position_x_layout.addWidget(self.position_x_input)
53
- # Position y input
54
- self.position_y_input_label = QLabel(language_wrapper.language_word_dict.get("position_y"))
55
- self.position_y_input = QLineEdit()
56
- self.position_y_input.setValidator(QIntValidator(0, 999999, self))
57
- self.position_y_layout = QHBoxLayout()
58
- self.position_y_layout.addWidget(self.position_y_input_label)
59
- self.position_y_layout.addWidget(self.position_y_input)
60
- # Set UI
61
- self.box_layout.addLayout(self.opacity_box_h_layout)
62
- self.box_layout.addLayout(self.speed_box_h_layout)
63
- self.box_layout.addLayout(self.position_x_layout)
64
- self.box_layout.addLayout(self.position_y_layout)
65
- self.box_layout.addWidget(self.gif_button)
66
- self.setLayout(self.box_layout)
67
-
68
- def add_gif(self) -> None:
69
- gif_path = choose_gif(self)
70
- if gif_path is not None:
71
- row_data = ["GIF", gif_path, "", "", str(self.opacity_slider.value()), str(self.speed_slider.value()),
72
- "", "", "", "", "", self.position_x_input.text(), self.position_y_input.text()]
73
- front_engine_logger.info(f"add gif, param: {row_data}")
74
- add_row_data(row_data)
@@ -1,78 +0,0 @@
1
- from typing import Dict, Callable
2
-
3
- from PySide6.QtCore import Qt
4
- from PySide6.QtWidgets import QWidget, QGridLayout, QPushButton, QHeaderView, QTableView, QScrollArea
5
-
6
- from frontengine.show.scene.scene import SceneManager
7
- from frontengine.ui.page.scene_setting.scene_tabs.tableview_model import tableview_model, output_scene_as_json, \
8
- load_scene_json
9
- from frontengine.utils.logging.loggin_instance import front_engine_logger
10
- from frontengine.utils.multi_language.language_wrapper import language_wrapper
11
-
12
-
13
- class SceneControlSettingUI(QWidget):
14
-
15
- def __init__(self):
16
- super().__init__()
17
- self.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose)
18
- self.grad_layout = QGridLayout()
19
- self.param_key_name_list = [
20
- "widget_type", "file_path", "url", "text", "opacity", "speed", "volume", "font_size", "play_rate",
21
- "web_setting_open_local_file", "web_setting_open_enable_input", "position_x", "position_y"
22
- ]
23
- # Use to build component
24
- self.scene = SceneManager()
25
- self.scene_component: Dict[str, Callable] = {
26
- "IMAGE": self.scene.add_image,
27
- "GIF": self.scene.add_gif,
28
- "SOUND": self.scene.add_sound,
29
- "TEXT": self.scene.add_text,
30
- "VIDEO": self.scene.add_video,
31
- "WEB": self.scene.add_web,
32
- "EXTEND_UI_FILE": self.scene.add_extend_ui_file
33
- }
34
- # Tableview
35
- self.scene_table_view = QTableView()
36
- self.scene_table_view_scroll_area = QScrollArea()
37
- self.scene_table_view_scroll_area.setWidgetResizable(True)
38
- self.scene_table_view_scroll_area.setViewportMargins(0, 0, 0, 0)
39
- self.scene_table_view_scroll_area.setWidget(self.scene_table_view)
40
- # Set resize as content
41
- self.scene_table_view.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeMode.ResizeToContents)
42
- self.scene_table_view.verticalHeader().setSectionResizeMode(QHeaderView.ResizeMode.ResizeToContents)
43
- self.scene_table_view.setModel(tableview_model)
44
- # Scene output & input
45
- self.scene_output_button = QPushButton(language_wrapper.language_word_dict.get("scene_output"))
46
- self.scene_output_button.clicked.connect(output_scene_as_json)
47
- self.scene_input_button = QPushButton(language_wrapper.language_word_dict.get("scene_input"))
48
- self.scene_input_button.clicked.connect(load_scene_json)
49
- # Start button
50
- self.start_button = QPushButton(
51
- language_wrapper.language_word_dict.get("scene_setting_start_scene_button")
52
- )
53
- self.start_button.clicked.connect(self.start_scene)
54
- # Add to layout
55
- self.grad_layout.addWidget(self.scene_input_button, 0, 0)
56
- self.grad_layout.addWidget(self.scene_output_button, 0, 1)
57
- self.grad_layout.addWidget(self.start_button, 0, 2)
58
- self.grad_layout.addWidget(self.scene_table_view_scroll_area, 1, 0, -1, -1)
59
- self.setLayout(self.grad_layout)
60
-
61
- def close_scene(self) -> None:
62
- self.scene.widget_list.clear()
63
- if self.scene.graphic_view.isEnabled() and self.scene.graphic_view.isVisible():
64
- self.scene.graphic_view.close()
65
-
66
- def start_scene(self) -> None:
67
- front_engine_logger.info("start_scene")
68
- for row in range(tableview_model.rowCount()):
69
- widget_type_text = tableview_model.item(row, 0).text()
70
- add_widget_function = self.scene_component.get(widget_type_text)
71
- param_dict: Dict[str, str] = dict()
72
- for column in range(1, tableview_model.columnCount()):
73
- param = tableview_model.item(row, column).text()
74
- if param != "":
75
- param_dict.update({self.param_key_name_list[column]: param})
76
- add_widget_function(param_dict)
77
- front_engine_logger.info(f"start_scene type: {widget_type_text}, param: {param_dict}")
78
- self.scene.show()
@@ -1,44 +0,0 @@
1
- from PySide6.QtCore import Qt
2
- from PySide6.QtWidgets import QWidget, QBoxLayout, QSlider, QLabel, QHBoxLayout, QPushButton
3
-
4
- from frontengine.ui.dialog.choose_file_dialog import choose_player_sound
5
- from frontengine.ui.page.scene_setting.scene_tabs.tableview_model import add_row_data
6
- from frontengine.utils.logging.loggin_instance import front_engine_logger
7
- from frontengine.utils.multi_language.language_wrapper import language_wrapper
8
-
9
-
10
- class SoundSceneSettingUI(QWidget):
11
-
12
- def __init__(self):
13
- super().__init__()
14
- self.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose)
15
- self.box_layout = QBoxLayout(QBoxLayout.Direction.TopToBottom)
16
- # Volume
17
- self.volume_slider = QSlider()
18
- self.volume_slider.setMinimum(1)
19
- self.volume_slider.setMaximum(100)
20
- self.volume_slider.setTickInterval(1)
21
- self.volume_slider.setValue(100)
22
- self.volume_slider.setOrientation(Qt.Orientation.Horizontal)
23
- self.volume_label = QLabel()
24
- self.volume_label.setText(language_wrapper.language_word_dict.get("Volume"))
25
- self.volume_box_h_layout = QHBoxLayout()
26
- self.volume_box_h_layout.addWidget(self.volume_label)
27
- self.volume_box_h_layout.addWidget(self.volume_slider)
28
- # SOUND button
29
- self.sound_button = QPushButton(
30
- language_wrapper.language_word_dict.get("scene_add_sound")
31
- )
32
- self.sound_button.clicked.connect(self.add_sound)
33
- # Set UI
34
- self.box_layout.addLayout(self.volume_box_h_layout)
35
- self.box_layout.addWidget(self.sound_button)
36
- self.setLayout(self.box_layout)
37
-
38
- def add_sound(self) -> None:
39
- sound_path = choose_player_sound(self)
40
- if sound_path is not None:
41
- row_data = ["SOUND", sound_path, "", "", "", "", str(self.volume_slider.value()),
42
- "", "", "", "", "", ""]
43
- front_engine_logger.info(f"add sound, param: {row_data}")
44
- add_row_data(row_data)