frontengine-dev 0.0.64__tar.gz → 0.0.66__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 (109) hide show
  1. {frontengine_dev-0.0.64/frontengine_dev.egg-info → frontengine_dev-0.0.66}/PKG-INFO +6 -1
  2. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/README.md +5 -0
  3. frontengine_dev-0.0.66/frontengine/show/particle/paint_particle.py +45 -0
  4. frontengine_dev-0.0.66/frontengine/show/particle/particle_scene.py +65 -0
  5. frontengine_dev-0.0.66/frontengine/show/particle/particle_utils.py +75 -0
  6. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/ui/page/video/video_setting_ui.py +0 -1
  7. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/utils/critical_exit/critical_exit.py +3 -1
  8. frontengine_dev-0.0.66/frontengine/utils/redirect_manager/__init__.py +0 -0
  9. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66/frontengine_dev.egg-info}/PKG-INFO +6 -1
  10. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine_dev.egg-info/SOURCES.txt +4 -0
  11. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/pyproject.toml +1 -1
  12. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/LICENSE +0 -0
  13. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/__init__.py +0 -0
  14. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/show/__init__.py +0 -0
  15. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/show/gif/__init__.py +0 -0
  16. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/show/gif/paint_gif.py +0 -0
  17. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/show/image/__init__.py +0 -0
  18. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/show/image/paint_image.py +0 -0
  19. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/show/load/__init__.py +0 -0
  20. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/show/load/load_someone_make_ui.py +0 -0
  21. {frontengine_dev-0.0.64/frontengine/show/scene → frontengine_dev-0.0.66/frontengine/show/particle}/__init__.py +0 -0
  22. {frontengine_dev-0.0.64/frontengine/show/sound_player → frontengine_dev-0.0.66/frontengine/show/scene}/__init__.py +0 -0
  23. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/show/scene/extend_graphic_scene.py +0 -0
  24. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/show/scene/extend_graphic_view.py +0 -0
  25. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/show/scene/scene.py +0 -0
  26. {frontengine_dev-0.0.64/frontengine/show/text → frontengine_dev-0.0.66/frontengine/show/sound_player}/__init__.py +0 -0
  27. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/show/sound_player/sound_effect.py +0 -0
  28. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/show/sound_player/sound_player.py +0 -0
  29. {frontengine_dev-0.0.64/frontengine/show/video → frontengine_dev-0.0.66/frontengine/show/text}/__init__.py +0 -0
  30. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/show/text/draw_text.py +0 -0
  31. {frontengine_dev-0.0.64/frontengine/show/web → frontengine_dev-0.0.66/frontengine/show/video}/__init__.py +0 -0
  32. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/show/video/video_player.py +0 -0
  33. {frontengine_dev-0.0.64/frontengine/system_tray → frontengine_dev-0.0.66/frontengine/show/web}/__init__.py +0 -0
  34. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/show/web/webview.py +0 -0
  35. {frontengine_dev-0.0.64/frontengine/ui → frontengine_dev-0.0.66/frontengine/system_tray}/__init__.py +0 -0
  36. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/system_tray/extend_system_tray.py +0 -0
  37. {frontengine_dev-0.0.64/frontengine/ui/color → frontengine_dev-0.0.66/frontengine/ui}/__init__.py +0 -0
  38. {frontengine_dev-0.0.64/frontengine/ui/dialog → frontengine_dev-0.0.66/frontengine/ui/color}/__init__.py +0 -0
  39. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/ui/color/global_color.py +0 -0
  40. {frontengine_dev-0.0.64/frontengine/ui/menu → frontengine_dev-0.0.66/frontengine/ui/dialog}/__init__.py +0 -0
  41. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/ui/dialog/choose_file_dialog.py +0 -0
  42. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/ui/dialog/save_file_dialog.py +0 -0
  43. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/ui/main_ui.py +0 -0
  44. {frontengine_dev-0.0.64/frontengine/ui/page → frontengine_dev-0.0.66/frontengine/ui/menu}/__init__.py +0 -0
  45. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/ui/menu/help_menu.py +0 -0
  46. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/ui/menu/how_to_menu.py +0 -0
  47. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/ui/menu/language_menu.py +0 -0
  48. {frontengine_dev-0.0.64/frontengine/ui/page/control_center → frontengine_dev-0.0.66/frontengine/ui/page}/__init__.py +0 -0
  49. {frontengine_dev-0.0.64/frontengine/ui/page/gif → frontengine_dev-0.0.66/frontengine/ui/page/control_center}/__init__.py +0 -0
  50. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/ui/page/control_center/control_center_ui.py +0 -0
  51. {frontengine_dev-0.0.64/frontengine/ui/page/image → frontengine_dev-0.0.66/frontengine/ui/page/gif}/__init__.py +0 -0
  52. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/ui/page/gif/gif_setting_ui.py +0 -0
  53. {frontengine_dev-0.0.64/frontengine/ui/page/scene_setting → frontengine_dev-0.0.66/frontengine/ui/page/image}/__init__.py +0 -0
  54. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/ui/page/image/image_setting_ui.py +0 -0
  55. {frontengine_dev-0.0.64/frontengine/ui/page/scene_setting/scene_page → frontengine_dev-0.0.66/frontengine/ui/page/scene_setting}/__init__.py +0 -0
  56. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/ui/page/scene_setting/scene_manager.py +0 -0
  57. {frontengine_dev-0.0.64/frontengine/ui/page/sound_player → frontengine_dev-0.0.66/frontengine/ui/page/scene_setting/scene_page}/__init__.py +0 -0
  58. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/ui/page/scene_setting/scene_page/gif.py +0 -0
  59. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/ui/page/scene_setting/scene_page/image.py +0 -0
  60. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/ui/page/scene_setting/scene_page/sound.py +0 -0
  61. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/ui/page/scene_setting/scene_page/text.py +0 -0
  62. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/ui/page/scene_setting/scene_page/video.py +0 -0
  63. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/ui/page/scene_setting/scene_page/web.py +0 -0
  64. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/ui/page/scene_setting/scene_setting_ui.py +0 -0
  65. {frontengine_dev-0.0.64/frontengine/ui/page/text → frontengine_dev-0.0.66/frontengine/ui/page/sound_player}/__init__.py +0 -0
  66. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/ui/page/sound_player/sound_player_setting_ui.py +0 -0
  67. {frontengine_dev-0.0.64/frontengine/ui/page/video → frontengine_dev-0.0.66/frontengine/ui/page/text}/__init__.py +0 -0
  68. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/ui/page/text/text_setting_ui.py +0 -0
  69. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/ui/page/utils.py +0 -0
  70. {frontengine_dev-0.0.64/frontengine/ui/page/web → frontengine_dev-0.0.66/frontengine/ui/page/video}/__init__.py +0 -0
  71. {frontengine_dev-0.0.64/frontengine/user_setting → frontengine_dev-0.0.66/frontengine/ui/page/web}/__init__.py +0 -0
  72. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/ui/page/web/web_setting_ui.py +0 -0
  73. {frontengine_dev-0.0.64/frontengine/utils → frontengine_dev-0.0.66/frontengine/user_setting}/__init__.py +0 -0
  74. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/user_setting/scene_setting.py +0 -0
  75. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/user_setting/user_setting_file.py +0 -0
  76. {frontengine_dev-0.0.64/frontengine/utils/browser → frontengine_dev-0.0.66/frontengine/utils}/__init__.py +0 -0
  77. {frontengine_dev-0.0.64/frontengine/utils/critical_exit → frontengine_dev-0.0.66/frontengine/utils/browser}/__init__.py +0 -0
  78. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/utils/browser/browser.py +0 -0
  79. {frontengine_dev-0.0.64/frontengine/utils/file → frontengine_dev-0.0.66/frontengine/utils/critical_exit}/__init__.py +0 -0
  80. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/utils/critical_exit/check_key_is_press.py +0 -0
  81. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/utils/critical_exit/win32_vk.py +0 -0
  82. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/utils/exception/__init__.py +0 -0
  83. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/utils/exception/exception_tags.py +0 -0
  84. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/utils/exception/exceptions.py +0 -0
  85. {frontengine_dev-0.0.64/frontengine/utils/json → frontengine_dev-0.0.66/frontengine/utils/file}/__init__.py +0 -0
  86. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/utils/file/open/__init__.py +0 -0
  87. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/utils/file/open/open_file.py +0 -0
  88. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/utils/file/save/__init__.py +0 -0
  89. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/utils/file/save/save_file.py +0 -0
  90. {frontengine_dev-0.0.64/frontengine/utils/logging → frontengine_dev-0.0.66/frontengine/utils/json}/__init__.py +0 -0
  91. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/utils/json/json_file.py +0 -0
  92. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/utils/json_format/__init__.py +0 -0
  93. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/utils/json_format/json_process.py +0 -0
  94. {frontengine_dev-0.0.64/frontengine/utils/multi_language → frontengine_dev-0.0.66/frontengine/utils/logging}/__init__.py +0 -0
  95. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/utils/logging/loggin_instance.py +0 -0
  96. {frontengine_dev-0.0.64/frontengine/utils/redirect_manager → frontengine_dev-0.0.66/frontengine/utils/multi_language}/__init__.py +0 -0
  97. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/utils/multi_language/english.py +0 -0
  98. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/utils/multi_language/france.py +0 -0
  99. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/utils/multi_language/germany.py +0 -0
  100. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/utils/multi_language/italy.py +0 -0
  101. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/utils/multi_language/language_wrapper.py +0 -0
  102. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/utils/multi_language/russian.py +0 -0
  103. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/utils/multi_language/simplified_chinese.py +0 -0
  104. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/utils/multi_language/traditional_chinese.py +0 -0
  105. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine/utils/redirect_manager/redirect_manager_class.py +0 -0
  106. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine_dev.egg-info/dependency_links.txt +0 -0
  107. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine_dev.egg-info/requires.txt +0 -0
  108. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/frontengine_dev.egg-info/top_level.txt +0 -0
  109. {frontengine_dev-0.0.64 → frontengine_dev-0.0.66}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: frontengine_dev
