Skip to content

Commit b20731e

Browse files
committed
added Progress Ring
1 parent d0cd53b commit b20731e

File tree

5 files changed

+27
-17
lines changed

5 files changed

+27
-17
lines changed

nlightreader/widgets/NlightContainers/manga_area.py

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,18 @@
11
from PySide6.QtCore import Qt, QThreadPool
22
from PySide6.QtWidgets import (
33
QWidget,
4-
QVBoxLayout,
4+
QHBoxLayout,
55
QGridLayout,
6-
QSpacerItem,
7-
QSizePolicy,
86
)
97
from qfluentwidgets import ScrollArea
108

119
from nlightreader.utils import Thread
10+
from nlightreader.widgets.NlightContainers.content_container import AbstractContentContainer
1211
from nlightreader.widgets.NlightWidgets.manga_item import MangaItem
1312

1413

15-
class MangaArea(ScrollArea):
16-
def __init__(self, parent):
14+
class MangaArea(ScrollArea, AbstractContentContainer):
15+
def __init__(self):
1716
super().__init__()
1817
self.setWidgetResizable(True)
1918
self.setStyleSheet(
@@ -29,7 +28,7 @@ def __init__(self, parent):
2928
self._scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents")
3029
self._scrollAreaWidgetContents.resizeEvent = self._scroll_resize_event
3130

32-
self._scroll_layout = QVBoxLayout(self._scrollAreaWidgetContents)
31+
self._scroll_layout = QHBoxLayout(self._scrollAreaWidgetContents)
3332
self._scroll_layout.setSpacing(0)
3433
self._scroll_layout.setContentsMargins(0, 0, 0, 0)
3534

@@ -38,17 +37,12 @@ def __init__(self, parent):
3837

3938
self._scroll_layout.addLayout(self._content_grid)
4039

41-
self._verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)
42-
self._scroll_layout.addItem(self._verticalSpacer)
4340
self.setWidget(self._scrollAreaWidgetContents)
4441

4542
self.manga_thread_pool = QThreadPool()
4643
self.manga_thread_pool.setMaxThreadCount(self._column_count)
4744
self._set_images_thread = Thread(target=self.partial_image_addition)
4845

49-
if parent is not None:
50-
parent.addWidget(self)
51-
5246
def _scroll_resize_event(self, event):
5347
if event.oldSize().width() != event.size().width():
5448
self.update_items()
@@ -82,3 +76,6 @@ def delete_items(self):
8276
def update_items(self):
8377
size = self.size().width() // (self._column_count + 1)
8478
[item.set_size(size) for item in self._manga_items]
79+
80+
def get_content_widget(self):
81+
return self._scrollAreaWidgetContents

nlightreader/widgets/NlightTemplates/BaseWidget.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import time
22

3-
from PySide6.QtCore import Signal, QMutex, Slot
3+
from PySide6.QtCore import Signal, Slot
44
from PySide6.QtWidgets import QWidget
5+
from qfluentwidgets import IndeterminateProgressRing
56

67
from nlightreader.consts.enums import Nl
78
from nlightreader.items import Manga, RequestForm
@@ -15,12 +16,14 @@ class MangaItemBasedWidget(QWidget):
1516

1617
def __init__(self, parent=None):
1718
super().__init__(parent=parent)
18-
self.manga_area = MangaArea(None)
19+
self.manga_area = MangaArea()
1920
self.mangas: list[Manga] = []
2021

22+
self.progressRing = IndeterminateProgressRing()
23+
self.progressRing.setVisible(False)
24+
2125
self._get_content_thread = Thread(target=self._get_content_thread_func, callback=self.update_content)
2226

23-
self.mutex = QMutex()
2427
self.catalog = None
2528
self.request_params = RequestForm()
2629

@@ -30,6 +33,8 @@ def setup(self):
3033
def update_content(self):
3134
self.manga_area.delete_items()
3235
items = [self.setup_manga_item(manga) for manga in self.mangas]
36+
self.progressRing.stop()
37+
self.progressRing.setVisible(False)
3338
self.manga_area.add_items(items)
3439
self.manga_area.update_items()
3540

@@ -52,6 +57,8 @@ def get_content(self):
5257
self._get_content_thread.terminate()
5358
self._get_content_thread.wait()
5459
self.manga_area.delete_items()
60+
self.progressRing.setVisible(True)
61+
self.progressRing.start()
5562
self._get_content_thread.start()
5663

5764
def _get_content_thread_func(self):

nlightreader/widgets/NlightTemplates/Facial.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ def __init__(self, parent=None):
2323

2424
self.setObjectName("FormFacial")
2525

26-
self.manga_area = MangaArea(self.ui.items_layout)
26+
self.manga_area = MangaArea()
27+
self.manga_area.install(self.ui.items_layout)
28+
self.manga_area.get_content_widget().layout().addWidget(self.progressRing)
2729

2830
self.ui.next_btn.clicked.connect(self.turn_page_next)
2931
self.ui.prev_btn.clicked.connect(self.turn_page_prev)

nlightreader/widgets/NlightTemplates/Library.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ def __init__(self, parent=None):
1818

1919
self.setObjectName("FormLibrary")
2020

21-
self.manga_area = MangaArea(self.ui.items_layout)
21+
self.manga_area = MangaArea()
22+
self.manga_area.install(self.ui.items_layout)
23+
self.manga_area.get_content_widget().layout().addWidget(self.progressRing)
2224

2325
self.ui.planned_btn.clicked.connect(lambda: self.change_list(Nl.LibList.planned))
2426
self.ui.reading_btn.clicked.connect(lambda: self.change_list(Nl.LibList.reading))

nlightreader/widgets/NlightTemplates/Shikimori.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ def __init__(self, parent=None):
2323

2424
self.setObjectName("FormShikimori")
2525

26-
self.manga_area = MangaArea(self.ui.items_layout)
26+
self.manga_area = MangaArea()
27+
self.manga_area.install(self.ui.items_layout)
28+
self.manga_area.get_content_widget().layout().addWidget(self.progressRing)
2729

2830
self.ui.planned_btn.clicked.connect(lambda: self.change_list(Nl.LibList.planned))
2931
self.ui.reading_btn.clicked.connect(lambda: self.change_list(Nl.LibList.reading))

0 commit comments

Comments
 (0)