summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>2022-09-19 14:10:39 +0200
committerThorsten Behrens <thorsten.behrens@allotropia.de>2022-09-20 17:31:17 +0200
commitdbd89ccc4fd989f12d42ebcb68aa56ab969e84bd (patch)
tree485b81f77d2fb79e895ad872559e4381fcaf983c
parenttdf#150402 Correct wrong Bound of Shape in Slideshow (diff)
downloadcore-dbd89ccc4fd989f12d42ebcb68aa56ab969e84bd.tar.gz
core-dbd89ccc4fd989f12d42ebcb68aa56ab969e84bd.zip
tdf#150802 Fix setting gradient from Sidebar
Regression from adc536e9efc77690df62177aa722f9252bdbf96b Change-Id: I37db76373a3b9b4a1084e830233561abc4b1e6d3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140151 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de> (cherry picked from commit c112e426bff4bdf2317363a534495498b0aa215a) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140158 Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
-rw-r--r--svx/source/sidebar/area/AreaPropertyPanelBase.cxx65
1 files changed, 51 insertions, 14 deletions
diff --git a/svx/source/sidebar/area/AreaPropertyPanelBase.cxx b/svx/source/sidebar/area/AreaPropertyPanelBase.cxx
index 6dec785c4067..cd3a484e7bb0 100644
--- a/svx/source/sidebar/area/AreaPropertyPanelBase.cxx
+++ b/svx/source/sidebar/area/AreaPropertyPanelBase.cxx
@@ -466,26 +466,63 @@ void AreaPropertyPanelBase::FillStyleChanged(bool bUpdateModel)
mxMTRAngle->set_sensitive(true);
mxLbFillAttr->clear();
- const SvxGradientListItem* pItem = pSh->GetItem(SID_GRADIENT_LIST);
-
- if (0 < pItem->GetGradientList()->Count())
+ if (bUpdateModel)
{
- const XGradient aGradient = pItem->GetGradientList()->GetGradient(0)->GetGradient();
- const OUString aName = pItem->GetGradientList()->GetGradient(0)->GetName();
- const XFillGradientItem aXFillGradientItem(aName, aGradient);
+ mxLbFillAttr->hide();
+ mxToolBoxColor->hide();
+ mxBmpImport->hide();
- // #i122676# change FillStyle and Gradient in one call
- if (bUpdateModel)
+ const SvxGradientListItem* pItem = pSh->GetItem(SID_GRADIENT_LIST);
+ if (pItem->GetGradientList()->Count() > 0)
{
+ const XGradient aGradient
+ = pItem->GetGradientList()->GetGradient(0)->GetGradient();
+ const OUString aName = pItem->GetGradientList()->GetGradient(0)->GetName();
+ const XFillGradientItem aXFillGradientItem(aName, aGradient);
+
+ // #i122676# change FillStyle and Gradient in one call
XFillStyleItem aXFillStyleItem(drawing::FillStyle_GRADIENT);
setFillStyleAndGradient(&aXFillStyleItem, aXFillGradientItem);
- }
- mxLbFillGradFrom->SelectEntry(aGradient.GetStartColor());
- mxLbFillGradTo->SelectEntry(aGradient.GetEndColor());
+ mxLbFillGradFrom->SelectEntry(aGradient.GetStartColor());
+ mxLbFillGradTo->SelectEntry(aGradient.GetEndColor());
- mxMTRAngle->set_value(toDegrees(aGradient.GetAngle()), FieldUnit::DEGREE);
- css::awt::GradientStyle eXGS = aGradient.GetGradientStyle();
- mxGradientStyle->set_active(sal::static_int_cast<sal_Int32>(eXGS));
+ mxMTRAngle->set_value(toDegrees(aGradient.GetAngle()), FieldUnit::DEGREE);
+ css::awt::GradientStyle eXGS = aGradient.GetGradientStyle();
+ mxGradientStyle->set_active(sal::static_int_cast<sal_Int32>(eXGS));
+ }
+ }
+ else
+ {
+ if (pSh && pSh->GetItem(SID_GRADIENT_LIST))
+ {
+ SvxFillAttrBox::Fill(*mxLbFillAttr,
+ pSh->GetItem(SID_GRADIENT_LIST)->GetGradientList());
+ mxLbFillGradTo->SetNoSelection();
+ mxLbFillGradFrom->SetNoSelection();
+ if (mpFillGradientItem)
+ {
+ const OUString aString(mpFillGradientItem->GetName());
+ mxLbFillAttr->set_active_text(aString);
+ const XGradient aGradient = mpFillGradientItem->GetGradientValue();
+ mxLbFillGradFrom->SelectEntry(aGradient.GetStartColor());
+ mxLbFillGradTo->SelectEntry(aGradient.GetEndColor());
+ mxGradientStyle->set_active(
+ sal::static_int_cast<sal_Int32>(aGradient.GetGradientStyle()));
+ if (mxGradientStyle->get_active() == sal_Int32(GradientStyle::Radial))
+ mxMTRAngle->set_sensitive(false);
+ else
+ mxMTRAngle->set_value(toDegrees(aGradient.GetAngle()),
+ FieldUnit::DEGREE);
+ }
+ else
+ {
+ mxLbFillAttr->set_active(-1);
+ }
+ }
+ else
+ {
+ mxLbFillAttr->set_active(-1);
+ }
}
break;
}