winipedia-utils 0.1.30__py3-none-any.whl → 0.1.32__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.
@@ -83,36 +83,32 @@ class Base(metaclass=QABCImplementationLoggingMeta):
83
83
  children = get_all_nonabstract_subclasses(cls)
84
84
  return sorted(children, key=lambda cls: cls.__name__)
85
85
 
86
- @classmethod
87
86
  @final
88
- def set_current_page(cls, page_cls: type["BasePage"]) -> None:
87
+ def set_current_page(self, page_cls: type["BasePage"]) -> None:
89
88
  """Set the current page."""
90
- cls.get_stack().setCurrentWidget(cls.get_page(page_cls))
89
+ self.get_stack().setCurrentWidget(self.get_page(page_cls))
91
90
 
92
- @classmethod
93
91
  @final
94
- def get_stack(cls) -> QStackedWidget:
92
+ def get_stack(self) -> QStackedWidget:
95
93
  """Get the stack of the window."""
96
- window = cast("BaseWindow", (QApplication.activeWindow()))
94
+ window = cast("BaseWindow", (getattr(self, "window", lambda: None)()))
97
95
 
98
96
  return window.stack
99
97
 
100
- @classmethod
101
98
  @final
102
- def get_stack_pages(cls) -> list["BasePage"]:
99
+ def get_stack_pages(self) -> list["BasePage"]:
103
100
  """Get all the pages."""
104
101
  # Import here to avoid circular import
105
102
 
106
- stack = cls.get_stack()
103
+ stack = self.get_stack()
107
104
  # get all the pages
108
105
  return [cast("BasePage", stack.widget(i)) for i in range(stack.count())]
109
106
 
110
- @classmethod
111
107
  @final
112
- def get_page[T: "BasePage"](cls, page_cls: type[T]) -> T:
108
+ def get_page[T: "BasePage"](self, page_cls: type[T]) -> T:
113
109
  """Get the page."""
114
110
  page = next(
115
- page for page in cls.get_stack_pages() if page.__class__ is page_cls
111
+ page for page in self.get_stack_pages() if page.__class__ is page_cls
116
112
  )
117
113
  return cast("T", page)
118
114
 
@@ -121,3 +117,15 @@ class Base(metaclass=QABCImplementationLoggingMeta):
121
117
  def get_svg_icon(cls, svg_name: str, package: ModuleType | None = None) -> QIcon:
122
118
  """Get the Qicon for a svg."""
123
119
  return QIcon(str(get_svg_path(svg_name, package=package)))
120
+
121
+ @classmethod
122
+ @final
123
+ def get_page_static(cls, page_cls: type["BasePage"]) -> "BasePage":
124
+ """Get the page."""
125
+ from winipedia_utils.pyside.ui.windows.base.base import Base as BaseWindow
126
+
127
+ top_level_widgets = QApplication.topLevelWidgets()
128
+ main_window = next(
129
+ widget for widget in top_level_widgets if isinstance(widget, BaseWindow)
130
+ )
131
+ return main_window.get_page(page_cls)
@@ -3,6 +3,7 @@
3
3
  This module contains the base page class for the VideoVault application.
