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