File indexing completed on 2024-03-24 04:50:55
0001 /* AUDEX CDDA EXTRACTOR 0002 * SPDX-FileCopyrightText: Copyright (C) 2007 Marco Nelles 0003 * <https://userbase.kde.org/Audex> 0004 * 0005 * SPDX-License-Identifier: GPL-3.0-or-later 0006 */ 0007 0008 #ifndef PROFILEDATADIALOG_H 0009 #define PROFILEDATADIALOG_H 0010 0011 #include <QStackedWidget> 0012 #include <QWidget> 0013 0014 #include <QDialog> 0015 #include <QPushButton> 0016 0017 #include "models/profilemodel.h" 0018 #include "utils/encoderassistant.h" 0019 0020 #include "widgets/customwidget.h" 0021 #include "widgets/faacwidget.h" 0022 #include "widgets/flacwidget.h" 0023 #include "widgets/lamewidget.h" 0024 #include "widgets/oggencwidget.h" 0025 #include "widgets/opusencwidget.h" 0026 #include "widgets/wavewidget.h" 0027 0028 #include "dialogs/errordialog.h" 0029 #include "dialogs/profiledatacoverdialog.h" 0030 #include "dialogs/profiledatacuesheetdialog.h" 0031 #include "dialogs/profiledatahashlistdialog.h" 0032 #include "dialogs/profiledatainfodialog.h" 0033 #include "dialogs/profiledatalogfiledialog.h" 0034 #include "dialogs/profiledataplaylistdialog.h" 0035 #include "dialogs/profiledatasinglefiledialog.h" 0036 #include "dialogs/schemewizarddialog.h" 0037 0038 #include "ui_profiledatawidgetUI.h" 0039 0040 class ProfileDataDialog : public QDialog 0041 { 0042 Q_OBJECT 0043 0044 public: 0045 ProfileDataDialog(ProfileModel *profileModel, const int profileRow, QWidget *parent = nullptr); 0046 ~ProfileDataDialog() override; 0047 0048 private Q_SLOTS: 0049 void set_encoder(const int encoder); 0050 void set_encoder_by_combobox(const int index); 0051 void trigger_changed(); 0052 0053 void enable_settings_cover(bool enabled); 0054 void enable_settings_playlist(bool enabled); 0055 void enable_settings_info(bool enabled); 0056 void enable_settings_hashlist(bool enabled); 0057 void enable_settings_cuesheet(bool enabled); 0058 void enable_settings_logfile(bool enabled); 0059 void enable_settings_singlefile(bool enabled); 0060 0061 void disable_playlist(bool disabled); 0062 0063 void enable_filenames(bool enabled); 0064 void disable_filenames(bool disabled); 0065 0066 void scheme_wizard(); 0067 0068 void cover_settings(); 0069 void playlist_settings(); 0070 void info_settings(); 0071 void hashlist_settings(); 0072 void cuesheet_settings(); 0073 void logfile_settings(); 0074 void singlefile_settings(); 0075 0076 void slotAccepted(); 0077 void slotApplied(); 0078 void slotRejected(); 0079 0080 private: 0081 Ui::ProfileDataWidgetUI ui; 0082 ProfileModel *profile_model; 0083 0084 QPushButton *applyButton; 0085 0086 int profile_row; 0087 bool new_profile_mode; 0088 0089 lameWidget *lame_widget; 0090 Parameters lame_parameters; 0091 oggencWidget *oggenc_widget; 0092 Parameters oggenc_parameters; 0093 opusencWidget *opusenc_widget; 0094 Parameters opusenc_parameters; 0095 flacWidget *flac_widget; 0096 Parameters flac_parameters; 0097 faacWidget *faac_widget; 0098 Parameters faac_parameters; 0099 waveWidget *wave_widget; 0100 Parameters wave_parameters; 0101 customWidget *custom_widget; 0102 Parameters custom_parameters; 0103 void set_encoder_widget(const EncoderAssistant::Encoder encoder); 0104 0105 bool cover_scale; 0106 QSize cover_size; 0107 QString cover_format; 0108 QString cover_scheme; 0109 0110 QString playlist_format; 0111 QString playlist_scheme; 0112 bool playlist_abs_file_path; 0113 bool playlist_utf8; 0114 0115 QStringList infofile_text; 0116 QString infofile_scheme; 0117 QString infofile_suffix; 0118 0119 QString hashlist_format; 0120 QString hashlist_scheme; 0121 0122 QString cuesheet_scheme; 0123 bool cuesheet_write_mcn_and_isrc; 0124 0125 QString logfile_scheme; 0126 bool logfile_write_timestamps; 0127 0128 QString singlefile_scheme; 0129 0130 bool save(); 0131 0132 Error error; 0133 }; 0134 0135 #endif