[Libreoffice-commits] core.git: include/vcl vcl/source
panoskorovesis (via logerrit)
logerrit at kemper.freedesktop.org
Fri Jul 9 22:42:05 UTC 2021
include/vcl/filter/SvmReader.hxx | 1 +
include/vcl/metaact.hxx | 5 +++++
vcl/source/filter/svm/SvmReader.cxx | 28 +++++++++++++++++++++++++++-
3 files changed, 33 insertions(+), 1 deletion(-)
New commits:
commit 4146be28450c77159ae8c7f8d4d7f471756ec14c
Author: panoskorovesis <panoskorovesis at outlook.com>
AuthorDate: Fri Jul 9 14:17:38 2021 +0300
Commit: Tomaž Vajngerl <quikee at gmail.com>
CommitDate: Sat Jul 10 00:41:31 2021 +0200
Add Handler for BmpExScalePart Read
The handler separates MetaBmpExScalePartAction::Read from metaact.hxx
Read implementation is now in SvmReader.hxx
Change-Id: I22f7cec1873dedfce16ec6ea597b5113089e8ec0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118677
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee at gmail.com>
diff --git a/include/vcl/filter/SvmReader.hxx b/include/vcl/filter/SvmReader.hxx
index 853a52a8ae3d..9ce071448dca 100644
--- a/include/vcl/filter/SvmReader.hxx
+++ b/include/vcl/filter/SvmReader.hxx
@@ -61,6 +61,7 @@ public:
rtl::Reference<MetaAction> BmpScalePartHandler();
rtl::Reference<MetaAction> BmpExHandler();
rtl::Reference<MetaAction> BmpExScaleHandler();
+ rtl::Reference<MetaAction> BmpExScalePartHandler();
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/vcl/metaact.hxx b/include/vcl/metaact.hxx
index b71c59b5144f..c59257433daa 100644
--- a/include/vcl/metaact.hxx
+++ b/include/vcl/metaact.hxx
@@ -909,6 +909,11 @@ public:
const Size& GetDestSize() const { return maDstSz; }
const Point& GetSrcPoint() const { return maSrcPt; }
const Size& GetSrcSize() const { return maSrcSz; }
+ void SetBitmapEx(BitmapEx& rBmpEx) { maBmpEx = rBmpEx; }
+ void SetDestPoint(Point& rDstPt) { maDstPt = rDstPt; }
+ void SetDestSize(Size& rDstSz) { maDstSz = rDstSz; }
+ void SetSrcPoint(Point& rSrcPt) { maSrcPt = rSrcPt; }
+ void SetSrcSize(Size& rSrcSz) { maSrcSz = rSrcSz; }
bool IsTransparent() const override { return GetBitmapEx().IsAlpha(); }
};
diff --git a/vcl/source/filter/svm/SvmReader.cxx b/vcl/source/filter/svm/SvmReader.cxx
index 303e280e8680..679a6185c503 100644
--- a/vcl/source/filter/svm/SvmReader.cxx
+++ b/vcl/source/filter/svm/SvmReader.cxx
@@ -226,7 +226,7 @@ rtl::Reference<MetaAction> SvmReader::MetaActionHandler(ImplMetaReadData* pData)
return BmpExScaleHandler();
break;
case MetaActionType::BMPEXSCALEPART:
- pAction = new MetaBmpExScalePartAction;
+ return BmpExScalePartHandler();
break;
case MetaActionType::MASK:
pAction = new MetaMaskAction;
@@ -935,4 +935,30 @@ rtl::Reference<MetaAction> SvmReader::BmpExScaleHandler()
return pAction;
}
+
+rtl::Reference<MetaAction> SvmReader::BmpExScalePartHandler()
+{
+ auto pAction = new MetaBmpExScalePartAction();
+
+ VersionCompatRead aCompat(mrStream);
+ BitmapEx aBmpEx;
+ ReadDIBBitmapEx(aBmpEx, mrStream);
+ TypeSerializer aSerializer(mrStream);
+ Point aDstPoint;
+ aSerializer.readPoint(aDstPoint);
+ Size aDstSize;
+ aSerializer.readSize(aDstSize);
+ Point aSrcPoint;
+ aSerializer.readPoint(aSrcPoint);
+ Size aSrcSize;
+ aSerializer.readSize(aSrcSize);
+
+ pAction->SetBitmapEx(aBmpEx);
+ pAction->SetDestPoint(aDstPoint);
+ pAction->SetDestSize(aDstSize);
+ pAction->SetSrcPoint(aSrcPoint);
+ pAction->SetSrcSize(aSrcSize);
+
+ return pAction;
+}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
More information about the Libreoffice-commits
mailing list