include/vcl/filter/SvmReader.hxx | 1 + include/vcl/metaact.hxx | 4 ++++ vcl/source/filter/svm/SvmReader.cxx | 26 +++++++++++++++++++++++++- 3 files changed, 30 insertions(+), 1 deletion(-)
New commits: commit ffd64889f3cad4fc64d733f5ad08a5c072de7ec6 Author: panoskorovesis <panoskorove...@outlook.com> AuthorDate: Thu Jul 15 11:17:08 2021 +0300 Commit: Tomaž Vajngerl <qui...@gmail.com> CommitDate: Tue Jul 27 08:02:55 2021 +0200 Add Handler for FloatTransparent Read The handler separates MetaFloatTransparentAction::Read from metaact.hxx Read implementation is now in SvmReader.hxx Change-Id: Ie19d33570daec5a5ec34ba015cf83bffb18d250b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119171 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <qui...@gmail.com> diff --git a/include/vcl/filter/SvmReader.hxx b/include/vcl/filter/SvmReader.hxx index d1ee96872490..ca8b9008a733 100644 --- a/include/vcl/filter/SvmReader.hxx +++ b/include/vcl/filter/SvmReader.hxx @@ -84,6 +84,7 @@ public: rtl::Reference<MetaAction> PopHandler(); rtl::Reference<MetaAction> RasterOpHandler(); rtl::Reference<MetaAction> TransparentHandler(); + rtl::Reference<MetaAction> FloatTransparentHandler(ImplMetaReadData* pData); }; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/vcl/metaact.hxx b/include/vcl/metaact.hxx index 9de35c7ac271..fabe6f7c750a 100644 --- a/include/vcl/metaact.hxx +++ b/include/vcl/metaact.hxx @@ -1689,6 +1689,10 @@ public: const Point& GetPoint() const { return maPoint; } const Size& GetSize() const { return maSize; } const Gradient& GetGradient() const { return maGradient; } + void SetGDIMetaFile(const GDIMetaFile &rMtf) { maMtf = rMtf; } + void SetPoint(const Point& rPoint) { maPoint = rPoint; } + void SetSize(const Size& rSize) { maSize = rSize; } + void SetGradient(const Gradient& rGradient) { maGradient = rGradient; } bool IsTransparent() const override { return true; } }; diff --git a/vcl/source/filter/svm/SvmReader.cxx b/vcl/source/filter/svm/SvmReader.cxx index 1e234669610a..daed6b7cca72 100644 --- a/vcl/source/filter/svm/SvmReader.cxx +++ b/vcl/source/filter/svm/SvmReader.cxx @@ -302,7 +302,7 @@ rtl::Reference<MetaAction> SvmReader::MetaActionHandler(ImplMetaReadData* pData) return TransparentHandler(); break; case MetaActionType::FLOATTRANSPARENT: - pAction = new MetaFloatTransparentAction; + return FloatTransparentHandler(pData); break; case MetaActionType::EPS: pAction = new MetaEPSAction; @@ -1312,4 +1312,28 @@ rtl::Reference<MetaAction> SvmReader::TransparentHandler() return pAction; } + +rtl::Reference<MetaAction> SvmReader::FloatTransparentHandler(ImplMetaReadData* pData) +{ + auto pAction = new MetaFloatTransparentAction(); + + VersionCompatRead aCompat(mrStream); + GDIMetaFile aMtf; + SvmReader aReader(mrStream); + aReader.Read(aMtf, pData); + TypeSerializer aSerializer(mrStream); + Point aPoint; + aSerializer.readPoint(aPoint); + Size aSize; + aSerializer.readSize(aSize); + Gradient aGradient; + aSerializer.readGradient(aGradient); + + pAction->SetGDIMetaFile(aMtf); + pAction->SetPoint(aPoint); + pAction->SetSize(aSize); + pAction->SetGradient(aGradient); + + return pAction; +} /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits