[Libreoffice-commits] core.git: 2 commits - framework/inc framework/source include/framework uui/inc uui/source xmloff/source
Oliver-Rainer Wittmann
orw at apache.org
Wed Jul 23 03:30:59 PDT 2014
framework/inc/interaction/quietinteraction.hxx | 1
framework/inc/pch/precompiled_fwk.hxx | 1
framework/source/interaction/quietinteraction.cxx | 12 --
framework/source/services/desktop.cxx | 12 --
include/framework/interaction.hxx | 1
uui/inc/pch/precompiled_uui.hxx | 1
uui/source/iahndl-filter.cxx | 122 ----------------------
uui/source/iahndl.cxx | 3
uui/source/iahndl.hxx | 5
xmloff/source/draw/shapeexport.cxx | 32 +++--
10 files changed, 20 insertions(+), 170 deletions(-)
New commits:
commit fd641c7b23ce4205c29fc0c564b73336cb2cfb07
Author: Oliver-Rainer Wittmann <orw at apache.org>
Date: Wed Jul 23 08:53:15 2014 +0000
Resolves: #i125289# do apply possible changed <GraphicStreamURL>...
only for embedded images which already have its stream inside the package
fixes also issue 125290
(cherry picked from commit 9602a121b458e7456fc533dad86f434f846a72ba)
Conflicts:
xmloff/source/draw/shapeexport2.cxx
Change-Id: I5af0093b20f2f291d3a94c690bfbdb59a59320c3
diff --git a/xmloff/source/draw/shapeexport.cxx b/xmloff/source/draw/shapeexport.cxx
index 7f33e58..ba8ce16 100644
--- a/xmloff/source/draw/shapeexport.cxx
+++ b/xmloff/source/draw/shapeexport.cxx
@@ -2256,9 +2256,12 @@ void XMLShapeExport::ImpExportGraphicObjectShape(
OUString aResolveURL( sImageURL );
const OUString sPackageURL( "vnd.sun.star.Package:" );
- // trying to preserve the filename
+ // trying to preserve the filename for embedded images which already have its stream inside the package
+ bool bIsEmbeddedImageWithExistingStreamInPackage = false;
if ( aStreamURL.match( sPackageURL, 0 ) )
{
+ bIsEmbeddedImageWithExistingStreamInPackage = true;
+
OUString sRequestedName( aStreamURL.copy( sPackageURL.getLength(), aStreamURL.getLength() - sPackageURL.getLength() ) );
sal_Int32 nLastIndex = sRequestedName.lastIndexOf( '/' ) + 1;
if ( ( nLastIndex > 0 ) && ( nLastIndex < sRequestedName.getLength() ) )
@@ -2278,20 +2281,23 @@ void XMLShapeExport::ImpExportGraphicObjectShape(
if( !aStr.isEmpty() )
{
- aStreamURL = sPackageURL;
- if( aStr[ 0 ] == '#' )
- {
- aStreamURL = aStreamURL.concat( aStr.copy( 1, aStr.getLength() - 1 ) );
- }
- else
+ // apply possible changed stream URL to embedded image object
+ if ( bIsEmbeddedImageWithExistingStreamInPackage )
{
- aStreamURL = aStreamURL.concat( aStr );
- }
+ aStreamURL = sPackageURL;
+ if ( aStr[0] == '#' )
+ {
+ aStreamURL = aStreamURL.concat( aStr.copy( 1, aStr.getLength() - 1 ) );
+ }
+ else
+ {
+ aStreamURL = aStreamURL.concat( aStr );
+ }
- // update stream URL for load on demand
- uno::Any aAny;
- aAny <<= aStreamURL;
- xPropSet->setPropertyValue("GraphicStreamURL", aAny );
+ uno::Any aAny;
+ aAny <<= aStreamURL;
+ xPropSet->setPropertyValue( OUString("GraphicStreamURL"), aAny );
+ }
mrExport.AddAttribute(XML_NAMESPACE_XLINK, XML_TYPE, XML_SIMPLE );
mrExport.AddAttribute(XML_NAMESPACE_XLINK, XML_SHOW, XML_EMBED );
commit 23e818d4f5cb6dff4c2238fa42a38496a9a85255
Author: Caolán McNamara <caolanm at redhat.com>
Date: Wed Jul 23 10:49:30 2014 +0100
AmbigousFilterRequest is only ever extracted, never created
Change-Id: I79c669c1635192199d6ef135e1ab9b48a9e7e63a
diff --git a/framework/inc/interaction/quietinteraction.hxx b/framework/inc/interaction/quietinteraction.hxx
index c2dbeaa..0a990f4 100644
--- a/framework/inc/interaction/quietinteraction.hxx
+++ b/framework/inc/interaction/quietinteraction.hxx
@@ -38,7 +38,6 @@ namespace framework{
But it can be used to intercept problems e.g. during loading of documents.
In current implementation we solve conflicts for following situations only:
- - AmbigousFilterRequest
- InteractiveIOException
- InteractiveAugmentedIOException
All other requests will be aborted.
diff --git a/framework/inc/pch/precompiled_fwk.hxx b/framework/inc/pch/precompiled_fwk.hxx
index 31e5c4f..c37deaf 100644
--- a/framework/inc/pch/precompiled_fwk.hxx
+++ b/framework/inc/pch/precompiled_fwk.hxx
@@ -82,7 +82,6 @@
#include <com/sun/star/container/XNameReplace.hpp>
#include <com/sun/star/container/XNamed.hpp>
#include <com/sun/star/datatransfer/dnd/XDropTarget.hpp>
-#include <com/sun/star/document/AmbigousFilterRequest.hpp>
#include <com/sun/star/document/FilterOptionsRequest.hpp>
#include <com/sun/star/document/LockedDocumentRequest.hpp>
#include <com/sun/star/document/MacroExecMode.hpp>
diff --git a/framework/source/interaction/quietinteraction.cxx b/framework/source/interaction/quietinteraction.cxx
index 680fe09..3b27f18 100644
--- a/framework/source/interaction/quietinteraction.cxx
+++ b/framework/source/interaction/quietinteraction.cxx
@@ -25,7 +25,6 @@
#include <com/sun/star/task/XInteractionApprove.hpp>
#include <com/sun/star/document/XInteractionFilterSelect.hpp>
#include <com/sun/star/document/XInteractionFilterOptions.hpp>
-#include <com/sun/star/document/AmbigousFilterRequest.hpp>
#include <com/sun/star/document/FilterOptionsRequest.hpp>
#include <com/sun/star/task/ErrorCodeRequest.hpp>
@@ -81,20 +80,9 @@ void SAL_CALL QuietInteraction::handle( const css::uno::Reference< css::task::XI
// differ between abortable interactions (error, unknown filter ...)
// and other ones (ambigous but not unknown filter ...)
css::task::ErrorCodeRequest aErrorCodeRequest;
- css::document::AmbigousFilterRequest aAmbigousFilterRequest;
css::document::LockedDocumentRequest aLockedDocumentRequest;
css::document::FilterOptionsRequest aFilterOptionsRequest;
- if (aRequest>>=aAmbigousFilterRequest)
- {
- if (xFilter.is())
- {
- // user selected filter wins every time!
- xFilter->setFilter( aAmbigousFilterRequest.SelectedFilter );
- xFilter->select();
- }
- }
- else
if( aRequest >>= aErrorCodeRequest )
{
// warnings can be ignored => approve
diff --git a/framework/source/services/desktop.cxx b/framework/source/services/desktop.cxx
index 10bb545..781ce63 100644
--- a/framework/source/services/desktop.cxx
+++ b/framework/source/services/desktop.cxx
@@ -46,7 +46,6 @@
#include <com/sun/star/task/XInteractionAbort.hpp>
#include <com/sun/star/task/XInteractionApprove.hpp>
#include <com/sun/star/document/XInteractionFilterSelect.hpp>
-#include <com/sun/star/document/AmbigousFilterRequest.hpp>
#include <com/sun/star/task/ErrorCodeRequest.hpp>
#include <com/sun/star/ucb/InteractiveIOException.hpp>
#include <com/sun/star/ucb/InteractiveAugmentedIOException.hpp>
@@ -1220,16 +1219,7 @@ void SAL_CALL Desktop::handle( const css::uno::Reference< css::task::XInteractio
// differ between abortable interactions (error, unknown filter ...)
// and other ones (ambigous but not unknown filter ...)
css::task::ErrorCodeRequest aErrorCodeRequest;
- css::document::AmbigousFilterRequest aAmbigousFilterRequest;
- if( aRequest >>= aAmbigousFilterRequest )
- {
- if( xFilterSelect.is() )
- {
- xFilterSelect->setFilter( aAmbigousFilterRequest.SelectedFilter ); // user selected filter wins!
- xFilterSelect->select();
- }
- }
- else if( aRequest >>= aErrorCodeRequest )
+ if( aRequest >>= aErrorCodeRequest )
{
bool bWarning = ((aErrorCodeRequest.ErrCode & ERRCODE_WARNING_MASK) == ERRCODE_WARNING_MASK);
if (xApprove.is() && bWarning)
diff --git a/include/framework/interaction.hxx b/include/framework/interaction.hxx
index 415f7a7..aa43a85 100644
--- a/include/framework/interaction.hxx
+++ b/include/framework/interaction.hxx
@@ -28,7 +28,6 @@
#include <com/sun/star/task/XInteractionRetry.hpp>
#include <com/sun/star/document/XInteractionFilterSelect.hpp>
#include <com/sun/star/document/NoSuchFilterRequest.hpp>
-#include <com/sun/star/document/AmbigousFilterRequest.hpp>
#include <com/sun/star/uno/RuntimeException.hpp>
#include <rtl/ustring.hxx>
diff --git a/uui/inc/pch/precompiled_uui.hxx b/uui/inc/pch/precompiled_uui.hxx
index cc81635..d8f029e 100644
--- a/uui/inc/pch/precompiled_uui.hxx
+++ b/uui/inc/pch/precompiled_uui.hxx
@@ -25,7 +25,6 @@
#include <com/sun/star/container/XContainerQuery.hpp>
#include <com/sun/star/container/XHierarchicalNameAccess.hpp>
#include <com/sun/star/container/XNameContainer.hpp>
-#include <com/sun/star/document/AmbigousFilterRequest.hpp>
#include <com/sun/star/document/BrokenPackageRequest.hpp>
#include <com/sun/star/document/ChangedByOthersRequest.hpp>
#include <com/sun/star/document/FilterOptionsRequest.hpp>
diff --git a/uui/source/iahndl-filter.cxx b/uui/source/iahndl-filter.cxx
index d8f574e..c43f018 100644
--- a/uui/source/iahndl-filter.cxx
+++ b/uui/source/iahndl-filter.cxx
@@ -20,7 +20,6 @@
#include <com/sun/star/beans/XPropertyAccess.hpp>
#include <com/sun/star/container/XContainerQuery.hpp>
#include <com/sun/star/container/XNameContainer.hpp>
-#include <com/sun/star/document/AmbigousFilterRequest.hpp>
#include <com/sun/star/document/FilterOptionsRequest.hpp>
#include <com/sun/star/document/NoSuchFilterRequest.hpp>
#include <com/sun/star/document/XImporter.hpp>
@@ -190,109 +189,6 @@ handleNoSuchFilterRequest_(
}
void
-handleAmbigousFilterRequest_(
- Window * pParent,
- uno::Reference< uno::XComponentContext > const & xContext,
- document::AmbigousFilterRequest const & rRequest,
- uno::Sequence<
- uno::Reference<
- task::XInteractionContinuation > > const & rContinuations)
-{
- uno::Reference< task::XInteractionAbort > xAbort;
- uno::Reference< document::XInteractionFilterSelect > xFilterTransport;
- getContinuations(rContinuations, &xAbort, &xFilterTransport);
-
- uui::FilterNameList lNames;
-
- uno::Reference< container::XNameContainer > xFilterContainer;
- try
- {
- xFilterContainer.set( xContext->getServiceManager()->createInstanceWithContext(
- OUString( "com.sun.star.document.FilterFactory"), xContext ),
- uno::UNO_QUERY );
- }
- catch ( uno::Exception & )
- {
- }
-
- if( xFilterContainer.is() )
- {
- uno::Any aPackedSet ;
- uno::Sequence< beans::PropertyValue > lProps ;
- sal_Int32 nStep ;
- uui::FilterNamePair aPair ;
-
- try
- {
- aPackedSet = xFilterContainer->getByName( rRequest.SelectedFilter );
- }
- catch(const container::NoSuchElementException&)
- {
- aPackedSet.clear();
- }
- aPackedSet >>= lProps;
- for( nStep=0; nStep<lProps.getLength(); ++nStep )
- {
- if( lProps[nStep].Name.equalsAscii("UIName") )
- {
- OUString sTemp;
- lProps[nStep].Value >>= sTemp;
- aPair.sUI = sTemp;
- aPair.sInternal = rRequest.SelectedFilter;
- lNames.push_back( aPair );
- break;
- }
- }
-
- try
- {
- aPackedSet = xFilterContainer->getByName( rRequest.DetectedFilter );
- }
- catch(const container::NoSuchElementException&)
- {
- aPackedSet.clear();
- }
- aPackedSet >>= lProps;
- for( nStep=0; nStep<lProps.getLength(); ++nStep )
- {
- if( lProps[nStep].Name.equalsAscii("UIName") )
- {
- OUString sTemp;
- lProps[nStep].Value >>= sTemp;
- aPair.sUI = sTemp;
- aPair.sInternal = rRequest.DetectedFilter;
- lNames.push_back( aPair );
- break;
- }
- }
- }
-
- if( xAbort.is() && xFilterTransport.is() )
- {
- if( lNames.size() < 1 )
- {
- xAbort->select();
- }
- else
- {
- OUString sFilter;
- executeFilterDialog( pParent,
- rRequest.URL,
- lNames,
- sFilter );
-
- if( !sFilter.isEmpty() )
- {
- xFilterTransport->setFilter( sFilter );
- xFilterTransport->select();
- }
- else
- xAbort->select();
- }
- }
-}
-
-void
handleFilterOptionsRequest_(
uno::Reference< uno::XComponentContext > const & xContext,
document::FilterOptionsRequest const & rRequest,
@@ -412,24 +308,6 @@ UUIInteractionHelper::handleNoSuchFilterRequest(
}
bool
-UUIInteractionHelper::handleAmbigousFilterRequest(
- uno::Reference< task::XInteractionRequest > const & rRequest)
-{
- uno::Any aAnyRequest(rRequest->getRequest());
-
- document::AmbigousFilterRequest aAmbigousFilterRequest;
- if (aAnyRequest >>= aAmbigousFilterRequest)
- {
- handleAmbigousFilterRequest_(getParentProperty(),
- m_xContext,
- aAmbigousFilterRequest,
- rRequest->getContinuations());
- return true;
- }
- return false;
-}
-
-bool
UUIInteractionHelper::handleFilterOptionsRequest(
uno::Reference< task::XInteractionRequest > const & rRequest)
{
diff --git a/uui/source/iahndl.cxx b/uui/source/iahndl.cxx
index 89a45d2..d80904b 100644
--- a/uui/source/iahndl.cxx
+++ b/uui/source/iahndl.cxx
@@ -852,9 +852,6 @@ UUIInteractionHelper::handleRequest_impl(
if ( handleNoSuchFilterRequest( rRequest ) )
return true;
- if ( handleAmbigousFilterRequest( rRequest ) )
- return true;
-
if ( handleFilterOptionsRequest( rRequest ) )
return true;
diff --git a/uui/source/iahndl.hxx b/uui/source/iahndl.hxx
index 3333e87..efbee64 100644
--- a/uui/source/iahndl.hxx
+++ b/uui/source/iahndl.hxx
@@ -217,11 +217,6 @@ private:
com::sun::star::task::XInteractionRequest > const & rRequest);
bool
- handleAmbigousFilterRequest(
- com::sun::star::uno::Reference<
- com::sun::star::task::XInteractionRequest > const & rRequest);
-
- bool
handleFilterOptionsRequest(
com::sun::star::uno::Reference<
com::sun::star::task::XInteractionRequest > const & rRequest);
More information about the Libreoffice-commits
mailing list