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

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 "customwidget.h"
0009 
0010 #include <QDebug>
0011 
0012 customWidget::customWidget(Parameters *parameters, QWidget *parent)
0013     : customWidgetUI(parent)
0014 {
0015     Q_UNUSED(parent);
0016 
0017     this->parameters = parameters;
0018     if (!parameters) {
0019         qDebug() << "ParameterString is NULL!";
0020         return;
0021     }
0022 
0023     qlineedit_scheme->setText(parameters->value(ENCODER_CUSTOM_COMMAND_SCHEME_KEY, ENCODER_CUSTOM_COMMAND_SCHEME).toString());
0024     qlineedit_suffix->setText(parameters->value(ENCODER_CUSTOM_SUFFIX_KEY, ENCODER_CUSTOM_SUFFIX).toString());
0025 
0026     connect(qlineedit_suffix, SIGNAL(textEdited(const QString &)), this, SLOT(trigger_changed()));
0027     connect(qlineedit_scheme, SIGNAL(textEdited(const QString &)), this, SLOT(trigger_changed()));
0028 
0029     connect(kpushbutton_scheme, SIGNAL(clicked()), this, SLOT(scheme_wizard()));
0030 
0031     kpushbutton_scheme->setIcon(QIcon::fromTheme("tools-wizard"));
0032 
0033     changed = false;
0034 }
0035 
0036 customWidget::~customWidget()
0037 {
0038 }
0039 
0040 bool customWidget::save()
0041 {
0042     bool success = true;
0043 
0044     parameters->setValue(ENCODER_CUSTOM_COMMAND_SCHEME_KEY, qlineedit_scheme->text());
0045     parameters->setValue(ENCODER_CUSTOM_SUFFIX_KEY, qlineedit_suffix->text());
0046 
0047     changed = false;
0048 
0049     return success;
0050 }
0051 
0052 void customWidget::scheme_wizard()
0053 {
0054     CommandWizardDialog *dialog = new CommandWizardDialog(qlineedit_scheme->text(), this);
0055 
0056     if (dialog->exec() != QDialog::Accepted) {
0057         delete dialog;
0058         return;
0059     }
0060 
0061     qlineedit_scheme->setText(dialog->command);
0062 
0063     delete dialog;
0064 
0065     trigger_changed();
0066 }
0067 
0068 void customWidget::trigger_changed()
0069 {
0070     changed = (qlineedit_scheme->text() != parameters->value(ENCODER_CUSTOM_COMMAND_SCHEME_KEY, ENCODER_CUSTOM_COMMAND_SCHEME)
0071                || qlineedit_suffix->text() != parameters->value(ENCODER_CUSTOM_SUFFIX_KEY, ENCODER_CUSTOM_SUFFIX));
0072 
0073     Q_EMIT triggerChanged();
0074 }