include/vcl/filter/SvmReader.hxx | 4 ++++ include/vcl/metaact.hxx | 2 ++ vcl/source/filter/svm/SvmReader.cxx | 24 +++++++++++++++++++++++- 3 files changed, 29 insertions(+), 1 deletion(-)
New commits: commit 0779fd344afee8c8ea182e3f97c971663bef3632 Author: panoskorovesis <panoskorove...@outlook.com> AuthorDate: Thu Jul 1 13:07:58 2021 +0300 Commit: Tomaž Vajngerl <qui...@gmail.com> CommitDate: Mon Jul 5 08:55:46 2021 +0200 Add Handler for MetaLineColor Read The handler seperates the read method from MetaAct.hxx Required set methods are added. Change-Id: I070af28711c111d60b3af3ae23fd8d6e93429cf7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118217 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 229fb3ca1d36..0c2b01d79ee1 100644 --- a/include/vcl/filter/SvmReader.hxx +++ b/include/vcl/filter/SvmReader.hxx @@ -29,11 +29,15 @@ class VCL_DLLPUBLIC SvmReader private: SvStream& mrStream; +protected: + void ReadColor(::Color& rColor); + public: SvmReader(SvStream& rIStm); SvStream& Read(GDIMetaFile& rMetaFile, ImplMetaReadData* pData = nullptr); rtl::Reference<MetaAction> MetaActionHandler(ImplMetaReadData* pData); + rtl::Reference<MetaAction> LineColorHandler(); }; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/vcl/metaact.hxx b/include/vcl/metaact.hxx index c37b7ab98aa2..1829340e63db 100644 --- a/include/vcl/metaact.hxx +++ b/include/vcl/metaact.hxx @@ -1223,6 +1223,8 @@ public: const Color& GetColor() const { return maColor; } bool IsSetting() const { return mbSet; } + void SetColor(Color& rColor) { maColor = rColor; } + void SetSetting(bool rSet) { mbSet = rSet; } }; class VCL_DLLPUBLIC MetaFillColorAction final : public MetaAction diff --git a/vcl/source/filter/svm/SvmReader.cxx b/vcl/source/filter/svm/SvmReader.cxx index e8455ea4de33..a8b55b3eab46 100644 --- a/vcl/source/filter/svm/SvmReader.cxx +++ b/vcl/source/filter/svm/SvmReader.cxx @@ -261,7 +261,7 @@ rtl::Reference<MetaAction> SvmReader::MetaActionHandler(ImplMetaReadData* pData) pAction = new MetaMoveClipRegionAction; break; case MetaActionType::LINECOLOR: - pAction = new MetaLineColorAction; + return LineColorHandler(); break; case MetaActionType::FILLCOLOR: pAction = new MetaFillColorAction; @@ -331,4 +331,26 @@ rtl::Reference<MetaAction> SvmReader::MetaActionHandler(ImplMetaReadData* pData) return pAction; } +void SvmReader::ReadColor(Color& rColor) +{ + sal_uInt32 nTmp; + mrStream.ReadUInt32(nTmp); + rColor = ::Color(ColorTransparency, nTmp); +} + +rtl::Reference<MetaAction> SvmReader::LineColorHandler() +{ + auto pAction = new MetaLineColorAction(); + + VersionCompatRead aCompat(mrStream); + Color aColor; + ReadColor(aColor); + bool aBool; + mrStream.ReadCharAsBool(aBool); + + pAction->SetSetting(aBool); + pAction->SetColor(aColor); + + 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