diff options
| author | exislow <exislow@users.noreply.github.com> | 2024-03-22 15:50:23 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-03-22 15:50:23 +0100 |
| commit | 0461c53be4191e18d5bba1e333de0d5ad7527bd0 (patch) | |
| tree | 4587ab7208dc4435ee119c9f8812325770f0b654 /tidal_dl_ng/dialog.py | |
| parent | 134836d471c3accfbf323dbcc27d35a40b48ae6c (diff) | |
| parent | d331f93c911c4d008904177de15619b30955227e (diff) | |
| download | tidal-dl-ng-0461c53be4191e18d5bba1e333de0d5ad7527bd0.tar.gz | |
Merge pull request #66 from exislow/63-feature-provide-feedback-if-ffmpeg-not-found-on-path
63 feature provide feedback if ffmpeg not found on path
Diffstat (limited to 'tidal_dl_ng/dialog.py')
| -rw-r--r-- | tidal_dl_ng/dialog.py | 72 |
1 files changed, 50 insertions, 22 deletions
diff --git a/tidal_dl_ng/dialog.py b/tidal_dl_ng/dialog.py index b1901fd..34735a6 100644 --- a/tidal_dl_ng/dialog.py +++ b/tidal_dl_ng/dialog.py @@ -2,6 +2,7 @@ import os.path from enum import Enum from pathlib import Path +from helper.path import is_installed_ffmpeg from PySide6 import QtCore, QtGui, QtWidgets from tidalapi import Quality as QualityAudio @@ -86,27 +87,9 @@ class DialogPreferences(QtWidgets.QDialog): pixmapi: QtWidgets.QStyle.StandardPixmap = QtWidgets.QStyle.SP_MessageBoxQuestion self.icon = self.style().standardIcon(pixmapi) - self.parameters_checkboxes = [ - "lyrics_embed", - "lyrics_file", - "video_download", - "download_delay", - "video_convert_mp4", - ] - self.parameters_combo = [ - ("skip_existing", SkipExisting), - ("quality_audio", QualityAudio), - ("quality_video", QualityVideo), - ("metadata_cover_dimension", CoverDimensions), - ] - self.parameters_line_edit = [ - "download_base_path", - "format_album", - "format_playlist", - "format_mix", - "format_track", - "format_video", - ] + self._init_checkboxes() + self._init_comboboxes() + self._init_line_edit() # Create an instance of the GUI self.ui = Ui_DialogSettings() @@ -115,9 +98,54 @@ class DialogPreferences(QtWidgets.QDialog): self.ui.setupUi(self) # Set data. self.gui_populate() + self._init_signals() self.exec() + def _init_signals(self): + self.ui.cb_video_convert_mp4.stateChanged.connect(self.on_cb_video_convert_mp4) + + def on_cb_video_convert_mp4(self, int): + if self.ui.cb_video_convert_mp4.isChecked(): + # Check if ffmpeg is in PATH otherwise show error message. + if not is_installed_ffmpeg(): + self.ui.cb_video_convert_mp4.setChecked(False) + self.ui.cb_video_convert_mp4.setCheckState(QtCore.Qt.CheckState.Unchecked) + QtWidgets.QMessageBox.critical( + self, + "FFmpeg not found!", + "Either FFmpeg is not installed on your computer or not set within " + "your PATH variable. You cannot activate this option until FFmpeg " + "is correctly installed and set to your environmental PATH variable.", + ) + + def _init_line_edit(self): + self.parameters_line_edit = [ + "download_base_path", + "format_album", + "format_playlist", + "format_mix", + "format_track", + "format_video", + ] + + def _init_comboboxes(self): + self.parameters_combo = [ + ("skip_existing", SkipExisting), + ("quality_audio", QualityAudio), + ("quality_video", QualityVideo), + ("metadata_cover_dimension", CoverDimensions), + ] + + def _init_checkboxes(self): + self.parameters_checkboxes = [ + "lyrics_embed", + "lyrics_file", + "video_download", + "download_delay", + "video_convert_mp4", + ] + def gui_populate(self): self.populate_checkboxes() self.populate_combo() @@ -190,7 +218,7 @@ class DialogPreferences(QtWidgets.QDialog): checkbox.setChecked(getattr(self.data, pn)) def accept(self): - # Get settings. TODO + # Get settings. self.to_settings() self.done(1) |
