tdf#159258 sd: fix to show objects in slideshow if they have

fillstyle or linestyle.

Also the shape will be appeared in print and pdf view.
(Powerpoint doing the same.)

TODO: the placeholder bitmap and the default text
was not removed from the slideshow/print/pdf view.

Change-Id: Ifadc9a692d77b60a7e3514afe8e6ea5cab0018c9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164163
Tested-by: Jenkins
Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de>
This commit is contained in:
Balazs Varga 2024-02-29 16:34:45 +01:00
parent 7d384d6310
commit e136900e7a
2 changed files with 22 additions and 3 deletions

View file

@ -2802,9 +2802,10 @@ bool SdPage::checkVisibility(
const bool bIsInsidePageObj(pPageView && pPageView->GetPage() != pVisualizedPage);
// empty presentation objects only visible during edit mode
if( (bIsPrinting || !bEdit || bIsInsidePageObj ) && pObj->IsEmptyPresObj() )
if( (bIsPrinting || !bEdit || bIsInsidePageObj ) && pObj->IsEmptyPresObj() && !(pObj->HasFillStyle() || pObj->HasLineStyle()) )
{
if( (pObj->GetObjInventor() != SdrInventor::Default) || ( (pObj->GetObjIdentifier() != SdrObjKind::Rectangle) && (pObj->GetObjIdentifier() != SdrObjKind::Page) ) )
if( (pObj->GetObjInventor() != SdrInventor::Default) || ( (pObj->GetObjIdentifier() != SdrObjKind::Rectangle) &&
(pObj->GetObjIdentifier() != SdrObjKind::Page) ) )
return false;
}

View file

@ -346,7 +346,25 @@ bool ShapeImporter::isSkip(
"IsEmptyPresentationObject") &&
bEmpty )
{
return true;
// check object have fill or linestyle, if have, it should be visible
drawing::FillStyle aFillStyle{ drawing::FillStyle_NONE };
if (getPropertyValue(aFillStyle,
xPropSet, "FillStyle") &&
aFillStyle != drawing::FillStyle_NONE)
{
bEmpty = false;
}
drawing::LineStyle aLineStyle{ drawing::LineStyle_NONE };
if (bEmpty && getPropertyValue(aLineStyle,
xPropSet, "LineStyle") &&
aLineStyle != drawing::LineStyle_NONE)
{
bEmpty = false;
}
if (bEmpty)
return true;
}
//skip shapes which corresponds to annotations