include/svtools/DocumentToGraphicRenderer.hxx | 13 +++++----- svtools/source/filter/DocumentToGraphicRenderer.cxx | 25 +++++++++++++------- 2 files changed, 24 insertions(+), 14 deletions(-)
New commits: commit 5214e841b6ca5362f94d59f940ec3947978c1abe Author: Eike Rathke <er...@redhat.com> Date: Tue Sep 19 20:43:02 2017 +0200 Detect Writer doc independent of selection, we'll need that later Change-Id: Ieddbcd3e8b750ec4b32643aec0433f8638ee46ee Reviewed-on: https://gerrit.libreoffice.org/42495 Reviewed-by: Eike Rathke <er...@redhat.com> Tested-by: Eike Rathke <er...@redhat.com> diff --git a/include/svtools/DocumentToGraphicRenderer.hxx b/include/svtools/DocumentToGraphicRenderer.hxx index 2240b160d79b..80f37df3c56e 100644 --- a/include/svtools/DocumentToGraphicRenderer.hxx +++ b/include/svtools/DocumentToGraphicRenderer.hxx @@ -34,12 +34,13 @@ class SVT_DLLPUBLIC DocumentToGraphicRenderer { const css::uno::Reference<css::lang::XComponent>& mxDocument; - css::uno::Reference<css::frame::XModel> mxModel; - css::uno::Reference<css::frame::XController> mxController; - css::uno::Reference<css::view::XRenderable> mxRenderable; - css::uno::Reference<css::awt::XToolkit> mxToolkit; - css::uno::Any maSelection; - bool mbSelectionOnly; + css::uno::Reference<css::frame::XModel> mxModel; + css::uno::Reference<css::frame::XController> mxController; + css::uno::Reference<css::view::XRenderable> mxRenderable; + css::uno::Reference<css::awt::XToolkit> mxToolkit; + css::uno::Any maSelection; + bool mbSelectionOnly; + bool mbIsWriter; bool hasSelection() const; diff --git a/svtools/source/filter/DocumentToGraphicRenderer.cxx b/svtools/source/filter/DocumentToGraphicRenderer.cxx index 524c30afcd64..5b125bbdebd3 100644 --- a/svtools/source/filter/DocumentToGraphicRenderer.cxx +++ b/svtools/source/filter/DocumentToGraphicRenderer.cxx @@ -45,8 +45,22 @@ DocumentToGraphicRenderer::DocumentToGraphicRenderer( const Reference<XComponent mxController( mxModel->getCurrentController() ), mxRenderable (mxDocument, uno::UNO_QUERY ), mxToolkit( VCLUnoHelper::CreateToolkit() ), - mbSelectionOnly( bSelectionOnly ) + mbSelectionOnly( bSelectionOnly ), + mbIsWriter( false ) { + try + { + uno::Reference< lang::XServiceInfo > xServiceInfo( mxDocument, uno::UNO_QUERY); + if (xServiceInfo.is()) + { + if (xServiceInfo->supportsService("com.sun.star.text.TextDocument")) + mbIsWriter = true; + } + } + catch (const uno::Exception&) + { + } + if (mbSelectionOnly && mxController.is()) { try @@ -57,18 +71,13 @@ DocumentToGraphicRenderer::DocumentToGraphicRenderer( const Reference<XComponent uno::Any aViewSelection( xSelSup->getSelection()); if (aViewSelection.hasValue()) { - maSelection = aViewSelection; /* FIXME: Writer always has a selection even if nothing is * selected, but passing a selection to * XRenderable::render() it always renders an empty page. * So disable the selection already here. The current page * the cursor is on is rendered. */ - uno::Reference< lang::XServiceInfo > xServiceInfo( mxDocument, uno::UNO_QUERY); - if (xServiceInfo.is()) - { - if (xServiceInfo->supportsService("com.sun.star.text.TextDocument")) - maSelection = uno::Any(); - } + if (!mbIsWriter) + maSelection = aViewSelection; } } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits