frontengine 1.0.42__tar.gz → 1.0.44__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (252) hide show
  1. {frontengine-1.0.42 → frontengine-1.0.44}/PKG-INFO +2 -2
  2. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/pet/desktop_pet.py +5 -1
  3. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/control_center/control_center_ui.py +1 -1
  4. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/focus/focus_setting_ui.py +1 -1
  5. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/presentation/presentation_setting_ui.py +1 -1
  6. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/scene_setting/scene_manager.py +49 -34
  7. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/screen_care/screen_care_setting_ui.py +1 -1
  8. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/user_setting/preset_repository.py +1 -1
  9. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/platform_info/platform_info.py +1 -1
  10. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/system_stats/system_stats.py +3 -2
  11. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/window_pin/window_pin.py +1 -1
  12. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine.egg-info/PKG-INFO +2 -2
  13. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine.egg-info/requires.txt +1 -1
  14. {frontengine-1.0.42 → frontengine-1.0.44}/pyproject.toml +2 -2
  15. {frontengine-1.0.42 → frontengine-1.0.44}/LICENSE +0 -0
  16. {frontengine-1.0.42 → frontengine-1.0.44}/README.md +0 -0
  17. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/__init__.py +0 -0
  18. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/__main__.py +0 -0
  19. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/__init__.py +0 -0
  20. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/base_widget.py +0 -0
  21. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/camera/__init__.py +0 -0
  22. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/camera/camera_widget.py +0 -0
  23. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/capture/__init__.py +0 -0
  24. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/capture/region_capture.py +0 -0
  25. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/focus_shield/__init__.py +0 -0
  26. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/focus_shield/focus_shield_widget.py +0 -0
  27. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/gaming/__init__.py +0 -0
  28. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/gaming/crosshair_widget.py +0 -0
  29. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/gif/__init__.py +0 -0
  30. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/gif/paint_gif.py +0 -0
  31. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/image/__init__.py +0 -0
  32. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/image/paint_image.py +0 -0
  33. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/load/__init__.py +0 -0
  34. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/load/load_someone_make_ui.py +0 -0
  35. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/measure/__init__.py +0 -0
  36. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/measure/measure_widget.py +0 -0
  37. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/monitor/__init__.py +0 -0
  38. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/monitor/monitor_widget.py +0 -0
  39. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/notes/__init__.py +0 -0
  40. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/notes/sticky_note_widget.py +0 -0
  41. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/overlay_factory.py +0 -0
  42. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/particle/__init__.py +0 -0
  43. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/particle/particle_ui.py +0 -0
  44. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/pet/__init__.py +0 -0
  45. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/presentation/__init__.py +0 -0
  46. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/presentation/annotation_overlay.py +0 -0
  47. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/presentation/cursor_effects.py +0 -0
  48. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/presentation/keystroke_display.py +0 -0
  49. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/presentation/magnifier.py +0 -0
  50. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/scene/__init__.py +0 -0
  51. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/scene/extend_graphic_scene.py +0 -0
  52. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/scene/extend_graphic_view.py +0 -0
  53. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/scene/scene.py +0 -0
  54. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/screen_care/__init__.py +0 -0
  55. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/screen_care/color_vision_widget.py +0 -0
  56. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/screen_care/screen_filter.py +0 -0
  57. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/sound_player/__init__.py +0 -0
  58. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/sound_player/sound_effect.py +0 -0
  59. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/sound_player/sound_player.py +0 -0
  60. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/spectrum/__init__.py +0 -0
  61. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/spectrum/spectrum_widget.py +0 -0
  62. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/teleprompter/__init__.py +0 -0
  63. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/teleprompter/teleprompter_widget.py +0 -0
  64. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/text/__init__.py +0 -0
  65. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/text/draw_text.py +0 -0
  66. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/toast/__init__.py +0 -0
  67. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/toast/toast_widget.py +0 -0
  68. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/video/__init__.py +0 -0
  69. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/video/video_player.py +0 -0
  70. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/wallpaper/__init__.py +0 -0
  71. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/wallpaper/wallpaper_widget.py +0 -0
  72. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/web/__init__.py +0 -0
  73. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/web/webview.py +0 -0
  74. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/show/window_helpers.py +0 -0
  75. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/system_tray/__init__.py +0 -0
  76. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/system_tray/extend_system_tray.py +0 -0
  77. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/__init__.py +0 -0
  78. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/color/__init__.py +0 -0
  79. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/color/global_color.py +0 -0
  80. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/dialog/__init__.py +0 -0
  81. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/dialog/app_profile_dialog.py +0 -0
  82. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/dialog/choose_file_dialog.py +0 -0
  83. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/dialog/clipboard_dialog.py +0 -0
  84. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/dialog/hotkey_settings_dialog.py +0 -0
  85. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/dialog/reminder_dialog.py +0 -0
  86. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/dialog/save_file_dialog.py +0 -0
  87. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/dialog/screen_text_dialog.py +0 -0
  88. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/dialog/smart_pause_dialog.py +0 -0
  89. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/dialog/usage_report_dialog.py +0 -0
  90. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/dialog/window_pin_dialog.py +0 -0
  91. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/main_ui.py +0 -0
  92. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/menu/__init__.py +0 -0
  93. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/menu/help_menu.py +0 -0
  94. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/menu/how_to_menu.py +0 -0
  95. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/menu/language_menu.py +0 -0
  96. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/menu/preset_menu.py +0 -0
  97. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/menu/settings_menu.py +0 -0
  98. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/__init__.py +0 -0
  99. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/control_center/__init__.py +0 -0
  100. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/focus/__init__.py +0 -0
  101. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/gif/__init__.py +0 -0
  102. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/gif/gif_setting_ui.py +0 -0
  103. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/image/__init__.py +0 -0
  104. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/image/image_setting_ui.py +0 -0
  105. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/particle/__init__.py +0 -0
  106. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/particle/particle_setting_ui.py +0 -0
  107. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/pet/__init__.py +0 -0
  108. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/pet/pet_setting_ui.py +0 -0
  109. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/presentation/__init__.py +0 -0
  110. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/scene_setting/__init__.py +0 -0
  111. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/scene_setting/scene_page/__init__.py +0 -0
  112. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/scene_setting/scene_page/base_scene_page.py +0 -0
  113. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/scene_setting/scene_page/gif.py +0 -0
  114. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/scene_setting/scene_page/image.py +0 -0
  115. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/scene_setting/scene_page/registry.py +0 -0
  116. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/scene_setting/scene_page/sound.py +0 -0
  117. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/scene_setting/scene_page/text.py +0 -0
  118. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/scene_setting/scene_page/video.py +0 -0
  119. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/scene_setting/scene_page/web.py +0 -0
  120. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/scene_setting/scene_setting_ui.py +0 -0
  121. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/screen_care/__init__.py +0 -0
  122. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/sound_player/__init__.py +0 -0
  123. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/sound_player/sound_player_setting_ui.py +0 -0
  124. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/stream/__init__.py +0 -0
  125. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/stream/stream_setting_ui.py +0 -0
  126. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/text/__init__.py +0 -0
  127. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/text/text_setting_ui.py +0 -0
  128. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/tools/__init__.py +0 -0
  129. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/tools/tools_setting_ui.py +0 -0
  130. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/utils.py +0 -0
  131. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/video/__init__.py +0 -0
  132. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/video/video_setting_ui.py +0 -0
  133. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/wallpaper/__init__.py +0 -0
  134. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/wallpaper/wallpaper_setting_ui.py +0 -0
  135. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/web/__init__.py +0 -0
  136. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/web/web_setting_ui.py +0 -0
  137. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/widgets/__init__.py +0 -0
  138. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/ui/page/widgets/widgets_setting_ui.py +0 -0
  139. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/user_setting/__init__.py +0 -0
  140. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/user_setting/scene_setting.py +0 -0
  141. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/user_setting/user_setting_file.py +0 -0
  142. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/__init__.py +0 -0
  143. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/app_profile/__init__.py +0 -0
  144. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/app_profile/app_profile_service.py +0 -0
  145. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/audio_meter/__init__.py +0 -0
  146. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/audio_meter/audio_envelope.py +0 -0
  147. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/audio_meter/loopback_capture.py +0 -0
  148. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/audio_meter/screen_audio.py +0 -0
  149. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/audio_meter/spectrum_analyzer.py +0 -0
  150. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/audio_meter/system_audio_meter.py +0 -0
  151. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/autostart/__init__.py +0 -0
  152. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/autostart/autostart_service.py +0 -0
  153. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/break_reminder/__init__.py +0 -0
  154. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/break_reminder/break_reminder.py +0 -0
  155. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/browser/__init__.py +0 -0
  156. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/browser/browser.py +0 -0
  157. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/clipboard/__init__.py +0 -0
  158. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/clipboard/clipboard_history.py +0 -0
  159. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/clipboard/clipboard_watcher.py +0 -0
  160. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/color_vision/__init__.py +0 -0
  161. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/color_vision/color_vision.py +0 -0
  162. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/critical_exit/__init__.py +0 -0
  163. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/critical_exit/check_key_is_press.py +0 -0
  164. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/critical_exit/critical_exit.py +0 -0
  165. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/critical_exit/win32_vk.py +0 -0
  166. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/exception/__init__.py +0 -0
  167. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/exception/exception_tags.py +0 -0
  168. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/exception/exceptions.py +0 -0
  169. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/file/__init__.py +0 -0
  170. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/file/open/__init__.py +0 -0
  171. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/file/open/open_file.py +0 -0
  172. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/file/save/__init__.py +0 -0
  173. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/file/save/save_file.py +0 -0
  174. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/focus_shield/__init__.py +0 -0
  175. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/focus_shield/focus_shield.py +0 -0
  176. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/focus_timer/__init__.py +0 -0
  177. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/focus_timer/focus_timer.py +0 -0
  178. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/hotkey/__init__.py +0 -0
  179. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/hotkey/hotkey_service.py +0 -0
  180. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/input_watch/__init__.py +0 -0
  181. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/input_watch/input_watch_service.py +0 -0
  182. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/json/__init__.py +0 -0
  183. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/json/json_file.py +0 -0
  184. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/json/json_repository.py +0 -0
  185. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/json_format/__init__.py +0 -0
  186. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/json_format/json_process.py +0 -0
  187. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/logging/__init__.py +0 -0
  188. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/logging/loggin_instance.py +0 -0
  189. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/measure/__init__.py +0 -0
  190. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/measure/measure.py +0 -0
  191. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/multi_language/__init__.py +0 -0
  192. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/multi_language/english.py +0 -0
  193. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/multi_language/france.py +0 -0
  194. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/multi_language/germany.py +0 -0
  195. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/multi_language/italy.py +0 -0
  196. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/multi_language/language_wrapper.py +0 -0
  197. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/multi_language/russian.py +0 -0
  198. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/multi_language/simplified_chinese.py +0 -0
  199. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/multi_language/traditional_chinese.py +0 -0
  200. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/now_playing/__init__.py +0 -0
  201. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/now_playing/now_playing.py +0 -0
  202. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/obs/__init__.py +0 -0
  203. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/obs/obs_client.py +0 -0
  204. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/obs/obs_protocol.py +0 -0
  205. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/obs/websocket_frames.py +0 -0
  206. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/pet_chat/__init__.py +0 -0
  207. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/pet_chat/pet_chat_service.py +0 -0
  208. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/platform_info/__init__.py +0 -0
  209. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/playlist/__init__.py +0 -0
  210. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/playlist/playlist.py +0 -0
  211. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/plugins/__init__.py +0 -0
  212. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/plugins/plugin_loader.py +0 -0
  213. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/power_mode/__init__.py +0 -0
  214. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/power_mode/power_mode.py +0 -0
  215. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/preset_schedule/__init__.py +0 -0
  216. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/preset_schedule/preset_schedule_service.py +0 -0
  217. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/recording/__init__.py +0 -0
  218. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/recording/frame_recorder.py +0 -0
  219. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/recording/gif_writer.py +0 -0
  220. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/redirect_manager/__init__.py +0 -0
  221. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/redirect_manager/redirect_manager_class.py +0 -0
  222. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/reminder/__init__.py +0 -0
  223. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/reminder/reminder_service.py +0 -0
  224. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/screen_text/__init__.py +0 -0
  225. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/screen_text/screen_text_service.py +0 -0
  226. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/smart_pause/__init__.py +0 -0
  227. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/smart_pause/pause_rules.py +0 -0
  228. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/smart_pause/smart_pause_service.py +0 -0
  229. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/soundboard/__init__.py +0 -0
  230. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/soundboard/soundboard.py +0 -0
  231. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/system_stats/__init__.py +0 -0
  232. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/text_source/__init__.py +0 -0
  233. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/text_source/text_source.py +0 -0
  234. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/theme_schedule/__init__.py +0 -0
  235. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/theme_schedule/theme_schedule_service.py +0 -0
  236. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/usage_tracking/__init__.py +0 -0
  237. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/usage_tracking/usage_service.py +0 -0
  238. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/usage_tracking/usage_tracker.py +0 -0
  239. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/weather/__init__.py +0 -0
  240. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/weather/weather_service.py +0 -0
  241. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/web_url.py +0 -0
  242. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/window_pin/__init__.py +0 -0
  243. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/window_pin/window_layout.py +0 -0
  244. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/workshop/__init__.py +0 -0
  245. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/utils/workshop/workshop_content.py +0 -0
  246. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/worker/__init__.py +0 -0
  247. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine/worker/qthread_worker.py +0 -0
  248. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine.egg-info/SOURCES.txt +0 -0
  249. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine.egg-info/dependency_links.txt +0 -0
  250. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine.egg-info/entry_points.txt +0 -0
  251. {frontengine-1.0.42 → frontengine-1.0.44}/frontengine.egg-info/top_level.txt +0 -0
  252. {frontengine-1.0.42 → frontengine-1.0.44}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: frontengine
