pyloid 0.17.2__py3-none-any.whl → 0.17.4__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.
- pyloid/api.py +8 -0
- pyloid/browser_window.py +60 -25
- pyloid/js_api/window_api.py +4 -4
- {pyloid-0.17.2.dist-info → pyloid-0.17.4.dist-info}/METADATA +1 -1
- {pyloid-0.17.2.dist-info → pyloid-0.17.4.dist-info}/RECORD +7 -7
- {pyloid-0.17.2.dist-info → pyloid-0.17.4.dist-info}/LICENSE +0 -0
- {pyloid-0.17.2.dist-info → pyloid-0.17.4.dist-info}/WHEEL +0 -0
pyloid/api.py
CHANGED
@@ -1,4 +1,9 @@
|
|
1
1
|
from PySide6.QtCore import QObject, Slot
|
2
|
+
from typing import TYPE_CHECKING
|
3
|
+
|
4
|
+
if TYPE_CHECKING:
|
5
|
+
from pyloid.pyloid import Pyloid
|
6
|
+
from pyloid.browser_window import BrowserWindow
|
2
7
|
|
3
8
|
|
4
9
|
class PyloidAPI(QObject):
|
@@ -45,6 +50,9 @@ class PyloidAPI(QObject):
|
|
45
50
|
|
46
51
|
def __init__(self):
|
47
52
|
super().__init__()
|
53
|
+
self.window_id: str = None
|
54
|
+
self.window: "BrowserWindow" = None
|
55
|
+
self.app: "Pyloid" = None
|
48
56
|
|
49
57
|
|
50
58
|
def Bridge(*args, **kwargs):
|
pyloid/browser_window.py
CHANGED
@@ -72,7 +72,7 @@ class CustomWebEngineView(QWebEngineView):
|
|
72
72
|
super().__init__(parent._window)
|
73
73
|
self.parent: "BrowserWindow" = parent
|
74
74
|
|
75
|
-
#
|
75
|
+
# Custom Web Page
|
76
76
|
self.custom_page = CustomWebPage()
|
77
77
|
self.setPage(self.custom_page)
|
78
78
|
|
@@ -81,36 +81,63 @@ class CustomWebEngineView(QWebEngineView):
|
|
81
81
|
self.resize_direction = None
|
82
82
|
self.screen_geometry = self.screen().virtualGeometry()
|
83
83
|
self.is_resizing_enabled = True
|
84
|
+
|
85
|
+
self.setAttribute(Qt.WA_SetCursor, False)
|
86
|
+
|
87
|
+
self.is_in_resize_area = False
|
84
88
|
|
85
89
|
def mouse_press_event(self, event):
|
90
|
+
if self.parent.frame or not self.is_resizing_enabled:
|
91
|
+
return
|
92
|
+
|
86
93
|
if event.button() == Qt.LeftButton:
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
self.resize_start_pos = event.globalPos()
|
94
|
+
self.resize_direction = self.get_resize_direction(event.pos())
|
95
|
+
if self.resize_direction:
|
96
|
+
self.is_resizing = True
|
97
|
+
self.resize_start_pos = event.globalPos()
|
92
98
|
|
93
99
|
def start_system_drag(self):
|
94
|
-
"""
|
100
|
+
"""Start system window move"""
|
95
101
|
if self.parent._window.windowHandle():
|
96
102
|
self.parent._window.windowHandle().startSystemMove()
|
97
103
|
|
98
104
|
def mouse_move_event(self, event):
|
99
|
-
if self.
|
105
|
+
if self.parent.frame or not self.is_resizing_enabled:
|
106
|
+
return
|
107
|
+
|
108
|
+
# Check resize direction
|
109
|
+
was_in_resize_area = self.is_in_resize_area
|
110
|
+
resize_direction = self.get_resize_direction(event.pos())
|
111
|
+
self.is_in_resize_area = bool(resize_direction)
|
112
|
+
|
113
|
+
if resize_direction and not self.is_resizing:
|
114
|
+
self.set_cursor_for_resize_direction(resize_direction)
|
115
|
+
|
116
|
+
if self.is_resizing:
|
100
117
|
self.resize_window(event.globalPos())
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
118
|
+
return
|
119
|
+
|
120
|
+
# Change cursor when entering/leaving resize area
|
121
|
+
if self.is_in_resize_area != was_in_resize_area:
|
122
|
+
if self.is_in_resize_area:
|
123
|
+
# self.setAttribute(Qt.WA_SetCursor, True)
|
124
|
+
pass
|
106
125
|
else:
|
107
126
|
self.unsetCursor()
|
127
|
+
# self.setAttribute(Qt.WA_SetCursor, False)
|
108
128
|
|
109
129
|
def mouse_release_event(self, event):
|
130
|
+
if self.parent.frame or not self.is_resizing_enabled:
|
131
|
+
return
|
132
|
+
|
110
133
|
if event.button() == Qt.LeftButton:
|
111
134
|
self.is_resizing = False
|
112
|
-
|
113
|
-
self.
|
135
|
+
|
136
|
+
if self.resize_direction:
|
137
|
+
self.unsetCursor()
|
138
|
+
self.resize_direction = None
|
139
|
+
|
140
|
+
self.setAttribute(Qt.WA_SetCursor, False)
|
114
141
|
|
115
142
|
def eventFilter(self, source, event):
|
116
143
|
if self.focusProxy() is source:
|
@@ -126,7 +153,7 @@ class CustomWebEngineView(QWebEngineView):
|
|
126
153
|
if (
|
127
154
|
not self.parent.frame and self.is_resizing_enabled
|
128
155
|
): # Check if frame is not present and resizing is enabled
|
129
|
-
margin =
|
156
|
+
margin = 8 # Margin in pixels to detect edge
|
130
157
|
rect = self.rect()
|
131
158
|
direction = None
|
132
159
|
|
@@ -144,17 +171,20 @@ class CustomWebEngineView(QWebEngineView):
|
|
144
171
|
return None
|
145
172
|
|
146
173
|
def set_cursor_for_resize_direction(self, direction):
|
147
|
-
if
|
148
|
-
|
149
|
-
): # Check if frame is not present and resizing is enabled
|
174
|
+
if not self.parent.frame and direction and self.is_resizing_enabled:
|
175
|
+
cursor = None
|
150
176
|
if direction in ["left", "right"]:
|
151
|
-
|
177
|
+
cursor = Qt.SizeHorCursor
|
152
178
|
elif direction in ["top", "bottom"]:
|
153
|
-
|
179
|
+
cursor = Qt.SizeVerCursor
|
154
180
|
elif direction in ["left-top", "right-bottom"]:
|
155
|
-
|
181
|
+
cursor = Qt.SizeFDiagCursor
|
156
182
|
elif direction in ["right-top", "left-bottom"]:
|
157
|
-
|
183
|
+
cursor = Qt.SizeBDiagCursor
|
184
|
+
|
185
|
+
if cursor:
|
186
|
+
self.setCursor(cursor)
|
187
|
+
self.setAttribute(Qt.WA_SetCursor, True)
|
158
188
|
|
159
189
|
def resize_window(self, global_pos):
|
160
190
|
if (
|
@@ -209,7 +239,7 @@ class BrowserWindow:
|
|
209
239
|
self.frame = frame
|
210
240
|
self.context_menu = context_menu
|
211
241
|
self.dev_tools = dev_tools
|
212
|
-
self.js_apis = [WindowAPI(
|
242
|
+
self.js_apis = [WindowAPI()]
|
213
243
|
for js_api in js_apis:
|
214
244
|
self.js_apis.append(js_api)
|
215
245
|
self.shortcuts = {}
|
@@ -344,6 +374,11 @@ class BrowserWindow:
|
|
344
374
|
# Register additional JS APIs
|
345
375
|
if self.js_apis:
|
346
376
|
for js_api in self.js_apis:
|
377
|
+
# Define window_id, window, and app for each JS API
|
378
|
+
js_api.window_id = self.id
|
379
|
+
js_api.window = self
|
380
|
+
js_api.app = self.app
|
381
|
+
|
347
382
|
self.channel.registerObject(js_api.__class__.__name__, js_api)
|
348
383
|
|
349
384
|
self.web_view.page().setWebChannel(self.channel)
|
@@ -1856,7 +1891,7 @@ class BrowserWindow:
|
|
1856
1891
|
Parameters
|
1857
1892
|
----------
|
1858
1893
|
handler : callable
|
1859
|
-
요청을 처리할 핸들러 함수. QWebEngineDesktopMediaRequest
|
1894
|
+
요청을 처리할 핸들러 함수. QWebEngineDesktopMediaRequest��� 인자로 받습니다.
|
1860
1895
|
|
1861
1896
|
Examples
|
1862
1897
|
--------
|
pyloid/js_api/window_api.py
CHANGED
@@ -8,10 +8,10 @@ if TYPE_CHECKING:
|
|
8
8
|
from ..pyloid import Pyloid
|
9
9
|
|
10
10
|
class WindowAPI(PyloidAPI):
|
11
|
-
def __init__(self, window_id: str, app: 'Pyloid'):
|
12
|
-
|
13
|
-
|
14
|
-
|
11
|
+
# def __init__(self, window_id: str, app: 'Pyloid'):
|
12
|
+
# super().__init__()
|
13
|
+
# self.window_id: str = window_id
|
14
|
+
# self.app: 'Pyloid' = app
|
15
15
|
|
16
16
|
@Bridge(result=str)
|
17
17
|
def getWindowId(self):
|
@@ -1,18 +1,18 @@
|
|
1
1
|
pyloid/__init__.py,sha256=OOPhOKNQVmAM8hnfTeE7lHzxb8LsFNcgegBAvDrA-vY,293
|
2
|
-
pyloid/api.py,sha256=
|
2
|
+
pyloid/api.py,sha256=A61Kmddh8BlpT3LfA6NbPQNzFmD95vQ4WKX53oKsGYU,2419
|
3
3
|
pyloid/autostart.py,sha256=K7DQYl4LHItvPp0bt1V9WwaaZmVSTeGvadkcwG-KKrI,3899
|
4
|
-
pyloid/browser_window.py,sha256=
|
4
|
+
pyloid/browser_window.py,sha256=6Es-DH45URUV6rlCBWj3ZWwrXLMUvqp5700WlU8Sdwo,62984
|
5
5
|
pyloid/custom/titlebar.py,sha256=itzK9pJbZMQ7BKca9kdbuHMffurrw15UijR6OU03Xsk,3894
|
6
6
|
pyloid/filewatcher.py,sha256=3M5zWVUf1OhlkWJcDFC8ZA9agO4Q-U8WdgGpy6kaVz0,4601
|
7
7
|
pyloid/js_api/event_api.py,sha256=_52yyBonqecmMvJpFW7OMNi_jX8Nrteqw_kI6r-DGG0,951
|
8
|
-
pyloid/js_api/window_api.py,sha256=
|
8
|
+
pyloid/js_api/window_api.py,sha256=BsAO4VBkqfUPib4f7AHxaMRXvN3FvzMXDBsqSUAay3c,8489
|
9
9
|
pyloid/monitor.py,sha256=1mXvHm5deohnNlTLcRx4sT4x-stnOIb0dUQnnxN50Uo,28295
|
10
10
|
pyloid/pyloid.py,sha256=YKE2a5yZFbBZrtMND2X5I7CVnFRK40NFzDp3kYN-oQg,44091
|
11
11
|
pyloid/thread_pool.py,sha256=fKOBb8jMfZn_7crA_fJCno8dObBRZE31EIWaNQ759aw,14616
|
12
12
|
pyloid/timer.py,sha256=RqMsChFUd93cxMVgkHWiIKrci0QDTBgJSTULnAtYT8M,8712
|
13
13
|
pyloid/tray.py,sha256=D12opVEc2wc2T4tK9epaN1oOdeziScsIVNM2uCN7C-A,1710
|
14
14
|
pyloid/utils.py,sha256=XPM2PxO0LQ_eAnba5pKJ3vYsCev91JMFmv13EFuAy5o,2620
|
15
|
-
pyloid-0.17.
|
16
|
-
pyloid-0.17.
|
17
|
-
pyloid-0.17.
|
18
|
-
pyloid-0.17.
|
15
|
+
pyloid-0.17.4.dist-info/LICENSE,sha256=F96EzotgWhhpnQTW2TcdoqrMDir1jyEo6H915tGQ-QE,11524
|
16
|
+
pyloid-0.17.4.dist-info/METADATA,sha256=bqZ7DTwKxdvSw2wurQBe5EiCCOa-vXEEW6gXYVrg3rY,3054
|
17
|
+
pyloid-0.17.4.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
18
|
+
pyloid-0.17.4.dist-info/RECORD,,
|
File without changes
|
File without changes
|