File indexing completed on 2024-04-28 16:00:59

0001 /*
0002    SPDX-FileCopyrightText: 2022-2023 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "texttospeechsliderwidget.h"
0008 #include <QFontMetrics>
0009 #include <QHBoxLayout>
0010 #include <QLabel>
0011 #include <QSlider>
0012 
0013 using namespace TextEditTextToSpeech;
0014 TextToSpeechSliderWidget::TextToSpeechSliderWidget(const QString &labelInfo, QWidget *parent)
0015     : QWidget{parent}
0016     , mLabelInfo(labelInfo)
0017     , mLabel(new QLabel(this))
0018     , mSlider(new QSlider(this))
0019 {
0020     auto mainLayout = new QHBoxLayout(this);
0021     mainLayout->setContentsMargins({});
0022     mainLayout->setObjectName(QStringLiteral("mainLayout"));
0023     mSlider->setObjectName(QStringLiteral("mSlider"));
0024     mLabel->setObjectName(QStringLiteral("mLabel"));
0025     mSlider->setOrientation(Qt::Horizontal);
0026     mainLayout->addWidget(mSlider);
0027     mainLayout->addWidget(mLabel);
0028 
0029     const QFontMetrics f(mLabel->font());
0030     mLabel->setMinimumWidth(f.horizontalAdvance(QStringLiteral("MMMM")));
0031     connect(mSlider, &QSlider::valueChanged, this, &TextToSpeechSliderWidget::slotValueChanged);
0032 }
0033 
0034 TextToSpeechSliderWidget::~TextToSpeechSliderWidget() = default;
0035 
0036 void TextToSpeechSliderWidget::setValue(int value)
0037 {
0038     mSlider->setValue(value);
0039     slotValueChanged(value);
0040 }
0041 
0042 void TextToSpeechSliderWidget::setRange(int min, int max)
0043 {
0044     mSlider->setRange(min, max);
0045 }
0046 
0047 int TextToSpeechSliderWidget::value() const
0048 {
0049     return mSlider->value();
0050 }
0051 
0052 void TextToSpeechSliderWidget::slotValueChanged(int value)
0053 {
0054     Q_EMIT valueChanged(value);
0055     mLabel->setText(mLabelInfo.arg(QString::number(value)));
0056 }
0057 
0058 #include "moc_texttospeechsliderwidget.cpp"