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