[utilities/konsole] src/widgets: Port away from deprecated KPluralHandlingSpinBox

Friedrich W. H. Kossebau <[email protected]>
Newsgroups gmane.comp.kde.cvs
Message-ID <[email protected]>
Git commit 048430855e902720499950bf6eae26afa46ef5b8 by Friedrich W. H. Kossebau.
Committed on 09/08/2026 at 17:32.
Pushed by kossebau into branch 'master'.

Port away from deprecated KPluralHandlingSpinBox

M  +12   -11   src/widgets/EditProfileDialog.cpp
M  +2    -2    src/widgets/EditProfileDialog.h
M  +2    -7    src/widgets/EditProfileGeneralPage.ui
M  +1    -6    src/widgets/EditProfileTabsPage.ui
M  +5    -6    src/widgets/HistorySizeWidget.cpp
M  +1    -8    src/widgets/HistorySizeWidget.ui

https://invent.kde.org/utilities/konsole/-/commit/048430855e902720499950bf6eae26afa46ef5b8

diff --git a/src/widgets/EditProfileDialog.cpp b/src/widgets/EditProfileDialog.cpp
index 56b2ed456..5e9e8457a 100644
--- a/src/widgets/EditProfileDialog.cpp
+++ b/src/widgets/EditProfileDialog.cpp
@@ -30,6 +30,7 @@
 #include <KCodecAction>
 #include <KColorButton>
 #include <KIconDialog>
+#include <KLocalization>
 #include <KLocalizedString>
 #include <KWindowSystem>
 
@@ -553,16 +554,16 @@ void EditProfileDialog::setupGeneralPage(const Profile::Ptr &profile)
     }
 
     // initial terminal size
-    const auto colsSuffix =
-        ki18ncp("Suffix of the number of columns (N columns). The leading space is needed to separate it from the number value.", " column", " columns");
-    const auto rowsSuffix =
-        ki18ncp("Suffix of the number of rows (N rows). The leading space is needed to separate it from the number value.", " row", " rows");
+    const auto colsFormatString = ki18ncp("@item number of columns", "%v column", "%v columns");
+    const auto rowsFormatString = ki18ncp("@item number of rows", "%v row", "%v rows");
     _generalUi->terminalColumnsEntry->setValue(profile->terminalColumns());
     _generalUi->terminalRowsEntry->setValue(profile->terminalRows());
-    _generalUi->terminalColumnsEntry->setSuffix(colsSuffix);
-    _generalUi->terminalRowsEntry->setSuffix(rowsSuffix);
+    KLocalization::setupSpinBoxFormatString(_generalUi->terminalColumnsEntry, colsFormatString);
+    KLocalization::setupSpinBoxFormatString(_generalUi->terminalRowsEntry, rowsFormatString);
+
     // make width of initial terminal size spinboxes equal
-    const int sizeEntryWidth = qMax(maxSpinBoxWidth(_generalUi->terminalColumnsEntry, colsSuffix), maxSpinBoxWidth(_generalUi->terminalRowsEntry, rowsSuffix));
+    const int sizeEntryWidth =
+        qMax(maxSpinBoxWidth(_generalUi->terminalColumnsEntry, colsFormatString), maxSpinBoxWidth(_generalUi->terminalRowsEntry, rowsFormatString));
     _generalUi->terminalColumnsEntry->setFixedWidth(sizeEntryWidth);
     _generalUi->terminalRowsEntry->setFixedWidth(sizeEntryWidth);
 
@@ -716,9 +717,9 @@ void EditProfileDialog::setupTabsPage(const Profile::Ptr &profile)
     // tab monitoring
     const int silenceSeconds = profile->silenceSeconds();
     _tabsUi->silenceSecondsSpinner->setValue(silenceSeconds);
