summaryrefslogtreecommitdiff
path: root/tidal_dl_ng/dialog.py
diff options
context:
space:
mode:
authorexislow <exislow@users.noreply.github.com>2024-03-22 15:50:23 +0100
committerGitHub <noreply@github.com>2024-03-22 15:50:23 +0100
commit0461c53be4191e18d5bba1e333de0d5ad7527bd0 (patch)
tree4587ab7208dc4435ee119c9f8812325770f0b654 /tidal_dl_ng/dialog.py
parent134836d471c3accfbf323dbcc27d35a40b48ae6c (diff)
parentd331f93c911c4d008904177de15619b30955227e (diff)
downloadtidal-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.py72
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)