summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpanoskorovesis <panoskorovesis@outlook.com>2021-07-05 09:42:09 +0300
committerpanoskorovesis <panoskorovesis@outlook.com>2021-07-06 13:11:24 +0300
commit183ac11da61400a064508074be526982b8410c27 (patch)
tree9843fd88c1970ea3629573f84be4969b3a42d531
parentecb63e193e20d5a920fce637e8aa1c0acd743b20 (diff)
Add Handler for MetaRect Read
The handler separates the read method from metaact.hxx Read implementation is now in SvmReader.hxx Change-Id: I824a06d9018b473fd2398802d69b4952d33c4ada
-rw-r--r--include/vcl/filter/SvmReader.hxx1
-rw-r--r--include/vcl/metaact.hxx1
-rw-r--r--vcl/source/filter/svm/SvmReader.cxx16
3 files changed, 17 insertions, 1 deletions
diff --git a/include/vcl/filter/SvmReader.hxx b/include/vcl/filter/SvmReader.hxx
index c8ece1c5043c..0537eedb0b90 100644
--- a/include/vcl/filter/SvmReader.hxx
+++ b/include/vcl/filter/SvmReader.hxx
@@ -39,6 +39,7 @@ public:
rtl::Reference<MetaAction> MetaActionHandler(ImplMetaReadData* pData);
rtl::Reference<MetaAction> LineColorHandler();
rtl::Reference<MetaAction> FillColorHandler();
+ rtl::Reference<MetaAction> RectHandler();
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/vcl/metaact.hxx b/include/vcl/metaact.hxx
index 657a06c9227a..cf18190c230f 100644
--- a/include/vcl/metaact.hxx
+++ b/include/vcl/metaact.hxx
@@ -216,6 +216,7 @@ public:
virtual void Scale( double fScaleX, double fScaleY ) override;
const tools::Rectangle& GetRect() const { return maRect; }
+ void SetRect(tools::Rectangle& rRect) { maRect = rRect; }
};
class UNLESS_MERGELIBS(VCL_DLLPUBLIC) MetaRoundRectAction final : public MetaAction
diff --git a/vcl/source/filter/svm/SvmReader.cxx b/vcl/source/filter/svm/SvmReader.cxx
index e30984148517..7bc892102d20 100644
--- a/vcl/source/filter/svm/SvmReader.cxx
+++ b/vcl/source/filter/svm/SvmReader.cxx
@@ -168,7 +168,7 @@ rtl::Reference<MetaAction> SvmReader::MetaActionHandler(ImplMetaReadData* pData)
pAction = new MetaLineAction;
break;
case MetaActionType::RECT:
- pAction = new MetaRectAction;
+ return RectHandler();
break;
case MetaActionType::ROUNDRECT:
pAction = new MetaRoundRectAction;
@@ -370,4 +370,18 @@ rtl::Reference<MetaAction> SvmReader::FillColorHandler()
return pAction;
}
+
+rtl::Reference<MetaAction> SvmReader::RectHandler()
+{
+ auto pAction = new MetaRectAction();
+
+ VersionCompatRead aCompat(mrStream);
+ TypeSerializer aSerializer(mrStream);
+
+ tools::Rectangle aRectangle;
+ aSerializer.readRectangle(aRectangle);
+ pAction->SetRect(aRectangle);
+
+ return pAction;
+}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */