From efe02c38f5a38805cc9a84e52c765309b010e41c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20B=C3=B6hning?= <1497707+bohning@users.noreply.github.com> Date: Sun, 20 Oct 2024 18:50:48 +0200 Subject: [PATCH 01/10] Add possibility to open karaoke apps from the syncer for the active song. --- CHANGELOG.md | 13 + src/usdb_syncer/gui/forms/MainWindow.ui | 78 +++- src/usdb_syncer/gui/forms/SettingsDialog.ui | 385 +++++++++++++++++- src/usdb_syncer/gui/mw.py | 45 ++ src/usdb_syncer/gui/resources/karedi.png | Bin 0 -> 81970 bytes .../gui/resources/music--arrow.png | Bin 0 -> 617 bytes src/usdb_syncer/gui/resources/performous.png | Bin 0 -> 17995 bytes src/usdb_syncer/gui/resources/resources.qrc | 8 + .../gui/resources/ultrastar-manager.png | Bin 0 -> 13910 bytes src/usdb_syncer/gui/resources/usdx.png | Bin 0 -> 40253 bytes src/usdb_syncer/gui/resources/vocaluxe.png | Bin 0 -> 13958 bytes .../gui/resources/yass-reloaded.png | Bin 0 -> 18269 bytes src/usdb_syncer/gui/resources/yass.png | Bin 0 -> 18194 bytes src/usdb_syncer/gui/settings_dialog.py | 99 ++++- src/usdb_syncer/gui/song_table/song_table.py | 25 ++ src/usdb_syncer/settings.py | 133 ++++++ src/usdb_syncer/utils.py | 1 - 17 files changed, 780 insertions(+), 7 deletions(-) create mode 100644 src/usdb_syncer/gui/resources/karedi.png create mode 100644 src/usdb_syncer/gui/resources/music--arrow.png create mode 100644 src/usdb_syncer/gui/resources/performous.png create mode 100644 src/usdb_syncer/gui/resources/ultrastar-manager.png create mode 100644 src/usdb_syncer/gui/resources/usdx.png create mode 100644 src/usdb_syncer/gui/resources/vocaluxe.png create mode 100644 src/usdb_syncer/gui/resources/yass-reloaded.png create mode 100644 src/usdb_syncer/gui/resources/yass.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 879703ed..b5bffa1c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,19 @@ ## Fixes +## Features + +- Third-party karaoke software can now be launched from within the Syncer, passing + the song directory as parameter. + +## Developer notes + + + +# Changes + +## Fixes + - Age-restricted content can now be successfully downloaded if you are logged in to YouTube in your browser. diff --git a/src/usdb_syncer/gui/forms/MainWindow.ui b/src/usdb_syncer/gui/forms/MainWindow.ui index 98f279ea..0d159387 100644 --- a/src/usdb_syncer/gui/forms/MainWindow.ui +++ b/src/usdb_syncer/gui/forms/MainWindow.ui @@ -186,7 +186,7 @@ 0 0 1540 - 22 + 24 @@ -237,15 +237,33 @@ :/icons/drawer.png:/icons/drawer.png + + + Open Song in + + + + :/icons/music--arrow.png:/icons/music--arrow.png + + + + + + + + + - - + + + + @@ -669,6 +687,60 @@ QAction::MenuRole::NoRole + + + + :/icons/karedi.png:/icons/karedi.png + + + Karedi + + + + + + :/icons/performous.png:/icons/performous.png + + + Performous + + + + + + :/icons/usdx.png:/icons/usdx.png + + + UltraStar Deluxe + + + + + + :/icons/ultrastar-manager.png:/icons/ultrastar-manager.png + + + UltraStar Manager + + + + + + :/icons/vocaluxe.png:/icons/vocaluxe.png + + + Vocaluxe + + + + + + :/icons/yass-reloaded.png:/icons/yass-reloaded.png + + + YASS Reloaded + + diff --git a/src/usdb_syncer/gui/forms/SettingsDialog.ui b/src/usdb_syncer/gui/forms/SettingsDialog.ui index 30376c40..82dc8543 100644 --- a/src/usdb_syncer/gui/forms/SettingsDialog.ui +++ b/src/usdb_syncer/gui/forms/SettingsDialog.ui @@ -7,7 +7,7 @@ 0 0 640 - 602 + 649 @@ -562,6 +562,385 @@ + + + App Paths + + + + + + UltraStar deluxe + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + + 0 + 0 + + + + + 32 + 32 + + + + + 32 + 32 + + + + + + + :/icons/usdx.png + + + true + + + + + + + + + + ... + + + + + + + + + + Vocaluxe + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + + 0 + 0 + + + + + 32 + 32 + + + + + 32 + 32 + + + + + + + :/icons/vocaluxe.png + + + true + + + + + + + + + + ... + + + + + + + + + + Performous + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + + 0 + 0 + + + + + 32 + 32 + + + + + 32 + 32 + + + + + + + :/icons/performous.png + + + true + + + + + + + + + + ... + + + + + + + + + + UltraStar Manager + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + + 0 + 0 + + + + + 32 + 32 + + + + + 32 + 32 + + + + + + + :/icons/ultrastar-manager.png + + + true + + + + + + + + + + ... + + + + + + + + + + YASS reloaded + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + + 0 + 0 + + + + + 32 + 32 + + + + + 32 + 32 + + + + + + + :/icons/yass-reloaded.png + + + true + + + + + + + + + + ... + + + + + + + + + + Karedi + + + + 6 + + + 6 + + + 6 + + + 6 + + + + + + 0 + 0 + + + + + 32 + 32 + + + + + 32 + 32 + + + + + + + :/icons/karedi.png + + + true + + + + + + + + + + ... + + + + + + + + @@ -589,7 +968,9 @@ - + + + buttonBox diff --git a/src/usdb_syncer/gui/mw.py b/src/usdb_syncer/gui/mw.py index d18d3419..14f704d9 100644 --- a/src/usdb_syncer/gui/mw.py +++ b/src/usdb_syncer/gui/mw.py @@ -105,6 +105,36 @@ def _setup_toolbar(self) -> None: (self.action_show_in_usdb, self._show_current_song_in_usdb), (self.action_post_comment_in_usdb, self._show_comment_dialog), (self.action_open_song_folder, self._open_current_song_folder), + ( + self.action_open_song_in_karedi, + lambda: self._open_current_song_in_app(settings.SupportedApps.KAREDI), + ), + ( + self.action_open_song_in_performous, + lambda: self._open_current_song_in_app( + settings.SupportedApps.PERFORMOUS + ), + ), + ( + self.action_open_song_in_ultrastar_manager, + lambda: self._open_current_song_in_app( + settings.SupportedApps.ULTRASTAR_MANAGER + ), + ), + ( + self.action_open_song_in_usdx, + lambda: self._open_current_song_in_app(settings.SupportedApps.USDX), + ), + ( + self.action_open_song_in_vocaluxe, + lambda: self._open_current_song_in_app(settings.SupportedApps.VOCALUXE), + ), + ( + self.action_open_song_in_yass_reloaded, + lambda: self._open_current_song_in_app( + settings.SupportedApps.YASS_RELOADED + ), + ), (self.action_delete, self.table.delete_selected_songs), (self.action_pin, self.table.set_pin_selected_songs), ): @@ -281,6 +311,21 @@ def _open_current_song_folder(self) -> None: else: _logger.info("No current song.") + def _open_current_song_in_app(self, app: settings.SupportedApps) -> None: + if song := self.table.current_song(): + if song.sync_meta: + if song.sync_meta.path.exists(): + settings.SupportedApps.open_app(app, song.sync_meta.path.parent) + else: + with db.transaction(): + song.remove_sync_meta() + events.SongChanged(song.song_id) + _logger.info("Song does not exist locally anymore.") + else: + _logger.info("Song does not exist locally.") + else: + _logger.info("No current song.") + def closeEvent(self, event: QtGui.QCloseEvent) -> None: def on_done(result: progress.Result) -> None: result.log_error() diff --git a/src/usdb_syncer/gui/resources/karedi.png b/src/usdb_syncer/gui/resources/karedi.png new file mode 100644 index 0000000000000000000000000000000000000000..dd8a545086a787e2be649e3d88bce27e58873781 GIT binary patch literal 81970 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