On Wednesday, May 02, 2012 06:02:57 Thorsten Zachmann wrote: > On Wednesday, May 02, 2012 12:16:34 AM Inge Wallin wrote: > > https://bugs.kde.org/show_bug.cgi?id=260535 has the title: > > > > kpresenter:openoffice:Shadow of the picture is not getting displayed. > > > > I had a look at this, and the reason is the following code in void > > KoShapeShadow::Private::paintShadow() at line 86 in > > > > libs/flake/KoShapeShadow.cpp: > > if (shape->background()) { > > > > painter.save(); > > KoShape::applyConversion(painter, converter); > > painter.setBrush(QBrush(color)); > > QPainterPath path(shape->outline()); > > KoPathShape * pathShape = dynamic_cast<KoPathShape*>(shape); > > if (pathShape) > > > > path.setFillRule(pathShape->fillRule()); > > > > painter.drawPath(path); > > painter.restore(); > > > > } > > > > There is a similar test for stroke right behind it. > > > > This means that only shapes with a defined background can ever get a > > shadow. I don't really see the reason for this. Shouldn't it be enough > > to remove the test to make it work everywhere? What would be the > > drawbacks? > > That means we only draw a shadow for the background if there is actually a > background. E.g. if there is a shape that only has a outline only a shadow > for the outline will be draw. This is done by the code in the test for the > stroke. So if that would be changed also e.g. a polygon would show a > background.
Yes, I know what it means. My question was really why it is so from the beginning. What is the thinking behind only drawing a shadow if there is a stroke and/or fill (a.k.a background)? I think Yue should comment because he is the guy who wrote it. > I see the problem is that the picture shape has no background and therefore > this fails. One idea would be to add a method to test if there is a shadow > for the shape background the would in KoShape test if shape->background is > set and return true in case it is a picture shape. But maybe others have a > better idea. However that might fail in case the image has transparency at > the edges. Not sure if that is something we need to support. We could have such a method but what I am not sure of the connection between the background and the shadow. In my eyes, if a user wants a shadow he should have the shadow no matter what the shape contains. Opinions? > Thorsten > _______________________________________________ > calligra-devel mailing list > calligra-devel@kde.org > https://mail.kde.org/mailman/listinfo/calligra-devel _______________________________________________ calligra-devel mailing list calligra-devel@kde.org https://mail.kde.org/mailman/listinfo/calligra-devel