3
- Version: 1.0.42
3
+ Version: 1.0.44
4
4
  Summary: FrontEngine is use-define frontview or only use like screen saver
5
5
  Author-email: JE-Chen <jechenmailman@gmail.com>
6
6
  Project-URL: Homepage, https://github.com/Intergration-Automation-Testing/FrontEngine
@@ -14,7 +14,7 @@ Classifier: Operating System :: OS Independent
14
14
  Requires-Python: >=3.10
15
15
  Description-Content-Type: text/markdown
16
16
  License-File: LICENSE
17
- Requires-Dist: PySide6==6.10.2
17
+ Requires-Dist: PySide6==6.11.1
18
18
  Requires-Dist: qt-material
19
19
  Requires-Dist: PyOpenGL
20
20
  Requires-Dist: PyOpenGL_accelerate
@@ -117,7 +117,11 @@ def acceptable_sound(sound_path) -> Optional[Path]:
117
117
  """
118
118
  if not sound_path:
119
119
  return None
120
- path = Path(str(sound_path))
120
+ # 下一行就是這個函式存在的理由:把外部給的字串收斂成「確定存在的音訊檔」,
121
+ # 不符合就回 None。
122
+ # The next line is why this function exists: narrow an outside string down
123
+ # to an audio file that actually exists, and return None otherwise.
124
+ path = Path(str(sound_path)) # NOSONAR - validated on the very next line
121
125
  if path.is_file() and path.suffix.lower() in _SOUND_SUFFIXES:
122
126
  return path
123
127
  return None
@@ -240,7 +240,7 @@ class ControlCenterUI(QWidget):
240
240
  guarded and the dead reference is pruned so one cannot crash the batch.
241
241
  """
