[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.2' - sfx2/inc sfx2/source
Muhammet Kara (via logerrit)
logerrit at kemper.freedesktop.org
Mon Jun 17 20:54:34 UTC 2019
sfx2/inc/SfxRedactionHelper.hxx | 6 ++++--
sfx2/source/doc/SfxRedactionHelper.cxx | 10 +++++++---
sfx2/source/doc/objserv.cxx | 5 +++--
3 files changed, 14 insertions(+), 7 deletions(-)
New commits:
commit 26c1fd655ac8362d44caf8423df0429c0e9ce7f2
Author: Muhammet Kara <muhammet.kara at collabora.com>
AuthorDate: Wed May 1 18:46:47 2019 +0300
Commit: Muhammet Kara <muhammet.kara at collabora.com>
CommitDate: Mon Jun 17 22:53:48 2019 +0200
tdf#125063: Don't depend on content size for Page sizing
During redaction of Calc sheets
Change-Id: If2a4f71c77a687a74b8f823152b76d2a7e2e21da
Reviewed-on: https://gerrit.libreoffice.org/71627
Tested-by: Jenkins
Reviewed-by: Muhammet Kara <muhammet.kara at collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/74222
Tested-by: Muhammet Kara <muhammet.kara at collabora.com>
diff --git a/sfx2/inc/SfxRedactionHelper.hxx b/sfx2/inc/SfxRedactionHelper.hxx
index d338143c608e..1cd653650557 100644
--- a/sfx2/inc/SfxRedactionHelper.hxx
+++ b/sfx2/inc/SfxRedactionHelper.hxx
@@ -15,6 +15,7 @@
#include <sal/types.h>
#include <rtl/ustring.hxx>
+#include <tools/gen.hxx>
#include <vector>
@@ -47,7 +48,7 @@ public:
* and pushes into the given vector.
* */
static void getPageMetaFilesFromDoc(std::vector<GDIMetaFile>& aMetaFiles,
- const sal_Int32& nPages,
+ std::vector<::Size>& aPageSizes, const sal_Int32& nPages,
DocumentToGraphicRenderer& aRenderer, bool bIsWriter,
bool bIsCalc);
/*
@@ -55,7 +56,8 @@ public:
* and inserts the shapes into the newly created draw pages.
* */
static void addPagesToDraw(uno::Reference<XComponent>& xComponent, const sal_Int32& nPages,
- const std::vector<GDIMetaFile>& aMetaFiles, bool bIsCalc);
+ const std::vector<GDIMetaFile>& aMetaFiles,
+ const std::vector<::Size>& aPageSizes, bool bIsCalc);
/*
* Makes the Redaction toolbar visible to the user.
* Meant to be called after converting a document to a Draw doc
diff --git a/sfx2/source/doc/SfxRedactionHelper.cxx b/sfx2/source/doc/SfxRedactionHelper.cxx
index 732b56092da2..b1743e5ba20b 100644
--- a/sfx2/source/doc/SfxRedactionHelper.cxx
+++ b/sfx2/source/doc/SfxRedactionHelper.cxx
@@ -61,6 +61,7 @@ OUString SfxRedactionHelper::getStringParam(const SfxRequest& rReq, const sal_uI
}
void SfxRedactionHelper::getPageMetaFilesFromDoc(std::vector<GDIMetaFile>& aMetaFiles,
+ std::vector<::Size>& aPageSizes,
const sal_Int32& nPages,
DocumentToGraphicRenderer& aRenderer,
bool bIsWriter, bool bIsCalc)
@@ -76,6 +77,8 @@ void SfxRedactionHelper::getPageMetaFilesFromDoc(std::vector<GDIMetaFile>& aMeta
// FIXME: This is a temporary hack. Need to figure out a proper way to derive this scale factor.
::Size aTargetSize(aDocumentSizePixel.Width() * 1.23, aDocumentSizePixel.Height() * 1.23);
+ aPageSizes.push_back(aLogic);
+
Graphic aGraphic = aRenderer.renderToGraphic(nPage, aDocumentSizePixel, aTargetSize,
COL_TRANSPARENT, true);
auto& rGDIMetaFile = const_cast<GDIMetaFile&>(aGraphic.GetGDIMetaFile());
@@ -109,7 +112,8 @@ void SfxRedactionHelper::getPageMetaFilesFromDoc(std::vector<GDIMetaFile>& aMeta
void SfxRedactionHelper::addPagesToDraw(uno::Reference<XComponent>& xComponent,
const sal_Int32& nPages,
- const std::vector<GDIMetaFile>& aMetaFiles, bool bIsCalc)
+ const std::vector<GDIMetaFile>& aMetaFiles,
+ const std::vector<::Size>& aPageSizes, bool bIsCalc)
{
// Access the draw pages
uno::Reference<drawing::XDrawPagesSupplier> xDrawPagesSupplier(xComponent, uno::UNO_QUERY);
@@ -122,8 +126,8 @@ void SfxRedactionHelper::addPagesToDraw(uno::Reference<XComponent>& xComponent,
GDIMetaFile rGDIMetaFile = aMetaFiles[nPage];
Graphic aGraphic(rGDIMetaFile);
- sal_Int32 nPageHeight(rGDIMetaFile.GetPrefSize().Height());
- sal_Int32 nPageWidth(rGDIMetaFile.GetPrefSize().Width());
+ sal_Int32 nPageHeight(aPageSizes[nPage].Height());
+ sal_Int32 nPageWidth(aPageSizes[nPage].Width());
uno::Reference<graphic::XGraphic> xGraph = aGraphic.GetXGraphic();
uno::Reference<drawing::XDrawPage> xPage = xDrawPages->insertNewByIndex(nPage);
diff --git a/sfx2/source/doc/objserv.cxx b/sfx2/source/doc/objserv.cxx
index a34ad5c24113..72d46d50e217 100644
--- a/sfx2/source/doc/objserv.cxx
+++ b/sfx2/source/doc/objserv.cxx
@@ -558,9 +558,10 @@ void SfxObjectShell::ExecFile_Impl(SfxRequest &rReq)
sal_Int32 nPages = aRenderer.getPageCount();
std::vector< GDIMetaFile > aMetaFiles;
+ std::vector< ::Size > aPageSizes;
// Convert the pages of the document to gdimetafiles
- SfxRedactionHelper::getPageMetaFilesFromDoc(aMetaFiles, nPages, aRenderer, bIsWriter, bIsCalc);
+ SfxRedactionHelper::getPageMetaFilesFromDoc(aMetaFiles, aPageSizes, nPages, aRenderer, bIsWriter, bIsCalc);
// Create an empty Draw component.
uno::Reference<frame::XDesktop2> xDesktop = css::frame::Desktop::create(comphelper::getProcessComponentContext());
@@ -568,7 +569,7 @@ void SfxObjectShell::ExecFile_Impl(SfxRequest &rReq)
uno::Reference<lang::XComponent> xComponent = xComponentLoader->loadComponentFromURL("private:factory/sdraw", "_default", 0, {});
// Add the doc pages to the new draw document
- SfxRedactionHelper::addPagesToDraw(xComponent, nPages, aMetaFiles, bIsCalc);
+ SfxRedactionHelper::addPagesToDraw(xComponent, nPages, aMetaFiles, aPageSizes, bIsCalc);
// Show the Redaction toolbar
SfxViewFrame* pViewFrame = SfxViewFrame::Current();
More information about the Libreoffice-commits
mailing list