File indexing completed on 2024-06-23 05:13:48
0001 /* 0002 SPDX-FileCopyrightText: 2014 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.1-or-later 0005 0006 This is a copy of KPluralHandlingSpinBox from KTextWidgets. 0007 */ 0008 0009 #include "pluralhandlingspinbox.h" 0010 0011 class PluralHandlingSpinBoxPrivate 0012 { 0013 public: 0014 PluralHandlingSpinBoxPrivate(QSpinBox *q) 0015 : q(q) 0016 { 0017 QObject::connect(q, &QSpinBox::valueChanged, q, [this](int value) { 0018 updateSuffix(value); 0019 }); 0020 } 0021 0022 void updateSuffix(int value) 0023 { 0024 if (!pluralSuffix.isEmpty()) { 0025 KLocalizedString s = pluralSuffix; 0026 q->setSuffix(s.subs(value).toString()); 0027 } 0028 } 0029 0030 QSpinBox *const q; 0031 KLocalizedString pluralSuffix; 0032 }; 0033 0034 PluralHandlingSpinBox::PluralHandlingSpinBox(QWidget *parent) 0035 : QSpinBox(parent) 0036 , d(new PluralHandlingSpinBoxPrivate(this)) 0037 { 0038 } 0039 0040 PluralHandlingSpinBox::~PluralHandlingSpinBox() = default; 0041 0042 void PluralHandlingSpinBox::setSuffix(const KLocalizedString &suffix) 0043 { 0044 d->pluralSuffix = suffix; 0045 if (suffix.isEmpty()) { 0046 QSpinBox::setSuffix(QString()); 0047 } else { 0048 d->updateSuffix(value()); 0049 } 0050 } 0051 0052 #include "moc_pluralhandlingspinbox.cpp"