File indexing completed on 2024-05-26 04:59:29

0001 /*
0002     SPDX-FileCopyrightText: 2023 Mladen Milinkovic <max@smoothware.net>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 #include "subtitlevoicedialog.h"
0007 #include "ui_subtitlevoicedialog.h"
0008 
0009 #include <QComboBox>
0010 #include <QDialogButtonBox>
0011 #include <QLayout>
0012 #include <QLineEdit>
0013 #include <QPushButton>
0014 #include <QVBoxLayout>
0015 
0016 
0017 using namespace SubtitleComposer;
0018 
0019 
0020 SubtitleVoiceDialog::SubtitleVoiceDialog(QWidget *parent, Qt::WindowFlags flags)
0021     : QDialog(parent, flags),
0022       ui(new Ui::SubtitleVoiceDialog)
0023 {
0024     ui->setupUi(this);
0025 
0026     connect(ui->voiceList, &QComboBox::currentTextChanged, this, [&](){ emit currentVoiceChanged(currentVoice()); });
0027     connect(this, &QDialog::accepted, this, [&](){ emit voiceSelected(currentVoice()); });
0028 }
0029 
0030 SubtitleVoiceDialog::SubtitleVoiceDialog(const QString &initial, QWidget *parent, Qt::WindowFlags flags)
0031     : SubtitleVoiceDialog(parent, flags)
0032 {
0033     QSignalBlocker sb(this);
0034     setCurrentVoice(initial);
0035 }
0036 
0037 SubtitleVoiceDialog::~SubtitleVoiceDialog()
0038 {
0039     delete ui;
0040 }
0041 
0042 void
0043 SubtitleVoiceDialog::setCurrentVoice(const QString &cssVoice)
0044 {
0045     ui->voiceList->setCurrentText(cssVoice);
0046 }
0047 
0048 QString
0049 SubtitleVoiceDialog::currentVoice() const
0050 {
0051     return ui->voiceList->currentText();
0052 }
0053 
0054 QString
0055 SubtitleVoiceDialog::getVoice(const QStringList &voices, const QString &initial, QWidget *parent, const QString &title)
0056 {
0057     SubtitleVoiceDialog dlg(parent);
0058     if(!title.isEmpty())
0059         dlg.setWindowTitle(title);
0060     dlg.ui->voiceList->addItems(voices);
0061     if(!initial.isEmpty() && !voices.contains(initial))
0062         dlg.ui->voiceList->addItem(initial);
0063     dlg.setCurrentVoice(initial);
0064     return dlg.exec() == QDialog::Accepted ? dlg.selectedVoice() : QString();
0065 }