sc/source/ui/dialogs/SparklineDialog.cxx |  133 ++--
 sc/source/ui/inc/SparklineDialog.hxx     |   10 
 sc/uiconfig/scalc/ui/sparklinedialog.ui  | 1027 +++++++++++--------------------
 solenv/sanitizers/ui/modules/scalc.suppr |    2 
 4 files changed, 460 insertions(+), 712 deletions(-)

New commits:
commit 0ba1d661430effda61d8a6fadff9527dc9562698
Author:     Heiko Tietze <tietze.he...@gmail.com>
AuthorDate: Fri Apr 29 14:17:46 2022 +0200
Commit:     Roman Kuznetsov <antilibreoff...@gmail.com>
CommitDate: Tue May 3 23:38:06 2022 +0200

    Resolves tdf#148568 - Rework the Sparklines dialog
    
    * controls rearranged and variables renamed
    * radiobuttons changed into comboboxes
    
    Change-Id: Ifda426b5fa9596c2b23c335165785c0cb341433f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133636
    Tested-by: Jenkins
    Reviewed-by: Roman Kuznetsov <antilibreoff...@gmail.com>

diff --git a/sc/source/ui/dialogs/SparklineDialog.cxx 
b/sc/source/ui/dialogs/SparklineDialog.cxx
index 0c5be765ef3c..f27e0eb4a4a5 100644
--- a/sc/source/ui/dialogs/SparklineDialog.cxx
+++ b/sc/source/ui/dialogs/SparklineDialog.cxx
@@ -30,47 +30,43 @@ SparklineDialog::SparklineDialog(SfxBindings* pBindings, 
SfxChildWindow* pChildW
     , mbDialogLostFocus(false)
     , mxButtonOk(m_xBuilder->weld_button("ok"))
     , mxButtonCancel(m_xBuilder->weld_button("cancel"))
-    , mxFrameData(m_xBuilder->weld_frame("frame-data"))
-    , mxInputRangeLabel(m_xBuilder->weld_label("cell-range-label"))
-    , mxInputRangeEdit(new 
formula::RefEdit(m_xBuilder->weld_entry("cell-range-edit")))
-    , mxInputRangeButton(new 
formula::RefButton(m_xBuilder->weld_button("cell-range-button")))
-    , mxOutputRangeLabel(m_xBuilder->weld_label("output-range-label"))
-    , mxOutputRangeEdit(new 
formula::RefEdit(m_xBuilder->weld_entry("output-range-edit")))
-    , mxOutputRangeButton(new 
formula::RefButton(m_xBuilder->weld_button("output-range-button")))
-    , mxColorSeries(new 
ColorListBox(m_xBuilder->weld_menu_button("color-button-series"),
+    , mxFrameData(m_xBuilder->weld_frame("frmData"))
+    , mxInputRangeLabel(m_xBuilder->weld_label("lbInputRange"))
+    , mxInputRangeEdit(new 
formula::RefEdit(m_xBuilder->weld_entry("edInputRange")))
+    , mxInputRangeButton(new 
formula::RefButton(m_xBuilder->weld_button("btnInputRange")))
+    , mxOutputRangeLabel(m_xBuilder->weld_label("lbOutputRange"))
+    , mxOutputRangeEdit(new 
formula::RefEdit(m_xBuilder->weld_entry("edOutputRange")))
+    , mxOutputRangeButton(new 
formula::RefButton(m_xBuilder->weld_button("btnOutputRange")))
+    , mxColorSeries(new ColorListBox(m_xBuilder->weld_menu_button("colSeries"),
                                      [pWindow] { return pWindow; }))
-    , mxColorNegative(new 
ColorListBox(m_xBuilder->weld_menu_button("color-button-negative"),
+    , mxColorNegative(new 
ColorListBox(m_xBuilder->weld_menu_button("colNegative"),
                                        [pWindow] { return pWindow; }))
-    , mxColorMarker(new 
ColorListBox(m_xBuilder->weld_menu_button("color-button-marker"),
+    , mxColorMarker(new ColorListBox(m_xBuilder->weld_menu_button("colMarker"),
                                      [pWindow] { return pWindow; }))
-    , mxColorHigh(new 
ColorListBox(m_xBuilder->weld_menu_button("color-button-high"),
-                                   [pWindow] { return pWindow; }))
-    , mxColorLow(new 
ColorListBox(m_xBuilder->weld_menu_button("color-button-low"),
-                                  [pWindow] { return pWindow; }))
-    , mxColorFirst(new 
ColorListBox(m_xBuilder->weld_menu_button("color-button-first"),
-                                    [pWindow] { return pWindow; }))
-    , mxColorLast(new 
ColorListBox(m_xBuilder->weld_menu_button("color-button-last"),
-                                   [pWindow] { return pWindow; }))
-    , mxCheckButtonNegative(m_xBuilder->weld_check_button("check-negative"))
-    , mxCheckButtonMarker(m_xBuilder->weld_check_button("check-marker"))
-    , mxCheckButtonHigh(m_xBuilder->weld_check_button("check-high"))
-    , mxCheckButtonLow(m_xBuilder->weld_check_button("check-low"))
-    , mxCheckButtonFirst(m_xBuilder->weld_check_button("check-first"))
-    , mxCheckButtonLast(m_xBuilder->weld_check_button("check-last"))
-    , mxSpinLineWidth(m_xBuilder->weld_spin_button("spin-line-width"))
-    , mxRadioLine(m_xBuilder->weld_radio_button("line-radiobutton"))
-    , mxRadioColumn(m_xBuilder->weld_radio_button("column-radiobutton"))
-    , mxRadioStacked(m_xBuilder->weld_radio_button("stacked-radiobutton"))
-    , 
mxCheckDisplayXAxis(m_xBuilder->weld_check_button("check-display-x-axis"))
-    , 
mxCheckDisplayHidden(m_xBuilder->weld_check_button("check-display-hidden"))
-    , mxCheckRightToLeft(m_xBuilder->weld_check_button("check-right-to-left"))
-    , 
mxRadioDisplayEmptyGap(m_xBuilder->weld_radio_button("display-empty-radiobutton-gap"))
-    , 
mxRadioDisplayEmptyZero(m_xBuilder->weld_radio_button("display-empty-radiobutton-zero"))
-    , 
mxRadioDisplayEmptySpan(m_xBuilder->weld_radio_button("display-empty-radiobutton-span"))
-    , mxComboMinAxisType(m_xBuilder->weld_combo_box("combo-min-axis-type"))
-    , mxComboMaxAxisType(m_xBuilder->weld_combo_box("combo-max-axis-type"))
-    , 
mxSpinCustomMin(m_xBuilder->weld_formatted_spin_button("spin-custom-min"))
-    , 
mxSpinCustomMax(m_xBuilder->weld_formatted_spin_button("spin-custom-max"))
+    , mxColorHigh(
+          new ColorListBox(m_xBuilder->weld_menu_button("colHigh"), [pWindow] 
{ return pWindow; }))
+    , mxColorLow(
+          new ColorListBox(m_xBuilder->weld_menu_button("colLow"), [pWindow] { 
return pWindow; }))
+    , mxColorFirst(
+          new ColorListBox(m_xBuilder->weld_menu_button("colFirst"), [pWindow] 
{ return pWindow; }))
+    , mxColorLast(
+          new ColorListBox(m_xBuilder->weld_menu_button("colLast"), [pWindow] 
{ return pWindow; }))
+    , mxCheckButtonNegative(m_xBuilder->weld_check_button("cbNegative"))
+    , mxCheckButtonMarker(m_xBuilder->weld_check_button("cbMarker"))
+    , mxCheckButtonHigh(m_xBuilder->weld_check_button("cbHigh"))
+    , mxCheckButtonLow(m_xBuilder->weld_check_button("cbLow"))
+    , mxCheckButtonFirst(m_xBuilder->weld_check_button("cbFirst"))
+    , mxCheckButtonLast(m_xBuilder->weld_check_button("cbLast"))
+    , mxSpinLineWidth(m_xBuilder->weld_spin_button("seLineWidth"))
+    , mxType(m_xBuilder->weld_combo_box("cbType"))
+    , mxCheckDisplayXAxis(m_xBuilder->weld_check_button("cbDisplayXAxis"))
+    , mxCheckDisplayHidden(m_xBuilder->weld_check_button("cbHidden"))
+    , mxCheckRightToLeft(m_xBuilder->weld_check_button("cbRTL"))
+    , mxDisplayEmptyGap(m_xBuilder->weld_combo_box("cbEmptyCells"))
+    , mxComboMinAxisType(m_xBuilder->weld_combo_box("cbMinAxisType"))
+    , mxComboMaxAxisType(m_xBuilder->weld_combo_box("cbMaxAxisType"))
+    , mxSpinCustomMin(m_xBuilder->weld_formatted_spin_button("seMinAxis"))
+    , mxSpinCustomMax(m_xBuilder->weld_formatted_spin_button("seMaxAxis"))
     , mbEditMode(false)
 {
     mxInputRangeEdit->SetReferences(this, mxInputRangeLabel.get());
@@ -101,14 +97,8 @@ SparklineDialog::SparklineDialog(SfxBindings* pBindings, 
SfxChildWindow* pChildW
     mxInputRangeEdit->SetModifyHdl(aModifyLink);
     mxOutputRangeEdit->SetModifyHdl(aModifyLink);
 
-    Link<weld::Toggleable&, void> aRadioButtonLink
-        = LINK(this, SparklineDialog, SelectSparklineType);
-    mxRadioLine->connect_toggled(aRadioButtonLink);
-    mxRadioColumn->connect_toggled(aRadioButtonLink);
-    mxRadioStacked->connect_toggled(aRadioButtonLink);
-    mxRadioDisplayEmptyGap->connect_toggled(aRadioButtonLink);
-    mxRadioDisplayEmptyZero->connect_toggled(aRadioButtonLink);
-    mxRadioDisplayEmptySpan->connect_toggled(aRadioButtonLink);
+    mxType->connect_changed(LINK(this, SparklineDialog, SelectSparklineType));
+    mxDisplayEmptyGap->connect_changed(LINK(this, SparklineDialog, 
SelectSparklineType));
 
     Link<weld::Toggleable&, void> aLink = LINK(this, SparklineDialog, 
ToggleHandler);
     mxCheckButtonNegative->connect_toggled(aLink);
@@ -179,26 +169,26 @@ void SparklineDialog::setupValues()
     switch (maAttributes.getType())
     {
         case sc::SparklineType::Line:
-            mxRadioLine->set_active(true);
+            mxType->set_active(0);
             break;
         case sc::SparklineType::Column:
-            mxRadioColumn->set_active(true);
+            mxType->set_active(1);
             break;
         case sc::SparklineType::Stacked:
-            mxRadioStacked->set_active(true);
+            mxType->set_active(2);
             break;
     }
 
     switch (maAttributes.getDisplayEmptyCellsAs())
     {
         case sc::DisplayEmptyCellsAs::Gap:
-            mxRadioDisplayEmptyGap->set_active(true);
+            mxDisplayEmptyGap->set_active(0);
             break;
         case sc::DisplayEmptyCellsAs::Zero:
-            mxRadioDisplayEmptyZero->set_active(true);
+            mxDisplayEmptyGap->set_active(1);
             break;
         case sc::DisplayEmptyCellsAs::Span:
-            mxRadioDisplayEmptySpan->set_active(true);
+            mxDisplayEmptyGap->set_active(2);
             break;
     }
 
@@ -419,21 +409,32 @@ IMPL_LINK(SparklineDialog, ToggleHandler, 
weld::Toggleable&, rToggle, void)
         maAttributes.setRightToLeft(mxCheckRightToLeft->get_active());
 }
 
-IMPL_LINK_NOARG(SparklineDialog, SelectSparklineType, weld::Toggleable&, void)
+IMPL_LINK_NOARG(SparklineDialog, SelectSparklineType, weld::ComboBox&, void)
 {
-    if (mxRadioLine->get_active())
-        maAttributes.setType(sc::SparklineType::Line);
-    else if (mxRadioColumn->get_active())
-        maAttributes.setType(sc::SparklineType::Column);
-    else if (mxRadioStacked->get_active())
-        maAttributes.setType(sc::SparklineType::Stacked);
-
-    if (mxRadioDisplayEmptyGap->get_active())
-        maAttributes.setDisplayEmptyCellsAs(sc::DisplayEmptyCellsAs::Gap);
-    else if (mxRadioDisplayEmptyZero->get_active())
-        maAttributes.setDisplayEmptyCellsAs(sc::DisplayEmptyCellsAs::Zero);
-    else if (mxRadioDisplayEmptySpan->get_active())
-        maAttributes.setDisplayEmptyCellsAs(sc::DisplayEmptyCellsAs::Span);
+    switch (mxType->get_active())
+    {
+        case 0:
+            maAttributes.setType(sc::SparklineType::Line);
+            break;
+        case 1:
+            maAttributes.setType(sc::SparklineType::Column);
+            break;
+        case 2:
+            maAttributes.setType(sc::SparklineType::Stacked);
+            break;
+    }
+    switch (mxDisplayEmptyGap->get_active())
+    {
+        case 1:
+            maAttributes.setDisplayEmptyCellsAs(sc::DisplayEmptyCellsAs::Gap);
+            break;
+        case 2:
+            maAttributes.setDisplayEmptyCellsAs(sc::DisplayEmptyCellsAs::Zero);
+            break;
+        case 3:
+            maAttributes.setDisplayEmptyCellsAs(sc::DisplayEmptyCellsAs::Span);
+            break;
+    }
 }
 
 IMPL_LINK_NOARG(SparklineDialog, SpinLineWidthChanged, weld::SpinButton&, void)
diff --git a/sc/source/ui/inc/SparklineDialog.hxx 
b/sc/source/ui/inc/SparklineDialog.hxx
index 20e279d5bf93..8467f6d2ce11 100644
--- a/sc/source/ui/inc/SparklineDialog.hxx
+++ b/sc/source/ui/inc/SparklineDialog.hxx
@@ -61,17 +61,13 @@ private:
     std::unique_ptr<weld::CheckButton> mxCheckButtonLast;
 
     std::unique_ptr<weld::SpinButton> mxSpinLineWidth;
-    std::unique_ptr<weld::RadioButton> mxRadioLine;
-    std::unique_ptr<weld::RadioButton> mxRadioColumn;
-    std::unique_ptr<weld::RadioButton> mxRadioStacked;
+    std::unique_ptr<weld::ComboBox> mxType;
 
     std::unique_ptr<weld::CheckButton> mxCheckDisplayXAxis;
     std::unique_ptr<weld::CheckButton> mxCheckDisplayHidden;
     std::unique_ptr<weld::CheckButton> mxCheckRightToLeft;
 
-    std::unique_ptr<weld::RadioButton> mxRadioDisplayEmptyGap;
-    std::unique_ptr<weld::RadioButton> mxRadioDisplayEmptyZero;
-    std::unique_ptr<weld::RadioButton> mxRadioDisplayEmptySpan;
+    std::unique_ptr<weld::ComboBox> mxDisplayEmptyGap;
 
     std::unique_ptr<weld::ComboBox> mxComboMinAxisType;
     std::unique_ptr<weld::ComboBox> mxComboMaxAxisType;
@@ -86,7 +82,7 @@ private:
     DECL_LINK(LoseButtonFocusHandler, formula::RefButton&, void);
     DECL_LINK(RefInputModifyHandler, formula::RefEdit&, void);
     DECL_LINK(ToggleHandler, weld::Toggleable&, void);
-    DECL_LINK(SelectSparklineType, weld::Toggleable&, void);
+    DECL_LINK(SelectSparklineType, weld::ComboBox&, void);
     DECL_LINK(ComboValueChanged, weld::ComboBox&, void);
     DECL_LINK(SpinLineWidthChanged, weld::SpinButton&, void);
     DECL_LINK(SpinCustomChanged, weld::FormattedSpinButton&, void);
diff --git a/sc/uiconfig/scalc/ui/sparklinedialog.ui 
b/sc/uiconfig/scalc/ui/sparklinedialog.ui
index b1263e769267..c1ba3f9b1eb8 100644
--- a/sc/uiconfig/scalc/ui/sparklinedialog.ui
+++ b/sc/uiconfig/scalc/ui/sparklinedialog.ui
@@ -2,6 +2,7 @@
 <!-- Generated with glade 3.38.2 -->
 <interface domain="sc">
   <requires lib="gtk+" version="3.20"/>
+  <object class="GtkSizeGroup"/>
   <object class="GtkAdjustment" id="adjustment-custom-max">
     <property name="step-increment">1</property>
     <property name="page-increment">10</property>
@@ -20,7 +21,7 @@
   <object class="GtkDialog" id="SparklineDialog">
     <property name="can-focus">False</property>
     <property name="border-width">6</property>
-    <property name="title" translatable="yes" 
context="SparklineDialog">Sparkline</property>
+    <property name="title" translatable="yes" 
context="SparklineDialog">Sparkline Properties</property>
     <property name="type-hint">dialog</property>
     <child internal-child="vbox">
       <object class="GtkBox" id="dialog-vbox1">
@@ -86,296 +87,121 @@
           </packing>
         </child>
         <child>
-          <object class="GtkFrame" id="frame-data">
+          <!-- n-columns=2 n-rows=3 -->
+          <object class="GtkGrid">
             <property name="visible">True</property>
             <property name="can-focus">False</property>
-            <property name="label-xalign">0</property>
-            <property name="shadow-type">none</property>
+            <property name="hexpand">True</property>
+            <property name="row-spacing">12</property>
+            <property name="column-spacing">12</property>
             <child>
-              <!-- n-columns=3 n-rows=2 -->
-              <object class="GtkGrid">
+              <object class="GtkFrame" id="frmData">
                 <property name="visible">True</property>
                 <property name="can-focus">False</property>
-                <property name="margin-start">12</property>
-                <property name="margin-end">6</property>
-                <property name="margin-top">6</property>
-                <property name="margin-bottom">6</property>
-                <property name="row-spacing">6</property>
-                <property name="column-spacing">6</property>
+                <property name="label-xalign">0</property>
+                <property name="shadow-type">none</property>
                 <child>
-                  <object class="GtkButton" id="cell-range-button">
-                    <property name="visible">True</property>
-                    <property name="can-focus">True</property>
-                    <property name="receives-default">True</property>
-                    <accessibility>
-                      <relation type="labelled-by" target="cell-range-label"/>
-                    </accessibility>
-                  </object>
-                  <packing>
-                    <property name="left-attach">2</property>
-                    <property name="top-attach">0</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEntry" id="cell-range-edit">
-                    <property name="visible">True</property>
-                    <property name="can-focus">True</property>
-                    <property name="valign">center</property>
-                    <property name="hexpand">True</property>
-                    <property name="activates-default">True</property>
-                    <property name="width-chars">30</property>
-                    <property name="truncate-multiline">True</property>
-                    <accessibility>
-                      <relation type="labelled-by" target="cell-range-label"/>
-                    </accessibility>
-                  </object>
-                  <packing>
-                    <property name="left-attach">1</property>
-                    <property name="top-attach">0</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkButton" id="output-range-button">
-                    <property name="visible">True</property>
-                    <property name="can-focus">True</property>
-                    <property name="receives-default">True</property>
-                    <accessibility>
-                      <relation type="labelled-by" 
target="output-range-label"/>
-                    </accessibility>
-                  </object>
-                  <packing>
-                    <property name="left-attach">2</property>
-                    <property name="top-attach">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkEntry" id="output-range-edit">
-                    <property name="visible">True</property>
-                    <property name="can-focus">True</property>
-                    <property name="valign">center</property>
-                    <property name="hexpand">True</property>
-                    <property name="activates-default">True</property>
-                    <property name="width-chars">30</property>
-                    <property name="truncate-multiline">True</property>
-                    <accessibility>
-                      <relation type="labelled-by" 
target="output-range-label"/>
-                    </accessibility>
-                  </object>
-                  <packing>
-                    <property name="left-attach">1</property>
-                    <property name="top-attach">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel" id="cell-range-label">
-                    <property name="visible">True</property>
-                    <property name="can-focus">False</property>
-                    <property name="label" translatable="yes" 
context="SparklineDialog|cell-range-label">Input range:</property>
-                    <property name="use-underline">True</property>
-                    <property name="xalign">0</property>
-                    <accessibility>
-                      <relation type="label-for" target="cell-range-button"/>
-                      <relation type="label-for" target="cell-range-edit"/>
-                    </accessibility>
-                  </object>
-                  <packing>
-                    <property name="left-attach">0</property>
-                    <property name="top-attach">0</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkLabel" id="output-range-label">
-                    <property name="visible">True</property>
-                    <property name="can-focus">False</property>
-                    <property name="label" translatable="yes" 
context="SparklineDialog|cell-range-label">Output range:</property>
-                    <property name="use-underline">True</property>
-                    <property name="xalign">0</property>
-                    <accessibility>
-                      <relation type="label-for" target="output-range-button"/>
-                      <relation type="label-for" target="output-range-edit"/>
-                    </accessibility>
-                  </object>
-                  <packing>
-                    <property name="left-attach">0</property>
-                    <property name="top-attach">1</property>
-                  </packing>
-                </child>
-              </object>
-            </child>
-            <child type="label">
-              <object class="GtkLabel" id="label-data">
-                <property name="visible">True</property>
-                <property name="can-focus">False</property>
-                <property name="label" translatable="yes" 
context="SparklineDialog|label-data">Data</property>
-                <attributes>
-                  <attribute name="weight" value="bold"/>
-                </attributes>
-              </object>
-            </child>
-          </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="position">0</property>
-          </packing>
-        </child>
-        <child>
-          <object class="GtkFrame" id="frame-properties">
-            <property name="visible">True</property>
-            <property name="can-focus">False</property>
-            <property name="label-xalign">0</property>
-            <property name="shadow-type">none</property>
-            <child>
-              <!-- n-columns=1 n-rows=6 -->
-              <object class="GtkGrid">
-                <property name="visible">True</property>
-                <property name="can-focus">False</property>
-                <property name="margin-start">12</property>
-                <property name="margin-end">6</property>
-                <property name="margin-top">6</property>
-                <property name="margin-bottom">6</property>
-                <property name="row-spacing">6</property>
-                <property name="column-spacing">6</property>
-                <child>
-                  <object class="GtkBox">
+                  <!-- n-columns=3 n-rows=2 -->
+                  <object class="GtkGrid">
                     <property name="visible">True</property>
                     <property name="can-focus">False</property>
-                    <property name="hexpand">True</property>
-                    <property name="spacing">6</property>
+                    <property name="margin-start">12</property>
+                    <property name="margin-end">6</property>
+                    <property name="margin-top">6</property>
+                    <property name="margin-bottom">6</property>
+                    <property name="row-spacing">6</property>
+                    <property name="column-spacing">6</property>
                     <child>
-                      <object class="GtkLabel" id="label-type">
+                      <object class="GtkButton" id="btnInputRange">
                         <property name="visible">True</property>
-                        <property name="can-focus">False</property>
-                        <property name="label" translatable="yes" 
context="SparklineDialog|label-type">Type:</property>
-                        <property name="xalign">0</property>
+                        <property name="can-focus">True</property>
+                        <property name="receives-default">True</property>
                         <accessibility>
-                          <relation type="label-for" 
target="line-radiobutton"/>
-                          <relation type="label-for" 
target="column-radiobutton"/>
-                          <relation type="label-for" 
target="stacked-radiobutton"/>
+                          <relation type="labelled-by" target="lbInputRange"/>
                         </accessibility>
                       </object>
                       <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">True</property>
-                        <property name="position">0</property>
+                        <property name="left-attach">2</property>
+                        <property name="top-attach">0</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkRadioButton" id="line-radiobutton">
-                        <property name="label" translatable="yes" 
context="SparklineDialog|line-radiobutton">Line</property>
+                      <object class="GtkEntry" id="edInputRange">
                         <property name="visible">True</property>
                         <property name="can-focus">True</property>
-                        <property name="receives-default">False</property>
+                        <property name="valign">center</property>
                         <property name="hexpand">True</property>
-                        <property name="active">True</property>
-                        <property name="draw-indicator">True</property>
+                        <property name="activates-default">True</property>
+                        <property name="width-chars">30</property>
+                        <property name="truncate-multiline">True</property>
                         <accessibility>
-                          <relation type="labelled-by" target="label-type"/>
+                          <relation type="labelled-by" target="lbInputRange"/>
                         </accessibility>
                       </object>
                       <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">True</property>
-                        <property name="position">1</property>
+                        <property name="left-attach">1</property>
+                        <property name="top-attach">0</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkRadioButton" id="column-radiobutton">
-                        <property name="label" translatable="yes" 
context="SparklineDialog|column-radiobutton">Column</property>
+                      <object class="GtkButton" id="btnOutputRange">
                         <property name="visible">True</property>
                         <property name="can-focus">True</property>
-                        <property name="receives-default">False</property>
-                        <property name="hexpand">True</property>
-                        <property name="draw-indicator">True</property>
-                        <property name="group">line-radiobutton</property>
+                        <property name="receives-default">True</property>
                         <accessibility>
-                          <relation type="labelled-by" target="label-type"/>
+                          <relation type="labelled-by" target="lbOutputRange"/>
                         </accessibility>
                       </object>
                       <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">True</property>
-                        <property name="position">2</property>
+                        <property name="left-attach">2</property>
+                        <property name="top-attach">1</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkRadioButton" id="stacked-radiobutton">
-                        <property name="label" translatable="yes" 
context="SparklineDialog|stacked-radiobutton">Stacked</property>
+                      <object class="GtkEntry" id="edOutputRange">
                         <property name="visible">True</property>
                         <property name="can-focus">True</property>
-                        <property name="receives-default">False</property>
+                        <property name="valign">center</property>
                         <property name="hexpand">True</property>
-                        <property name="draw-indicator">True</property>
-                        <property name="group">line-radiobutton</property>
+                        <property name="activates-default">True</property>
+                        <property name="width-chars">30</property>
+                        <property name="truncate-multiline">True</property>
                         <accessibility>
-                          <relation type="labelled-by" target="label-type"/>
+                          <relation type="labelled-by" target="lbOutputRange"/>
                         </accessibility>
                       </object>
                       <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">True</property>
-                        <property name="position">3</property>
+                        <property name="left-attach">1</property>
+                        <property name="top-attach">1</property>
                       </packing>
                     </child>
-                  </object>
-                  <packing>
-                    <property name="left-attach">0</property>
-                    <property name="top-attach">0</property>
-                  </packing>
-                </child>
-                <child>
-                  <!-- n-columns=6 n-rows=4 -->
-                  <object class="GtkGrid">
-                    <property name="visible">True</property>
-                    <property name="can-focus">False</property>
-                    <property name="hexpand">True</property>
-                    <property name="row-spacing">6</property>
-                    <property name="column-spacing">6</property>
                     <child>
-                      <object class="GtkLabel" id="label-series">
+                      <object class="GtkLabel" id="lbInputRange">
                         <property name="visible">True</property>
                         <property name="can-focus">False</property>
-                        <property name="label" translatable="yes" 
context="SparklineDialog|label-series">Series:</property>
+                        <property name="label" translatable="yes" 
context="SparklineDialog|label_InputRange">Input range:</property>
+                        <property name="use-underline">True</property>
                         <property name="xalign">0</property>
                         <accessibility>
-                          <relation type="label-for" 
target="color-button-series"/>
+                          <relation type="label-for" target="btnInputRange"/>
+                          <relation type="label-for" target="edInputRange"/>
                         </accessibility>
                       </object>
                       <packing>
                         <property name="left-attach">0</property>
                         <property name="top-attach">0</property>
-                        <property name="width">2</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkMenuButton" id="color-button-series">
-                        <property name="visible">True</property>
-                        <property name="can-focus">True</property>
-                        <property name="receives-default">False</property>
-                        <property name="hexpand">False</property>
-                        <property name="draw-indicator">True</property>
-                        <child>
-                          <placeholder/>
-                        </child>
-                        <accessibility>
-                          <relation type="labelled-by" target="label-series"/>
-                        </accessibility>
-                      </object>
-                      <packing>
-                        <property name="left-attach">2</property>
-                        <property name="top-attach">0</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkLabel" id="label-negative">
+                      <object class="GtkLabel" id="lbOutputRange">
                         <property name="visible">True</property>
                         <property name="can-focus">False</property>
-                        <property name="hexpand">False</property>
-                        <property name="label" translatable="yes" 
context="SparklineDialog|label-negative">Negative points:</property>
+                        <property name="label" translatable="yes" 
context="SparklineDialog|label_OutputRange">Output range:</property>
+                        <property name="use-underline">True</property>
                         <property name="xalign">0</property>
                         <accessibility>
-                          <relation type="label-for" target="check-negative"/>
-                          <relation type="label-for" 
target="color-button-negative"/>
+                          <relation type="label-for" target="btnOutputRange"/>
+                          <relation type="label-for" target="edOutputRange"/>
                         </accessibility>
                       </object>
                       <packing>
@@ -383,343 +209,398 @@
                         <property name="top-attach">1</property>
                       </packing>
                     </child>
+                  </object>
+                </child>
+                <child type="label">
+                  <object class="GtkLabel" id="lbData">
+                    <property name="visible">True</property>
+                    <property name="can-focus">False</property>
+                    <property name="label" translatable="yes" 
context="SparklineDialog|label-data">Data</property>
+                    <attributes>
+                      <attribute name="weight" value="bold"/>
+                    </attributes>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="left-attach">0</property>
+                <property name="top-attach">0</property>
+                <property name="width">2</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkFrame" id="frmColors">
+                <property name="visible">True</property>
+                <property name="can-focus">False</property>
+                <property name="label-xalign">0</property>
+                <property name="shadow-type">none</property>
+                <child>
+                  <!-- n-columns=2 n-rows=7 -->
+                  <object class="GtkGrid">
+                    <property name="visible">True</property>
+                    <property name="can-focus">False</property>
+                    <property name="margin-start">12</property>
+                    <property name="margin-top">6</property>
+                    <property name="row-spacing">3</property>
+                    <property name="column-spacing">6</property>
                     <child>
-                      <object class="GtkLabel" id="label-high">
+                      <object class="GtkLabel" id="lbSeries">
                         <property name="visible">True</property>
                         <property name="can-focus">False</property>
-                        <property name="label" translatable="yes" 
context="SparklineDialog|label-high">High points:</property>
+                        <property name="label" translatable="yes" 
context="SparklineDialog|label_Series">Series:</property>
+                        <property name="use-underline">True</property>
                         <property name="xalign">0</property>
                         <accessibility>
-                          <relation type="label-for" target="check-high"/>
-                          <relation type="label-for" 
target="color-button-high"/>
+                          <relation type="label-for" target="colSeries"/>
                         </accessibility>
                       </object>
                       <packing>
                         <property name="left-attach">0</property>
-                        <property name="top-attach">2</property>
+                        <property name="top-attach">0</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkCheckButton" id="check-negative">
+                      <object class="GtkMenuButton" id="colSeries">
                         <property name="visible">True</property>
                         <property name="can-focus">True</property>
                         <property name="receives-default">False</property>
-                        <property name="image-position">right</property>
-                        <property name="always-show-image">True</property>
+                        <property name="halign">start</property>
                         <property name="draw-indicator">True</property>
                         <child>
                           <placeholder/>
                         </child>
                         <accessibility>
-                          <relation type="labelled-by" 
target="label-negative"/>
+                          <relation type="labelled-by" target="lbSeries"/>
                         </accessibility>
                       </object>
                       <packing>
                         <property name="left-attach">1</property>
-                        <property name="top-attach">1</property>
+                        <property name="top-attach">0</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkCheckButton" id="check-high">
+                      <object class="GtkCheckButton" id="cbNegative">
+                        <property name="label" translatable="yes" 
context="SparklineDialog|checkButton_Negative">Negative points:</property>
                         <property name="visible">True</property>
                         <property name="can-focus">True</property>
                         <property name="receives-default">False</property>
                         <property name="image-position">right</property>
                         <property name="always-show-image">True</property>
                         <property name="draw-indicator">True</property>
-                        <child>
-                          <placeholder/>
-                        </child>
                         <accessibility>
-                          <relation type="labelled-by" target="label-high"/>
+                          <relation type="label-for" target="colNegative"/>
                         </accessibility>
                       </object>
                       <packing>
-                        <property name="left-attach">1</property>
-                        <property name="top-attach">2</property>
+                        <property name="left-attach">0</property>
+                        <property name="top-attach">1</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkMenuButton" id="color-button-negative">
+                      <object class="GtkMenuButton" id="colNegative">
                         <property name="visible">True</property>
                         <property name="can-focus">True</property>
                         <property name="receives-default">False</property>
-                        <property name="hexpand">True</property>
+                        <property name="halign">start</property>
                         <property name="draw-indicator">True</property>
                         <child>
                           <placeholder/>
                         </child>
                         <accessibility>
-                          <relation type="labelled-by" 
target="label-negative"/>
+                          <relation type="labelled-by" target="cbNegative"/>
                         </accessibility>
                       </object>
                       <packing>
-                        <property name="left-attach">2</property>
+                        <property name="left-attach">1</property>
                         <property name="top-attach">1</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkMenuButton" id="color-button-high">
+                      <object class="GtkCheckButton" id="cbHigh">
+                        <property name="label" translatable="yes" 
context="SparklineDialog|checkButton_High">High points:</property>
                         <property name="visible">True</property>
                         <property name="can-focus">True</property>
                         <property name="receives-default">False</property>
+                        <property name="image-position">right</property>
+                        <property name="always-show-image">True</property>
                         <property name="draw-indicator">True</property>
-                        <child>
-                          <placeholder/>
-                        </child>
                         <accessibility>
-                          <relation type="labelled-by" target="label-high"/>
+                          <relation type="label-for" target="colHigh"/>
                         </accessibility>
                       </object>
                       <packing>
-                        <property name="left-attach">2</property>
+                        <property name="left-attach">0</property>
                         <property name="top-attach">2</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkLabel" id="label-low">
+                      <object class="GtkMenuButton" id="colHigh">
                         <property name="visible">True</property>
-                        <property name="can-focus">False</property>
-                        <property name="label" translatable="yes" 
context="SparklineDialog|label-low">Low points:</property>
-                        <property name="xalign">0</property>
+                        <property name="can-focus">True</property>
+                        <property name="receives-default">False</property>
+                        <property name="halign">start</property>
+                        <property name="draw-indicator">True</property>
+                        <child>
+                          <placeholder/>
+                        </child>
                         <accessibility>
-                          <relation type="label-for" target="check-low"/>
-                          <relation type="label-for" 
target="color-button-low"/>
+                          <relation type="labelled-by" target="cbHigh"/>
                         </accessibility>
                       </object>
                       <packing>
-                        <property name="left-attach">0</property>
-                        <property name="top-attach">3</property>
+                        <property name="left-attach">1</property>
+                        <property name="top-attach">2</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkCheckButton" id="check-low">
+                      <object class="GtkCheckButton" id="cbLow">
+                        <property name="label" translatable="yes" 
context="SparklineDialog|checkButton_Low">Low points:</property>
                         <property name="visible">True</property>
                         <property name="can-focus">True</property>
                         <property name="receives-default">False</property>
                         <property name="image-position">right</property>
                         <property name="always-show-image">True</property>
                         <property name="draw-indicator">True</property>
-                        <child>
-                          <placeholder/>
-                        </child>
                         <accessibility>
-                          <relation type="labelled-by" target="label-low"/>
+                          <relation type="label-for" target="colLow"/>
                         </accessibility>
                       </object>
                       <packing>
-                        <property name="left-attach">1</property>
+                        <property name="left-attach">0</property>
                         <property name="top-attach">3</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkMenuButton" id="color-button-low">
+                      <object class="GtkMenuButton" id="colLow">
                         <property name="visible">True</property>
                         <property name="can-focus">True</property>
                         <property name="receives-default">False</property>
+                        <property name="halign">start</property>
                         <property name="draw-indicator">True</property>
                         <child>
                           <placeholder/>
                         </child>
                         <accessibility>
-                          <relation type="labelled-by" target="label-low"/>
+                          <relation type="labelled-by" target="cbLow"/>
                         </accessibility>
                       </object>
                       <packing>
-                        <property name="left-attach">2</property>
+                        <property name="left-attach">1</property>
                         <property name="top-attach">3</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkLabel" id="label-last">
+                      <object class="GtkCheckButton" id="cbMarker">
+                        <property name="label" translatable="yes" 
context="SparklineDialog|checkButton_Marker">Marker:</property>
                         <property name="visible">True</property>
-                        <property name="can-focus">False</property>
-                        <property name="label" translatable="yes" 
context="SparklineDialog|label-last">Last points:</property>
-                        <property name="xalign">0</property>
+                        <property name="can-focus">True</property>
+                        <property name="receives-default">False</property>
+                        <property name="image-position">right</property>
+                        <property name="always-show-image">True</property>
+                        <property name="draw-indicator">True</property>
                         <accessibility>
-                          <relation type="label-for" target="check-last"/>
-                          <relation type="label-for" 
target="color-button-last"/>
+                          <relation type="label-for" target="colMarker"/>
                         </accessibility>
                       </object>
                       <packing>
-                        <property name="left-attach">3</property>
-                        <property name="top-attach">3</property>
+                        <property name="left-attach">0</property>
+                        <property name="top-attach">4</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkLabel" id="label-first">
+                      <object class="GtkMenuButton" id="colMarker">
                         <property name="visible">True</property>
-                        <property name="can-focus">False</property>
-                        <property name="label" translatable="yes" 
context="SparklineDialog|label-first">First points:</property>
-                        <property name="xalign">0</property>
+                        <property name="can-focus">True</property>
+                        <property name="receives-default">False</property>
+                        <property name="halign">start</property>
+                        <property name="draw-indicator">True</property>
+                        <child>
+                          <placeholder/>
+                        </child>
                         <accessibility>
-                          <relation type="label-for" target="check-first"/>
-                          <relation type="label-for" 
target="color-button-first"/>
+                          <relation type="labelled-by" target="cbMarker"/>
                         </accessibility>
                       </object>
                       <packing>
-                        <property name="left-attach">3</property>
-                        <property name="top-attach">2</property>
+                        <property name="left-attach">1</property>
+                        <property name="top-attach">4</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkLabel" id="label-marker">
+                      <object class="GtkCheckButton" id="cbFirst">
+                        <property name="label" translatable="yes" 
context="SparklineDialog|checkButton_First">First point:</property>
                         <property name="visible">True</property>
-                        <property name="can-focus">False</property>
-                        <property name="hexpand">False</property>
-                        <property name="label" translatable="yes" 
context="SparklineDialog|label-marker">Marker:</property>
-                        <property name="xalign">0</property>
+                        <property name="can-focus">True</property>
+                        <property name="receives-default">False</property>
+                        <property name="image-position">right</property>
+                        <property name="always-show-image">True</property>
+                        <property name="draw-indicator">True</property>
                         <accessibility>
-                          <relation type="label-for" target="check-marker"/>
-                          <relation type="label-for" 
target="color-button-marker"/>
+                          <relation type="label-for" target="colFirst"/>
                         </accessibility>
                       </object>
                       <packing>
-                        <property name="left-attach">3</property>
-                        <property name="top-attach">1</property>
+                        <property name="left-attach">0</property>
+                        <property name="top-attach">5</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkCheckButton" id="check-marker">
+                      <object class="GtkMenuButton" id="colFirst">
                         <property name="visible">True</property>
                         <property name="can-focus">True</property>
                         <property name="receives-default">False</property>
-                        <property name="image-position">right</property>
-                        <property name="always-show-image">True</property>
+                        <property name="halign">start</property>
                         <property name="draw-indicator">True</property>
                         <child>
                           <placeholder/>
                         </child>
                         <accessibility>
-                          <relation type="labelled-by" target="label-marker"/>
+                          <relation type="labelled-by" target="cbFirst"/>
                         </accessibility>
                       </object>
                       <packing>
-                        <property name="left-attach">4</property>
-                        <property name="top-attach">1</property>
+                        <property name="left-attach">1</property>
+                        <property name="top-attach">5</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkCheckButton" id="check-first">
+                      <object class="GtkCheckButton" id="cbLast">
+                        <property name="label" translatable="yes" 
context="SparklineDialog|checkButton_Last">Last point:</property>
                         <property name="visible">True</property>
                         <property name="can-focus">True</property>
                         <property name="receives-default">False</property>
                         <property name="image-position">right</property>
                         <property name="always-show-image">True</property>
                         <property name="draw-indicator">True</property>
-                        <child>
-                          <placeholder/>
-                        </child>
                         <accessibility>
-                          <relation type="labelled-by" target="label-first"/>
+                          <relation type="label-for" target="colLast"/>
                         </accessibility>
                       </object>
                       <packing>
-                        <property name="left-attach">4</property>
-                        <property name="top-attach">2</property>
+                        <property name="left-attach">0</property>
+                        <property name="top-attach">6</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkCheckButton" id="check-last">
+                      <object class="GtkMenuButton" id="colLast">
                         <property name="visible">True</property>
                         <property name="can-focus">True</property>
                         <property name="receives-default">False</property>
-                        <property name="image-position">right</property>
-                        <property name="always-show-image">True</property>
+                        <property name="halign">start</property>
                         <property name="draw-indicator">True</property>
                         <child>
                           <placeholder/>
                         </child>
                         <accessibility>
-                          <relation type="labelled-by" target="label-last"/>
+                          <relation type="labelled-by" target="cbLast"/>
                         </accessibility>
                       </object>
                       <packing>
-                        <property name="left-attach">4</property>
-                        <property name="top-attach">3</property>
+                        <property name="left-attach">1</property>
+                        <property name="top-attach">6</property>
                       </packing>
                     </child>
+                  </object>
+                </child>
+                <child type="label">
+                  <object class="GtkLabel" id="lbColors">
+                    <property name="visible">True</property>
+                    <property name="can-focus">False</property>
+                    <property name="label" translatable="yes" 
context="SparklineDialog|label_Colors">Colors</property>
+                    <attributes>
+                      <attribute name="weight" value="bold"/>
+                    </attributes>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="left-attach">1</property>
+                <property name="top-attach">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkFrame" id="frmProperties">
+                <property name="visible">True</property>
+                <property name="can-focus">False</property>
+                <property name="valign">start</property>
+                <property name="hexpand">True</property>
+                <property name="label-xalign">0</property>
+                <property name="shadow-type">none</property>
+                <child>
+                  <!-- n-columns=2 n-rows=5 -->
+                  <object class="GtkGrid" id="gdProperties">
+                    <property name="visible">True</property>
+                    <property name="can-focus">False</property>
+                    <property name="valign">start</property>
+                    <property name="margin-start">12</property>
+                    <property name="margin-top">6</property>
+                    <property name="row-spacing">3</property>
+                    <property name="column-spacing">6</property>
                     <child>
-                      <object class="GtkMenuButton" id="color-button-marker">
+                      <object class="GtkLabel" id="lbLineWidth">
                         <property name="visible">True</property>
-                        <property name="can-focus">True</property>
-                        <property name="receives-default">False</property>
-                        <property name="hexpand">True</property>
-                        <property name="draw-indicator">True</property>
-                        <child>
-                          <placeholder/>
-                        </child>
-                        <accessibility>
-                          <relation type="labelled-by" target="label-marker"/>
-                        </accessibility>
+                        <property name="can-focus">False</property>
+                        <property name="label" translatable="yes" 
context="SparklineDialog|label_LineWidth">Line width:</property>
+                        <property name="use-underline">True</property>
+                        <property name="mnemonic-widget">seLineWidth</property>
+                        <property name="xalign">0</property>
                       </object>
                       <packing>
-                        <property name="left-attach">5</property>
+                        <property name="left-attach">0</property>
                         <property name="top-attach">1</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkMenuButton" id="color-button-first">
+                      <object class="GtkSpinButton" id="seLineWidth">
                         <property name="visible">True</property>
                         <property name="can-focus">True</property>
-                        <property name="receives-default">False</property>
-                        <property name="draw-indicator">True</property>
-                        <child>
-                          <placeholder/>
-                        </child>
-                        <accessibility>
-                          <relation type="labelled-by" target="label-first"/>
-                        </accessibility>
+                        <property name="hexpand">True</property>
+                        <property name="text" translatable="yes" 
context="SparklineDialog|spinButton_LineWidth">1,00</property>
+                        <property name="input-purpose">number</property>
+                        <property 
name="adjustment">adjustment-line-width</property>
+                        <property name="climb-rate">0.25</property>
+                        <property name="digits">2</property>
+                        <property name="snap-to-ticks">True</property>
+                        <property name="numeric">True</property>
+                        <property name="value">1</property>
                       </object>
                       <packing>
-                        <property name="left-attach">5</property>
-                        <property name="top-attach">2</property>
+                        <property name="left-attach">1</property>
+                        <property name="top-attach">1</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkMenuButton" id="color-button-last">
+                      <object class="GtkLabel" id="lbEmpytCells">
                         <property name="visible">True</property>
-                        <property name="can-focus">True</property>
-                        <property name="receives-default">False</property>
-                        <property name="draw-indicator">True</property>
-                        <child>
-                          <placeholder/>
-                        </child>
-                        <accessibility>
-                          <relation type="labelled-by" target="label-last"/>
-                        </accessibility>
+                        <property name="can-focus">False</property>
+                        <property name="label" translatable="yes" 
context="SparklineDialog|label_DisplayEmptyCellsAs">Display empty cells 
as:</property>
+                        <property name="use-underline">True</property>
+                        <property 
name="mnemonic-widget">cbEmptyCells</property>
+                        <property name="xalign">0</property>
                       </object>
                       <packing>
-                        <property name="left-attach">5</property>
-                        <property name="top-attach">3</property>
+                        <property name="left-attach">0</property>
+                        <property name="top-attach">2</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkFixed">
+                      <object class="GtkComboBoxText" id="cbEmptyCells">
                         <property name="visible">True</property>
                         <property name="can-focus">False</property>
+                        <items>
+                          <item id="0" translatable="yes" 
context="SparklineDialog|optionEmpty_Gap">Gap</item>
+                          <item id="1" translatable="yes" 
context="SparklineDialog|optionEmpty_Zero">Zero</item>
+                          <item id="2" translatable="yes" 
context="SparklineDialog|optionEmpty_Span">Span</item>
+                        </items>
                       </object>
                       <packing>
-                        <property name="left-attach">3</property>
-                        <property name="top-attach">0</property>
-                        <property name="width">3</property>
+                        <property name="left-attach">1</property>
+                        <property name="top-attach">2</property>
                       </packing>
                     </child>
-                  </object>
-                  <packing>
-                    <property name="left-attach">0</property>
-                    <property name="top-attach">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkBox">
-                    <property name="visible">True</property>
-                    <property name="can-focus">False</property>
-                    <property name="hexpand">True</property>
-                    <property name="spacing">6</property>
                     <child>
-                      <object class="GtkCheckButton" id="check-display-x-axis">
-                        <property name="label" translatable="yes" 
context="SparklineDialog|check-display-x-axis">Display X axis</property>
+                      <object class="GtkCheckButton" id="cbHidden">
+                        <property name="label" translatable="yes" 
context="SparklineDialog|checkButton_Hidden">Display hidden</property>
                         <property name="visible">True</property>
                         <property name="can-focus">True</property>
                         <property name="receives-default">False</property>
@@ -728,14 +609,14 @@
                         <property name="draw-indicator">True</property>
                       </object>
                       <packing>
-                        <property name="expand">True</property>
-                        <property name="fill">True</property>
-                        <property name="position">0</property>
+                        <property name="left-attach">0</property>
+                        <property name="top-attach">3</property>
+                        <property name="width">2</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkCheckButton" id="check-display-hidden">
-                        <property name="label" translatable="yes" 
context="SparklineDialog|check-display-hidden">Display hidden</property>
+                      <object class="GtkCheckButton" id="cbRTL">
+                        <property name="label" translatable="yes" 
context="SparklineDialog|checkButton_RTL">Right-to-left</property>
                         <property name="visible">True</property>
                         <property name="can-focus">True</property>
                         <property name="receives-default">False</property>
@@ -744,318 +625,201 @@
                         <property name="draw-indicator">True</property>
                       </object>
                       <packing>
-                        <property name="expand">True</property>
-                        <property name="fill">True</property>
-                        <property name="position">1</property>
+                        <property name="left-attach">0</property>
+                        <property name="top-attach">4</property>
+                        <property name="width">2</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkCheckButton" id="check-right-to-left">
-                        <property name="label" translatable="yes" 
context="SparklineDialog|check-right-to-left">Right-to-left</property>
+                      <object class="GtkComboBoxText" id="cbType">
                         <property name="visible">True</property>
-                        <property name="can-focus">True</property>
-                        <property name="receives-default">False</property>
-                        <property name="image-position">right</property>
-                        <property name="always-show-image">True</property>
-                        <property name="draw-indicator">True</property>
+                        <property name="can-focus">False</property>
+                        <property name="valign">start</property>
+                        <items>
+                          <item id="0" translatable="yes" 
context="SparklineDialog|optionType_Line">Line</item>
+                          <item id="1" translatable="yes" 
context="SparklineDialog|optionType_Column">Column</item>
+                          <item id="2" translatable="yes" 
context="SparklineDialog|optionType_Stacked">Stacked</item>
+                        </items>
+                      </object>
+                      <packing>
+                        <property name="left-attach">1</property>
+                        <property name="top-attach">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkLabel" id="lbType">
+                        <property name="visible">True</property>
+                        <property name="can-focus">False</property>
+                        <property name="label" translatable="yes" 
context="SparklineDialog|label_Type">Type:</property>
+                        <property name="use-underline">True</property>
+                        <property name="mnemonic-widget">cbType</property>
+                        <property name="xalign">0</property>
                       </object>
                       <packing>
-                        <property name="expand">True</property>
-                        <property name="fill">True</property>
-                        <property name="position">2</property>
+                        <property name="left-attach">0</property>
+                        <property name="top-attach">0</property>
                       </packing>
                     </child>
                   </object>
-                  <packing>
-                    <property name="left-attach">0</property>
-                    <property name="top-attach">3</property>
-                  </packing>
                 </child>
+                <child type="label">
+                  <object class="GtkLabel" id="lbProperties">
+                    <property name="visible">True</property>
+                    <property name="can-focus">False</property>
+                    <property name="label" translatable="yes" 
context="SparklineDialog|label_Properties">Properties</property>
+                    <attributes>
+                      <attribute name="weight" value="bold"/>
+                    </attributes>
+                  </object>
+                </child>
+              </object>
+              <packing>
+                <property name="left-attach">0</property>
+                <property name="top-attach">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkFrame" id="frmAxes">
+                <property name="visible">True</property>
+                <property name="can-focus">False</property>
+                <property name="label-xalign">0</property>
+                <property name="shadow-type">none</property>
                 <child>
-                  <object class="GtkBox">
+                  <!-- n-columns=3 n-rows=3 -->
+                  <object class="GtkGrid">
                     <property name="visible">True</property>
                     <property name="can-focus">False</property>
-                    <property name="spacing">6</property>
+                    <property name="margin-start">12</property>
+                    <property name="margin-top">6</property>
+                    <property name="row-spacing">3</property>
+                    <property name="column-spacing">6</property>
                     <child>
-                      <object class="GtkLabel" 
id="label-display-empty-cells-as">
+                      <object class="GtkComboBoxText" id="cbMinAxisType">
                         <property name="visible">True</property>
                         <property name="can-focus">False</property>
-                        <property name="label" translatable="yes" 
context="SparklineDialog|label-type">Display Empty Cells As:</property>
-                        <property name="xalign">0</property>
-                        <accessibility>
-                          <relation type="label-for" 
target="display-empty-radiobutton-gap"/>
-                          <relation type="label-for" 
target="display-empty-radiobutton-zero"/>
-                          <relation type="label-for" 
target="display-empty-radiobutton-span"/>
-                        </accessibility>
+                        <property name="active">0</property>
+                        <items>
+                          <item id="0" translatable="yes" 
context="SparklineDialog|option_MinAxis_Individual">Individual</item>
+                          <item id="1" translatable="yes" 
context="SparklineDialog|option_MinAxis_Group">Group</item>
+                          <item id="2" translatable="yes" 
context="SparklineDialog|option_MinAxis_Custom">Custom</item>
+                        </items>
                       </object>
                       <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">True</property>
-                        <property name="position">0</property>
+                        <property name="left-attach">1</property>
+                        <property name="top-attach">1</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkRadioButton" 
id="display-empty-radiobutton-gap">
-                        <property name="label" translatable="yes" 
context="SparklineDialog|line-radiobutton">Gap</property>
+                      <object class="GtkSpinButton" id="seMinAxis">
                         <property name="visible">True</property>
                         <property name="can-focus">True</property>
-                        <property name="receives-default">False</property>
-                        <property name="hexpand">True</property>
-                        <property name="active">True</property>
-                        <property name="draw-indicator">True</property>
-                        <accessibility>
-                          <relation type="labelled-by" 
target="label-display-empty-cells-as"/>
-                        </accessibility>
+                        <property name="activates-default">True</property>
+                        <property name="width-chars">10</property>
+                        <property name="truncate-multiline">True</property>
+                        <property 
name="adjustment">adjustment-custom-min</property>
                       </object>
                       <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">True</property>
-                        <property name="position">1</property>
+                        <property name="left-attach">2</property>
+                        <property name="top-attach">1</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkRadioButton" 
id="display-empty-radiobutton-zero">
-                        <property name="label" translatable="yes" 
context="SparklineDialog|line-radiobutton">Zero</property>
+                      <object class="GtkComboBoxText" id="cbMaxAxisType">
                         <property name="visible">True</property>
-                        <property name="can-focus">True</property>
-                        <property name="receives-default">False</property>
-                        <property name="hexpand">True</property>
-                        <property name="active">True</property>
-                        <property name="draw-indicator">True</property>
-                        <property 
name="group">display-empty-radiobutton-gap</property>
-                        <accessibility>
-                          <relation type="labelled-by" 
target="label-display-empty-cells-as"/>
-                        </accessibility>
+                        <property name="can-focus">False</property>
+                        <property name="active">0</property>
+                        <items>
+                          <item id="0" translatable="yes" 
context="SparklineDialog|option_MaxAxis_Individual">Individual</item>
+                          <item id="1" translatable="yes" 
context="SparklineDialog|option_MaxAxis_Group">Group</item>
+                          <item id="2" translatable="yes" 
context="SparklineDialog|option_MaxAxis_Custom">Custom</item>
+                        </items>
                       </object>
                       <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">True</property>
-                        <property name="position">2</property>
+                        <property name="left-attach">1</property>
+                        <property name="top-attach">2</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkRadioButton" 
id="display-empty-radiobutton-span">
-                        <property name="label" translatable="yes" 
context="SparklineDialog|line-radiobutton">Span</property>
+                      <object class="GtkSpinButton" id="seMaxAxis">
                         <property name="visible">True</property>
                         <property name="can-focus">True</property>
-                        <property name="receives-default">False</property>
-                        <property name="hexpand">True</property>
-                        <property name="active">True</property>
-                        <property name="draw-indicator">True</property>
-                        <property 
name="group">display-empty-radiobutton-gap</property>
-                        <accessibility>
-                          <relation type="labelled-by" 
target="label-display-empty-cells-as"/>
-                        </accessibility>
+                        <property name="activates-default">True</property>
+                        <property name="width-chars">10</property>
+                        <property name="truncate-multiline">True</property>
+                        <property 
name="adjustment">adjustment-custom-max</property>
                       </object>
                       <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">True</property>
-                        <property name="position">3</property>
+                        <property name="left-attach">2</property>
+                        <property name="top-attach">2</property>
                       </packing>
                     </child>
-                  </object>
-                  <packing>
-                    <property name="left-attach">0</property>
-                    <property name="top-attach">4</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkExpander">
-                    <property name="visible">True</property>
-                    <property name="can-focus">True</property>
-                    <property name="hexpand">True</property>
-                    <property name="expanded">True</property>
-                    <property name="label-fill">True</property>
-                    <property name="resize-toplevel">True</property>
                     <child>
-                      <!-- n-columns=3 n-rows=2 -->
-                      <object class="GtkGrid">
-                        <property name="visible">True</property>
-                        <property name="can-focus">False</property>
-                        <property name="row-spacing">6</property>
-                        <property name="column-spacing">6</property>
-                        <child>
-                          <object class="GtkLabel" id="label-minimum">
-                            <property name="visible">True</property>
-                            <property name="can-focus">False</property>
-                            <property name="xpad">12</property>
-                            <property name="label" translatable="yes" 
context="SparklineDialog|label-series">Minimum value:</property>
-                            <property name="xalign">0</property>
-                            <accessibility>
-                              <relation type="label-for" 
target="combo-min-axis-type"/>
-                              <relation type="label-for" 
target="spin-custom-min"/>
-                            </accessibility>
-                          </object>
-                          <packing>
-                            <property name="left-attach">0</property>
-                            <property name="top-attach">0</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkLabel" id="label-maximum">
-                            <property name="visible">True</property>
-                            <property name="can-focus">False</property>
-                            <property name="xpad">12</property>
-                            <property name="label" translatable="yes" 
context="SparklineDialog|label-series">Maximum value:</property>
-                            <property name="xalign">0</property>
-                            <accessibility>
-                              <relation type="label-for" 
target="combo-max-axis-type"/>
-                              <relation type="label-for" 
target="spin-custom-max"/>
-                            </accessibility>
-                          </object>
-                          <packing>
-                            <property name="left-attach">0</property>
-                            <property name="top-attach">1</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkComboBoxText" 
id="combo-min-axis-type">
-                            <property name="visible">True</property>
-                            <property name="can-focus">False</property>
-                            <property name="active">0</property>
-                            <items>
-                              <item id="0" translatable="yes" 
context="SparklineDialog|combo-min-axis-type_0">Individual</item>
-                              <item id="1" translatable="yes" 
context="SparklineDialog|combo-min-axis-type_1">Group</item>
-                              <item id="2" translatable="yes" 
context="SparklineDialog|combo-min-axis-type_2">Custom</item>
-                            </items>
-                            <accessibility>
-                              <relation type="labelled-by" 
target="label-minimum"/>
-                            </accessibility>
-                          </object>
-                          <packing>
-                            <property name="left-attach">1</property>
-                            <property name="top-attach">0</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkComboBoxText" 
id="combo-max-axis-type">
-                            <property name="visible">True</property>
-                            <property name="can-focus">False</property>
-                            <property name="active">0</property>
-                            <items>
-                              <item id="0" translatable="yes" 
context="SparklineDialog|combo-max-axis-type_0">Individual</item>
-                              <item id="1" translatable="yes" 
context="SparklineDialog|combo-max-axis-type_1">Group</item>
-                              <item id="2" translatable="yes" 
context="SparklineDialog|combo-max-axis-type_2">Custom</item>
-                            </items>
-                            <accessibility>
-                              <relation type="labelled-by" 
target="label-maximum"/>
-                            </accessibility>
-                          </object>
-                          <packing>
-                            <property name="left-attach">1</property>
-                            <property name="top-attach">1</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkSpinButton" id="spin-custom-min">
-                            <property name="visible">True</property>
-                            <property name="can-focus">True</property>
-                            <property name="hexpand">True</property>
-                            <property name="activates-default">True</property>
-                            <property name="width-chars">10</property>
-                            <property name="truncate-multiline">True</property>
-                            <property 
name="adjustment">adjustment-custom-min</property>
-                            <accessibility>
-                              <relation type="labelled-by" 
target="label-minimum"/>
-                            </accessibility>
-                          </object>
-                          <packing>
-                            <property name="left-attach">2</property>
-                            <property name="top-attach">0</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkSpinButton" id="spin-custom-max">
-                            <property name="visible">True</property>
-                            <property name="can-focus">True</property>
-                            <property name="hexpand">True</property>
-                            <property name="activates-default">True</property>
-                            <property name="width-chars">10</property>
-                            <property name="truncate-multiline">True</property>
-                            <property 
name="adjustment">adjustment-custom-max</property>
-                            <accessibility>
-                              <relation type="labelled-by" 
target="label-maximum"/>
-                            </accessibility>
-                          </object>
-                          <packing>
-                            <property name="left-attach">2</property>
-                            <property name="top-attach">1</property>
-                          </packing>
-                        </child>
-                      </object>
-                    </child>
-                    <child type="label">
-                      <object class="GtkLabel">
+                      <object class="GtkLabel" id="lbMaxAxis">
                         <property name="visible">True</property>
                         <property name="can-focus">False</property>
-                        <property name="label" translatable="yes" 
context="SparklineDialog|label-vertical-axis">Vertical Axis</property>
+                        <property name="halign">start</property>
+                        <property name="xpad">0</property>
+                        <property name="label" translatable="yes" 
context="SparklineDialog|label_AxisMaximum">Vertical maximum</property>
+                        <property name="use-underline">True</property>
+                        <property 
name="mnemonic-widget">cbMaxAxisType</property>
+                        <property name="xalign">0</property>
                       </object>
+                      <packing>
+                        <property name="left-attach">0</property>
+                        <property name="top-attach">2</property>
+                      </packing>
                     </child>
-                  </object>
-                  <packing>
-                    <property name="left-attach">0</property>
-                    <property name="top-attach">5</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkBox">
-                    <property name="visible">True</property>
-                    <property name="can-focus">False</property>
                     <child>
-                      <object class="GtkLabel" id="label-line-width">
+                      <object class="GtkLabel" id="lbMinAxis">
                         <property name="visible">True</property>
                         <property name="can-focus">False</property>
-                        <property name="label" translatable="yes" 
context="SparklineDialog|label-line-width">Line width:</property>
+                        <property name="halign">start</property>
+                        <property name="xpad">0</property>
+                        <property name="label" translatable="yes" 
context="SparklineDialog|label_AxisMinimum">Vertical minimum:</property>
+                        <property name="use-underline">True</property>
+                        <property 
name="mnemonic-widget">cbMinAxisType</property>
                         <property name="xalign">0</property>
-                        <accessibility>
-                          <relation type="label-for" target="spin-line-width"/>
-                        </accessibility>
                       </object>
                       <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">True</property>
-                        <property name="position">0</property>
+                        <property name="left-attach">0</property>
+                        <property name="top-attach">1</property>
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkSpinButton" id="spin-line-width">
+                      <object class="GtkCheckButton" id="cbDisplayXAxis">
+                        <property name="label" translatable="yes" 
context="SparklineDialog|checkBox_DisplayX">Display X axis</property>
                         <property name="visible">True</property>
                         <property name="can-focus">True</property>
-                        <property name="hexpand">True</property>
-                        <property name="input-purpose">number</property>
-                        <property 
name="adjustment">adjustment-line-width</property>
-                        <property name="climb-rate">0.25</property>
-                        <property name="digits">2</property>
-                        <property name="snap-to-ticks">True</property>
-                        <property name="numeric">True</property>
-                        <property name="value">1</property>
-                        <accessibility>
-                          <relation type="labelled-by" 
target="label-line-width"/>
-                        </accessibility>
+                        <property name="receives-default">False</property>
+                        <property name="halign">start</property>
+                        <property name="image-position">right</property>
+                        <property name="always-show-image">True</property>
+                        <property name="draw-indicator">True</property>
                       </object>
                       <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">True</property>
-                        <property name="position">1</property>
+                        <property name="left-attach">0</property>
+                        <property name="top-attach">0</property>
+                        <property name="width">3</property>
                       </packing>
                     </child>
                   </object>
-                  <packing>
-                    <property name="left-attach">0</property>
-                    <property name="top-attach">2</property>
-                  </packing>
+                </child>
+                <child type="label">
+                  <object class="GtkLabel" id="lbAxes">
+                    <property name="visible">True</property>
+                    <property name="can-focus">False</property>
+                    <property name="label" translatable="yes" 
context="SparklineDialog|label_Axes">Axes</property>
+                    <attributes>
+                      <attribute name="weight" value="bold"/>
+                    </attributes>
+                  </object>
                 </child>
               </object>
-            </child>
-            <child type="label">
-              <object class="GtkLabel" id="label-properties">
-                <property name="visible">True</property>
-                <property name="can-focus">False</property>
-                <property name="label" translatable="yes" 
context="SparklineDialog|label-properties">Properties</property>
-                <attributes>
-                  <attribute name="weight" value="bold"/>
-                </attributes>
-              </object>
+              <packing>
+                <property name="left-attach">0</property>
+                <property name="top-attach">2</property>
+                <property name="width">2</property>
+              </packing>
             </child>
           </object>
           <packing>
@@ -1072,19 +836,4 @@
       <action-widget response="-11">help</action-widget>
     </action-widgets>
   </object>
-  <object class="GtkSizeGroup">
-    <widgets>
-      <widget name="cell-range-label"/>
-      <widget name="output-range-label"/>
-      <widget name="label-type"/>
-      <widget name="label-series"/>
-      <widget name="label-negative"/>
-      <widget name="label-high"/>
-      <widget name="label-low"/>
-      <widget name="label-display-empty-cells-as"/>
-      <widget name="label-minimum"/>
-      <widget name="label-maximum"/>
-      <widget name="label-line-width"/>
-    </widgets>
-  </object>
 </interface>
diff --git a/solenv/sanitizers/ui/modules/scalc.suppr 
b/solenv/sanitizers/ui/modules/scalc.suppr
index 445d4c530666..a7ff0573567d 100644
--- a/solenv/sanitizers/ui/modules/scalc.suppr
+++ b/solenv/sanitizers/ui/modules/scalc.suppr
@@ -156,3 +156,5 @@ 
sc/uiconfig/scalc/ui/xmlsourcedialog.ui://GtkLabel[@id='sourcefile'] orphan-labe
 sc/uiconfig/scalc/ui/xmlsourcedialog.ui://GtkTreeView[@id='tree'] 
no-labelled-by
 sc/uiconfig/scalc/ui/xmlsourcedialog.ui://GtkLabel[@id='label5'] orphan-label
 sc/uiconfig/scalc/ui/xmlsourcedialog.ui://GtkEntry[@id='edit'] no-labelled-by
+sc/uiconfig/scalc/ui/sparklinedialog.ui://GtkSpinButton[@id='seMinAxis'] 
no-labelled-by
+sc/uiconfig/scalc/ui/sparklinedialog.ui://GtkSpinButton[@id='seMaxAxis'] 
no-labelled-by

Reply via email to