Revert "tdf#167511 correctly apply Color in HighContrast mode to text II"

This reverts commit d6a3d30859.
Need to fix differently

Change-Id: Ifaf6fbc37eaef95b15ba762978e4ca6b0ca82000
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188530
Tested-by: Jenkins
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
This commit is contained in:
Armin Le Grand (collabora)
2025-07-30 13:22:39 +02:00
committed by Armin Le Grand
parent 355ffcbd82
commit 624690f479
11 changed files with 44 additions and 98 deletions
+20 -34
View File
@@ -85,8 +85,7 @@ CheckFieldPrimitive(drawinglayer::primitive2d::BasePrimitive2D* pPrimitive,
}
rtl::Reference<drawinglayer::primitive2d::BasePrimitive2D>
buildTextPortionPrimitive(const drawinglayer::geometry::ViewInformation2D& rViewInformation2D,
const DrawPortionInfo& rInfo, const OUString& rText,
buildTextPortionPrimitive(const DrawPortionInfo& rInfo, const OUString& rText,
const drawinglayer::attribute::FontAttribute& rFontAttribute,
const std::vector<double>& rDXArray,
const basegfx::B2DHomMatrix& rNewTransform)
@@ -104,9 +103,7 @@ buildTextPortionPrimitive(const drawinglayer::geometry::ViewInformation2D& rView
}
// tdf#167511 get FontColor, evtl. adapted for HighContrast
const bool bHighContrast(Application::GetSettings().GetStyleSettings().GetHighContrastMode()
&& rViewInformation2D.getEditViewActive());
const Color aFontColor(bHighContrast
const Color aFontColor(Application::GetSettings().GetStyleSettings().GetHighContrastMode()
? Application::GetSettings().GetStyleSettings().GetWindowTextColor()
: rInfo.mrFont.GetColor());
const basegfx::BColor aBFontColor(aFontColor.getBColor());
@@ -225,7 +222,6 @@ buildTextPortionPrimitive(const drawinglayer::geometry::ViewInformation2D& rView
class DoCapitalsDrawPortionInfo : public SvxDoCapitals
{
private:
const drawinglayer::geometry::ViewInformation2D& mrViewInformation2D;
drawinglayer::primitive2d::Primitive2DContainer& mrTarget;
const basegfx::B2DHomMatrix& mrNewTransformA;
const basegfx::B2DHomMatrix& mrNewTransformB;
@@ -233,13 +229,11 @@ private:
SvxFont m_aFont;
public:
DoCapitalsDrawPortionInfo(const drawinglayer::geometry::ViewInformation2D& rViewInformation2D,
drawinglayer::primitive2d::Primitive2DContainer& rTarget,
DoCapitalsDrawPortionInfo(drawinglayer::primitive2d::Primitive2DContainer& rTarget,
const basegfx::B2DHomMatrix& rNewTransformA,
const basegfx::B2DHomMatrix& rNewTransformB,
const DrawPortionInfo& rInfo)
: SvxDoCapitals(rInfo.maText, rInfo.mnTextStart, rInfo.mnTextLen)
, mrViewInformation2D(rViewInformation2D)
, mrTarget(rTarget)
, mrNewTransformA(rNewTransformA)
, mrNewTransformB(rNewTransformB)
@@ -261,7 +255,6 @@ public:
};
void CreateTextPortionPrimitivesFromDrawPortionInfo(
const drawinglayer::geometry::ViewInformation2D& rViewInformation2D,
drawinglayer::primitive2d::Primitive2DContainer& rTarget,
const basegfx::B2DHomMatrix& rNewTransformA, const basegfx::B2DHomMatrix& rNewTransformB,
const DrawPortionInfo& rInfo)
@@ -347,8 +340,7 @@ void CreateTextPortionPrimitivesFromDrawPortionInfo(
OUString caseMappedText = rInfo.mrFont.CalcCaseMap(rInfo.maText);
rtl::Reference<drawinglayer::primitive2d::BasePrimitive2D> pNewPrimitive(
buildTextPortionPrimitive(rViewInformation2D, rInfo, caseMappedText, aFontAttribute,
aDXArray, aNewTransform));
buildTextPortionPrimitive(rInfo, caseMappedText, aFontAttribute, aDXArray, aNewTransform));
bool bSmallCaps = rInfo.mrFont.IsCapital();
if (bSmallCaps && rInfo.mpDXArray.empty())
@@ -359,8 +351,8 @@ void CreateTextPortionPrimitivesFromDrawPortionInfo(
if (bSmallCaps)
{
// rerun with each sub-portion
DoCapitalsDrawPortionInfo aDoDrawPortionInfo(rViewInformation2D, rTarget, rNewTransformA,
rNewTransformB, rInfo);
DoCapitalsDrawPortionInfo aDoDrawPortionInfo(rTarget, rNewTransformA, rNewTransformB,
rInfo);
rInfo.mrFont.DoOnCapitals(aDoDrawPortionInfo);
// transfer collected primitives from rTarget to a new container
@@ -533,8 +525,8 @@ void DoCapitalsDrawPortionInfo::Do(const OUString& rSpanTxt, const sal_Int32 nSp
nullptr, /* no field in subportion, handled outside */
false, false, false, m_rInfo.mpLocale, m_rInfo.maOverlineColor, m_rInfo.maTextLineColor);
CreateTextPortionPrimitivesFromDrawPortionInfo(mrViewInformation2D, mrTarget, mrNewTransformA,
mrNewTransformB, aInfo);
CreateTextPortionPrimitivesFromDrawPortionInfo(mrTarget, mrNewTransformA, mrNewTransformB,
aInfo);
if (!bUpper)
m_aFont.SetPropr(nProp);
@@ -607,9 +599,8 @@ void TextHierarchyBreakup::flushLinePrimitivesToParagraphPrimitives(sal_Int32 nP
void TextHierarchyBreakup::processDrawPortionInfo(const DrawPortionInfo& rDrawPortionInfo)
{
CreateTextPortionPrimitivesFromDrawPortionInfo(getViewInformation2D(), maTextPortionPrimitives,
maNewTransformA, maNewTransformB,
rDrawPortionInfo);
CreateTextPortionPrimitivesFromDrawPortionInfo(maTextPortionPrimitives, maNewTransformA,
maNewTransformB, rDrawPortionInfo);
if (rDrawPortionInfo.mbEndOfLine || rDrawPortionInfo.mbEndOfParagraph)
{
@@ -665,10 +656,8 @@ void TextHierarchyBreakup::directlyAddB2DPrimitive(
maTextPortionPrimitives.push_back(rSource);
}
TextHierarchyBreakup::TextHierarchyBreakup(
const drawinglayer::geometry::ViewInformation2D& rViewInformation2D)
: StripPortionsHelper(rViewInformation2D)
, maTextPortionPrimitives()
TextHierarchyBreakup::TextHierarchyBreakup()
: maTextPortionPrimitives()
, maLinePrimitives()
, maParagraphPrimitives()
, maNewTransformA()
@@ -676,11 +665,9 @@ TextHierarchyBreakup::TextHierarchyBreakup(
{
}
TextHierarchyBreakup::TextHierarchyBreakup(
const drawinglayer::geometry::ViewInformation2D& rViewInformation2D,
const basegfx::B2DHomMatrix& rNewTransformA, const basegfx::B2DHomMatrix& rNewTransformB)
: StripPortionsHelper(rViewInformation2D)
, maTextPortionPrimitives()
TextHierarchyBreakup::TextHierarchyBreakup(const basegfx::B2DHomMatrix& rNewTransformA,
const basegfx::B2DHomMatrix& rNewTransformB)
: maTextPortionPrimitives()
, maLinePrimitives()
, maParagraphPrimitives()
, maNewTransformA(rNewTransformA)
@@ -720,17 +707,16 @@ sal_Int32 TextHierarchyBreakupOutliner::getParagraphCount() const
return mrOutliner.GetParagraphCount();
}
TextHierarchyBreakupOutliner::TextHierarchyBreakupOutliner(
const drawinglayer::geometry::ViewInformation2D& rViewInformation2D, Outliner& rOutliner)
: TextHierarchyBreakup(rViewInformation2D)
TextHierarchyBreakupOutliner::TextHierarchyBreakupOutliner(Outliner& rOutliner)
: TextHierarchyBreakup()
, mrOutliner(rOutliner)
{
}
TextHierarchyBreakupOutliner::TextHierarchyBreakupOutliner(
const drawinglayer::geometry::ViewInformation2D& rViewInformation2D, Outliner& rOutliner,
const basegfx::B2DHomMatrix& rNewTransformA, const basegfx::B2DHomMatrix& rNewTransformB)
: TextHierarchyBreakup(rViewInformation2D, rNewTransformA, rNewTransformB)
Outliner& rOutliner, const basegfx::B2DHomMatrix& rNewTransformA,
const basegfx::B2DHomMatrix& rNewTransformB)
: TextHierarchyBreakup(rNewTransformA, rNewTransformB)
, mrOutliner(rOutliner)
{
}
+1 -2
View File
@@ -411,8 +411,7 @@ void EditView::DrawText_ToEditView( const tools::Rectangle& rRect, OutputDevice*
{
// use TextHierarchyBreakup to get all text embedded to the
// TextHierarchy.*Primitive2D groupings for better processing
const drawinglayer::geometry::ViewInformation2D aViewInformation2D;
TextHierarchyBreakup aHelper(aViewInformation2D);
TextHierarchyBreakup aHelper;
// hand that Helper over to DrawText_ToEditView at the EditEngine
// for usage
+12 -12
View File
@@ -3382,18 +3382,18 @@ void ImpEditEngine::DrawText_ToPosition( OutputDevice& rOutDev, const Point& rSt
if (bUsePrimitives)
{
// extract Primitives.
// create ViewInformation2D based on target OutputDevice
drawinglayer::geometry::ViewInformation2D aViewInformation2D;
aViewInformation2D.setViewTransformation(rOutDev.GetViewTransformation());
// Do not use Orientation, that will be added below as transformation
TextHierarchyBreakup aHelper(aViewInformation2D);
TextHierarchyBreakup aHelper;
PaintOrStrip(rOutDev, aBigRect, aStartPos, 0_deg10, &aHelper);
if (aHelper.getTextPortionPrimitives().empty())
// no Primitives, done
return;
// create ViewInformation2D based on target OutputDevice
drawinglayer::geometry::ViewInformation2D aViewInformation2D;
aViewInformation2D.setViewTransformation(rOutDev.GetViewTransformation());
// get content
drawinglayer::primitive2d::Primitive2DContainer aContent(aHelper.getTextPortionPrimitives());
@@ -3450,20 +3450,20 @@ void ImpEditEngine::DrawText_ToRectangle( OutputDevice& rOutDev, const tools::Re
if (bUsePrimitives)
{
// create ViewInformation2D based on target OutputDevice
drawinglayer::geometry::ViewInformation2D aViewInformation2D;
aViewInformation2D.setViewTransformation(rOutDev.GetViewTransformation());
const basegfx::B2DRange aClipRange(vcl::unotools::b2DRectangleFromRectangle(aOutRect));
aViewInformation2D.setViewport(aClipRange);
// extract Primitives
TextHierarchyBreakup aHelper(aViewInformation2D);
TextHierarchyBreakup aHelper;
PaintOrStrip(rOutDev, aOutRect, aStartPos, 0_deg10, &aHelper);
if (aHelper.getTextPortionPrimitives().empty())
// no Primitives, done
return;
// create ViewInformation2D based on target OutputDevice
drawinglayer::geometry::ViewInformation2D aViewInformation2D;
aViewInformation2D.setViewTransformation(rOutDev.GetViewTransformation());
const basegfx::B2DRange aClipRange(vcl::unotools::b2DRectangleFromRectangle(aOutRect));
aViewInformation2D.setViewport(aClipRange);
// get content and it's range
drawinglayer::primitive2d::Primitive2DContainer aContent(aHelper.getTextPortionPrimitives());
const basegfx::B2DRange aContentRange(aContent.getB2DRange(aViewInformation2D));
+2 -3
View File
@@ -69,9 +69,8 @@ void OutlinerView::DrawText_ToEditView( const tools::Rectangle& rRect, OutputDev
// use TextHierarchyBreakupOutliner to get all text embedded to the
// TextHierarchy.*Primitive2D groupings for better processing, plus
// the correct paragraph countings
const drawinglayer::geometry::ViewInformation2D aViewInformation2D;
TextHierarchyBreakupOutliner aHelper(aViewInformation2D, rOwner);
// the correct paragtaph countings
TextHierarchyBreakupOutliner aHelper(rOwner);
// hand that Helper over to DrawText_ToEditView at the EditEngine
// for usage
+5 -20
View File
@@ -109,23 +109,11 @@ public:
class EDITENG_DLLPUBLIC StripPortionsHelper
{
const drawinglayer::geometry::ViewInformation2D& mrViewInformation2D;
public:
StripPortionsHelper(const drawinglayer::geometry::ViewInformation2D& rViewInformation2D)
: mrViewInformation2D(rViewInformation2D)
{
}
virtual void processDrawPortionInfo(const DrawPortionInfo&) = 0;
virtual void processDrawBulletInfo(const DrawBulletInfo&) = 0;
virtual void directlyAddB2DPrimitive(const drawinglayer::primitive2d::Primitive2DReference&)
= 0;
const drawinglayer::geometry::ViewInformation2D& getViewInformation2D() const
{
return mrViewInformation2D;
}
};
class EDITENG_DLLPUBLIC TextHierarchyBreakup : public StripPortionsHelper
@@ -148,9 +136,8 @@ public:
virtual void
directlyAddB2DPrimitive(const drawinglayer::primitive2d::Primitive2DReference&) override;
TextHierarchyBreakup(const drawinglayer::geometry::ViewInformation2D& rViewInformation2D);
TextHierarchyBreakup(const drawinglayer::geometry::ViewInformation2D& rViewInformation2D,
const basegfx::B2DHomMatrix& rNewTransformA,
TextHierarchyBreakup();
TextHierarchyBreakup(const basegfx::B2DHomMatrix& rNewTransformA,
const basegfx::B2DHomMatrix& rNewTransformB);
const drawinglayer::primitive2d::Primitive2DContainer& getTextPortionPrimitives();
@@ -165,11 +152,9 @@ protected:
virtual sal_Int32 getParagraphCount() const override;
public:
TextHierarchyBreakupOutliner(
const drawinglayer::geometry::ViewInformation2D& rViewInformation2D, Outliner& rOutliner);
TextHierarchyBreakupOutliner(
const drawinglayer::geometry::ViewInformation2D& rViewInformation2D, Outliner& rOutliner,
const basegfx::B2DHomMatrix& rNewTransformA, const basegfx::B2DHomMatrix& rNewTransformB);
TextHierarchyBreakupOutliner(Outliner& rOutliner);
TextHierarchyBreakupOutliner(Outliner& rOutliner, const basegfx::B2DHomMatrix& rNewTransformA,
const basegfx::B2DHomMatrix& rNewTransformB);
};
#endif // INCLUDED_EDITENG_STRIPPORTIONSHELPER_HXX
-2
View File
@@ -63,7 +63,6 @@ public:
virtual void processDrawPortionInfo(const DrawPortionInfo& rDrawPortionInfo) override;
TextHierarchyBreakupBlockText(
const drawinglayer::geometry::ViewInformation2D& rViewInformation2D,
SdrOutliner& rOutliner,
const basegfx::B2DHomMatrix& rNewTransformA,
const basegfx::B2DHomMatrix& rNewTransformB,
@@ -79,7 +78,6 @@ public:
virtual void processDrawPortionInfo(const DrawPortionInfo& rDrawPortionInfo) override;
TextHierarchyBreakupContourText(
const drawinglayer::geometry::ViewInformation2D& rViewInformation2D,
SdrOutliner& rOutliner,
const basegfx::B2DHomMatrix& rNewTransformA,
const basegfx::B2DHomMatrix& rNewTransformB,
+1 -4
View File
@@ -2312,10 +2312,7 @@ drawinglayer::primitive2d::Primitive2DContainer ScTextEditOverlayObject::createO
// use no transformations. The result will be in logic coordinates
// based on aEditRectangle and the EditEngine setup, see
// ScViewData::SetEditEngine
drawinglayer::geometry::ViewInformation2D aViewInformation2D;
// TextEditOverlay is only possible in EditView, activate it
aViewInformation2D.setEditViewActive(true);
TextHierarchyBreakup aBreakup(aViewInformation2D);
TextHierarchyBreakup aBreakup;
pEditView->getEditEngine().StripPortions(aBreakup);
aRetval = aBreakup.getTextPortionPrimitives();
+2 -5
View File
@@ -784,11 +784,8 @@ void TextEditOverlayObject::checkDataChange(const basegfx::B2DRange& rMinTextEdi
// of this mechanism, it *may* be possible to buffer layouted
// primitives per ParaPortion with/in/dependent on the EditEngine
// content if needed. For now, get and compare
drawinglayer::geometry::ViewInformation2D aViewInformation2D;
// TextEditOverlay is only possible in EditView, activate it
aViewInformation2D.setEditViewActive(true);
TextHierarchyBreakupBlockText aBreakup(aViewInformation2D, *pSdrOutliner, aNewTransformA,
aNewTransformB, aClipRange);
TextHierarchyBreakupBlockText aBreakup(*pSdrOutliner, aNewTransformA, aNewTransformB,
aClipRange);
pSdrOutliner->StripPortions(aBreakup);
aNewTextPrimitives.append(aBreakup.getTextPortionPrimitives());
@@ -152,7 +152,6 @@ void SdrTextObj::impDecomposeContourTextPrimitive(
// ScaledUnitPolyPolygon. Thus aPolyPolygon might be smaller than aScale from aObjectMatrix. We
// use this smaller size for the text area, otherwise the text will reach into the stroke.
TextHierarchyBreakupContourText aBreakup(
aViewInformation,
rOutliner,
aNewTransformA,
aNewTransformB,
@@ -304,7 +303,6 @@ void SdrTextObj::impDecomposeAutoFitTextPrimitive(
// now break up text primitives.
TextHierarchyBreakupBlockText aBreakup(
aViewInformation,
rOutliner,
aNewTransformA,
aNewTransformB,
@@ -622,7 +620,6 @@ void SdrTextObj::impDecomposeBlockTextPrimitive(
// now break up text primitives.
TextHierarchyBreakupBlockText aBreakup(
aViewInformation,
rOutliner,
aNewTransformA,
aNewTransformB,
@@ -707,7 +704,6 @@ void SdrTextObj::impDecomposeStretchTextPrimitive(
// now break up text primitives.
TextHierarchyBreakupOutliner aBreakup(
aViewInformation,
rOutliner,
aNewTransformA,
aNewTransformB);
@@ -1137,7 +1133,6 @@ void SdrTextObj::impDecomposeChainedTextPrimitive(
// now break up text primitives.
TextHierarchyBreakupBlockText aBreakup(
aViewInformation,
rOutliner,
aNewTransformA,
aNewTransformB,
@@ -154,12 +154,6 @@ namespace
::std::vector< impPathTextPortion > maPathTextPortions;
public:
TextHierarchyBreakupPathTextPortions(const drawinglayer::geometry::ViewInformation2D& rViewInformation2D)
: StripPortionsHelper(rViewInformation2D)
, maPathTextPortions()
{
}
virtual void processDrawPortionInfo(const DrawPortionInfo& rDrawPortionInfo) override
{
// extract and add data for TextOnPath further processing
@@ -646,7 +640,7 @@ void SdrTextObj::impDecomposePathTextPrimitive(
rOutliner.setVisualizedPage(GetSdrPageFromXDrawPage(aViewInformation.getVisualizedPage()));
// now break up to text portions
TextHierarchyBreakupPathTextPortions aBreakup(aViewInformation);
TextHierarchyBreakupPathTextPortions aBreakup;
rOutliner.StripPortions(aBreakup);
const ::std::vector< impPathTextPortion > rPathTextPortions(aBreakup.sortAndGetPathTextPortions());
-4
View File
@@ -166,13 +166,11 @@ void TextHierarchyBreakupBlockText::processDrawPortionInfo(const DrawPortionInfo
}
TextHierarchyBreakupBlockText::TextHierarchyBreakupBlockText(
const drawinglayer::geometry::ViewInformation2D& rViewInformation2D,
SdrOutliner& rOutliner,
const basegfx::B2DHomMatrix& rNewTransformA,
const basegfx::B2DHomMatrix& rNewTransformB,
const basegfx::B2DRange& rClipRange)
: TextHierarchyBreakupOutliner(
rViewInformation2D,
rOutliner,
rNewTransformA,
rNewTransformB)
@@ -191,13 +189,11 @@ void TextHierarchyBreakupContourText::processDrawPortionInfo(const DrawPortionIn
}
TextHierarchyBreakupContourText::TextHierarchyBreakupContourText(
const drawinglayer::geometry::ViewInformation2D& rViewInformation2D,
SdrOutliner& rOutliner,
const basegfx::B2DHomMatrix& rNewTransformA,
const basegfx::B2DHomMatrix& rNewTransformB,
const basegfx::B2DVector& rScale)
: TextHierarchyBreakupOutliner(
rViewInformation2D,
rOutliner,
rNewTransformA,
rNewTransformB)