-    auto suffix = ki18ncp("Unit of time", " second", " seconds");
-    _tabsUi->silenceSecondsSpinner->setSuffix(suffix);
-    int silenceCheckBoxWidth = maxSpinBoxWidth(_generalUi->terminalColumnsEntry, suffix);
+    const auto formatString = ki18ncp("@item number of seconds", "%v second", "%v seconds");
+    KLocalization::setupSpinBoxFormatString(_tabsUi->silenceSecondsSpinner, formatString);
+    const int silenceCheckBoxWidth = maxSpinBoxWidth(_generalUi->terminalColumnsEntry, formatString);
     _tabsUi->silenceSecondsSpinner->setFixedWidth(silenceCheckBoxWidth);
 
     connect(_tabsUi->silenceSecondsSpinner, &QSpinBox::valueChanged, this, &Konsole::EditProfileDialog::silenceSecondsChanged);
@@ -2171,7 +2172,7 @@ void EditProfileDialog::setupAdvancedPage(const Profile::Ptr &profile)
     setupButtonGroup(lineNums, profile);
 }
 
-int EditProfileDialog::maxSpinBoxWidth(const KPluralHandlingSpinBox *spinBox, const KLocalizedString &suffix)
+int EditProfileDialog::maxSpinBoxWidth(const QSpinBox *spinBox, const KLocalizedString &suffix)
 {
     static const int cursorWidth = 2;
 
diff --git a/src/widgets/EditProfileDialog.h b/src/widgets/EditProfileDialog.h
index ad0b09ec6..37245fec4 100644
--- a/src/widgets/EditProfileDialog.h
+++ b/src/widgets/EditProfileDialog.h
@@ -30,7 +30,7 @@ namespace KNSCore
 {
 class Entry;
 }
-class KPluralHandlingSpinBox;
+class QSpinBox;
 class KLocalizedString;
 class QItemSelectionModel;
 class QTextCodec;
@@ -289,7 +289,7 @@ private:
 
     void setMessageGeneralPage(const QString &msg);
 
-    int maxSpinBoxWidth(const KPluralHandlingSpinBox *spinBox, const KLocalizedString &suffix);
+    int maxSpinBoxWidth(const QSpinBox *spinBox, const KLocalizedString &suffix);
 
     // Returns the name of the colorScheme used in the current profile
     const QString currentColorSchemeName() const;
diff --git a/src/widgets/EditProfileGeneralPage.ui b/src/widgets/EditProfileGeneralPage.ui
index b6145050e..4dbba5eb2 100644
--- a/src/widgets/EditProfileGeneralPage.ui
+++ b/src/widgets/EditProfileGeneralPage.ui
@@ -335,7 +335,7 @@
             <number>6</number>
            </property>
            <item>
-            <widget class="KPluralHandlingSpinBox" name="terminalColumnsEntry">
+            <widget class="QSpinBox" name="terminalColumnsEntry">
              <property name="sizePolicy">
               <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
                <horstretch>0</horstretch>
@@ -351,7 +351,7 @@
             </widget>
            </item>
            <item>
-            <widget class="KPluralHandlingSpinBox" name="terminalRowsEntry">
+            <widget class="QSpinBox" name="terminalRowsEntry">
              <property name="sizePolicy">
               <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
                <horstretch>0</horstretch>
@@ -709,11 +709,6 @@
   </layout>
  </widget>
  <customwidgets>
-  <customwidget>
-   <class>KPluralHandlingSpinBox</class>
-   <extends>QSpinBox</extends>
-   <header>kpluralhandlingspinbox.h</header>
-  </customwidget>
   <customwidget>
    <class>KMessageWidget</class>
    <extends>QFrame</extends>
diff --git a/src/widgets/EditProfileTabsPage.ui b/src/widgets/EditProfileTabsPage.ui
index 99d542811..3118229a5 100644
--- a/src/widgets/EditProfileTabsPage.ui
+++ b/src/widgets/EditProfileTabsPage.ui
@@ -88,7 +88,7 @@
          </widget>
         </item>
         <item row="0" column="1">
-         <widget class="KPluralHandlingSpinBox" name="silenceSecondsSpinner">
+         <widget class="QSpinBox" name="silenceSecondsSpinner">
           <property name="toolTip">
            <string>The threshold for continuous silence to be detected by Konsole</string>
           </property>
@@ -142,11 +142,6 @@
    <extends>QWidget</extends>
    <header>widgets/RenameTabWidget.h</header>
   </customwidget>
-  <customwidget>
-   <class>KPluralHandlingSpinBox</class>
-   <extends>QSpinBox</extends>
-   <header>KPluralHandlingSpinBox</header>
-  </customwidget>
  </customwidgets>
  <resources/>
  <connections/>
diff --git a/src/widgets/HistorySizeWidget.cpp b/src/widgets/HistorySizeWidget.cpp
index 2d48765e0..4ccaa696d 100644
--- a/src/widgets/HistorySizeWidget.cpp
+++ b/src/widgets/HistorySizeWidget.cpp
@@ -13,6 +13,7 @@
 #include <QButtonGroup>
 #include <QWhatsThis>
 
+#include <KLocalization>
 #include <KLocalizedString>
 
 // Konsole
@@ -29,7 +30,7 @@ HistorySizeWidget::HistorySizeWidget(QWidget *parent)
 
     // focus and select the spinner automatically when appropriate
     _ui->fixedSizeHistoryButton->setFocusProxy(_ui->historyLineSpinner);
-    connect(_ui->fixedSizeHistoryButton, &QRadioButton::clicked, _ui->historyLineSpinner, &KPluralHandlingSpinBox::selectAll);
+    connect(_ui->fixedSizeHistoryButton, &QRadioButton::clicked, _ui->historyLineSpinner, &QSpinBox::selectAll);
 
     auto modeGroup = new QButtonGroup(this);
     modeGroup->addButton(_ui->noHistoryButton);
@@ -37,13 +38,11 @@ HistorySizeWidget::HistorySizeWidget(QWidget *parent)
     modeGroup->addButton(_ui->unlimitedHistoryButton);
     connect(modeGroup, static_cast<void (QButtonGroup::*)(QAbstractButton *)>(&QButtonGroup::buttonClicked), this, &Konsole::HistorySizeWidget::buttonClicked);
 
-    _ui->historyLineSpinner->setSuffix(ki18ncp("@label:textbox Unit of scrollback", " line", " lines"));
+    auto formatString = ki18ncp("@item number of lines", "%v line", "%v lines");
+    KLocalization::setupSpinBoxFormatString(_ui->historyLineSpinner, formatString);
     setLineCount(HistorySizeWidget::DefaultLineCount);
 
-    connect(_ui->historyLineSpinner,
-            static_cast<void (KPluralHandlingSpinBox::*)(int)>(&KPluralHandlingSpinBox::valueChanged),
-            this,
-            &Konsole::HistorySizeWidget::historySizeChanged);
+    connect(_ui->historyLineSpinner, &QSpinBox::valueChanged, this, &Konsole::HistorySizeWidget::historySizeChanged);
 
     auto warningButtonSizePolicy = _ui->fixedSizeHistoryWarningButton->sizePolicy();
     warningButtonSizePolicy.setRetainSizeWhenHidden(true);
diff --git a/src/widgets/HistorySizeWidget.ui b/src/widgets/HistorySizeWidget.ui
index 63501cc6c..dda42bc0a 100644
--- a/src/widgets/HistorySizeWidget.ui
+++ b/src/widgets/HistorySizeWidget.ui
@@ -65,7 +65,7 @@
            </widget>
           </item>
           <item>
-           <widget class="KPluralHandlingSpinBox" name="historyLineSpinner">
+           <widget class="QSpinBox" name="historyLineSpinner">
             <property name="enabled">
              <bool>false</bool>
             </property>
@@ -180,13 +180,6 @@
    </item>
   </layout>
  </widget>
- <customwidgets>
-  <customwidget>
-   <class>KPluralHandlingSpinBox</class>
-   <extends>QSpinBox</extends>
-   <header>kpluralhandlingspinbox.h</header>
-  </customwidget>
- </customwidgets>
  <resources/>
  <connections/>
 </ui>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.