mirror of
https://github.com/denizsafak/abogen.git
synced 2026-07-18 13:40:27 +02:00
disabling add to queue button on start / after queuing an item - fixes #30
This commit is contained in:
+23
-9
@@ -185,10 +185,22 @@ class InputBox(QLabel):
|
|||||||
name = os.path.basename(file_path)
|
name = os.path.basename(file_path)
|
||||||
char_count = "N/A"
|
char_count = "N/A"
|
||||||
|
|
||||||
|
def parse_size(size_str):
|
||||||
|
# Use regex to extract the numeric part
|
||||||
|
match = re.match(r"([\d.]+)", size_str)
|
||||||
|
if match:
|
||||||
|
return float(match.group(1))
|
||||||
|
raise ValueError(f"Invalid size format: {size_str}")
|
||||||
|
|
||||||
|
|
||||||
# Format numbers with commas
|
# Format numbers with commas
|
||||||
def format_num(n):
|
def format_num(n):
|
||||||
try:
|
try:
|
||||||
return f"{int(n):,}"
|
if isinstance(n, str):
|
||||||
|
size = int(parse_size(n))
|
||||||
|
return f"{size:,}"
|
||||||
|
else:
|
||||||
|
return f"{n:,}"
|
||||||
except Exception:
|
except Exception:
|
||||||
return str(n)
|
return str(n)
|
||||||
|
|
||||||
@@ -819,6 +831,7 @@ class abogen(QWidget):
|
|||||||
# Add to queue button
|
# Add to queue button
|
||||||
self.btn_add_to_queue = QPushButton("Add to Queue", self)
|
self.btn_add_to_queue = QPushButton("Add to Queue", self)
|
||||||
self.btn_add_to_queue.setFixedHeight(40)
|
self.btn_add_to_queue.setFixedHeight(40)
|
||||||
|
self.btn_add_to_queue.setEnabled(False)
|
||||||
self.btn_add_to_queue.clicked.connect(self.add_to_queue)
|
self.btn_add_to_queue.clicked.connect(self.add_to_queue)
|
||||||
queue_row.addWidget(self.btn_add_to_queue)
|
queue_row.addWidget(self.btn_add_to_queue)
|
||||||
# Manage queue button
|
# Manage queue button
|
||||||
@@ -921,6 +934,8 @@ class abogen(QWidget):
|
|||||||
file_path # Set the displayed file path for text files
|
file_path # Set the displayed file path for text files
|
||||||
)
|
)
|
||||||
self.input_box.set_file_info(file_path)
|
self.input_box.set_file_info(file_path)
|
||||||
|
# Enable add to queue button
|
||||||
|
self.btn_add_to_queue.setEnabled(True)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self._show_error_message_box(
|
self._show_error_message_box(
|
||||||
"File Dialog Error", f"Could not open file dialog:\n{e}"
|
"File Dialog Error", f"Could not open file dialog:\n{e}"
|
||||||
@@ -1270,6 +1285,7 @@ class abogen(QWidget):
|
|||||||
enabled = bool(self.queued_items)
|
enabled = bool(self.queued_items)
|
||||||
self.btn_start_queue.setEnabled(enabled)
|
self.btn_start_queue.setEnabled(enabled)
|
||||||
self.btn_manage_queue.setEnabled(enabled)
|
self.btn_manage_queue.setEnabled(enabled)
|
||||||
|
self.btn_add_to_queue.setEnabled(False)
|
||||||
|
|
||||||
def enqueue(self, item : QueuedItem):
|
def enqueue(self, item : QueuedItem):
|
||||||
self.queued_items.append(item)
|
self.queued_items.append(item)
|
||||||
@@ -1344,11 +1360,11 @@ class abogen(QWidget):
|
|||||||
# Start conversion for the queued item
|
# Start conversion for the queued item
|
||||||
self.start_conversion()
|
self.start_conversion()
|
||||||
|
|
||||||
def queue_item_conversion_finished(self, message, output_path):
|
def queue_item_conversion_finished(self):
|
||||||
self.go_back_ui()
|
self.go_back_ui()
|
||||||
self.convert_first_queued_item()
|
self.convert_first_queued_item()
|
||||||
|
|
||||||
def get_voice_formula(self):
|
def get_voice_formula(self) -> str:
|
||||||
if self.mixed_voice_state:
|
if self.mixed_voice_state:
|
||||||
formula_components = [
|
formula_components = [
|
||||||
f"{name}*{weight}" for name, weight in self.mixed_voice_state
|
f"{name}*{weight}" for name, weight in self.mixed_voice_state
|
||||||
@@ -1357,7 +1373,7 @@ class abogen(QWidget):
|
|||||||
else:
|
else:
|
||||||
return self.selected_voice
|
return self.selected_voice
|
||||||
|
|
||||||
def get_selected_lang(self, voice_formula):
|
def get_selected_lang(self, voice_formula) -> str:
|
||||||
if self.selected_profile_name:
|
if self.selected_profile_name:
|
||||||
from voice_profiles import load_profiles
|
from voice_profiles import load_profiles
|
||||||
entry = load_profiles().get(self.selected_profile_name, {})
|
entry = load_profiles().get(self.selected_profile_name, {})
|
||||||
@@ -1368,8 +1384,9 @@ class abogen(QWidget):
|
|||||||
if not selected_lang:
|
if not selected_lang:
|
||||||
m = re.search(r"\b([a-z])", voice_formula)
|
m = re.search(r"\b([a-z])", voice_formula)
|
||||||
selected_lang = m.group(1) if m else None
|
selected_lang = m.group(1) if m else None
|
||||||
|
return selected_lang
|
||||||
|
|
||||||
def get_actual_subtitle_mode(self):
|
def get_actual_subtitle_mode(self) -> str:
|
||||||
return (
|
return (
|
||||||
"Disabled"
|
"Disabled"
|
||||||
if not self.subtitle_combo.isEnabled()
|
if not self.subtitle_combo.isEnabled()
|
||||||
@@ -1472,10 +1489,6 @@ class abogen(QWidget):
|
|||||||
self.conversion_thread.conversion_finished.connect(
|
self.conversion_thread.conversion_finished.connect(
|
||||||
self.on_conversion_finished
|
self.on_conversion_finished
|
||||||
)
|
)
|
||||||
# TODO remove
|
|
||||||
# self.conversion_thread.conversion_finished.connect(
|
|
||||||
# self.queue_item_conversion_finished
|
|
||||||
# )
|
|
||||||
|
|
||||||
# Connect chapters_detected signal
|
# Connect chapters_detected signal
|
||||||
self.conversion_thread.chapters_detected.connect(
|
self.conversion_thread.chapters_detected.connect(
|
||||||
@@ -1552,6 +1565,7 @@ class abogen(QWidget):
|
|||||||
self.log_text.moveCursor(QTextCursor.End)
|
self.log_text.moveCursor(QTextCursor.End)
|
||||||
self.log_text.ensureCursorVisible()
|
self.log_text.ensureCursorVisible()
|
||||||
save_config(self.config)
|
save_config(self.config)
|
||||||
|
# Start new queued item, if we're using a queued conversion
|
||||||
self.queue_item_conversion_finished()
|
self.queue_item_conversion_finished()
|
||||||
|
|
||||||
def reset_ui(self):
|
def reset_ui(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user