242
242
  for widget_list in self._all_overlay_widget_lists():
243
- for widget in list(widget_list):
243
+ for widget in widget_list[:]:
244
244
  try:
245
245
  action(widget)
246
246
  except RuntimeError:
@@ -100,7 +100,7 @@ class FocusSettingUI(QWidget):
100
100
 
101
101
  @staticmethod
102
102
  def _close_all(widgets: list) -> None:
103
- for widget in list(widgets):
103
+ for widget in widgets[:]:
104
104
  try:
105
105
  widget.close()
106
106
  except RuntimeError:
@@ -158,7 +158,7 @@ class PresentationSettingUI(QWidget):
158
158
 
159
159
  @staticmethod
160
160
  def _close_all(widgets: list) -> None:
161
- for widget in list(widgets):
161
+ for widget in widgets[:]:
162
162
  try:
163
163
  widget.close()
164
164
  except RuntimeError:
@@ -63,53 +63,68 @@ class SceneManagerUI(QWidget):
63
63
 
64
64
  def start_scene(self):
65
65
  front_engine_logger.info("[SceneManagerUI] start_scene")
66
- try:
67
- scene: dict = json.loads(self.json_plaintext.toPlainText())
68
- except json.JSONDecodeError as e:
69
- QMessageBox.critical(self, "JSON Error", f"Invalid JSON: {e}")
66
+ scene = self._parse_scene_json()
67
+ if scene is None:
70
68
  return
