[Libreoffice-commits] core.git: 2 commits - include/vcl vcl/source
panoskorovesis (via logerrit)
logerrit at kemper.freedesktop.org
Fri Jul 9 22:40:07 UTC 2021
include/vcl/filter/SvmReader.hxx | 2 +
include/vcl/metaact.hxx | 5 ++++
vcl/source/filter/svm/SvmReader.cxx | 42 ++++++++++++++++++++++++++++++++++--
3 files changed, 47 insertions(+), 2 deletions(-)
New commits:
commit 19441313b37eb5d0a11c8a929a38c079fa7ef291
Author: panoskorovesis <panoskorovesis at outlook.com>
AuthorDate: Fri Jul 9 13:36:54 2021 +0300
Commit: Tomaž Vajngerl <quikee at gmail.com>
CommitDate: Sat Jul 10 00:39:47 2021 +0200
Add Handler for BmpScale Read
The handler separates MetaBmpScaleAction::Read from metaact.hxx
Read implementation is now in SvmReader.hxx
Change-Id: I1641d11d6fbe49d023b758d7e6aaeabbc667030b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118667
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 c34c7db1df4e..5757abe1c30c 100644
--- a/include/vcl/filter/SvmReader.hxx
+++ b/include/vcl/filter/SvmReader.hxx
@@ -57,6 +57,7 @@ public:
rtl::Reference<MetaAction> TextRectHandler(ImplMetaReadData* pData);
rtl::Reference<MetaAction> TextLineHandler();
rtl::Reference<MetaAction> BmpHandler();
+ rtl::Reference<MetaAction> BmpScaleHandler();
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/vcl/metaact.hxx b/include/vcl/metaact.hxx
index 464f2b32777e..f025ae6fac87 100644
--- a/include/vcl/metaact.hxx
+++ b/include/vcl/metaact.hxx
@@ -755,6 +755,9 @@ public:
const Bitmap& GetBitmap() const { return maBmp; }
const Point& GetPoint() const { return maPt; }
const Size& GetSize() const { return maSz; }
+ void SetBitmap(Bitmap& rBmp) { maBmp = rBmp; }
+ void SetPoint(Point& rPt) { maPt = rPt; }
+ void SetSize(Size& rSz) { maSz = rSz; }
};
class UNLESS_MERGELIBS(VCL_DLLPUBLIC) MetaBmpScalePartAction final : public MetaAction
diff --git a/vcl/source/filter/svm/SvmReader.cxx b/vcl/source/filter/svm/SvmReader.cxx
index 8f2c503ffc7b..91e4052dab33 100644
--- a/vcl/source/filter/svm/SvmReader.cxx
+++ b/vcl/source/filter/svm/SvmReader.cxx
@@ -214,7 +214,7 @@ rtl::Reference<MetaAction> SvmReader::MetaActionHandler(ImplMetaReadData* pData)
return BmpHandler();
break;
case MetaActionType::BMPSCALE:
- pAction = new MetaBmpScaleAction;
+ return BmpScaleHandler();
break;
case MetaActionType::BMPSCALEPART:
pAction = new MetaBmpScalePartAction;
@@ -852,4 +852,24 @@ rtl::Reference<MetaAction> SvmReader::BmpHandler()
return pAction;
}
+
+rtl::Reference<MetaAction> SvmReader::BmpScaleHandler()
+{
+ auto pAction = new MetaBmpScaleAction();
+
+ VersionCompatRead aCompat(mrStream);
+ Bitmap aBmp;
+ ReadDIB(aBmp, mrStream, true);
+ TypeSerializer aSerializer(mrStream);
+ Point aPoint;
+ aSerializer.readPoint(aPoint);
+ Size aSz;
+ aSerializer.readSize(aSz);
+
+ pAction->SetBitmap(aBmp);
+ pAction->SetPoint(aPoint);
+ pAction->SetSize(aSz);
+
+ return pAction;
+}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit 10d983f57f0bc1ec665d6e2bbfa1d9038446e7f9
Author: panoskorovesis <panoskorovesis at outlook.com>
AuthorDate: Fri Jul 9 13:28:47 2021 +0300
Commit: Tomaž Vajngerl <quikee at gmail.com>
CommitDate: Sat Jul 10 00:39:32 2021 +0200
Add Handler for Bmp Read
The handler separates MetaBmpAction::Read from metaact.hxx
Read implementation is now in SvmReader.hxx
Change-Id: I60b9c2fbe9c5e23e0f1a05c4aa96565e3d14c403
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118665
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 fd8d81ce7295..c34c7db1df4e 100644
--- a/include/vcl/filter/SvmReader.hxx
+++ b/include/vcl/filter/SvmReader.hxx
@@ -56,6 +56,7 @@ public:
rtl::Reference<MetaAction> StretchTextHandler(ImplMetaReadData* pData);
rtl::Reference<MetaAction> TextRectHandler(ImplMetaReadData* pData);
rtl::Reference<MetaAction> TextLineHandler();
+ rtl::Reference<MetaAction> BmpHandler();
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/vcl/metaact.hxx b/include/vcl/metaact.hxx
index 731e901bd622..464f2b32777e 100644
--- a/include/vcl/metaact.hxx
+++ b/include/vcl/metaact.hxx
@@ -720,6 +720,8 @@ public:
const Bitmap& GetBitmap() const { return maBmp; }
const Point& GetPoint() const { return maPt; }
+ void SetBitmap(Bitmap& rBmp) { maBmp = rBmp; }
+ void SetPoint(Point& rPt) { maPt = rPt; }
};
class VCL_DLLPUBLIC MetaBmpScaleAction final : public MetaAction
diff --git a/vcl/source/filter/svm/SvmReader.cxx b/vcl/source/filter/svm/SvmReader.cxx
index 43cd2e0e354a..8f2c503ffc7b 100644
--- a/vcl/source/filter/svm/SvmReader.cxx
+++ b/vcl/source/filter/svm/SvmReader.cxx
@@ -21,6 +21,7 @@
#include <sal/log.hxx>
#include <tools/stream.hxx>
#include <tools/vcompat.hxx>
+#include <vcl/dibtools.hxx>
#include <vcl/TypeSerializer.hxx>
#include <vcl/gdimtf.hxx>
#include <vcl/metaact.hxx>
@@ -210,7 +211,7 @@ rtl::Reference<MetaAction> SvmReader::MetaActionHandler(ImplMetaReadData* pData)
return TextLineHandler();
break;
case MetaActionType::BMP:
- pAction = new MetaBmpAction;
+ return BmpHandler();
break;
case MetaActionType::BMPSCALE:
pAction = new MetaBmpScaleAction;
@@ -834,4 +835,21 @@ rtl::Reference<MetaAction> SvmReader::TextLineHandler()
return pAction;
}
+
+rtl::Reference<MetaAction> SvmReader::BmpHandler()
+{
+ auto pAction = new MetaBmpAction();
+
+ VersionCompatRead aCompat(mrStream);
+ Bitmap aBmp;
+ ReadDIB(aBmp, mrStream, true);
+ TypeSerializer aSerializer(mrStream);
+ Point aPoint;
+ aSerializer.readPoint(aPoint);
+
+ pAction->SetBitmap(aBmp);
+ pAction->SetPoint(aPoint);
+
+ return pAction;
+}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
More information about the Libreoffice-commits
mailing list