tdf#124155 change "gradient tab page" - increment & angle slider

Remove slider for increments as the increments should better be
left to "auto" and rarely modified (setting a value means it will
use a limitied amount of increments, but auto effectively means
as much as it is needed and can use the native backend for
drawing).

OTOH use a slider for setting the "angle" as it is already present
in hatch tab page. Angle needs a slider as it is usually one of
the main properties of a gradient (especially linear).

Increase the tab pages a bit (10px on every side) to have a bit of
breating space for all the widgets.

Change-Id: I66167fe2c97b53bc3627237279332bdd59fb03d7
Reviewed-on: https://gerrit.libreoffice.org/70175
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
diff --git a/cui/source/inc/cuitabarea.hxx b/cui/source/inc/cuitabarea.hxx
index fc45f99..016b976 100644
--- a/cui/source/inc/cuitabarea.hxx
+++ b/cui/source/inc/cuitabarea.hxx
@@ -378,6 +378,7 @@
    std::unique_ptr<weld::MetricSpinButton> m_xMtrCenterY;
    std::unique_ptr<weld::Label> m_xFtAngle;
    std::unique_ptr<weld::MetricSpinButton> m_xMtrAngle;
    std::unique_ptr<weld::Scale> m_xSliderAngle;
    std::unique_ptr<weld::MetricSpinButton> m_xMtrBorder;
    std::unique_ptr<weld::Scale> m_xSliderBorder;
    std::unique_ptr<ColorListBox> m_xLbColorFrom;
@@ -387,7 +388,6 @@
    std::unique_ptr<SvxPresetListBox> m_xGradientLB;
    std::unique_ptr<weld::SpinButton> m_xMtrIncrement;
    std::unique_ptr<weld::CheckButton> m_xCbIncrement;
    std::unique_ptr<weld::Scale> m_xSliderIncrement;
    std::unique_ptr<weld::Button> m_xBtnAdd;
    std::unique_ptr<weld::Button> m_xBtnModify;
    std::unique_ptr<weld::CustomWeld> m_xCtlPreview;
diff --git a/cui/source/tabpages/tparea.cxx b/cui/source/tabpages/tparea.cxx
index 83ffcb3..c4d2c3e 100644
--- a/cui/source/tabpages/tparea.cxx
+++ b/cui/source/tabpages/tparea.cxx
@@ -158,6 +158,8 @@
    }
    m_pFillTabPage.disposeAndClear();

    aSize.extendBy(10, 10); // apply a bit of margin

    m_xFillTab->set_size_request(aSize.Width(), aSize.Height());
}

diff --git a/cui/source/tabpages/tpgradnt.cxx b/cui/source/tabpages/tpgradnt.cxx
index d9cb5c3..529ce2e 100644
--- a/cui/source/tabpages/tpgradnt.cxx
+++ b/cui/source/tabpages/tpgradnt.cxx
@@ -60,6 +60,7 @@
    , m_xMtrCenterY(m_xBuilder->weld_metric_spin_button("centerymtr", FieldUnit::PERCENT))
    , m_xFtAngle(m_xBuilder->weld_label("angleft"))
    , m_xMtrAngle(m_xBuilder->weld_metric_spin_button("anglemtr", FieldUnit::DEGREE))
    , m_xSliderAngle(m_xBuilder->weld_scale("angleslider"))
    , m_xMtrBorder(m_xBuilder->weld_metric_spin_button("bordermtr", FieldUnit::PERCENT))
    , m_xSliderBorder(m_xBuilder->weld_scale("borderslider"))
    , m_xLbColorFrom(new ColorListBox(m_xBuilder->weld_menu_button("colorfromlb"), pParent.GetFrameWeld()))
@@ -69,7 +70,6 @@
    , m_xGradientLB(new SvxPresetListBox(m_xBuilder->weld_scrolled_window("gradientpresetlistwin")))
    , m_xMtrIncrement(m_xBuilder->weld_spin_button("incrementmtr"))
    , m_xCbIncrement(m_xBuilder->weld_check_button("autoincrement"))
    , m_xSliderIncrement(m_xBuilder->weld_scale("incrementslider"))
    , m_xBtnAdd(m_xBuilder->weld_button("add"))
    , m_xBtnModify(m_xBuilder->weld_button("modify"))
    , m_xCtlPreview(new weld::CustomWeld(*m_xBuilder, "previewctl", m_aCtlPreview))
