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
@@ -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": "送出文字",
@@ -116,4 +123,10 @@ traditional_chinese_word_dict = {
116
123
  "start_generate_image": "開始產生圖片",
117
124
  "input_error": "請勿無輸入或空格",
118
125
  "save_generation_image": "儲存圖片",
126
+ # Help Menu
127
+ "help_menu_label": "幫助選單",
128
+ "help_menu_open_issue": "開啟問題回報",
129
+ # HowTo Menu
130
+ "doc_menu_label": "文件選單",
131
+ "doc_menu_open_doc": "開啟文件",
119
132
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
- Name: frontengine-dev
3
- Version: 0.0.56
2
+ Name: frontengine_dev
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
@@ -44,54 +44,14 @@ Requires-Dist: PyAudio
44
44
 
45
45
  ## About
46
46
 
47
- <details open>
48
-
49
47
  ---
50
- > * Notice! BingGPT need cookies file now!
51
- > * Save cookie to bing_cookies.json and put json in program current-working-dir
52
- > - Open bing.com/chat
53
- > - If you see a chat feature, you are good to continue...
54
- > - Install the cookie editor extension for Chrome or Firefox
55
- > - Go to bing.com
56
- > - Open the extension
57
- > - Click "Export" on the bottom right, then "Export as JSON" (This saves your cookies to clipboard)
58
- > - Paste your cookies into a file bing_cookies.json.
59
- > - NOTE: The cookies file name MUST follow the regex pattern bing_cookies.json, so that they could be recognized by
60
- internal cookie processing mechanisms
61
-
62
- * Smart automation assistant.
63
- * Chat based automation.
64
- * User-defined front ground.
65
- * User-defined virtual assistant.
66
- * Assistant can open website.
67
- * Assistant can draw text on your screen.
68
- * Assistant can play video on your screen.
69
- * Assistant can play sound.
70
- * Cowork with another automation components.
71
- * Extendable.
72
- * Remote automation support.
48
+
73
49
 
74
50
  ![FrontEngine UI](image/FrontEngine.png)
75
51
 
76
- * Language Menu (Choose ui language)
77
- * UI Style (Choose ui style)
78
- * Tab Menu
79
- * VIDEO (Setting and show video on front)
80
- * IMAGE (Setting and show image on front)
81
- * WEB (Setting and show web on front)
82
- * GIF AND WEBP (Setting and show gif or webp on front)
83
- * SOUND (Setting and play sound)
84
- * TEXT (Setting and show text on front)
85
- * SCENE (Add multi component on scene and show multi widget, can save setting as file)
86
- * CHAT (Chat with bing on front)
87
- * CONTROL CENTER (Control all another widget)
88
-
89
- </details>
90
52
 
91
53
  ## Features
92
54
 
93
- <details open>
94
-
95
55
  ---
96
56
 
97
57
  * GIFs need time to load please, wait.
@@ -111,13 +71,11 @@ Requires-Dist: PyAudio
111
71
 
112
72
  - [Youtube](https://youtu.be/fewogcb3b8Y)
113
73
 
114
- </details>
115
74
 
116
75
  ## Download
117
76
 
118
- <details open>
119
-
120
77
  ---
78
+
121
79
  > Require Windows 10 or 11. \
122
80
  > If you want to use this on a Unix-like system, you need to compile the source code.
123
81
 
@@ -125,12 +83,7 @@ Requires-Dist: PyAudio
125
83
 
126
84
  > PYPI package: pip install frontengine
127
85
 
128
- </details>
129
-
130
86
  ## Dev
131
87
 
132
- <details open>
133
-
134
88
  > Require Python 3.9 or later version
135
89
 
136
- </details>
@@ -0,0 +1,91 @@
1
+ frontengine/__init__.py,sha256=kRQu2NKQX6VjF70N7Alqp31mxqJ5SRZL1Ri4abYvz0c,1938
2
+ frontengine/show/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
+ frontengine/show/gif/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
+ frontengine/show/gif/paint_gif.py,sha256=N_jj4wf5sPYj1vEjFFqlBDcjCD8hxF45ipRJ5yO6XOs,3024
5
+ frontengine/show/image/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
+ frontengine/show/image/paint_image.py,sha256=BtKyFJP7UdOLMBsCoQ1fnT8ft-cUxDaufFzURgbwpJU,2467
7
+ frontengine/show/load/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
+ frontengine/show/load/load_someone_make_ui.py,sha256=yjMrkA76VEYkKXygwKmoKaADymjjDlebI-7PNa6DrEo,1010
9
+ frontengine/show/scene/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
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
+ frontengine/show/sound_player/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
+ frontengine/show/sound_player/sound_effect.py,sha256=pHsf0DC1cHwo66neudKzIUqiuWihlXR1a34-_AQrbo0,2032
15
+ frontengine/show/sound_player/sound_player.py,sha256=VOXwKI6-VdMH18u__atCay3wVJFu3TTHiygnQ8MNCTE,2135
16
+ frontengine/show/text/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
+ frontengine/show/text/draw_text.py,sha256=7uXWXDVU6TE5sfQ52bXCNkl0uBIR3dku7xyZPKOqRD4,3685
18
+ frontengine/show/video/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
+ frontengine/show/video/video_player.py,sha256=Gp1LErz7-xdPYajgEcpnLC_qOZ78NcgDI8AHG8TIF6c,3321
20
+ frontengine/show/web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
+ frontengine/show/web/webview.py,sha256=ScRoJ43ftjUoU-qdrtsPv4QIywEtdseAPpj1Seqk_xY,2450
22
+ frontengine/system_tray/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
+ frontengine/system_tray/extend_system_tray.py,sha256=k4u2lEox-fCwmQKy1qnek9SGoqUkMFv8Av_DcNanwcE,1595
24
+ frontengine/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
+ frontengine/ui/main_ui.py,sha256=geyNI7dI5pbnRBvAoRVVEYUtfmQp5pk3w1Xf_BXj93k,7584
26
+ frontengine/ui/color/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
+ frontengine/ui/color/global_color.py,sha256=Rh-R-X2BHVjcK5MTBZ1nEMVHgLj1rP4nk-wTQKbiwFA,125
28
+ frontengine/ui/dialog/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
+ frontengine/ui/dialog/choose_file_dialog.py,sha256=Xu7c_2cQav3LyQF9S2HEW_PBEvJNaZCYPcliiteQpV8,3036
30
+ frontengine/ui/dialog/save_file_dialog.py,sha256=e-sgUsmEAU1JSvzzmTmc2pf9rnW61alOgd48ESTYG1I,373
31
+ frontengine/ui/menu/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
+ frontengine/ui/menu/help_menu.py,sha256=_eNm60mrilBCVXumxnFuWDR48IONDjN5CDMAAgcyhAY,965
33
+ frontengine/ui/menu/how_to_menu.py,sha256=s1azoiD8H2lApbFPcrv8QvsR1mwh6O_gFHRngQ7bsbc,952
34
+ frontengine/ui/menu/language_menu.py,sha256=--9_RxoeefPlCx8i9q7PoRDCmQp9715hpWyMaegJWGE,1953
35
+ frontengine/ui/page/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
+ frontengine/ui/page/utils.py,sha256=UxHVStfVg-6563T20pEjnVMYzMvy9JePAj1VOm8HX_g,1103
37
+ frontengine/ui/page/control_center/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
+ frontengine/ui/page/control_center/control_center_ui.py,sha256=zyFdFML00ZHcC8NV2Lws95EssIDM_WUMU6h3qePhU7Y,7992
39
+ frontengine/ui/page/gif/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
+ frontengine/ui/page/gif/gif_setting_ui.py,sha256=HherbCmOJgO5TLXHt9sflTspmCQh1pv1IGyfKmp7kog,6908
41
+ frontengine/ui/page/image/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
+ frontengine/ui/page/image/image_setting_ui.py,sha256=0in02Swq_qM-jZNevgoZe0QzjbnAl5L0ZMHOTHzQbrQ,6038
43
+ frontengine/ui/page/scene_setting/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
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
53
+ frontengine/ui/page/sound_player/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
54
+ frontengine/ui/page/sound_player/sound_player_setting_ui.py,sha256=OFRxUyUXVj3-PiHezjnspVqW-uabAd2vKu1ipEy-4p0,6000
55
+ frontengine/ui/page/text/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
+ frontengine/ui/page/text/text_setting_ui.py,sha256=nSrXkezs7X9-7Kd16raaz3WZJFwyL4cuz3j74VQIS9U,6317
57
+ frontengine/ui/page/video/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
+ frontengine/ui/page/video/video_setting_ui.py,sha256=1vWRXSJwvteQ4179Vnb5e4ZlHoMhSKdqpsaeCBGzI1g,8210
59
+ frontengine/ui/page/web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
60
+ frontengine/ui/page/web/web_setting_ui.py,sha256=UtvZM3C-37PVdUu7hVqvoR5gDvXuKZSWg0g8VSQYRy8,5583
61
+ frontengine/user_setting/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
62
+ frontengine/user_setting/scene_setting.py,sha256=lTIDCWN3e2zQJJ5XMQRQlvHDHCsj5Opl6ek5geOEgfk,1211
63
+ frontengine/user_setting/user_setting_file.py,sha256=yMAPFfzNpYv6qBcFqNoFoxc68bgo1tmaZJWP9txh_ng,635
64
+ frontengine/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
+ frontengine/utils/browser/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
66
+ frontengine/utils/browser/browser.py,sha256=BQBjJpbTubqruUvg75O21SUhawFdVhDmuYxtd_FN1Gs,85
67
+ frontengine/utils/exception/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
68
+ frontengine/utils/exception/exception_tags.py,sha256=V4R_RlNYX_zgAKU9I7NLimYic--oF-2qHDHCwpVYHcc,325
69
+ frontengine/utils/exception/exceptions.py,sha256=ZGY8HPvx3PGQkH_5VKF3IQMmkkUbBKJILTGn4o2Y4-g,296
70
+ frontengine/utils/file/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
+ frontengine/utils/file/open/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
72
+ frontengine/utils/file/open/open_file.py,sha256=YpxoGqhT_yuyMR0fu0UW8jBBvlKH-9G8AGJlN7u3L4Q,976
73
+ frontengine/utils/file/save/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
74
+ frontengine/utils/file/save/save_file.py,sha256=KF6IG3fX8RK2BAakwKdxTRC9HFpz3fEe90lqUBfAchk,733
75
+ frontengine/utils/json/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
+ frontengine/utils/json/json_file.py,sha256=vFZDM0SDxlVcwN-2iGCGM24pl5ldO0a0SVNm7EG8Nk8,1421
77
+ frontengine/utils/json_format/__init__.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
78
+ frontengine/utils/json_format/json_process.py,sha256=xJt_4Hm_o3sNDoeGtRW9Q7fsRj3DLiTbW-W8IqB8vt8,1021
79
+ frontengine/utils/logging/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
80
+ frontengine/utils/logging/loggin_instance.py,sha256=Zjr384o2q8x0QWv_hNoHIM_zCp5-HFgW14t-d30GUcQ,598
81
+ frontengine/utils/multi_language/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
82
+ frontengine/utils/multi_language/english.py,sha256=hTFFiiIhTE3y3GFHHMERqCx7QxTNy-4kdXEgGL15g08,5486
83
+ frontengine/utils/multi_language/language_wrapper.py,sha256=KBqsG6ng5LSJkGqmu_YDxI8yAjXwgHM12DOzVgh_HXI,848
84
+ frontengine/utils/multi_language/traditional_chinese.py,sha256=sPRVRcrvdATU67rlKBCSx2ZM8d3CBvDzWjmjsiuxEPA,5715
85
+ frontengine/utils/redirect_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
86
+ frontengine/utils/redirect_manager/redirect_manager_class.py,sha256=zGJeVpjRU12MCnhVAdksAIhK_IhddI4cNKVb7DMgOZA,1888
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,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.41.2)
2
+ Generator: bdist_wheel (0.43.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,55 +0,0 @@
1
- from PySide6.QtCore import Qt, QRect, QTimer, QRectF
2
- from PySide6.QtGui import QPainter, QFontDatabase, QTextDocument, QTextOption, QBrush, QColor, QFontMetrics
3
- from PySide6.QtWidgets import QWidget
4
-
5
-
6
- class ChatToast(QWidget):
7
-
8
- def __init__(self, text: str, close_time: int = 10000, font_size: int = 16):
9
- super().__init__()
10
- self.setAttribute(Qt.WidgetAttribute.WA_TranslucentBackground)
11
- self.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose)
12
- self.setWindowFlag(
13
- Qt.WindowType.WindowTransparentForInput |
14
- Qt.WindowType.FramelessWindowHint |
15
- Qt.WindowType.Tool |
16
- Qt.WindowType.WindowStaysOnTopHint
17
- )
18
- self.text = text
19
- self.font_size = font_size
20
- self.draw_font = QFontDatabase.font(self.font().family(), "", self.font_size)
21
- self.draw_font.setBold(True)
22
- self.close_timer = QTimer()
23
- self.close_timer.setInterval(close_time)
24
- self.close_timer.timeout.connect(self.close)
25
- self.close_timer.start()
26
-
27
- def paintEvent(self, event) -> None:
28
- painter = QPainter(self)
29
- painter.save()
30
- painter.setFont(
31
- self.draw_font
32
- )
33
- painter.setPen(QColor(0, 255, 0))
34
- painter.drawText(
35
- QRect(self.x(), self.y(), self.width(), self.height()),
36
- Qt.AlignmentFlag.AlignCenter | Qt.TextFlag.TextWordWrap,
37
- self.text
38
- )
39
- if not self.close_timer.isActive():
40
- self.close_timer.start()
41
- painter.restore()
42
-
43
- def mousePressEvent(self, event) -> None:
44
- super().mousePressEvent(event)
45
-
46
- def mouseDoubleClickEvent(self, event) -> None:
47
- super().mouseDoubleClickEvent(event)
48
-
49
- def mouseGrabber(self) -> None:
50
- super().mouseGrabber()
51
-
52
- def close(self) -> bool:
53
- self.close_timer.stop()
54
- self.deleteLater()
55
- return super().close()
@@ -1,43 +0,0 @@
1
- from pathlib import Path
2
-
3
- import PySide6
4
- from PySide6.QtGui import QPixmap, QAction, Qt
5
- from PySide6.QtWidgets import QWidget, QLabel, QGridLayout, QFileDialog, QMenu
6
-
7
- from frontengine.utils.multi_language.language_wrapper import language_wrapper
8
-
9
-
10
- class ImageGenerateShow(QWidget):
11
-
12
- def __init__(self, pixmap: QPixmap, title: str):
13
- super().__init__()
14
- self.setWindowTitle(title)
15
- self.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose)
16
- self.pixmap = pixmap
17
- self.label = QLabel()
18
- self.label.setPixmap(pixmap)
19
- self.grid_layout = QGridLayout(self)
20
- self.grid_layout.setContentsMargins(0, 0, 0, 0)
21
- self.grid_layout.addWidget(self.label)
22
- self.setLayout(self.grid_layout)
23
-
24
- # Menubar
25
- self.menu = QMenu(self)
26
- self.save_image_action = QAction(language_wrapper.language_word_dict.get("save_generation_image"))
27
- self.save_image_action.triggered.connect(self.save_image)
28
- self.menu.addAction(self.save_image_action)
29
-
30
- def save_image(self):
31
- file_path = QFileDialog().getSaveFileName(
32
- parent=self,
33
- dir=str(Path.cwd()),
34
- filter="Images (*.png;*.jpg;*.webp)"
35
- )[0]
36
- file_path = Path(file_path)
37
- self.pixmap.save(str(file_path))
38
-
39
- def mousePressEvent(self, event: PySide6.QtGui.QMouseEvent) -> None:
40
- if event.button() == Qt.MouseButton.RightButton:
41
- self.menu.move(self.x() + event.x(), self.y() + event.y())
42
- self.menu.show()
43
- super().mousePressEvent(event)
@@ -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
- chat_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
- chat_model.setHorizontalHeaderLabels(label_list)
31
-
32
-
33
- def add_row_data(data_list: List):
34
- row = chat_model.rowCount()
35
- for index, data in enumerate(data_list):
36
- chat_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(chat_model.rowCount()):
43
- settings = list()
44
- for column in range(chat_model.columnCount()):
45
- settings.append(chat_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,72 +0,0 @@
1
- from typing import Union
2
-
3
- import pyttsx3
4
- from PySide6.QtCore import QTimer, Qt
5
- from PySide6.QtWidgets import QBoxLayout, QWidget, QPushButton, QHBoxLayout, QTextEdit, QMessageBox
6
-
7
- from frontengine.show.chat.chat_toast import ChatToast
8
- from frontengine.ui.setting.chat.chatthread import MESSAGE_QUEUE, EXCEPTION_QUEUE
9
- from frontengine.utils.multi_language.language_wrapper import language_wrapper
10
-
11
-
12
- class ChatInputDialog(QWidget):
13
- def __init__(self, close_time: int = 10000, font_size: int = 16, show_toast: bool = True):
14
- super().__init__()
15
- self.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose)
16
- self.box_layout = QBoxLayout(QBoxLayout.Direction.TopToBottom)
17
- self.chat_input = QTextEdit()
18
- self.send_text_button = QPushButton()
19
- self.send_text_button.setText(language_wrapper.language_word_dict.get("chat_scene_send_chat"))
20
- self.box_h_layout = QHBoxLayout()
21
- self.box_h_layout.addWidget(self.send_text_button)
22
- self.box_layout.addWidget(self.chat_input)
23
- self.box_layout.addLayout(self.box_h_layout)
24
- self.setWindowTitle(language_wrapper.language_word_dict.get("chat_scene_input_title"))
25
- self.setLayout(self.box_layout)
26
- # Show toast?
27
- self.show_toast = show_toast
28
- # Get message timer
29
- self.get_message_timer = QTimer()
30
- self.get_message_timer.setInterval(1000)
31
- self.get_message_timer.timeout.connect(self.get_message)
32
- self.get_message_timer.start()
33
- # Check error timer
34
- self.check_error_timer = QTimer()
35
- self.check_error_timer.setInterval(1000)
36
- self.check_error_timer.timeout.connect(self.check_error)
37
- self.check_error_timer.start()
38
- # Toast
39
- self.close_time = close_time
40
- self.font_size = font_size
41
- self.toast_widget: Union[ChatToast, None] = None
42
- # Text to speech
43
- self.engine = pyttsx3.init()
44
-
45
- def get_message(self):
46
- if not MESSAGE_QUEUE.empty():
47
- text = MESSAGE_QUEUE.get_nowait()
48
- if self.show_toast:
49
- self.toast_widget = ChatToast(
50
- text=text, close_time=self.close_time, font_size=self.font_size)
51
- self.toast_widget.showFullScreen()
52
- # self.engine.say(text)
53
-
54
- def show_text(self):
55
- if self.toast_widget is not None and self.toast_widget.isVisible() is False:
56
- self.get_message()
57
- elif self.toast_widget is None:
58
- self.get_message()
59
-
60
- def check_error(self):
61
- if not EXCEPTION_QUEUE.empty():
62
- gpt_error_messagebox = QMessageBox(self)
63
- gpt_error_messagebox.setText(
64
- language_wrapper.language_word_dict.get("chat_gpt_exception") + "\n"
65
- + EXCEPTION_QUEUE.get_nowait()
66
- )
67
- gpt_error_messagebox.show()
68
-
69
- def close(self) -> bool:
70
- self.get_message_timer.stop()
71
- self.check_error_timer.stop()
72
- return super().close()