sw/source/ui/fldui/flddok.cxx             |   11 +++++++----
 sw/source/ui/fldui/flddok.hxx             |    2 +-
 sw/uiconfig/swriter/ui/flddocumentpage.ui |   11 +----------
 3 files changed, 9 insertions(+), 15 deletions(-)

New commits:
commit 27fde46937ecb71e7ce738cba430119a79cea77f
Author:     Baole Fang <baole.f...@gmail.com>
AuthorDate: Sat Oct 21 01:13:59 2023 -0400
Commit:     Heiko Tietze <heiko.tie...@documentfoundation.org>
CommitDate: Tue Oct 24 09:10:13 2023 +0200

    tdf#154052: Change "Level" spinbox to combobox
    
    Change-Id: I58a50963f95a2c364557a7aa0992f9858ec5d9cf
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158301
    Tested-by: Jenkins
    Reviewed-by: Heiko Tietze <heiko.tie...@documentfoundation.org>

diff --git a/sw/source/ui/fldui/flddok.cxx b/sw/source/ui/fldui/flddok.cxx
index a195ed026ec0..1a2857bedbdd 100644
--- a/sw/source/ui/fldui/flddok.cxx
+++ b/sw/source/ui/fldui/flddok.cxx
@@ -42,7 +42,7 @@ SwFieldDokPage::SwFieldDokPage(weld::Container* pPage, 
weld::DialogController* p
     , m_xValueFT(m_xBuilder->weld_label("valueft"))
     , m_xValueED(m_xBuilder->weld_entry("value"))
     , m_xLevelFT(m_xBuilder->weld_label("levelft"))
-    , m_xLevelED(m_xBuilder->weld_spin_button("level"))
+    , m_xLevelED(m_xBuilder->weld_combo_box("level"))
     , m_xDateFT(m_xBuilder->weld_label("daysft"))
     , m_xTimeFT(m_xBuilder->weld_label("minutesft"))
     , m_xDateOffsetED(m_xBuilder->weld_spin_button("offset"))
@@ -65,7 +65,10 @@ SwFieldDokPage::SwFieldDokPage(weld::Container* pPage, 
weld::DialogController* p
     m_xFormatLB->connect_row_activated(LINK(this, SwFieldDokPage, 
TreeViewInsertHdl));
     m_xNumFormatLB->connect_row_activated(LINK(this, SwFieldDokPage, 
NumFormatHdl));
 
-    m_xLevelED->set_max(MAXLEVEL);
+    for (sal_uInt16 i = 1; i <= MAXLEVEL; i++)
+        m_xLevelED->append_text(OUString::number(i));
+
+    m_xLevelED->set_active(0);
     m_xDateOffsetED->set_range(INT_MIN, INT_MAX);
     //enable 'active' language selection
     m_xNumFormatLB->SetShowLanguageControl(true);
@@ -356,7 +359,7 @@ IMPL_LINK_NOARG(SwFieldDokPage, TypeHdl, weld::TreeView&, 
void)
         case SwFieldTypesEnum::Chapter:
             m_xValueFT->set_label(SwResId(STR_LEVEL));
             if (IsFieldEdit())
-                
m_xLevelED->set_text(OUString::number(static_cast<SwChapterField*>(GetCurField())->GetLevel(GetWrtShell()->GetLayout())
 + 1));
+                
m_xLevelED->set_active(static_cast<SwChapterField*>(GetCurField())->GetLevel(GetWrtShell()->GetLayout()));
             bLevel = true;
             break;
 
@@ -598,7 +601,7 @@ bool SwFieldDokPage::FillItemSet(SfxItemSet* )
         }
 
         case SwFieldTypesEnum::Chapter:
-            aVal = m_xLevelED->get_text();
+            aVal = OUString::number(m_xLevelED->get_active());
             break;
 
         default:
diff --git a/sw/source/ui/fldui/flddok.hxx b/sw/source/ui/fldui/flddok.hxx
index b532b06f01f6..3192ecc0c6c2 100644
--- a/sw/source/ui/fldui/flddok.hxx
+++ b/sw/source/ui/fldui/flddok.hxx
@@ -35,7 +35,7 @@ class SwFieldDokPage : public SwFieldPage
     std::unique_ptr<weld::Label> m_xValueFT;
     std::unique_ptr<weld::Entry> m_xValueED;
     std::unique_ptr<weld::Label> m_xLevelFT;
-    std::unique_ptr<weld::SpinButton> m_xLevelED;
+    std::unique_ptr<weld::ComboBox> m_xLevelED;
     std::unique_ptr<weld::Label> m_xDateFT;
     std::unique_ptr<weld::Label> m_xTimeFT;
     std::unique_ptr<weld::SpinButton> m_xDateOffsetED;
diff --git a/sw/uiconfig/swriter/ui/flddocumentpage.ui 
b/sw/uiconfig/swriter/ui/flddocumentpage.ui
index 6849333aabd3..75fca470e644 100644
--- a/sw/uiconfig/swriter/ui/flddocumentpage.ui
+++ b/sw/uiconfig/swriter/ui/flddocumentpage.ui
@@ -2,13 +2,6 @@
 <!-- Generated with glade 3.36.0 -->
 <interface domain="sw">
   <requires lib="gtk+" version="3.20"/>
-  <object class="GtkAdjustment" id="adjustment1">
-    <property name="lower">1</property>
-    <property name="upper">10</property>
-    <property name="value">1</property>
-    <property name="step_increment">1</property>
-    <property name="page_increment">10</property>
-  </object>
   <object class="GtkAdjustment" id="adjustment2">
     <property name="upper">1000000</property>
     <property name="step_increment">1</property>
@@ -356,11 +349,9 @@
               </packing>
             </child>
             <child>
-              <object class="GtkSpinButton" id="level">
+              <object class="GtkComboBoxText" id="level">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
-                <property name="adjustment">adjustment1</property>
-                <property name="truncate-multiline">True</property>
                 <property name="tooltip_text" translatable="yes" 
context="flddocumentpage|level|tooltip_text">Select the first prior heading for 
display whose outline level is less than or equal to the specified 
value.</property>
                 <child internal-child="accessible">
                   <object class="AtkObject" id="level-atkobject">

Reply via email to