mirror of
https://github.com/KeksPirates/SoftwareManager.git
synced 2026-08-04 01:49:42 +02:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4b5c36030d | |||
| cc5f6a804c | |||
| b783d0a0cb | |||
| d057624548 |
@@ -13,6 +13,7 @@ from PySide6.QtWidgets import (
|
|||||||
QSpinBox,
|
QSpinBox,
|
||||||
QCheckBox,
|
QCheckBox,
|
||||||
)
|
)
|
||||||
|
import platform
|
||||||
|
|
||||||
|
|
||||||
def settings_dialog(self):
|
def settings_dialog(self):
|
||||||
@@ -32,6 +33,8 @@ def settings_dialog(self):
|
|||||||
update_checkbox_layout = QHBoxLayout()
|
update_checkbox_layout = QHBoxLayout()
|
||||||
|
|
||||||
# ignore updates checkbox
|
# ignore updates checkbox
|
||||||
|
|
||||||
|
if platform.system() == "Windows":
|
||||||
update_checkbox = QCheckBox()
|
update_checkbox = QCheckBox()
|
||||||
update_checkbox_container.setLayout(update_checkbox_layout)
|
update_checkbox_container.setLayout(update_checkbox_layout)
|
||||||
update_checkbox_layout.addWidget(QLabel("Ignore Updates: "))
|
update_checkbox_layout.addWidget(QLabel("Ignore Updates: "))
|
||||||
|
|||||||
+30
-9
@@ -20,7 +20,7 @@ from PySide6.QtWidgets import (
|
|||||||
QStyleOptionButton,
|
QStyleOptionButton,
|
||||||
QStyledItemDelegate,
|
QStyledItemDelegate,
|
||||||
QApplication,
|
QApplication,
|
||||||
)
|
)
|
||||||
|
|
||||||
from PySide6.QtGui import QIcon, QAction, QCloseEvent, QImage, QPixmap
|
from PySide6.QtGui import QIcon, QAction, QCloseEvent, QImage, QPixmap
|
||||||
import darkdetect
|
import darkdetect
|
||||||
@@ -210,9 +210,11 @@ class MainWindow(QtWidgets.QMainWindow, QWidget):
|
|||||||
elif col == 4:
|
elif col == 4:
|
||||||
return f"{download.download_speed_string()}"
|
return f"{download.download_speed_string()}"
|
||||||
elif col == 5:
|
elif col == 5:
|
||||||
pass
|
return f"{download.completed_length_string()}"
|
||||||
elif col == 6:
|
elif col == 6:
|
||||||
return f"{download.total_length_string()}"
|
return f"{download.total_length_string()}"
|
||||||
|
elif col == 7:
|
||||||
|
return f"{download.eta_string()}"
|
||||||
|
|
||||||
if role == Qt.UserRole and col == 0:
|
if role == Qt.UserRole and col == 0:
|
||||||
return download.is_paused
|
return download.is_paused
|
||||||
@@ -221,12 +223,31 @@ class MainWindow(QtWidgets.QMainWindow, QWidget):
|
|||||||
|
|
||||||
def toggle_pause_resume(self, row):
|
def toggle_pause_resume(self, row):
|
||||||
download = state.downloads[row]
|
download = state.downloads[row]
|
||||||
|
if download.progress == 100:
|
||||||
|
if state.download_path is not None and os.path.exists(state.download_path):
|
||||||
|
if platform.system() == "Windows":
|
||||||
|
os.startfile(os.path.normpath(state.download_path))
|
||||||
|
elif platform.system() == "Linux":
|
||||||
|
subprocess.Popen(["xdg-open", state.download_path])
|
||||||
|
elif platform.system() == "Darwin":
|
||||||
|
subprocess.Popen(["open", state.download_path])
|
||||||
|
else:
|
||||||
|
if platform.system() == "Windows":
|
||||||
|
os.startfile(os.path.normpath(os.getcwd()))
|
||||||
|
elif platform.system() == "Linux":
|
||||||
|
subprocess.Popen(["xdg-open", os.getcwd()])
|
||||||
|
elif platform.system() == "Darwin":
|
||||||
|
subprocess.Popen(["open", os.getcwd()])
|
||||||
|
return
|
||||||
|
|
||||||
if download.is_paused:
|
if download.is_paused:
|
||||||
download.resume()
|
download.resume()
|
||||||
|
consoleLog(f"Resumed download: {download.name}", True)
|
||||||
else:
|
else:
|
||||||
download.pause()
|
download.pause()
|
||||||
|
consoleLog(f"Paused download: {download.name}", True)
|
||||||
idx = self.index(row, 0)
|
idx = self.index(row, 0)
|
||||||
self.dataChanged.emit(idx, idx, [Qt.DisplayRole, Qt.UserRole])
|
self.dataChanged.emit(idx, idx, [Qt.ItemDataRole.DisplayRole, Qt.ItemDataRole.UserRole])
|
||||||
|
|
||||||
class PauseResumeDelegate(QStyledItemDelegate):
|
class PauseResumeDelegate(QStyledItemDelegate):
|
||||||
clicked = Signal(int)
|
clicked = Signal(int)
|
||||||
@@ -237,10 +258,16 @@ class MainWindow(QtWidgets.QMainWindow, QWidget):
|
|||||||
return
|
return
|
||||||
|
|
||||||
paused = index.data(Qt.UserRole)
|
paused = index.data(Qt.UserRole)
|
||||||
|
download = state.downloads[index.row()]
|
||||||
|
|
||||||
button = QStyleOptionButton()
|
button = QStyleOptionButton()
|
||||||
button.rect = option.rect
|
button.rect = option.rect
|
||||||
|
|
||||||
|
if download.progress == 100:
|
||||||
|
button.text = "📁"
|
||||||
|
else:
|
||||||
button.text = "▶︎" if paused else "⏸︎"
|
button.text = "▶︎" if paused else "⏸︎"
|
||||||
|
|
||||||
button.state = QStyle.State_Enabled
|
button.state = QStyle.State_Enabled
|
||||||
|
|
||||||
QApplication.style().drawControl(
|
QApplication.style().drawControl(
|
||||||
@@ -266,12 +293,6 @@ class MainWindow(QtWidgets.QMainWindow, QWidget):
|
|||||||
def on_pause_resume_clicked(row):
|
def on_pause_resume_clicked(row):
|
||||||
download_model.toggle_pause_resume(row)
|
download_model.toggle_pause_resume(row)
|
||||||
|
|
||||||
download = state.downloads[row]
|
|
||||||
if download.is_paused:
|
|
||||||
download.pause()
|
|
||||||
else:
|
|
||||||
download.resume()
|
|
||||||
|
|
||||||
delegate = PauseResumeDelegate(self.downloadList)
|
delegate = PauseResumeDelegate(self.downloadList)
|
||||||
self.downloadList.setItemDelegateForColumn(0, delegate)
|
self.downloadList.setItemDelegateForColumn(0, delegate)
|
||||||
delegate.clicked.connect(on_pause_resume_clicked)
|
delegate.clicked.connect(on_pause_resume_clicked)
|
||||||
|
|||||||
Reference in New Issue
Block a user