4
4
  """
5
5
 
6
+ from functools import partial
6
7
  from typing import final
7
8
 
8
9
  from PySide6.QtCore import Qt
@@ -50,7 +51,7 @@ class Base(BaseUI, QWidget):
50
51
 
51
52
  for page_cls in Base.get_subclasses():
52
53
  action = self.menu_dropdown.addAction(page_cls.get_display_name())
53
- action.triggered.connect(page_cls.set_page)
54
+ action.triggered.connect(partial(self.set_current_page, page_cls))
54
55
 
55
56
  @final
56
57
  def add_to_page_button(
@@ -60,15 +61,9 @@ class Base(BaseUI, QWidget):
60
61
  button = QPushButton(to_page_cls.get_display_name())
61
62
 
62
63
  # connect to open page on click
63
- button.clicked.connect(to_page_cls.set_page)
64
+ button.clicked.connect(lambda: self.set_current_page(to_page_cls))
64
65
 
65
66
  # add to layout
66
67
  layout.addWidget(button)
67
68
 
68
69
  return button
69
-
70
- @classmethod
71
- @final
72
- def set_page(cls) -> None:
73
- """Set the page."""
74
- cls.set_current_page(cls)
@@ -21,6 +21,6 @@ class Player(BasePage):
21
21
  def play_data(self, data: bytes, name: str) -> None:
22
22
  """Play the video."""
23
23
  # set current page to player
24
- self.set_page()
24
+ self.set_current_page(self.__class__)
25
25
  # Stop current playback and clean up resources
26
26
  self.media_player.play_data(data, name)
@@ -49,5 +49,4 @@ class Base(BaseUI, QMainWindow):
49
49
  @final
50
50
  def set_start_page(self) -> None:
51
51
  """Set the start page."""
52
- start_page_cls = self.get_start_page_cls()
53
- start_page_cls.set_page()
52
+ self.set_current_page(self.get_start_page_cls())
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: winipedia-utils
3
- Version: 0.1.30
3
+ Version: 0.1.32
4
4
  Summary: A package with many utility functions
5
5
  License: MIT
6
6
  Author: Winipedia
@@ -43,19 +43,19 @@ winipedia_utils/py.typed,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
43
43
  winipedia_utils/pyside/__init__.py,sha256=knliQxknKWqxCEfxlI1K02OtbBfnTkYUZFqyYcLJNDI,52
44
44
  winipedia_utils/pyside/ui/__init__.py,sha256=h5NJ6WyveMMqxIgt0x65_mqndtncxgNmx5816KD3ubU,55
45
45
  winipedia_utils/pyside/ui/base/__init__.py,sha256=p-maJQh7gYbXwhkqKU4wL6UNGzRAy988JP8_qLoTZDk,24
46
- winipedia_utils/pyside/ui/base/base.py,sha256=K1aE0h87SwutKv398rovu8JV5OCViVQy-q3qoNitXKc,3748
46
+ winipedia_utils/pyside/ui/base/base.py,sha256=2s-MYd1t-0BO9EWhLkwWJZufK1zX7173U6anOOUU0xY,4149
47
47
  winipedia_utils/pyside/ui/pages/__init__.py,sha256=p-maJQh7gYbXwhkqKU4wL6UNGzRAy988JP8_qLoTZDk,24
48
48
  winipedia_utils/pyside/ui/pages/base/__init__.py,sha256=p-maJQh7gYbXwhkqKU4wL6UNGzRAy988JP8_qLoTZDk,24
49
- winipedia_utils/pyside/ui/pages/base/base.py,sha256=SAT5RzhaHEscd6Sfu-trnvlC-cjSBwSBSnBfMAB2YGo,2111
49
+ winipedia_utils/pyside/ui/pages/base/base.py,sha256=9pt0Hsewo2q_sMu6xI5grF0dcoazRL73EiML8zKOzuE,2059
50
50
  winipedia_utils/pyside/ui/pages/browser.py,sha256=SzX356snnmEdzCrtIXl5mPaUkM1-_REfUurOotpVIkY,696
51
- winipedia_utils/pyside/ui/pages/player.py,sha256=bNpNmkhIjJ6h4sxuFliEdnjANwLWmLZSPgo5Lzbkg0U,765
51
+ winipedia_utils/pyside/ui/pages/player.py,sha256=SETJeeCm_m_LmnSTWMBrOuG4Gt_1kqVGzVgMgTxLJDQ,787
52
52
  winipedia_utils/pyside/ui/widgets/__init__.py,sha256=p-maJQh7gYbXwhkqKU4wL6UNGzRAy988JP8_qLoTZDk,24
53
53
  winipedia_utils/pyside/ui/widgets/browser.py,sha256=5oUyQKYOYu9Zzx6adbewTtAIfnn_RVs8CLoX3rU2g28,6160
54
54
  winipedia_utils/pyside/ui/widgets/media_player.py,sha256=XIQ3L1zrj5T_6Xe0Cist3v0WdSmtpiZ2kyH-A_zpw7g,10288
55
55
  winipedia_utils/pyside/ui/widgets/notification.py,sha256=_zBq9Q6SDFu3fV2AkbvyCNQmOEOy1l9mKOFAAdyteg4,1941
56
56
  winipedia_utils/pyside/ui/windows/__init__.py,sha256=p-maJQh7gYbXwhkqKU4wL6UNGzRAy988JP8_qLoTZDk,24
57
57
  winipedia_utils/pyside/ui/windows/base/__init__.py,sha256=p-maJQh7gYbXwhkqKU4wL6UNGzRAy988JP8_qLoTZDk,24
58
- winipedia_utils/pyside/ui/windows/base/base.py,sha256=EiWqwAVzmvmXoGibUVIXzMojfxVolPtZIAPqLRX4GXM,1525
58
+ winipedia_utils/pyside/ui/windows/base/base.py,sha256=httMbYu5QiHevD_2SrUTLnFat9nsvSNAtjTL84tRUao,1496
59
59
  winipedia_utils/resources/__init__.py,sha256=p-maJQh7gYbXwhkqKU4wL6UNGzRAy988JP8_qLoTZDk,24
60
60
  winipedia_utils/resources/svgs/__init__.py,sha256=p-maJQh7gYbXwhkqKU4wL6UNGzRAy988JP8_qLoTZDk,24
61
61
  winipedia_utils/resources/svgs/download_arrow.svg,sha256=R5WNz0JOxkRi5LOuDtc_eZESZN4W0JAuvr-5_ZRqeks,244
@@ -87,7 +87,7 @@ winipedia_utils/testing/tests/base/utils/utils.py,sha256=dUPDrgAxlfREQb33zz23Mfz
87
87
  winipedia_utils/testing/tests/conftest.py,sha256=8RounBlI8Jq1aLaLNpv84MW4ne8Qq0aavQextDOp5ng,920
88
88
  winipedia_utils/text/__init__.py,sha256=j2bwtK6kyeHI6SnoBjpRju0C1W2n2paXBDlNjNtaUxA,48
89
89
  winipedia_utils/text/string.py,sha256=1jbBftlgxffGgSlPnQh3aRPIr8XekEwpSenjFCW6JyM,3478
90
- winipedia_utils-0.1.30.dist-info/LICENSE,sha256=3PrKJ2CWNrnyyHaC_r0wPDSukVWgmjOxHr__eQVH7cw,1087
91
- winipedia_utils-0.1.30.dist-info/METADATA,sha256=ojH1E48JfIoLe4-GdNa6pjIN2sTzR4WFxK6cjADlGvY,12576
92
- winipedia_utils-0.1.30.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
93
- winipedia_utils-0.1.30.dist-info/RECORD,,
90
+ winipedia_utils-0.1.32.dist-info/LICENSE,sha256=3PrKJ2CWNrnyyHaC_r0wPDSukVWgmjOxHr__eQVH7cw,1087
91
+ winipedia_utils-0.1.32.dist-info/METADATA,sha256=l0tmySfRuBVBH__3yEVw589bmDN7rVCA4Hnyv7JNtTo,12576
92
+ winipedia_utils-0.1.32.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
93
+ winipedia_utils-0.1.32.dist-info/RECORD,,