feat: Additive merge of webui branch with PyQt GUI support

- Add abogen/pyqt/ package with full PyQt6 desktop GUI
- Restore PyQt GUI files (gui.py, book_handler.py, queue_manager_gui.py, voice_formula_gui.py, conversion.py)
- Add new shared modules from webui: book_parser.py, subtitle_utils.py, spacy_utils.py
- Add Linux libraries (libxcb-cursor) for Qt platform plugin support
- Add new epub parsing tests from webui branch
- Update pyproject.toml with dual entry points:
  - abogen: PyQt6 desktop GUI
  - abogen-web: Flask Web UI
- Add PyQt6 to dependencies
- Re-export PyQt classes from root modules for backwards compatibility
- Merge CHANGELOG.md entries (1.2.0-1.2.5 from webui)
- Update README.md with dual interface documentation

Implements #26 - shared core with separate UI folders
This commit is contained in:
JB
2025-12-22 05:51:21 -08:00
parent ede5343e0c
commit e2b2f610a6
32 changed files with 14863 additions and 38 deletions
+7 -5
View File
@@ -1,9 +1,11 @@
"""Legacy PyQt queue manager GUI removed."""
"""Backwards-compatible re-export of the PyQt queue manager.
The actual implementation lives in abogen.pyqt.queue_manager_gui.
"""
from __future__ import annotations
from abogen.pyqt.queue_manager_gui import * # noqa: F401, F403
from abogen.pyqt.queue_manager_gui import QueueManager
def __getattr__(name: str): # pragma: no cover - compatibility shim
raise AttributeError(
"The PyQt queue manager GUI has been removed. Use the web dashboard instead."
)
__all__ = ["QueueManager"]