69
+ self._add_scene_widgets(scene)
70
+ self._present_scene(QGuiApplication.screens())
71
+
72
+ def _parse_scene_json(self):
73
+ """讀出編輯框裡的場景 JSON;格式錯誤就告訴使用者並回傳 None。"""
74
+ try:
75
+ return json.loads(self.json_plaintext.toPlainText())
76
+ except json.JSONDecodeError as error:
77
+ QMessageBox.critical(self, "JSON Error", f"Invalid JSON: {error}")
78
+ return None
71
79
 
80
+ def _add_scene_widgets(self, scene: dict) -> None:
81
+ """把場景描述裡的每個項目加進場景;不認得的型別會提醒使用者。"""
72
82
  scene_add_function = {
73
83
  "TEXT": self.scene.add_text,
74
84
  "IMAGE": self.scene.add_image,
75
85
  "GIF": self.scene.add_gif,
76
86
  "SOUND": self.scene.add_sound,
77
87
  "VIDEO": self.scene.add_video,
78
- "WEB": self.scene.add_web
88
+ "WEB": self.scene.add_web,
79
89
  }
80
-
81
90
  for scene_dict in scene.values():
82
91
  scene_widget_type = scene_dict.get("type")
83
92
  function = scene_add_function.get(scene_widget_type)
