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 }