list of queued items, unfinished adding of queued items - #30

This commit is contained in:
Juraj Borza
2025-06-30 12:10:59 +02:00
parent bc4ae106c1
commit d08ab54d2b
2 changed files with 75 additions and 1 deletions
+59
View File
@@ -4,6 +4,7 @@ import tempfile
import platform import platform
import base64 import base64
import re import re
from abogen.queued_item import QueuedItem
import hf_tracker import hf_tracker
import hashlib # Added for cache path generation import hashlib # Added for cache path generation
from PyQt5.QtWidgets import ( from PyQt5.QtWidgets import (
@@ -560,6 +561,9 @@ class abogen(QWidget):
if platform.system() == "Windows": if platform.system() == "Windows":
ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID("abogen") ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID("abogen")
# Queued items list
self.queued_items = []
self.initUI() self.initUI()
self.speed_slider.setValue(int(self.config.get("speed", 1.00) * 100)) self.speed_slider.setValue(int(self.config.get("speed", 1.00) * 100))
self.update_speed_label() self.update_speed_label()
@@ -808,6 +812,26 @@ class abogen(QWidget):
controls_layout.addLayout(gpu_layout) controls_layout.addLayout(gpu_layout)
# Manage queue button, start queue button
queue_row = QHBoxLayout()
# Add to queue button
self.btn_add_to_queue = QPushButton("Add to Queue", self)
self.btn_add_to_queue.setFixedHeight(40)
self.btn_add_to_queue.clicked.connect(self.add_to_queue)
queue_row.addWidget(self.btn_add_to_queue)
# Manage queue button
self.btn_manage_queue = QPushButton("Manage Queue", self)
self.btn_manage_queue.setFixedHeight(40)
self.btn_manage_queue.clicked.connect(self.manage_queue)
queue_row.addWidget(self.btn_manage_queue)
# Start queue button
self.btn_start_queue = QPushButton("Start Queue", self)
self.btn_start_queue.setFixedHeight(40)
self.btn_start_queue.clicked.connect(self.start_queue)
queue_row.addWidget(self.btn_start_queue)
controls_layout.addLayout(queue_row)
# Start button # Start button
self.btn_start = QPushButton("Start", self) self.btn_start = QPushButton("Start", self)
self.btn_start.setFixedHeight(60) self.btn_start.setFixedHeight(60)
@@ -1239,6 +1263,41 @@ class abogen(QWidget):
self.progress_bar.repaint() self.progress_bar.repaint()
QApplication.processEvents() QApplication.processEvents()
def add_to_queue(self):
if not self.selected_file:
self.input_box.set_error("Please add a file.")
return
selected_lang = None
voice_formula = None
actual_subtitle_mode = None
item = QueuedItem(
file_name=self.selected_file,
lang_code=selected_lang, # TODO copy from start_conversion
speed=self.speed_slider.value() / 100.0,
voice=voice_formula, # TODO copy from start_conversion
save_option=self.save_option,
output_folder=self.selected_output_folder,
subtitle_mode=actual_subtitle_mode, # TODO copy from start_conversion
output_format=self.selected_format,
total_char_count=self.char_count
)
self.queued_items.append(item)
def manage_queue(self):
if not self.queued_items:
self.input_box.set_error("Queue is empty.")
return
# TODO show a dialog to manage the queue
pass
def start_queue(self):
if not self.queued_items:
self.input_box.set_error("Queue is empty.")
return
# TODO process the queue
pass
def start_conversion(self): def start_conversion(self):
if not self.selected_file: if not self.selected_file:
self.input_box.set_error("Please add a file.") self.input_box.set_error("Please add a file.")
+15
View File
@@ -0,0 +1,15 @@
# represents a queued item - book, chapters, voice, etc.
from dataclasses import dataclass
@dataclass
class QueuedItem:
file_name: str
lang_code: str
speed: float
voice: str
save_option: str
output_folder: str
subtitle_mode: str
output_format: str
total_char_count: int
use_gpu: bool