mirror of https://github.com/leafspark/AutoGGUF
58 lines
1.8 KiB
Python
58 lines
1.8 KiB
Python
from PyQt6.QtWidgets import *
|
|
from PyQt6.QtCore import *
|
|
from PyQt6.QtGui import *
|
|
import os
|
|
import sys
|
|
import psutil
|
|
import subprocess
|
|
import time
|
|
import signal
|
|
import json
|
|
import platform
|
|
import requests
|
|
import zipfile
|
|
from datetime import datetime
|
|
|
|
class TaskListItem(QWidget):
|
|
def __init__(self, task_name, log_file, parent=None):
|
|
super().__init__(parent)
|
|
self.task_name = task_name
|
|
self.log_file = log_file
|
|
self.status = "Pending"
|
|
layout = QHBoxLayout(self)
|
|
self.task_label = QLabel(task_name)
|
|
self.progress_bar = QProgressBar()
|
|
self.progress_bar.setRange(0, 100)
|
|
self.status_label = QLabel(self.status)
|
|
layout.addWidget(self.task_label)
|
|
layout.addWidget(self.progress_bar)
|
|
layout.addWidget(self.status_label)
|
|
self.progress_timer = QTimer(self)
|
|
self.progress_timer.timeout.connect(self.update_progress)
|
|
self.progress_value = 0
|
|
|
|
def update_status(self, status):
|
|
self.status = status
|
|
self.status_label.setText(status)
|
|
if status == "In Progress":
|
|
self.progress_bar.setRange(0, 100)
|
|
self.progress_timer.start(100)
|
|
elif status == "Completed":
|
|
self.progress_timer.stop()
|
|
self.progress_bar.setValue(100)
|
|
elif status == "Canceled":
|
|
self.progress_timer.stop()
|
|
self.progress_bar.setValue(0)
|
|
|
|
def set_error(self):
|
|
self.status = "Error"
|
|
self.status_label.setText("Error")
|
|
self.status_label.setStyleSheet("color: red;")
|
|
self.progress_bar.setRange(0, 100)
|
|
self.progress_timer.stop()
|
|
|
|
def update_progress(self):
|
|
self.progress_value = (self.progress_value + 1) % 101
|
|
self.progress_bar.setValue(self.progress_value)
|
|
|