84
- if function:
85
- function(setting_dict=scene_dict)
86
- else:
87
- QMessageBox.warning(self, "Unknown Type", f"Unsupported scene type: {scene_widget_type}")
88
-
89
- monitors = QGuiApplication.screens()
90
- if not self.show_all_screen and len(monitors) <= 1:
91
- graphic_view = ExtendGraphicView(self.scene.graphic_scene)
92
- self.scene.view_list.append(graphic_view)
93
- graphic_view.showMaximized()
94
- elif not self.show_all_screen and len(monitors) >= 2:
95
- input_dialog, combobox = create_monitor_selection_dialog(self, monitors)
96
- result = input_dialog.exec()
97
- if result == QDialog.DialogCode.Accepted:
98
- select_monitor_index = int(combobox.currentText())
99
- if len(monitors) > select_monitor_index:
100
- monitor = monitors[select_monitor_index]
101
- graphic_view = ExtendGraphicView(self.scene.graphic_scene)
102
- graphic_view.setScreen(monitor)
103
- graphic_view.move(monitor.availableGeometry().topLeft())
104
- self.scene.view_list.append(graphic_view)
105
- graphic_view.showMaximized()
106
- else:
93
+ if function is None:
94
+ QMessageBox.warning(
95
+ self, "Unknown Type", f"Unsupported scene type: {scene_widget_type}")
96
+ continue
97
+ function(setting_dict=scene_dict)
98
+
99
+ def _present_scene(self, monitors: list) -> None:
100
+ """
101
+ 決定場景要開在哪裡:勾了「所有螢幕」就每台都開;否則只有一台螢幕時
102
+ 直接開,多台時先問使用者要哪一台。
103
+ Where the scene opens: every monitor when "all screens" is ticked,
104
+ straight up with only one monitor, and otherwise after asking which.
105
+ """
106
+ if self.show_all_screen:
107
107
  for monitor in monitors:
108
- graphic_view = ExtendGraphicView(self.scene.graphic_scene)
109
- graphic_view.setScreen(monitor)
110
- graphic_view.move(monitor.availableGeometry().topLeft())
111
- self.scene.view_list.append(graphic_view)
112
- graphic_view.showMaximized()
108
+ self._open_view(monitor)
109
+ return
110
+ if len(monitors) <= 1:
111
+ self._open_view(None)
112
+ return
113
+ input_dialog, combobox = create_monitor_selection_dialog(self, monitors)
114
+ if input_dialog.exec() != QDialog.DialogCode.Accepted:
115
+ return
116
+ index = int(combobox.currentText())
117
+ if index < len(monitors):
118
+ self._open_view(monitors[index])
119
+
120
+ def _open_view(self, monitor) -> None:
121
+ """開一個場景視窗;給了螢幕就擺到那台上面。"""
122
+ graphic_view = ExtendGraphicView(self.scene.graphic_scene)
123
+ if monitor is not None:
124
+ graphic_view.setScreen(monitor)
125
+ graphic_view.move(monitor.availableGeometry().topLeft())
126
+ self.scene.view_list.append(graphic_view)
127
+ graphic_view.showMaximized()
113
128
 
114
129
  def update_scene_json(self):
115
130
  front_engine_logger.info("[SceneManagerUI] update_scene_json")
@@ -174,7 +174,7 @@ class ScreenCareSettingUI(QWidget):
174
174
 
175
175
  @staticmethod
176
176
  def _close_all(widgets: list) -> None:
