frontengine-dev 0.0.56__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 (91) hide show
  1. frontengine/__init__.py +13 -15
  2. frontengine/show/gif/paint_gif.py +4 -2
  3. frontengine/show/image/paint_image.py +4 -2
  4. frontengine/show/scene/extend_graphic_scene.py +0 -1
  5. frontengine/show/scene/extend_graphic_view.py +2 -1
  6. frontengine/show/scene/scene.py +23 -41
  7. frontengine/show/sound_player/sound_effect.py +1 -2
  8. frontengine/show/sound_player/sound_player.py +1 -2
  9. frontengine/show/text/draw_text.py +31 -4
  10. frontengine/show/video/video_player.py +1 -2
  11. frontengine/show/web/webview.py +1 -3
  12. frontengine/{ui/main/system_tray → system_tray}/extend_system_tray.py +1 -3
  13. frontengine/ui/dialog/choose_file_dialog.py +19 -43
  14. frontengine/ui/{main/main_ui.py → main_ui.py} +39 -44
  15. frontengine/ui/menu/help_menu.py +25 -0
  16. frontengine/ui/menu/how_to_menu.py +25 -0
  17. frontengine/ui/{main → menu}/language_menu.py +10 -10
  18. frontengine/ui/{setting → page}/control_center/control_center_ui.py +11 -18
  19. frontengine/ui/{setting → page}/gif/gif_setting_ui.py +20 -8
  20. frontengine/ui/{setting → page}/image/image_setting_ui.py +19 -7
  21. frontengine/ui/page/scene_setting/scene_manager.py +96 -0
  22. frontengine/ui/page/scene_setting/scene_page/gif.py +102 -0
  23. frontengine/ui/page/scene_setting/scene_page/image.py +83 -0
  24. frontengine/ui/page/scene_setting/scene_page/sound.py +84 -0
  25. frontengine/ui/page/scene_setting/scene_page/text.py +93 -0
  26. frontengine/ui/page/scene_setting/scene_page/video.py +122 -0
  27. frontengine/ui/page/scene_setting/scene_page/web.py +66 -0
  28. frontengine/ui/page/scene_setting/scene_setting_ui.py +55 -0
  29. frontengine/ui/{setting → page}/sound_player/sound_player_setting_ui.py +0 -1
  30. frontengine/ui/{setting → page}/text/text_setting_ui.py +39 -11
  31. frontengine/ui/page/utils.py +23 -0
  32. frontengine/ui/{setting → page}/video/video_setting_ui.py +23 -7
  33. frontengine/ui/{setting → page}/web/web_setting_ui.py +19 -7
  34. frontengine/user_setting/scene_setting.py +34 -0
  35. frontengine/user_setting/user_setting_file.py +2 -1
  36. frontengine/utils/browser/browser.py +5 -0
  37. frontengine/utils/multi_language/english.py +14 -2
  38. frontengine/utils/multi_language/traditional_chinese.py +15 -2
  39. {frontengine_dev-0.0.56.dist-info → frontengine_dev-0.0.58.dist-info}/METADATA +4 -51
  40. frontengine_dev-0.0.58.dist-info/RECORD +91 -0
  41. {frontengine_dev-0.0.56.dist-info → frontengine_dev-0.0.58.dist-info}/WHEEL +1 -1
  42. frontengine/show/chat/chat_toast.py +0 -55
  43. frontengine/show/image_generation/image_generation_show.py +0 -43
  44. frontengine/ui/setting/chat/chat_model.py +0 -65
  45. frontengine/ui/setting/chat/chat_scene_input.py +0 -72
  46. frontengine/ui/setting/chat/chat_scene_setting.py +0 -187
  47. frontengine/ui/setting/chat/chatthread.py +0 -78
  48. frontengine/ui/setting/chat/speech_to_text.py +0 -70
  49. frontengine/ui/setting/image_generation/generation_image_thread.py +0 -32
  50. frontengine/ui/setting/image_generation/image_generation_input.py +0 -63
  51. frontengine/ui/setting/scene_setting/scene_setting_ui.py +0 -48
  52. frontengine/ui/setting/scene_setting/scene_tabs/Image.py +0 -61
  53. frontengine/ui/setting/scene_setting/scene_tabs/gif.py +0 -74
  54. frontengine/ui/setting/scene_setting/scene_tabs/scene_control.py +0 -77
  55. frontengine/ui/setting/scene_setting/scene_tabs/sound.py +0 -44
  56. frontengine/ui/setting/scene_setting/scene_tabs/tableview_model.py +0 -65
  57. frontengine/ui/setting/scene_setting/scene_tabs/text.py +0 -77
  58. frontengine/ui/setting/scene_setting/scene_tabs/ui.py +0 -56
  59. frontengine/ui/setting/scene_setting/scene_tabs/video.py +0 -88
  60. frontengine/ui/setting/scene_setting/scene_tabs/web.py +0 -74
  61. frontengine/ui/setting/text/__init__.py +0 -0
  62. frontengine/ui/setting/video/__init__.py +0 -0
  63. frontengine/ui/setting/web/__init__.py +0 -0
  64. frontengine/user_setting/gif/__init__.py +0 -0
  65. frontengine/user_setting/gif/gif_setting.py +0 -5
  66. frontengine/user_setting/image/__init__.py +0 -0
  67. frontengine/user_setting/image/image_setting.py +0 -4
  68. frontengine/user_setting/sound/__init__.py +0 -0
  69. frontengine/user_setting/sound/sound_setting.py +0 -4
  70. frontengine/user_setting/text/__init__.py +0 -0
  71. frontengine/user_setting/text/text_setting.py +0 -5
  72. frontengine/user_setting/video/__init__.py +0 -0
  73. frontengine/user_setting/video/video_setting.py +0 -6
  74. frontengine/user_setting/web/__init__.py +0 -0
  75. frontengine/user_setting/web/web_setting.py +0 -4
  76. frontengine_dev-0.0.56.dist-info/RECORD +0 -112
  77. /frontengine/{show/chat → system_tray}/__init__.py +0 -0
  78. /frontengine/{show/image_generation → ui/menu}/__init__.py +0 -0
  79. /frontengine/ui/{main → page}/__init__.py +0 -0
  80. /frontengine/ui/{main/system_tray → page/control_center}/__init__.py +0 -0
  81. /frontengine/ui/{setting → page/gif}/__init__.py +0 -0
  82. /frontengine/ui/{setting/chat → page/image}/__init__.py +0 -0
  83. /frontengine/ui/{setting/control_center → page/scene_setting}/__init__.py +0 -0
  84. /frontengine/ui/{setting/gif → page/scene_setting/scene_page}/__init__.py +0 -0
  85. /frontengine/ui/{setting/image → page/sound_player}/__init__.py +0 -0
  86. /frontengine/ui/{setting/image_generation → page/text}/__init__.py +0 -0
  87. /frontengine/ui/{setting/scene_setting → page/video}/__init__.py +0 -0
  88. /frontengine/ui/{setting/scene_setting/scene_tabs → page/web}/__init__.py +0 -0
  89. /frontengine/{ui/setting/sound_player → utils/browser}/__init__.py +0 -0
  90. {frontengine_dev-0.0.56.dist-info → frontengine_dev-0.0.58.dist-info}/LICENSE +0 -0
  91. {frontengine_dev-0.0.56.dist-info → frontengine_dev-0.0.58.dist-info}/top_level.txt +0 -0