3
- Version: 0.0.64
3
+ Version: 0.0.66
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
@@ -25,6 +25,10 @@ Requires-Dist: qt-material
25
25
 
26
26
  [FrontEngine Doc Click Here!](https://frontengine.readthedocs.io/en/latest/)
27
27
 
28
+ ## Support this project on steam
29
+
30
+ [SteamStoreLink](https://store.steampowered.com/app/2793470/FrontEngine/)
31
+
28
32
  ## Contents
29
33
 
30
34
  > Project kanban https://github.com/orgs/Integration-Automation/projects/2/views/1
@@ -68,6 +72,7 @@ Requires-Dist: qt-material
68
72
  - [Youtube](https://youtu.be/fewogcb3b8Y)
69
73
 
70
74
 
75
+
71
76
  ## Download
72
77
 
73
78
  ---
@@ -4,6 +4,10 @@
4
4
 
5
5
  [FrontEngine Doc Click Here!](https://frontengine.readthedocs.io/en/latest/)
6
6
 
7
+ ## Support this project on steam
8
+
9
+ [SteamStoreLink](https://store.steampowered.com/app/2793470/FrontEngine/)
10
+
7
11
  ## Contents
8
12
 
9
13
  > Project kanban https://github.com/orgs/Integration-Automation/projects/2/views/1
@@ -47,6 +51,7 @@
47
51
  - [Youtube](https://youtu.be/fewogcb3b8Y)
48
52
 
49
53
 
54
+
50
55
  ## Download
51
56
 
52
57
  ---
@@ -0,0 +1,45 @@
1
+ import sys
2
+
3
+ from PySide6.QtCore import QSize
4
+ from PySide6.QtGui import QPixmap, Qt
5
+ from PySide6.QtWidgets import QWidget, QApplication, QMainWindow, QGridLayout
6
+ from qt_material import QtStyleTools
7
+
8
+ from frontengine.show.particle.particle_scene import ParticleGraphicScene
9
+ from frontengine.show.scene.extend_graphic_view import ExtendGraphicView
10
+
11
+
12
+ class ParticleWidget(QWidget):
13
+
14
+ def __init__(self, pixmap: QPixmap, particle_size: int, particle_direction: str, particle_count: int = 50,
15
+ screen_height: int = 1080, screen_width: int = 1920, opacity: float = 0.2,
16
+ particle_speed: int = 1):
17
+ super().__init__()
18
+ if particle_size:
19
+ self.pixmap = pixmap.scaled(QSize(particle_size, particle_size), Qt.AspectRatioMode.KeepAspectRatio)
20
+ else:
21
+ self.pixmap = pixmap.scaled(QSize(pixmap.width(), pixmap.height()), Qt.AspectRatioMode.KeepAspectRatio)
22
+ self.particle_view = ExtendGraphicView()
23
+ self.particle_scene = ParticleGraphicScene(
24
+ self.pixmap, particle_direction, particle_count,
25
+ screen_height, screen_width, opacity, particle_speed)
26
+ self.particle_view.setScene(self.particle_scene)
27
+ self.grid_layout = QGridLayout()
28
+ self.grid_layout.addWidget(self.particle_view, 0, 0, -1, -1)
29
+ self.setLayout(self.grid_layout)
30
+
31
+
32
+ class TestUI(QMainWindow, QtStyleTools):
33
+
34
+ def __init__(self):
35
+ super().__init__()
36
+ self.pixmap = QPixmap("pipi.png")
37
+ self.main_widget = ParticleWidget(self.pixmap, 64, "random_add", particle_count=500)
38
+ self.setCentralWidget(self.main_widget)
39
+ self.showMaximized()
40
+
41
+
42
+ if __name__ == "__main__":
43
+ main_app = QApplication(sys.argv)
44
+ window = TestUI()
45
+ sys.exit(main_app.exec())
@@ -0,0 +1,65 @@
1
+ from typing import Callable
2
+
3
+ from PySide6.QtCore import QTimer, QPoint, QRect
4
+ from PySide6.QtGui import QPixmap
5
+ from PySide6.QtWidgets import QGraphicsScene, QWidget
6
+
7
+ from frontengine.show.particle.particle_utils import particle_down, particle_up, particle_left, particle_right, \
8
+ particle_left_down, particle_left_up, particle_right_down, particle_right_up, particle_random_minus, Particle, \
9
+ particle_random_add, particle_random
10
+
11
+
12
+ class ParticleGraphicScene(QGraphicsScene):
13
+
14
+ def __init__(self, particle_pixmap: QPixmap, particle_direction: str,
15
+ particle_count: int = 500,
16
+ screen_height: int = 1920, screen_width: int = 1080, opacity: float = 0.2,
17
+ particle_speed: int = 1):
18
+ super().__init__()
19
+ self.particle_pixmap: QPixmap = particle_pixmap
20
+ self.particle_direction: str = particle_direction
21
+ self.particle_count: int = particle_count
22
+ self.opacity: float = opacity
23
+ self.particle_dict: dict = {}
24
+ self.particle_speed: int = particle_speed
25
+ self.screen_height: int = screen_height
26
+ self.screen_width: int = screen_width
27
+ self.create_particle()
28
+ self.update_function: Callable = {
29
+ "down": particle_down,
30
+ "up": particle_up,
31
+ "left": particle_left,
32
+ "right": particle_right,
33
+ "left_down": particle_left_down,
34
+ "left_up": particle_left_up,
35
+ "right_down": particle_right_down,
36
+ "right_up": particle_right_up,
37
+ "random_minus": particle_random_minus,
38
+ "random_add": particle_random_add,
39
+ "random": particle_random
40
+ }.get(self.particle_direction)
41
+ self.setSceneRect(QRect(0, 0, screen_width, screen_height))
42
+ self.update_timer: QTimer = QTimer()
43
+ self.update_timer.setInterval(10)
44
+ self.update_timer.timeout.connect(self.update_particle)
45
+ self.update_timer.start()
46
+
47
+ def create_particle(self):
48
+ self.particle_dict = {}
49
+ for count in range(self.particle_count):
50
+ self.particle_dict.update({
51
+ f"particle_{count}": Particle(self.screen_height, self.screen_width, self.particle_pixmap)
52
+ })
53
+
54
+ def update_particle(self):
55
+ self.clear()
56
+ self.update_function(self.particle_dict, self.particle_speed)
57
+ for particle_key, particle in self.particle_dict.items():
58
+ pixmap_item = self.addPixmap(particle.pixmap)
59
+ pixmap_item.setOpacity(self.opacity)
60
+ pixmap_item.setPos(particle.x, particle.y)
61
+ particle.pixmap_item = pixmap_item
62
+ if not self.sceneRect().contains(QPoint(particle.x, particle.y)):
63
+ self.removeItem(particle.pixmap_item)
64
+ if len(self.items()) == 0:
65
+ self.create_particle()
@@ -0,0 +1,75 @@
1
+ import random
2
+ from typing import Dict, Callable
3
+
4
+ from PySide6.QtGui import QPixmap
5
+ from PySide6.QtWidgets import QGraphicsPixmapItem
6
+
7
+
8
+ class Particle(object):
9
+
10
+ def __init__(self, height: int, width: int, pixmap: QPixmap):
11
+ self.pixmap: QPixmap = pixmap
12
+ self.x: int = random.randint(0, width)
13
+ self.y: int = random.randint(0, height)
14
+ self.height = self.pixmap.height()
15
+ self.width = self.pixmap.width()
16
+ self.pixmap_item: [QGraphicsPixmapItem, None] = None
17
+
18
+
19
+ def particle_down(particle_dict: Dict[str, Particle], particle_speed: int = 30) -> None:
20
+ for particle in particle_dict.values():
21
+ particle.y += random.randint(0, particle_speed)
22
+
23
+
24
+ def particle_up(particle_dict: Dict[str, Particle], particle_speed: int = 30) -> None:
25
+ for particle in particle_dict.values():
26
+ particle.y -= random.randint(0, particle_speed)
27
+
28
+
29
+ def particle_left(particle_dict: Dict[str, Particle], particle_speed: int = 30) -> None:
30
+ for particle in particle_dict.values():
31
+ particle.x -= random.randint(0, particle_speed)
32
+
33
+
34
+ def particle_right(particle_dict: Dict[str, Particle], particle_speed: int = 30) -> None:
35
+ for particle in particle_dict.values():
36
+ particle.x += random.randint(0, particle_speed)
37
+
38
+
39
+ def particle_left_down(particle_dict: Dict[str, Particle], particle_speed: int = 30) -> None:
40
+ particle_left(particle_dict, particle_speed)
41
+ particle_down(particle_dict, particle_speed)
42
+
43
+
44
+ def particle_left_up(particle_dict: Dict[str, Particle], particle_speed: int = 30) -> None:
45
+ particle_left(particle_dict, particle_speed)
46
+ particle_up(particle_dict, particle_speed)
47
+
48
+
49
+ def particle_right_down(particle_dict: Dict[str, Particle], particle_speed: int = 30) -> None:
50
+ particle_right(particle_dict, particle_speed)
51
+ particle_down(particle_dict, particle_speed)
52
+
53
+
54
+ def particle_right_up(particle_dict: Dict[str, Particle], particle_speed: int = 30) -> None:
55
+ particle_right(particle_dict, particle_speed)
56
+ particle_up(particle_dict, particle_speed)
57
+
58
+
59
+ def particle_random_minus(particle_dict: Dict[str, Particle], particle_speed: int = 30) -> None:
60
+ for particle in particle_dict.values():
61
+ particle.y += random.randint(0, particle_speed)
62
+ particle.x -= random.randint(0, particle_speed)
63
+
64
+
65
+ def particle_random_add(particle_dict: Dict[str, Particle], particle_speed: int = 30) -> None:
66
+ for particle in particle_dict.values():
67
+ particle.y -= random.randint(0, particle_speed)
68
+ particle.x += random.randint(0, particle_speed)
69
+
70
+
71
+ def particle_random(particle_dict: Dict[str, Particle], particle_speed: int = 30) -> None:
72
+ function: Callable = random.choice(
73
+ [particle_down, particle_up, particle_left, particle_right, particle_right_up, particle_left_down,
74
+ particle_left_up, particle_right_down, particle_random_add, particle_random_minus])
75
+ function(particle_dict, particle_speed)
@@ -13,7 +13,6 @@ class VideoSettingUI(QWidget):
13
13
 
14
14
  def __init__(self):
15
15
  super().__init__()
16
- self.grid_layout = QGridLayout()
17
16
  self.grid_layout = QGridLayout(self)
18
17
  self.grid_layout.setContentsMargins(0, 0, 0, 0)
19
18
  # Init variable
@@ -2,6 +2,8 @@ import _thread
2
2
  import sys
3
3
  from threading import Thread
4
4
 
5
+ from PySide6.QtWidgets import QApplication
6
+
5
7
  from frontengine.utils.critical_exit.check_key_is_press import check_key_is_press
6
8
  from frontengine.utils.critical_exit.win32_vk import keyboard_keys_table
7
9
 
@@ -37,7 +39,7 @@ class CriticalExit(Thread):
37
39
  try:
38
40
  while True:
39
41
  if check_key_is_press(self._exit_check_key):
40
- _thread.interrupt_main()
42
+ QApplication.exit(0)
41
43
  except Exception as error:
42
44
  print(repr(error), file=sys.stderr)
43
45
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: frontengine_dev
3
- Version: 0.0.64
3
+ Version: 0.0.66
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
@@ -25,6 +25,10 @@ Requires-Dist: qt-material
25
25
 
26
26
  [FrontEngine Doc Click Here!](https://frontengine.readthedocs.io/en/latest/)
27
27
 
28
+ ## Support this project on steam
29
+
30
+ [SteamStoreLink](https://store.steampowered.com/app/2793470/FrontEngine/)
31
+
28
32
  ## Contents
29
33
 
30
34
  > Project kanban https://github.com/orgs/Integration-Automation/projects/2/views/1
@@ -68,6 +72,7 @@ Requires-Dist: qt-material
68
72
  - [Youtube](https://youtu.be/fewogcb3b8Y)
69
73
 
70
74
 
75
+
71
76
  ## Download
72
77
 
73
78
  ---
@@ -9,6 +9,10 @@ frontengine/show/image/__init__.py
9
9
  frontengine/show/image/paint_image.py
10
10
  frontengine/show/load/__init__.py
11
11
  frontengine/show/load/load_someone_make_ui.py
12
+ frontengine/show/particle/__init__.py
13
+ frontengine/show/particle/paint_particle.py
14
+ frontengine/show/particle/particle_scene.py
15
+ frontengine/show/particle/particle_utils.py
12
16
  frontengine/show/scene/__init__.py
13
17
  frontengine/show/scene/extend_graphic_scene.py
14
18
  frontengine/show/scene/extend_graphic_view.py
@@ -6,7 +6,7 @@ build-backend = "setuptools.build_meta"
6
6
 
7
7
  [project]
8
8
  name = "frontengine_dev"
9
- version = "0.0.64"
9
+ version = "0.0.66"
10
10
  authors = [
11
11
  { name = "JE-Chen", email = "jechenmailman@gmail.com" },
12
12
  ]