@@ -103,10 +103,10 @@
    m_xLbGradientType->connect_changed( aLink2 );
    m_xCbIncrement->connect_toggled(LINK(this, SvxGradientTabPage, ChangeAutoStepHdl_Impl));
    m_xMtrIncrement->connect_value_changed(LINK(this, SvxGradientTabPage, ModifiedEditHdl_Impl));
    m_xSliderIncrement->connect_value_changed(LINK(this, SvxGradientTabPage, ModifiedSliderHdl_Impl));
    m_xMtrCenterX->connect_value_changed( aLink );
    m_xMtrCenterY->connect_value_changed( aLink );
    m_xMtrAngle->connect_value_changed( aLink );
    m_xSliderAngle->connect_value_changed(LINK(this, SvxGradientTabPage, ModifiedSliderHdl_Impl));
    m_xMtrBorder->connect_value_changed( aLink );
    m_xSliderBorder->connect_value_changed(LINK(this, SvxGradientTabPage, ModifiedSliderHdl_Impl));
    m_xMtrColorFrom->connect_value_changed( aLink );
@@ -231,7 +231,6 @@
void SvxGradientTabPage::Reset( const SfxItemSet* )
{
    m_xMtrIncrement->set_value(DEFAULT_GRADIENTSTEP);
    m_xSliderIncrement->set_value(DEFAULT_GRADIENTSTEP);
    ChangeGradientHdl_Impl();

    // determine state of the buttons
@@ -282,12 +281,10 @@
{
    if (m_xCbIncrement->get_active())
    {
        m_xSliderIncrement->set_sensitive(false);
        m_xMtrIncrement->set_sensitive(false);
    }
    else
    {
        m_xSliderIncrement->set_sensitive(true);
        m_xMtrIncrement->set_sensitive(true);
    }
    ModifiedHdl_Impl(m_xMtrIncrement.get());
@@ -299,10 +296,10 @@
        m_xSliderBorder->set_value(m_xMtrBorder->get_value(FieldUnit::NONE));
    if (pControl == m_xSliderBorder.get())
        m_xMtrBorder->set_value(m_xSliderBorder->get_value(), FieldUnit::NONE);
    if (pControl == m_xMtrIncrement.get())
        m_xSliderIncrement->set_value(m_xMtrIncrement->get_value());
    if (pControl == m_xSliderIncrement.get())
        m_xMtrIncrement->set_value(m_xSliderIncrement->get_value());
    if (pControl == m_xMtrAngle.get())
        m_xSliderAngle->set_value(m_xMtrAngle->get_value(FieldUnit::NONE));
    if (pControl == m_xSliderAngle.get())
        m_xMtrAngle->set_value(m_xSliderAngle->get_value(), FieldUnit::NONE);

    css::awt::GradientStyle eXGS = static_cast<css::awt::GradientStyle>(m_xLbGradientType->get_active());

@@ -543,15 +540,12 @@
        {
            m_xCbIncrement->set_state(TRISTATE_TRUE);
            m_xMtrIncrement->set_sensitive(false);
            m_xSliderIncrement->set_sensitive(false);
        }
        else
        {
            m_xCbIncrement->set_state(TRISTATE_FALSE);
            m_xMtrIncrement->set_sensitive(true);
            m_xMtrIncrement->set_value( nValue );
            m_xSliderIncrement->set_sensitive(true);
            m_xSliderIncrement->set_value(nValue);
        }
        m_xLbGradientType->set_active(
            sal::static_int_cast< sal_Int32 >( eXGS ) );
@@ -564,6 +558,7 @@
        m_xLbColorTo->SelectEntry( pGradient->GetEndColor() );

        m_xMtrAngle->set_value(pGradient->GetAngle() / 10, FieldUnit::NONE); // should be changed in resource
        m_xSliderAngle->set_value(pGradient->GetAngle() / 10);
        m_xMtrBorder->set_value(pGradient->GetBorder(), FieldUnit::NONE);
        m_xSliderBorder->set_value(pGradient->GetBorder());
        m_xMtrCenterX->set_value(pGradient->GetXOffset(), FieldUnit::NONE);
diff --git a/cui/uiconfig/ui/gradientpage.ui b/cui/uiconfig/ui/gradientpage.ui
index 3fa4b93..a3b3d75 100644
--- a/cui/uiconfig/ui/gradientpage.ui
+++ b/cui/uiconfig/ui/gradientpage.ui
@@ -249,7 +249,6 @@
                        <property name="use_underline">True</property>
                        <property name="mnemonic_widget">incrementmtr</property>
                        <property name="xalign">0</property>
                        <property name="yalign">0.43999999761581421</property>
                      </object>
                      <packing>
                        <property name="left_attach">0</property>
@@ -258,20 +257,6 @@
                      </packing>
                    </child>
                    <child>
                      <object class="GtkScale" id="incrementslider">
                        <property name="visible">True</property>
                        <property name="can_focus">True</property>
                        <property name="hexpand">True</property>
                        <property name="adjustment">adjustment2</property>
                        <property name="round_digits">1</property>
                        <property name="draw_value">False</property>
                      </object>
                      <packing>
                        <property name="left_attach">0</property>
                        <property name="top_attach">2</property>
                      </packing>
                    </child>
                    <child>
                      <object class="GtkSpinButton" id="incrementmtr">
                        <property name="visible">True</property>
                        <property name="can_focus">True</property>
@@ -280,7 +265,7 @@
                      </object>
                      <packing>
                        <property name="left_attach">1</property>
                        <property name="top_attach">2</property>
                        <property name="top_attach">1</property>
                      </packing>
                    </child>
                    <child>
@@ -289,6 +274,7 @@
                        <property name="visible">True</property>
                        <property name="can_focus">True</property>
                        <property name="receives_default">False</property>
                        <property name="hexpand">True</property>
                        <property name="use_underline">True</property>
                        <property name="xalign">0</property>
                        <property name="draw_indicator">True</property>
@@ -296,7 +282,6 @@
                      <packing>
                        <property name="left_attach">0</property>
                        <property name="top_attach">1</property>
                        <property name="width">2</property>
                      </packing>
                    </child>
                  </object>
@@ -320,7 +305,6 @@
                        <property name="label" translatable="yes" context="gradientpage|centerft">Center ( X / Y ):</property>
                        <property name="use_underline">True</property>
                        <property name="xalign">0</property>
                        <property name="yalign">0.43999999761581421</property>
                      </object>
                      <packing>
                        <property name="left_attach">0</property>
@@ -373,9 +357,6 @@
                  </packing>
                </child>
                <child>
                  <placeholder/>
                </child>
                <child>
                  <object class="GtkGrid" id="grid3">
                    <property name="visible">True</property>
                    <property name="can_focus">False</property>
@@ -390,11 +371,10 @@
                        <property name="use_underline">True</property>
                        <property name="mnemonic_widget">bordermtr</property>
                        <property name="xalign">0</property>
                        <property name="yalign">0.43999999761581421</property>
                      </object>
                      <packing>
                        <property name="left_attach">0</property>
                        <property name="top_attach">1</property>
                        <property name="top_attach">2</property>
                        <property name="width">2</property>
                      </packing>
                    </child>
@@ -410,7 +390,7 @@
                      </object>
                      <packing>
                        <property name="left_attach">0</property>
                        <property name="top_attach">2</property>
                        <property name="top_attach">3</property>
                      </packing>
                    </child>
                    <child>
@@ -422,7 +402,7 @@
                      </object>
                      <packing>
                        <property name="left_attach">1</property>
                        <property name="top_attach">2</property>
                        <property name="top_attach">3</property>
                      </packing>
                    </child>
                    <child>
@@ -433,7 +413,7 @@
                      </object>
                      <packing>
                        <property name="left_attach">1</property>
                        <property name="top_attach">0</property>
                        <property name="top_attach">1</property>
                      </packing>
                    </child>
                    <child>
@@ -444,12 +424,12 @@
                        <property name="label" translatable="yes" context="gradientpage|angleft">A_ngle:</property>
                        <property name="use_underline">True</property>
                        <property name="mnemonic_widget">anglemtr</property>
                        <property name="xalign">1</property>
                        <property name="yalign">0.43999999761581421</property>
                        <property name="xalign">0</property>
                      </object>
                      <packing>
                        <property name="left_attach">0</property>
                        <property name="top_attach">0</property>
                        <property name="width">2</property>
                      </packing>
                    </child>
                    <child>
@@ -460,7 +440,7 @@
                      </object>
                      <packing>
                        <property name="left_attach">1</property>
                        <property name="top_attach">6</property>
                        <property name="top_attach">7</property>
                      </packing>
                    </child>
                    <child>
@@ -470,14 +450,13 @@
                        <property name="receives_default">False</property>
                        <property name="xalign">0</property>
                        <property name="draw_indicator">True</property>
                        <property name="label" translatable="no"></property>
                        <child>
                          <placeholder/>
                        </child>
                      </object>
                      <packing>
                        <property name="left_attach">0</property>
                        <property name="top_attach">6</property>
                        <property name="top_attach">7</property>
                      </packing>
                    </child>
                    <child>
@@ -491,7 +470,7 @@
                      </object>
                      <packing>
                        <property name="left_attach">0</property>
                        <property name="top_attach">5</property>
                        <property name="top_attach">6</property>
                        <property name="width">2</property>
                      </packing>
                    </child>
@@ -502,14 +481,13 @@
                        <property name="receives_default">False</property>
                        <property name="xalign">0</property>
                        <property name="draw_indicator">True</property>
                        <property name="label" translatable="no"></property>
                        <child>
                          <placeholder/>
                        </child>
                      </object>
                      <packing>
                        <property name="left_attach">0</property>
                        <property name="top_attach">4</property>
                        <property name="top_attach">5</property>
                      </packing>
                    </child>
                    <child>
@@ -520,7 +498,7 @@
                      </object>
                      <packing>
                        <property name="left_attach">1</property>
                        <property name="top_attach">4</property>
                        <property name="top_attach">5</property>
                      </packing>
                    </child>
                    <child>
@@ -534,15 +512,29 @@
                      </object>
                      <packing>
                        <property name="left_attach">0</property>
                        <property name="top_attach">3</property>
                        <property name="top_attach">4</property>
                        <property name="width">2</property>
                      </packing>
                    </child>
                    <child>
                      <object class="GtkScale" id="angleslider">
                        <property name="visible">True</property>
                        <property name="can_focus">True</property>
                        <property name="hexpand">True</property>
                        <property name="adjustment">angleadjustment</property>
                        <property name="fill_level">0</property>
                        <property name="draw_value">False</property>
                      </object>
                      <packing>
                        <property name="left_attach">0</property>
                        <property name="top_attach">1</property>
                      </packing>
                    </child>
                  </object>
                  <packing>
                    <property name="expand">False</property>
                    <property name="fill">True</property>
                    <property name="position">4</property>
                    <property name="position">3</property>
                  </packing>
                </child>
                <child>
@@ -608,7 +600,7 @@
                  <packing>
                    <property name="expand">False</property>
                    <property name="fill">True</property>
                    <property name="position">9</property>
                    <property name="position">4</property>
                  </packing>
                </child>
              </object>
diff --git a/include/tools/gen.hxx b/include/tools/gen.hxx
index 5d6ff5e..0d9a81e 100644
--- a/include/tools/gen.hxx
+++ b/include/tools/gen.hxx
@@ -197,6 +197,12 @@
    void            setWidth(long nWidth)  { nA = nWidth; }
    void            setHeight(long nHeight)  { nB = nHeight; }

    void extendBy(long x, long y)
    {
        nA += x;
        nB += y;
    }

    Pair const &    toPair() const { return *this; }
    Pair &          toPair() { return *this; }

diff --git a/solenv/sanitizers/ui/cui.suppr b/solenv/sanitizers/ui/cui.suppr
index 1ee15b2..c789c27 100644
--- a/solenv/sanitizers/ui/cui.suppr
+++ b/solenv/sanitizers/ui/cui.suppr
@@ -202,6 +202,7 @@
cui/uiconfig/ui/fmsearchdialog.ui://GtkLabel[@id='ftHint'] orphan-label
cui/uiconfig/ui/gradientpage.ui://GtkScale[@id='incrementslider'] no-labelled-by
cui/uiconfig/ui/gradientpage.ui://GtkLabel[@id='centerft'] orphan-label
cui/uiconfig/ui/gradientpage.ui://GtkScale[@id='angleslider'] no-labelled-by
cui/uiconfig/ui/gradientpage.ui://GtkScale[@id='borderslider'] no-labelled-by
cui/uiconfig/ui/effectspage.ui://GtkLabel[@id='label1'] orphan-label
cui/uiconfig/ui/effectspage.ui://GtkLabel[@id='label2'] orphan-label