177
- for widget in list(widgets):
177
+ for widget in widgets[:]:
178
178
  try:
179
179
  widget.close()
180
180
  except RuntimeError:
@@ -136,7 +136,7 @@ class PresetRepository:
136
136
  for section in rewritten.values():
137
137
  if not isinstance(section, dict):
138
138
  continue
139
- for key, value in list(section.items()):
139
+ for key, value in tuple(section.items()):
140
140
  if isinstance(value, str) and value and Path(value).is_file():
141
141
  archive_name = self._unique_media_name(Path(value).name, used_names)
142
142
  used_names.add(archive_name)
@@ -311,7 +311,7 @@ def _standable_windows_windows(exclude_handles=()) -> List[Tuple[int, int, int]]
311
311
  # An EnumWindows callback must return True to keep enumerating; False
312
312
  # stops it early. Always returning the same value is the contract
313
313
  # here, not an oversight.
314
- def _collect(hwnd, _lparam):
314
+ def _collect(hwnd, _lparam): # NOSONAR - EnumWindows must always get True
315
315
  if int(hwnd) in exclude or not user32.IsWindowVisible(hwnd):
316
316
  return True
317
317
  rect = wintypes.RECT()
@@ -271,8 +271,9 @@ class SystemStats:
271
271
  # Step past the leading count field by address and read the rest as
272
272
  # rows. addressof plus an offset is far clearer than handing cast
273
273
  # the result of byref.
274
- rows = ctypes.cast( # NOSONAR - addressof takes the char array fine
275
- ctypes.addressof(buffer) + ctypes.sizeof(ctypes.c_uint32),
274
+ rows = ctypes.cast(
275
+ ctypes.addressof(buffer) # NOSONAR - a char array is a ctypes instance
276
+ + ctypes.sizeof(ctypes.c_uint32),
276
277
  ctypes.POINTER(_MibIfRow))
277
278
  received = sent = 0
278
279
  for index in range(count):
@@ -86,7 +86,7 @@ def _list_windows_windows() -> List[Tuple[int, str]]: # pragma: no cover - Win3
86
86
  # An EnumWindows callback must return True to keep enumerating; False
87
87
  # stops it early. Always returning the same value is the contract
88
88
  # here, not an oversight.
89
- def _collect(hwnd, _lparam):
89
+ def _collect(hwnd, _lparam): # NOSONAR - EnumWindows must always get True
90
90
  if not user32.IsWindowVisible(hwnd):
91
91
  return True
92
92
  rect = wintypes.RECT()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: frontengine
3
- Version: 1.0.42
3
+ Version: 1.0.44
4
4
  Summary: FrontEngine is use-define frontview or only use like screen saver
5
5
  Author-email: JE-Chen <jechenmailman@gmail.com>
6
6
  Project-URL: Homepage, https://github.com/Intergration-Automation-Testing/FrontEngine
@@ -14,7 +14,7 @@ Classifier: Operating System :: OS Independent
14
14
  Requires-Python: >=3.10
15
15
  Description-Content-Type: text/markdown
16
16
  License-File: LICENSE
17
- Requires-Dist: PySide6==6.10.2
17
+ Requires-Dist: PySide6==6.11.1
18
18
  Requires-Dist: qt-material
19
19
  Requires-Dist: PyOpenGL
20
20
  Requires-Dist: PyOpenGL_accelerate
@@ -1,4 +1,4 @@
1
- PySide6==6.10.2
1
+ PySide6==6.11.1
2
2
  qt-material
3
3
  PyOpenGL
4
4
  PyOpenGL_accelerate
@@ -6,12 +6,12 @@ build-backend = "setuptools.build_meta"
6
6
 
7
7
  [project]
8
8
  name = "frontengine"
9
- version = "1.0.42"
9
+ version = "1.0.44"
10
10
  authors = [
11
11
  { name = "JE-Chen", email = "jechenmailman@gmail.com" },
12
12
  ]
13
13
  dependencies = [
14
- "PySide6==6.10.2", "qt-material", "PyOpenGL", "PyOpenGL_accelerate", "numpy", "pynput"
14
+ "PySide6==6.11.1", "qt-material", "PyOpenGL", "PyOpenGL_accelerate", "numpy", "pynput"
15
15
  ]
16
16
  description = "FrontEngine is use-define frontview or only use like screen saver"
17
17
  requires-python = ">=3.10"
File without changes
File without changes