Files
Artemis/clickable_progress_bar.py
alessandro90 43a9ce954e Add docstrings. Also add safe_cast function. Finally
fix some minor issues.
2019-05-25 15:18:06 +02:00

36 lines
1.0 KiB
Python

from PyQt5.QtWidgets import QProgressBar
from PyQt5.QtCore import Qt, pyqtSignal
from constants import Constants
class ClickableProgressBar(QProgressBar):
"""Subclass QProgressBar. Clickable progress bar class."""
clicked = pyqtSignal()
def __init__(self, parent=None):
"""Initialize the instance."""
self.__text = ''
super().__init__(parent)
def text(self):
"""Return the text displayed on the bar."""
return self.__text
def set_idle(self):
"""Set the bar to a non-downloading status."""
self.__text = Constants.CLICK_TO_UPDATE_STR
self.setMaximum(self.minimum() + 1)
def set_updating(self):
"""Set the bar to a downloading status."""
self.__text = Constants.UPDATING_STR
self.setMaximum(self.minimum())
def mousePressEvent(self, event):
"""Override QWidget.mousePressEvent. Detect a click on the bar."""
if event.button() == Qt.LeftButton:
self.clicked.emit()
else:
super().mousePressEvent(event)