@@ -1,77 +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.setting.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
- self.scene.graphic_view.close()
64
-
65
- def start_scene(self) -> None:
66
- front_engine_logger.info("start_scene")
67
- for row in range(tableview_model.rowCount()):
68
- widget_type_text = tableview_model.item(row, 0).text()
69
- add_widget_function = self.scene_component.get(widget_type_text)
70
- param_dict: Dict[str, str] = dict()
71
- for column in range(1, tableview_model.columnCount()):
72
- param = tableview_model.item(row, column).text()
73
- if param != "":
74
- param_dict.update({self.param_key_name_list[column]: param})
75
- add_widget_function(param_dict)
76
- front_engine_logger.info(f"start_scene type: {widget_type_text}, param: {param_dict}")
77
- 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.setting.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)
@@ -1,65 +0,0 @@
1
- from pathlib import Path
2
- from typing import List
3
-
4
- from PySide6.QtGui import QStandardItemModel, QStandardItem
5
- from PySide6.QtWidgets import QMessageBox
6
-
7
- from frontengine.ui.dialog.choose_file_dialog import choose_scene_json
8
- from frontengine.ui.dialog.save_file_dialog import choose_file_get_save_filename
9
- from frontengine.utils.json.json_file import write_json, read_json
10
- from frontengine.utils.multi_language.language_wrapper import language_wrapper
11
-
12
- tableview_model = QStandardItemModel()
13
-
14
- # Set horizontal label
15
- label_list = [
16
- language_wrapper.language_word_dict.get("scene_table_view_type"),
17
- language_wrapper.language_word_dict.get("scene_file_path"),
18
- language_wrapper.language_word_dict.get("url"),
19
- language_wrapper.language_word_dict.get("text"),
20
- language_wrapper.language_word_dict.get("Opacity"),
21
- language_wrapper.language_word_dict.get("Speed"),
22
- language_wrapper.language_word_dict.get("Volume"),
23
- language_wrapper.language_word_dict.get("Font size"),
24
- language_wrapper.language_word_dict.get("Play rate"),
25
- language_wrapper.language_word_dict.get("web_setting_open_local_file"),
26
- language_wrapper.language_word_dict.get("web_setting_open_enable_input"),
27
- language_wrapper.language_word_dict.get("position_x"),
28
- language_wrapper.language_word_dict.get("position_y"),
29
- ]
30
- tableview_model.setHorizontalHeaderLabels(label_list)
31
-
32
-
33
- def add_row_data(data_list: List):
34
- row = tableview_model.rowCount()
35
- for index, data in enumerate(data_list):
36
- tableview_model.setItem(row, index, QStandardItem(str(data)))
37
-
38
-
39
- def output_scene_as_json(parent_qt_widget):
40
- output_dict = dict()
41
- output_setting = list()
42
- for row in range(tableview_model.rowCount()):
43
- settings = list()
44
- for column in range(tableview_model.columnCount()):
45
- settings.append(tableview_model.item(row, column).text())
46
- output_setting.append(settings)
47
- output_dict.update({"settings": output_setting})
48
- file_path = choose_file_get_save_filename(parent_qt_widget)
49
- if file_path is not None and file_path != "":
50
- file_path = Path(file_path)
51
- file_path = file_path.with_suffix(".json")
52
- write_json(str(file_path), output_dict)
53
- else:
54
- choose_path_to_output_message_box = QMessageBox(parent_qt_widget)
55
- choose_path_to_output_message_box.setText(
56
- language_wrapper.language_word_dict.get("scene_choose_output_path_message_box"))
57
-
58
-
59
- def load_scene_json(parent_qt_widget):
60
- scene_file = choose_scene_json(parent_qt_widget)
61
- if scene_file is not None:
62
- scene_setting: dict = read_json(scene_file)
63
- scene_setting = scene_setting.get("settings")
64
- for setting in scene_setting:
65
- add_row_data(setting)
@@ -1,77 +0,0 @@
1
- from PySide6.QtCore import Qt
2
- from PySide6.QtGui import QIntValidator
3
- from PySide6.QtWidgets import QWidget, QBoxLayout, QLineEdit, QPushButton, QSlider, QLabel, QHBoxLayout
4
- from frontengine.utils.multi_language.language_wrapper import language_wrapper
5
-
6
- from frontengine.ui.setting.scene_setting.scene_tabs.tableview_model import add_row_data
7
- from frontengine.utils.logging.loggin_instance import front_engine_logger
8
-
9
-
10
- class TextSceneSettingUI(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
- # Text button
17
- self.text_input = QLineEdit()
18
- self.text_input.setText(
19
- language_wrapper.language_word_dict.get("text")
20
- )
21
- self.text_button = QPushButton(
22
- language_wrapper.language_word_dict.get("scene_add_text")
23
- )
24
- self.text_button.clicked.connect(self.add_text)
25
- # Opacity slider
26
- self.opacity_slider = QSlider()
27
- self.opacity_slider.setMinimum(1)
28
- self.opacity_slider.setMaximum(100)
29
- self.opacity_slider.setTickInterval(1)
30
- self.opacity_slider.setValue(20)
31
- self.opacity_slider.setOrientation(Qt.Orientation.Horizontal)
32
- self.opacity_label = QLabel()
33
- self.opacity_label.setText(language_wrapper.language_word_dict.get("Opacity"))
34
- self.opacity_box_h_layout = QHBoxLayout()
35
- self.opacity_box_h_layout.addWidget(self.opacity_label)
36
- self.opacity_box_h_layout.addWidget(self.opacity_slider)
37
- # Font size slider
38
- self.font_size_slider = QSlider()
39
- self.font_size_slider = QSlider()
40
- self.font_size_slider.setMinimum(1)
41
- self.font_size_slider.setMaximum(100)
42
- self.font_size_slider.setTickInterval(1)
43
- self.font_size_slider.setValue(100)
44
- self.font_size_slider.setOrientation(Qt.Orientation.Horizontal)
45
- self.front_size_label = QLabel()
46
- self.front_size_label.setText(language_wrapper.language_word_dict.get("Font size"))
47
- self.font_size_box_h_layout = QHBoxLayout()
48
- self.font_size_box_h_layout.addWidget(self.front_size_label)
49
- self.font_size_box_h_layout.addWidget(self.font_size_slider)
50
- # Position x input
51
- self.position_x_input_label = QLabel(language_wrapper.language_word_dict.get("position_x"))
52
- self.position_x_input = QLineEdit()
53
- self.position_x_input.setValidator(QIntValidator(0, 999999, self))
54
- self.position_x_layout = QHBoxLayout()
55
- self.position_x_layout.addWidget(self.position_x_input_label)
56
- self.position_x_layout.addWidget(self.position_x_input)
57
- # Position y input
58
- self.position_y_input_label = QLabel(language_wrapper.language_word_dict.get("position_y"))
59
- self.position_y_input = QLineEdit()
60
- self.position_y_input.setValidator(QIntValidator(0, 999999, self))
61
- self.position_y_layout = QHBoxLayout()
62
- self.position_y_layout.addWidget(self.position_y_input_label)
63
- self.position_y_layout.addWidget(self.position_y_input)
64
- # Set UI
65
- self.box_layout.addLayout(self.opacity_box_h_layout)
66
- self.box_layout.addLayout(self.font_size_box_h_layout)
67
- self.box_layout.addLayout(self.position_x_layout)
68
- self.box_layout.addLayout(self.position_y_layout)
69
- self.box_layout.addWidget(self.text_button)
70
- self.setLayout(self.box_layout)
71
-
72
- def add_text(self) -> None:
73
- row_data = ["TEXT", "", "", self.text_input.text(), str(self.opacity_slider.value()), "", "",
74
- str(self.font_size_slider.value()), "", "", "",
75
- self.position_x_input.text(), self.position_y_input.text()]
76
- front_engine_logger.info(f"add text, param: {row_data}")
77
- add_row_data(row_data)
@@ -1,56 +0,0 @@
1
- from PySide6.QtGui import QIntValidator, Qt
2
- from PySide6.QtWidgets import QWidget, QBoxLayout, QMessageBox, QPushButton, QLineEdit, QLabel, QHBoxLayout
3
-
4
- from frontengine import load_ui_file
5
- from frontengine.ui.setting.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 UISceneSettingUI(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
- # UI button
17
- self.ui_button = QPushButton(
18
- language_wrapper.language_word_dict.get("scene_add_UI")
19
- )
20
- self.ui_path_input = QLineEdit()
21
- self.ui_path_input.setText(
22
- language_wrapper.language_word_dict.get("ui_path")
23
- )
24
- self.ui_button.clicked.connect(self.add_extend_ui_file)
25
- # Position x input
26
- self.position_x_input_label = QLabel(language_wrapper.language_word_dict.get("position_x"))
27
- self.position_x_input = QLineEdit()
28
- self.position_x_input.setValidator(QIntValidator(0, 999999, self))
29
- self.position_x_layout = QHBoxLayout()
30
- self.position_x_layout.addWidget(self.position_x_input_label)
31
- self.position_x_layout.addWidget(self.position_x_input)
32
- # Position y input
33
- self.position_y_input_label = QLabel(language_wrapper.language_word_dict.get("position_y"))
34
- self.position_y_input = QLineEdit()
35
- self.position_y_input.setValidator(QIntValidator(0, 999999, self))
36
- self.position_y_layout = QHBoxLayout()
37
- self.position_y_layout.addWidget(self.position_y_input_label)
38
- self.position_y_layout.addWidget(self.position_y_input)
39
- # Set UI
40
- self.box_layout.addLayout(self.position_x_layout)
41
- self.box_layout.addLayout(self.position_y_layout)
42
- self.box_layout.addWidget(self.ui_path_input)
43
- self.box_layout.addWidget(self.ui_button)
44
- self.setLayout(self.box_layout)
45
-
46
- def add_extend_ui_file(self) -> None:
47
- if load_ui_file(self.ui_path_input.text()):
48
- add_row_data(
49
- ["EXTEND_UI_FILE", self.ui_path_input.text(), "", "", "", "", "",
50
- "", "", "", "", self.position_x_input.text(), self.position_y_input.text()])
51
- else:
52
- ui_not_found_message = QMessageBox(self)
53
- ui_not_found_message.setText(
54
- language_wrapper.language_word_dict.get("cant_find_extend_ui_message_box_text"))
55
- ui_not_found_message.show()
56
- front_engine_logger.error(language_wrapper.language_word_dict.get("cant_find_extend_ui_message_box_text"))
@@ -1,88 +0,0 @@
1
- from PySide6.QtCore import Qt
2
- from PySide6.QtGui import QIntValidator
3
- from PySide6.QtWidgets import QWidget, QBoxLayout, QPushButton, QSlider, QLabel, QHBoxLayout, QLineEdit
4
- from frontengine.utils.multi_language.language_wrapper import language_wrapper
5
-
6
- from frontengine.ui.dialog.choose_file_dialog import choose_video
7
- from frontengine.ui.setting.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 VideoSceneSettingUI(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
- # Video button
18
- self.video_button = QPushButton(
19
- language_wrapper.language_word_dict.get("scene_add_video")
20
- )
21
- self.video_button.clicked.connect(self.add_video)
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
- # Volume
35
- self.volume_slider = QSlider()
36
- self.volume_slider.setMinimum(1)
37
- self.volume_slider.setMaximum(100)
38
- self.volume_slider.setTickInterval(1)
39
- self.volume_slider.setValue(100)
40
- self.volume_slider.setOrientation(Qt.Orientation.Horizontal)
41
- self.volume_label = QLabel()
42
- self.volume_label.setText(language_wrapper.language_word_dict.get("Volume"))
43
- self.volume_box_h_layout = QHBoxLayout()
44
- self.volume_box_h_layout.addWidget(self.volume_label)
45
- self.volume_box_h_layout.addWidget(self.volume_slider)
46
- # Play rate slider
47
- self.play_rate_slider = QSlider()
48
- self.play_rate_slider.setMinimum(1)
49
- self.play_rate_slider.setMaximum(100)
50
- self.play_rate_slider.setTickInterval(1)
51
- self.play_rate_slider.setValue(100)
52
- self.play_rate_slider.setOrientation(Qt.Orientation.Horizontal)
53
- self.play_rate_label = QLabel()
54
- self.play_rate_label.setText(language_wrapper.language_word_dict.get("Play rate"))
55
- self.play_rate_h_layout = QHBoxLayout()
56
- self.play_rate_h_layout.addWidget(self.play_rate_label)
57
- self.play_rate_h_layout.addWidget(self.play_rate_slider)
58
- # Position x input
59
- self.position_x_input_label = QLabel(language_wrapper.language_word_dict.get("position_x"))
60
- self.position_x_input = QLineEdit()
61
- self.position_x_input.setValidator(QIntValidator(0, 999999, self))
62
- self.position_x_layout = QHBoxLayout()
63
- self.position_x_layout.addWidget(self.position_x_input_label)
64
- self.position_x_layout.addWidget(self.position_x_input)
65
- # Position y input
66
- self.position_y_input_label = QLabel(language_wrapper.language_word_dict.get("position_y"))
67
- self.position_y_input = QLineEdit()
68
- self.position_y_input.setValidator(QIntValidator(0, 999999, self))
69
- self.position_y_layout = QHBoxLayout()
70
- self.position_y_layout.addWidget(self.position_y_input_label)
71
- self.position_y_layout.addWidget(self.position_y_input)
72
- # Set UI
73
- self.box_layout.addLayout(self.opacity_box_h_layout)
74
- self.box_layout.addLayout(self.volume_box_h_layout)
75
- self.box_layout.addLayout(self.play_rate_h_layout)
76
- self.box_layout.addLayout(self.position_x_layout)
77
- self.box_layout.addLayout(self.position_y_layout)
78
- self.box_layout.addWidget(self.video_button)
79
- self.setLayout(self.box_layout)
80
-
81
- def add_video(self) -> None:
82
- video_path = choose_video(self)
83
- if video_path is not None:
84
- row_data = ["VIDEO", video_path, "", "", str(self.opacity_slider.value()), "",
85
- str(self.volume_slider.value()), "", str(self.play_rate_slider.value()), "", "",
86
- self.position_x_input.text(), self.position_y_input.text()]
87
- front_engine_logger.info(f"add video, param: {row_data}")
88
- 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, QLineEdit, QSlider, QLabel, QCheckBox, QHBoxLayout
4
- from frontengine.utils.multi_language.language_wrapper import language_wrapper
5
-
6
- from frontengine.ui.setting.scene_setting.scene_tabs.tableview_model import add_row_data
7
- from frontengine.utils.logging.loggin_instance import front_engine_logger
8
-
9
-
10
- class WEBSceneSettingUI(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
- # Web button
17
- self.web_button = QPushButton(
18
- language_wrapper.language_word_dict.get("scene_add_web")
19
- )
20
- self.web_button.clicked.connect(self.add_web)
21
- # Opacity slider
22
- self.opacity_slider = QSlider()
23
- self.opacity_slider.setMinimum(1)
24
- self.opacity_slider.setMaximum(100)
25
- self.opacity_slider.setTickInterval(1)
26
- self.opacity_slider.setValue(20)
27
- self.opacity_slider.setOrientation(Qt.Orientation.Horizontal)
28
- self.opacity_label = QLabel()
29
- self.opacity_label.setText(language_wrapper.language_word_dict.get("Opacity"))
30
- self.opacity_box_h_layout = QHBoxLayout()
31
- self.opacity_box_h_layout.addWidget(self.opacity_label)
32
- self.opacity_box_h_layout.addWidget(self.opacity_slider)
33
- # Checkbox & Web input
34
- self.enable_web_input_checkbox = QCheckBox(
35
- language_wrapper.language_word_dict.get("web_setting_open_enable_input"))
36
- self.enable_web_local_file_checkbox = QCheckBox(
37
- language_wrapper.language_word_dict.get("web_setting_open_local_file"))
38
- self.web_url_input = QLineEdit()
39
- self.web_url_input.setText(
40
- language_wrapper.language_word_dict.get("url")
41
- )
42
- self.web_setting_h_layout = QHBoxLayout()
43
- self.web_setting_h_layout.addWidget(self.enable_web_input_checkbox)
44
- self.web_setting_h_layout.addWidget(self.enable_web_local_file_checkbox)
45
- self.web_setting_h_layout.addWidget(self.web_url_input)
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.web_setting_h_layout)
62
- self.box_layout.addLayout(self.position_x_layout)
63
- self.box_layout.addLayout(self.position_y_layout)
64
- self.box_layout.addWidget(self.web_button)
65
- self.setLayout(self.box_layout)
66
-
67
- def add_web(self) -> None:
68
- row_data = ["WEB", "", self.web_url_input.text(), "", str(self.opacity_slider.value()), "", "",
69
- "", "",
70
- str(self.enable_web_local_file_checkbox.isEnabled()),
71
- str(self.enable_web_input_checkbox.isEnabled()),
72
- self.position_x_input.text(), self.position_y_input.text()]
73
- front_engine_logger.info(f"add web, param: {row_data}")
74
- add_row_data(row_data)
File without changes
File without changes
File without changes
File without changes
@@ -1,5 +0,0 @@
1
- gif_setting_dict = {
2
- "last_gif": None,
3
- "gif_opacity": 0.2,
4
- "speed": 1
5
- }
File without changes
@@ -1,4 +0,0 @@
1
- image_setting_dict = {
2
- "last_image": None,
3
- "image_opacity": 0.2,
4
- }
File without changes
@@ -1,4 +0,0 @@
1
- sound_setting_dict = {
2
- "last_sound": None,
3
- "volume": 100,
4
- }
File without changes
@@ -1,5 +0,0 @@
1
- text_setting_dict = {
2
- "last_text": None,
3
- "font_size": 200,
4
- "text_opacity": 0.2
5
- }
File without changes
@@ -1,6 +0,0 @@
1
- video_setting_dict = {
2
- "last_file": None,
3
- "video_opacity": 0.2,
4
- "volume": 100,
5
- "play_rate": 1
6
- }
File without changes
@@ -1,4 +0,0 @@
1
- web_setting_dict = {
2
- "last_web": None,
3
- "web_opacity": 0.2
4
- }