File indexing completed on 2024-04-28 08:40:22

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 #include "faacwidget.h"
0009 
0010 #include <QDebug>
0011 
0012 faacWidget::faacWidget(Parameters *parameters, QWidget *parent)
0013     : faacWidgetUI(parent)
0014 {
0015     Q_UNUSED(parent);
0016 
0017     this->parameters = parameters;
0018     if (!parameters) {
0019         qDebug() << "ParameterString is NULL!";
0020         return;
0021     }
0022 
0023     horizontalSlider_quality->setValue(parameters->value(ENCODER_FAAC_QUALITY_KEY, ENCODER_FAAC_QUALITY).toInt());
0024     kintspinbox_quality->setValue(parameters->value(ENCODER_FAAC_QUALITY_KEY, ENCODER_FAAC_QUALITY).toInt());
0025     checkBox_embedcover->setChecked(parameters->value(ENCODER_FAAC_EMBED_COVER_KEY).toBool());
0026     qlineedit_suffix->setText(parameters->value(ENCODER_FAAC_SUFFIX_KEY, ENCODER_FAAC_SUFFIX).toString());
0027 
0028     connect(horizontalSlider_quality, SIGNAL(valueChanged(int)), this, SLOT(quality_changed_by_slider(int)));
0029     connect(horizontalSlider_quality, SIGNAL(valueChanged(int)), this, SLOT(trigger_changed()));
0030 
0031     connect(kintspinbox_quality, SIGNAL(valueChanged(int)), this, SLOT(quality_changed_by_spinbox(int)));
0032     connect(kintspinbox_quality, SIGNAL(valueChanged(int)), this, SLOT(trigger_changed()));
0033 
0034     connect(checkBox_embedcover, SIGNAL(toggled(bool)), this, SLOT(trigger_changed()));
0035 
0036     connect(qlineedit_suffix, SIGNAL(textEdited(const QString &)), this, SLOT(trigger_changed()));
0037 
0038     changed = false;
0039 }
0040 
0041 faacWidget::~faacWidget()
0042 {
0043 }
0044 
0045 bool faacWidget::save()
0046 {
0047     bool success = true;
0048 
0049     parameters->setValue(ENCODER_FAAC_QUALITY_KEY, horizontalSlider_quality->value());
0050     parameters->setValue(ENCODER_FAAC_EMBED_COVER_KEY, checkBox_embedcover->isChecked());
0051     parameters->setValue(ENCODER_FAAC_SUFFIX_KEY, qlineedit_suffix->text());
0052 
0053     changed = false;
0054 
0055     return success;
0056 }
0057 
0058 void faacWidget::quality_changed_by_slider(int quality)
0059 {
0060     kintspinbox_quality->blockSignals(true);
0061     kintspinbox_quality->setValue(quality);
0062     kintspinbox_quality->blockSignals(false);
0063 }
0064 
0065 void faacWidget::quality_changed_by_spinbox(int quality)
0066 {
0067     horizontalSlider_quality->blockSignals(true);
0068     horizontalSlider_quality->setValue(quality);
0069     horizontalSlider_quality->blockSignals(false);
0070 }
0071 
0072 void faacWidget::trigger_changed()
0073 {
0074     changed = (horizontalSlider_quality->value() != parameters->value(ENCODER_FAAC_QUALITY_KEY, ENCODER_FAAC_QUALITY).toInt()
0075                || checkBox_embedcover->isChecked() != parameters->value(ENCODER_FAAC_EMBED_COVER_KEY).toBool()
0076                || qlineedit_suffix->text() != parameters->value(ENCODER_FAAC_SUFFIX_KEY, ENCODER_FAAC_SUFFIX).toString());
0077 
0078     Q_EMIT triggerChanged();
0079 }