File indexing completed on 2024-04-21 12:23:51

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