8a05d5ff8f
The internal ytsage package name is kept deliberately - renaming it would touch every file and destroy the ability to merge upstream YTSage changes. - pyproject: distribution name sagetube v0.1.0, sagetube entrypoint (ytsage alias retained), URLs point at the Gitea repo with an Upstream link to YTSage. - Data dirs move to SageTube/ (fresh fork, fresh state) and the config file becomes sagetube_config.json; QApplication name and window title read SageTube. - About dialog credits Houmeres and links "Based on YTSage by oop7". - App self-update check against the upstream PyPI package is disabled by default; yt-dlp/deno/ffmpeg update flows are unaffected. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
import sys
|
|
|
|
from PySide6.QtWidgets import QApplication, QMessageBox
|
|
|
|
from .utils.ytsage_logger import logger
|
|
from .gui.ytsage_gui_main import YTSageApp # Import the main application class from ytsage_gui_main
|
|
|
|
|
|
def show_error_dialog(message):
|
|
# A QMessageBox needs a live QApplication; if startup failed before (or
|
|
# while) creating one, constructing the dialog would abort the process
|
|
# and swallow the real error.
|
|
if QApplication.instance() is None:
|
|
print(f"Application Error: {message}", file=sys.stderr)
|
|
return
|
|
error_dialog = QMessageBox()
|
|
error_dialog.setIcon(QMessageBox.Icon.Critical)
|
|
error_dialog.setText("Application Error")
|
|
error_dialog.setInformativeText(message)
|
|
error_dialog.setWindowTitle("Error")
|
|
error_dialog.exec()
|
|
|
|
|
|
def main():
|
|
try:
|
|
logger.info("Starting YTSage application")
|
|
app = QApplication(sys.argv)
|
|
app.setApplicationName("SageTube")
|
|
app.setDesktopFileName("sagetube")
|
|
|
|
window = YTSageApp() # Instantiate the main application class
|
|
window.show()
|
|
logger.info("Application window shown, entering main loop")
|
|
sys.exit(app.exec())
|
|
except Exception as e:
|
|
logger.critical(f"Critical application error: {e}", exc_info=True)
|
|
show_error_dialog(f"Critical error: {e}")
|
|
sys.exit(1)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|