Update v1.4
This commit is contained in:
+47
-4
@@ -102,10 +102,22 @@ class DownloaderWorker(QThread):
|
|||||||
self.last_downloaded_size = 0
|
self.last_downloaded_size = 0
|
||||||
|
|
||||||
def format_size(self, size_bytes):
|
def format_size(self, size_bytes):
|
||||||
return f"{size_bytes / (1024 * 1024):.2f}MB"
|
units = ['B', 'KB', 'MB', 'GB']
|
||||||
|
index = 0
|
||||||
|
while size_bytes >= 1024 and index < len(units) - 1:
|
||||||
|
size_bytes /= 1024
|
||||||
|
index += 1
|
||||||
|
return f"{size_bytes:.2f}{units[index]}"
|
||||||
|
|
||||||
def format_speed(self, speed_bytes):
|
def format_speed(self, speed_bytes):
|
||||||
return f"{speed_bytes * 8 / (1024 * 1024):.2f}Mbps"
|
speed_bits = speed_bytes * 8
|
||||||
|
|
||||||
|
if speed_bits >= 1024 * 1024:
|
||||||
|
speed_mbps = speed_bits / (1024 * 1024)
|
||||||
|
return f"{speed_mbps:.2f}Mbps"
|
||||||
|
else:
|
||||||
|
speed_kbps = speed_bits / 1024
|
||||||
|
return f"{speed_kbps:.2f}Kbps"
|
||||||
|
|
||||||
def progress_callback(self, downloaded_size, total_size):
|
def progress_callback(self, downloaded_size, total_size):
|
||||||
current_time = time.time()
|
current_time = time.time()
|
||||||
@@ -388,9 +400,37 @@ class SpotifyFlacGUI(QMainWindow):
|
|||||||
self.progress_bar.hide()
|
self.progress_bar.hide()
|
||||||
self.main_layout.addWidget(self.progress_bar)
|
self.main_layout.addWidget(self.progress_bar)
|
||||||
|
|
||||||
|
bottom_layout = QHBoxLayout()
|
||||||
|
|
||||||
self.status_label = QLabel("")
|
self.status_label = QLabel("")
|
||||||
self.main_layout.addWidget(self.status_label)
|
bottom_layout.addWidget(self.status_label, stretch=1)
|
||||||
|
|
||||||
|
self.update_button = QPushButton()
|
||||||
|
icon_path = os.path.join(os.path.dirname(__file__), "update.svg")
|
||||||
|
if os.path.exists(icon_path):
|
||||||
|
self.update_button.setIcon(QIcon(icon_path))
|
||||||
|
self.update_button.setFixedSize(16, 16)
|
||||||
|
self.update_button.setStyleSheet("""
|
||||||
|
QPushButton {
|
||||||
|
border: none;
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
QPushButton:hover {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
""")
|
||||||
|
self.update_button.setCursor(QCursor(Qt.CursorShape.PointingHandCursor))
|
||||||
|
self.update_button.setToolTip("Check for Updates")
|
||||||
|
self.update_button.clicked.connect(self.open_update_page)
|
||||||
|
|
||||||
|
bottom_layout.addWidget(self.update_button)
|
||||||
|
|
||||||
|
self.main_layout.addLayout(bottom_layout)
|
||||||
|
|
||||||
|
def open_update_page(self):
|
||||||
|
import webbrowser
|
||||||
|
webbrowser.open('https://github.com/afkarxyz/SpotifyFLAC/releases')
|
||||||
|
|
||||||
def validate_url(self, url):
|
def validate_url(self, url):
|
||||||
url = url.strip()
|
url = url.strip()
|
||||||
self.fetch_button.setEnabled(False)
|
self.fetch_button.setEnabled(False)
|
||||||
@@ -439,6 +479,7 @@ class SpotifyFlacGUI(QMainWindow):
|
|||||||
self.track_widget.show()
|
self.track_widget.show()
|
||||||
self.download_button.show()
|
self.download_button.show()
|
||||||
self.cancel_button.show()
|
self.cancel_button.show()
|
||||||
|
self.update_button.hide()
|
||||||
self.status_label.clear()
|
self.status_label.clear()
|
||||||
self.adjustWindowHeight()
|
self.adjustWindowHeight()
|
||||||
|
|
||||||
@@ -479,6 +520,7 @@ class SpotifyFlacGUI(QMainWindow):
|
|||||||
self.status_label.clear()
|
self.status_label.clear()
|
||||||
self.metadata = None
|
self.metadata = None
|
||||||
self.fetch_button.setEnabled(True)
|
self.fetch_button.setEnabled(True)
|
||||||
|
self.update_button.show()
|
||||||
self.setFixedHeight(180)
|
self.setFixedHeight(180)
|
||||||
|
|
||||||
def button_clicked(self):
|
def button_clicked(self):
|
||||||
@@ -499,6 +541,7 @@ class SpotifyFlacGUI(QMainWindow):
|
|||||||
self.track_widget.hide()
|
self.track_widget.hide()
|
||||||
self.input_widget.show()
|
self.input_widget.show()
|
||||||
self.metadata = None
|
self.metadata = None
|
||||||
|
self.update_button.show()
|
||||||
self.setFixedHeight(180)
|
self.setFixedHeight(180)
|
||||||
|
|
||||||
def start_download(self):
|
def start_download(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user