summaryrefslogtreecommitdiff
path: root/tidal_dl_ng/gui/progress.py
blob: d46ea3d6905f1e7434f6a9ffabb8e75be5f2d97c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
"""Progress bars mixin for MainWindow.

Handles progress bar updates and formatting.
"""

import math


class ProgressMixin:
    """Mixin containing progress bar management methods."""

    def on_progress_reset(self):
        """Reset progress bars to zero."""
        self.pb_list.setValue(0)
        self.pb_item.setValue(0)

    def on_progress_list(self, value: float) -> None:
        """Update the progress of the list progress bar."""
        self.pb_list.setValue(int(math.ceil(value)))

    def on_progress_item(self, value: float) -> None:
        """Update the progress of the item progress bar."""
        self.pb_item.setValue(int(math.ceil(value)))

    def on_progress_item_name(self, value: str) -> None:
        """Set the format of the item progress bar."""
        self.pb_item.setFormat(f"%p% {value}")

    def on_progress_list_name(self, value: str) -> None:
        """Set the format of the list progress bar."""
        self.pb_list.setFormat(f"%p% {value}")