File indexing completed on 2024-04-21 04:48:17

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 "flacwidget.h"
0009 
0010 #include <QDebug>
0011 
0012 flacWidget::flacWidget(Parameters *parameters, QWidget *parent)
0013     : flacWidgetUI(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_compression->setValue(parameters->value(ENCODER_FLAC_COMPRESSION_KEY, ENCODER_FLAC_COMPRESSION).toInt());
0024     kintspinbox_compression->setValue(parameters->value(ENCODER_FLAC_COMPRESSION_KEY, ENCODER_FLAC_COMPRESSION).toInt());
0025 
0026     checkBox_embedcover->setChecked(parameters->value(ENCODER_FLAC_EMBED_COVER_KEY).toBool());
0027     qlineedit_suffix->setText(parameters->value(ENCODER_FLAC_SUFFIX_KEY, ENCODER_FLAC_SUFFIX).toString());
0028 
0029     connect(horizontalSlider_compression, SIGNAL(valueChanged(int)), this, SLOT(compression_changed_by_slider(int)));
0030     connect(horizontalSlider_compression, SIGNAL(valueChanged(int)), this, SLOT(trigger_changed()));
0031 
0032     connect(kintspinbox_compression, SIGNAL(valueChanged(int)), this, SLOT(compression_changed_by_spinbox(int)));
0033     connect(kintspinbox_compression, SIGNAL(valueChanged(int)), this, SLOT(trigger_changed()));
0034 
0035     connect(checkBox_embedcover, SIGNAL(toggled(bool)), this, SLOT(trigger_changed()));
0036     connect(qlineedit_suffix, SIGNAL(textEdited(const QString &)), this, SLOT(trigger_changed()));
0037 
0038     changed = false;
0039 }
0040 
0041 flacWidget::~flacWidget()
0042 {
0043 }
0044 
0045 bool flacWidget::save()
0046 {
0047     bool success = true;
0048 
0049     parameters->setValue(ENCODER_FLAC_COMPRESSION_KEY, horizontalSlider_compression->value());
0050     parameters->setValue(ENCODER_FLAC_EMBED_COVER_KEY, checkBox_embedcover->isChecked());
0051     parameters->setValue(ENCODER_FLAC_SUFFIX_KEY, qlineedit_suffix->text());
0052 
0053     changed = false;
0054 
0055     return success;
0056 }
0057 
0058 void flacWidget::compression_changed_by_slider(int compression)
0059 {
0060     kintspinbox_compression->blockSignals(true);
0061     kintspinbox_compression->setValue(compression);
0062     kintspinbox_compression->blockSignals(false);
0063 }
0064 
0065 void flacWidget::compression_changed_by_spinbox(int compression)
0066 {
0067     horizontalSlider_compression->blockSignals(true);
0068     horizontalSlider_compression->setValue(compression);
0069     horizontalSlider_compression->blockSignals(false);
0070 }
0071 
0072 void flacWidget::trigger_changed()
0073 {
0074     changed = (horizontalSlider_compression->value() != parameters->value(ENCODER_FLAC_COMPRESSION_KEY, ENCODER_FLAC_COMPRESSION).toInt()
0075                || checkBox_embedcover->isChecked() != parameters->value(ENCODER_LAME_EMBED_COVER_KEY).toBool()
0076                || qlineedit_suffix->text() != parameters->value(ENCODER_FLAC_SUFFIX_KEY, ENCODER_FLAC_SUFFIX).toString());
0077 
0078     Q_EMIT triggerChanged();
0079 }