File indexing completed on 2025-04-20 12:50:01
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"