Prepare for removal of non-const operator[] from Sequence in embeddedobj
Change-Id: I19432a1e506526fdc1cd98625d9cfff12ea2f973 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124361 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
This commit is contained in:
@@ -193,8 +193,8 @@ void OCommonEmbeddedObject::SwitchStateTo_Impl( sal_Int32 nNextState )
|
||||
else
|
||||
{
|
||||
// objects without persistence will be initialized internally
|
||||
uno::Sequence < uno::Any > aArgs(1);
|
||||
aArgs[0] <<= uno::Reference < embed::XEmbeddedObject >( this );
|
||||
uno::Sequence < uno::Any > aArgs{ uno::Any(
|
||||
uno::Reference < embed::XEmbeddedObject >( this )) };
|
||||
uno::Reference< util::XCloseable > xDocument(
|
||||
m_xContext->getServiceManager()->createInstanceWithArgumentsAndContext( GetDocumentServiceName(), aArgs, m_xContext),
|
||||
uno::UNO_QUERY );
|
||||
|
||||
@@ -42,6 +42,8 @@
|
||||
|
||||
#include "persistence.hxx"
|
||||
|
||||
#include <cassert>
|
||||
|
||||
using namespace ::com::sun::star;
|
||||
|
||||
|
||||
@@ -123,13 +125,12 @@ void OCommonEmbeddedObject::CommonInit_Impl( const uno::Sequence< beans::NamedVa
|
||||
throw uno::RuntimeException(); // something goes really wrong
|
||||
|
||||
// accepted states
|
||||
m_aAcceptedStates.realloc( NUM_SUPPORTED_STATES );
|
||||
|
||||
m_aAcceptedStates[0] = embed::EmbedStates::LOADED;
|
||||
m_aAcceptedStates[1] = embed::EmbedStates::RUNNING;
|
||||
m_aAcceptedStates[2] = embed::EmbedStates::INPLACE_ACTIVE;
|
||||
m_aAcceptedStates[3] = embed::EmbedStates::UI_ACTIVE;
|
||||
m_aAcceptedStates[4] = embed::EmbedStates::ACTIVE;
|
||||
m_aAcceptedStates = { /* [0] */ embed::EmbedStates::LOADED,
|
||||
/* [1] */ embed::EmbedStates::RUNNING,
|
||||
/* [2] */ embed::EmbedStates::INPLACE_ACTIVE,
|
||||
/* [3] */ embed::EmbedStates::UI_ACTIVE,
|
||||
/* [4] */ embed::EmbedStates::ACTIVE };
|
||||
assert(m_aAcceptedStates.getLength() == NUM_SUPPORTED_STATES);
|
||||
|
||||
|
||||
// intermediate states
|
||||
@@ -141,31 +142,23 @@ void OCommonEmbeddedObject::CommonInit_Impl( const uno::Sequence< beans::NamedVa
|
||||
// state to the target state is forbidden, only if direct switch is possible
|
||||
// the state can be reached.
|
||||
|
||||
m_pIntermediateStatesSeqs[0][2].realloc( 1 );
|
||||
m_pIntermediateStatesSeqs[0][2][0] = embed::EmbedStates::RUNNING;
|
||||
m_pIntermediateStatesSeqs[0][2] = { embed::EmbedStates::RUNNING };
|
||||
|
||||
m_pIntermediateStatesSeqs[0][3].realloc( 2 );
|
||||
m_pIntermediateStatesSeqs[0][3][0] = embed::EmbedStates::RUNNING;
|
||||
m_pIntermediateStatesSeqs[0][3][1] = embed::EmbedStates::INPLACE_ACTIVE;
|
||||
m_pIntermediateStatesSeqs[0][3] = { embed::EmbedStates::RUNNING,
|
||||
embed::EmbedStates::INPLACE_ACTIVE };
|
||||
|
||||
m_pIntermediateStatesSeqs[0][4].realloc( 1 );
|
||||
m_pIntermediateStatesSeqs[0][4][0] = embed::EmbedStates::RUNNING;
|
||||
m_pIntermediateStatesSeqs[0][4] = {embed::EmbedStates::RUNNING};
|
||||
|
||||
m_pIntermediateStatesSeqs[1][3].realloc( 1 );
|
||||
m_pIntermediateStatesSeqs[1][3][0] = embed::EmbedStates::INPLACE_ACTIVE;
|
||||
m_pIntermediateStatesSeqs[1][3] = { embed::EmbedStates::INPLACE_ACTIVE };
|
||||
|
||||
m_pIntermediateStatesSeqs[2][0].realloc( 1 );
|
||||
m_pIntermediateStatesSeqs[2][0][0] = embed::EmbedStates::RUNNING;
|
||||
m_pIntermediateStatesSeqs[2][0] = { embed::EmbedStates::RUNNING };
|
||||
|
||||
m_pIntermediateStatesSeqs[3][0].realloc( 2 );
|
||||
m_pIntermediateStatesSeqs[3][0][0] = embed::EmbedStates::INPLACE_ACTIVE;
|
||||
m_pIntermediateStatesSeqs[3][0][1] = embed::EmbedStates::RUNNING;
|
||||
m_pIntermediateStatesSeqs[3][0] = { embed::EmbedStates::INPLACE_ACTIVE,
|
||||
embed::EmbedStates::RUNNING };
|
||||
|
||||
m_pIntermediateStatesSeqs[3][1].realloc( 1 );
|
||||
m_pIntermediateStatesSeqs[3][1][0] = embed::EmbedStates::INPLACE_ACTIVE;
|
||||
m_pIntermediateStatesSeqs[3][1] = { embed::EmbedStates::INPLACE_ACTIVE };
|
||||
|
||||
m_pIntermediateStatesSeqs[4][0].realloc( 1 );
|
||||
m_pIntermediateStatesSeqs[4][0][0] = embed::EmbedStates::RUNNING;
|
||||
m_pIntermediateStatesSeqs[4][0] = { embed::EmbedStates::RUNNING };
|
||||
|
||||
// verbs table
|
||||
for ( auto const & verb : std::as_const(m_aObjectVerbs) )
|
||||
@@ -257,11 +250,12 @@ void OCommonEmbeddedObject::LinkInit_Impl(
|
||||
if(m_aLinkTempFile.is())
|
||||
{
|
||||
uno::Sequence< beans::PropertyValue > aAlternativeMediaDescr(aMediaDescr.getLength());
|
||||
auto aAlternativeMediaDescrRange = asNonConstRange(aAlternativeMediaDescr);
|
||||
|
||||
for ( sal_Int32 a(0); a < aMediaDescr.getLength(); a++ )
|
||||
{
|
||||
const beans::PropertyValue& rSource(aMediaDescr[a]);
|
||||
beans::PropertyValue& rDestination(aAlternativeMediaDescr[a]);
|
||||
beans::PropertyValue& rDestination(aAlternativeMediaDescrRange[a]);
|
||||
|
||||
rDestination.Name = rSource.Name;
|
||||
if(rSource.Name == "URL")
|
||||
|
||||
@@ -54,6 +54,7 @@
|
||||
#include <comphelper/storagehelper.hxx>
|
||||
#include <comphelper/mimeconfighelper.hxx>
|
||||
#include <comphelper/namedvaluecollection.hxx>
|
||||
#include <comphelper/propertyvalue.hxx>
|
||||
|
||||
#include <tools/diagnose_ex.h>
|
||||
#include <sal/log.hxx>
|
||||
@@ -82,7 +83,7 @@ uno::Sequence< beans::PropertyValue > GetValuableArgs_Impl( const uno::Sequence<
|
||||
|| (prop.Name == "DocumentBaseURL" && bCanUseDocumentBaseURL) )
|
||||
{
|
||||
aResult.realloc( ++nResLen );
|
||||
aResult[nResLen-1] = prop;
|
||||
aResult.getArray()[nResLen-1] = prop;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -94,25 +95,23 @@ static uno::Sequence< beans::PropertyValue > addAsTemplate( const uno::Sequence<
|
||||
{
|
||||
bool bAsTemplateSet = false;
|
||||
sal_Int32 nLength = aOrig.getLength();
|
||||
uno::Sequence< beans::PropertyValue > aResult( nLength );
|
||||
uno::Sequence< beans::PropertyValue > aResult( aOrig );
|
||||
|
||||
for ( sal_Int32 nInd = 0; nInd < nLength; nInd++ )
|
||||
{
|
||||
aResult[nInd].Name = aOrig[nInd].Name;
|
||||
if ( aResult[nInd].Name == "AsTemplate" )
|
||||
{
|
||||
aResult[nInd].Value <<= true;
|
||||
aResult.getArray()[nInd].Value <<= true;
|
||||
bAsTemplateSet = true;
|
||||
}
|
||||
else
|
||||
aResult[nInd].Value = aOrig[nInd].Value;
|
||||
}
|
||||
|
||||
if ( !bAsTemplateSet )
|
||||
{
|
||||
aResult.realloc( nLength + 1 );
|
||||
aResult[nLength].Name = "AsTemplate";
|
||||
aResult[nLength].Value <<= true;
|
||||
auto pResult = aResult.getArray();
|
||||
pResult[nLength].Name = "AsTemplate";
|
||||
pResult[nLength].Value <<= true;
|
||||
}
|
||||
|
||||
return aResult;
|
||||
@@ -131,9 +130,8 @@ static uno::Reference< io::XInputStream > createTempInpStreamFromStor(
|
||||
|
||||
uno::Reference < lang::XSingleServiceFactory > xStorageFactory( embed::StorageFactory::create(xContext) );
|
||||
|
||||
uno::Sequence< uno::Any > aArgs( 2 );
|
||||
aArgs[0] <<= xTempStream;
|
||||
aArgs[1] <<= embed::ElementModes::READWRITE;
|
||||
uno::Sequence< uno::Any > aArgs{ uno::Any(xTempStream),
|
||||
uno::Any(embed::ElementModes::READWRITE) };
|
||||
uno::Reference< embed::XStorage > xTempStorage( xStorageFactory->createInstanceWithArguments( aArgs ),
|
||||
uno::UNO_QUERY_THROW );
|
||||
|
||||
@@ -223,9 +221,7 @@ static void SetDocToEmbedded( const uno::Reference< frame::XModel >& rDocument,
|
||||
if (!rDocument.is())
|
||||
return;
|
||||
|
||||
uno::Sequence< beans::PropertyValue > aSeq( 1 );
|
||||
aSeq[0].Name = "SetEmbedded";
|
||||
aSeq[0].Value <<= true;
|
||||
uno::Sequence< beans::PropertyValue > aSeq{ comphelper::makePropertyValue("SetEmbedded", true) };
|
||||
rDocument->attachResource( OUString(), aSeq );
|
||||
|
||||
if ( !aModuleName.isEmpty() )
|
||||
@@ -370,30 +366,29 @@ uno::Reference< util::XCloseable > OCommonEmbeddedObject::LoadLink_Impl()
|
||||
|
||||
uno::Reference< frame::XLoadable > xLoadable( xDocument, uno::UNO_QUERY_THROW );
|
||||
|
||||
sal_Int32 nLen = 2;
|
||||
uno::Sequence< beans::PropertyValue > aArgs( nLen );
|
||||
sal_Int32 nLen = m_bLinkHasPassword ? 3 : 2;
|
||||
uno::Sequence< beans::PropertyValue > aArgs( m_aDocMediaDescriptor.getLength() + nLen );
|
||||
auto pArgs = aArgs.getArray();
|
||||
|
||||
aArgs[0].Name = "URL";
|
||||
pArgs[0].Name = "URL";
|
||||
if(m_aLinkTempFile.is())
|
||||
aArgs[0].Value <<= m_aLinkTempFile->getUri();
|
||||
pArgs[0].Value <<= m_aLinkTempFile->getUri();
|
||||
else
|
||||
aArgs[0].Value <<= m_aLinkURL;
|
||||
pArgs[0].Value <<= m_aLinkURL;
|
||||
|
||||
aArgs[1].Name = "FilterName";
|
||||
aArgs[1].Value <<= m_aLinkFilterName;
|
||||
pArgs[1].Name = "FilterName";
|
||||
pArgs[1].Value <<= m_aLinkFilterName;
|
||||
|
||||
if ( m_bLinkHasPassword )
|
||||
{
|
||||
aArgs.realloc( ++nLen );
|
||||
aArgs[nLen-1].Name = "Password";
|
||||
aArgs[nLen-1].Value <<= m_aLinkPassword;
|
||||
pArgs[2].Name = "Password";
|
||||
pArgs[2].Value <<= m_aLinkPassword;
|
||||
}
|
||||
|
||||
aArgs.realloc( m_aDocMediaDescriptor.getLength() + nLen );
|
||||
for ( sal_Int32 nInd = 0; nInd < m_aDocMediaDescriptor.getLength(); nInd++ )
|
||||
{
|
||||
aArgs[nInd+nLen].Name = m_aDocMediaDescriptor[nInd].Name;
|
||||
aArgs[nInd+nLen].Value = m_aDocMediaDescriptor[nInd].Value;
|
||||
pArgs[nInd+nLen].Name = m_aDocMediaDescriptor[nInd].Name;
|
||||
pArgs[nInd+nLen].Value = m_aDocMediaDescriptor[nInd].Value;
|
||||
}
|
||||
|
||||
try
|
||||
@@ -595,15 +590,12 @@ uno::Reference< io::XInputStream > OCommonEmbeddedObject::StoreDocumentToTempStr
|
||||
if ( aFilterName.isEmpty() )
|
||||
throw io::IOException("No filter name provided / Wrong document service name"); // TODO:
|
||||
|
||||
uno::Sequence< beans::PropertyValue > aArgs( 4 );
|
||||
aArgs[0].Name = "FilterName";
|
||||
aArgs[0].Value <<= aFilterName;
|
||||
aArgs[1].Name = "OutputStream";
|
||||
aArgs[1].Value <<= xTempOut;
|
||||
aArgs[2].Name = "DocumentBaseURL";
|
||||
aArgs[2].Value <<= aBaseURL;
|
||||
aArgs[3].Name = "HierarchicalDocumentName";
|
||||
aArgs[3].Value <<= aHierarchName;
|
||||
uno::Sequence< beans::PropertyValue > aArgs{
|
||||
comphelper::makePropertyValue("FilterName", aFilterName),
|
||||
comphelper::makePropertyValue("OutputStream", xTempOut),
|
||||
comphelper::makePropertyValue("DocumentBaseURL", aBaseURL),
|
||||
comphelper::makePropertyValue("HierarchicalDocumentName", aHierarchName)
|
||||
};
|
||||
|
||||
xStorable->storeToURL( "private:stream", aArgs );
|
||||
try
|
||||
@@ -776,17 +768,15 @@ void OCommonEmbeddedObject::StoreDocToStorage_Impl(
|
||||
if ( aFilterName.isEmpty() )
|
||||
throw io::IOException(); // TODO:
|
||||
|
||||
uno::Sequence<beans::PropertyValue> aArgs(5);
|
||||
aArgs[0].Name = "FilterName";
|
||||
aArgs[0].Value <<= aFilterName;
|
||||
aArgs[1].Name = "HierarchicalDocumentName";
|
||||
aArgs[1].Value <<= aHierarchName;
|
||||
aArgs[2].Name = "DocumentBaseURL";
|
||||
aArgs[2].Value <<= aBaseURL;
|
||||
aArgs[3].Name = "SourceShellID";
|
||||
aArgs[3].Value <<= getStringPropertyValue(rObjArgs, u"SourceShellID");
|
||||
aArgs[4].Name = "DestinationShellID";
|
||||
aArgs[4].Value <<= getStringPropertyValue(rObjArgs, u"DestinationShellID");
|
||||
uno::Sequence<beans::PropertyValue> aArgs{
|
||||
comphelper::makePropertyValue("FilterName", aFilterName),
|
||||
comphelper::makePropertyValue("HierarchicalDocumentName", aHierarchName),
|
||||
comphelper::makePropertyValue("DocumentBaseURL", aBaseURL),
|
||||
comphelper::makePropertyValue("SourceShellID",
|
||||
getStringPropertyValue(rObjArgs, u"SourceShellID")),
|
||||
comphelper::makePropertyValue(
|
||||
"DestinationShellID", getStringPropertyValue(rObjArgs, u"DestinationShellID"))
|
||||
};
|
||||
|
||||
xDoc->storeToStorage( xStorage, aArgs );
|
||||
if ( bAttachToTheStorage )
|
||||
@@ -802,8 +792,7 @@ void OCommonEmbeddedObject::StoreDocToStorage_Impl(
|
||||
// open storage based on document temporary file for reading
|
||||
uno::Reference < lang::XSingleServiceFactory > xStorageFactory = embed::StorageFactory::create(m_xContext);
|
||||
|
||||
uno::Sequence< uno::Any > aArgs(1);
|
||||
aArgs[0] <<= xTempIn;
|
||||
uno::Sequence< uno::Any > aArgs{ uno::Any(xTempIn) };
|
||||
uno::Reference< embed::XStorage > xTempStorage( xStorageFactory->createInstanceWithArguments( aArgs ),
|
||||
uno::UNO_QUERY_THROW );
|
||||
|
||||
@@ -891,27 +880,19 @@ uno::Reference< util::XCloseable > OCommonEmbeddedObject::CreateTempDocFromLink_
|
||||
|
||||
SAL_WARN_IF( aTempFileURL.isEmpty(), "embeddedobj.common", "Couldn't retrieve temporary file URL!" );
|
||||
|
||||
aTempMediaDescr[0].Name = "URL";
|
||||
aTempMediaDescr[0].Value <<= aTempFileURL;
|
||||
aTempMediaDescr[1].Name = "InputStream";
|
||||
aTempMediaDescr[1].Value <<= xTempStream;
|
||||
aTempMediaDescr[2].Name = "FilterName";
|
||||
aTempMediaDescr[2].Value <<= GetFilterName( nStorageFormat );
|
||||
aTempMediaDescr[3].Name = "AsTemplate";
|
||||
aTempMediaDescr[3].Value <<= true;
|
||||
aTempMediaDescr
|
||||
= { comphelper::makePropertyValue("URL", aTempFileURL),
|
||||
comphelper::makePropertyValue("InputStream", xTempStream),
|
||||
comphelper::makePropertyValue("FilterName", GetFilterName( nStorageFormat )),
|
||||
comphelper::makePropertyValue("AsTemplate", true) };
|
||||
}
|
||||
else
|
||||
{
|
||||
aTempMediaDescr.realloc( 2 );
|
||||
aTempMediaDescr[0].Name = "URL";
|
||||
|
||||
// tdf#141529 use URL of the linked TempFile if it exists
|
||||
aTempMediaDescr[0].Value <<= m_aLinkTempFile.is()
|
||||
? m_aLinkTempFile->getUri()
|
||||
: m_aLinkURL;
|
||||
|
||||
aTempMediaDescr[1].Name = "FilterName";
|
||||
aTempMediaDescr[1].Value <<= m_aLinkFilterName;
|
||||
aTempMediaDescr = { comphelper::makePropertyValue(
|
||||
"URL",
|
||||
// tdf#141529 use URL of the linked TempFile if it exists
|
||||
m_aLinkTempFile.is() ? m_aLinkTempFile->getUri() : m_aLinkURL),
|
||||
comphelper::makePropertyValue("FilterName", m_aLinkFilterName) };
|
||||
}
|
||||
|
||||
xResult = CreateDocFromMediaDescr_Impl( aTempMediaDescr );
|
||||
@@ -1619,9 +1600,8 @@ void SAL_CALL OCommonEmbeddedObject::storeOwn()
|
||||
|
||||
aGuard.clear();
|
||||
uno::Sequence<beans::PropertyValue> aEmpty;
|
||||
uno::Sequence<beans::PropertyValue> aMediaArgs(1);
|
||||
aMediaArgs[0].Name = "DocumentBaseURL";
|
||||
aMediaArgs[0].Value <<= GetBaseURL_Impl();
|
||||
uno::Sequence<beans::PropertyValue> aMediaArgs{ comphelper::makePropertyValue(
|
||||
"DocumentBaseURL", GetBaseURL_Impl()) };
|
||||
StoreDocToStorage_Impl( m_xObjectStorage, aMediaArgs, aEmpty, nStorageFormat, m_aEntryName, true );
|
||||
aGuard.reset();
|
||||
}
|
||||
@@ -1715,9 +1695,8 @@ void SAL_CALL OCommonEmbeddedObject::reload(
|
||||
m_aLinkFilterName = aNewLinkFilter;
|
||||
else
|
||||
{
|
||||
uno::Sequence< beans::PropertyValue > aArgs( 1 );
|
||||
aArgs[0].Name = "URL";
|
||||
aArgs[0].Value <<= m_aLinkURL;
|
||||
uno::Sequence< beans::PropertyValue > aArgs{ comphelper::makePropertyValue(
|
||||
"URL", m_aLinkURL) };
|
||||
m_aLinkFilterName = aHelper.UpdateMediaDescriptorWithFilterName( aArgs, false );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -110,35 +110,38 @@ static void InsertMenu_Impl( const uno::Reference< container::XIndexContainer >&
|
||||
uno::Sequence< beans::PropertyValue > aSourceProps;
|
||||
xSourceMenu->getByIndex( nSourceIndex ) >>= aSourceProps;
|
||||
uno::Sequence< beans::PropertyValue > aTargetProps( aSourceProps.getLength() );
|
||||
auto aTargetPropsRange = asNonConstRange(aTargetProps);
|
||||
for ( nInd = 0; nInd < aSourceProps.getLength(); nInd++ )
|
||||
{
|
||||
aTargetProps[nInd].Name = aSourceProps[nInd].Name;
|
||||
aTargetPropsRange[nInd].Name = aSourceProps[nInd].Name;
|
||||
if ( !aContModuleName.isEmpty() && aTargetProps[nInd].Name == aModuleIdentPropName )
|
||||
{
|
||||
aTargetProps[nInd].Value <<= aContModuleName;
|
||||
aTargetPropsRange[nInd].Value <<= aContModuleName;
|
||||
bModuleNameSet = true;
|
||||
}
|
||||
else if ( aTargetProps[nInd].Name == aDispProvPropName )
|
||||
{
|
||||
aTargetProps[nInd].Value <<= xSourceDisp;
|
||||
aTargetPropsRange[nInd].Value <<= xSourceDisp;
|
||||
bDispProvSet = true;
|
||||
}
|
||||
else
|
||||
aTargetProps[nInd].Value = aSourceProps[nInd].Value;
|
||||
aTargetPropsRange[nInd].Value = aSourceProps[nInd].Value;
|
||||
}
|
||||
|
||||
if ( !bModuleNameSet && !aContModuleName.isEmpty() )
|
||||
{
|
||||
aTargetProps.realloc( ++nInd );
|
||||
aTargetProps[nInd-1].Name = aModuleIdentPropName;
|
||||
aTargetProps[nInd-1].Value <<= aContModuleName;
|
||||
auto pTargetProps = aTargetProps.getArray();
|
||||
pTargetProps[nInd-1].Name = aModuleIdentPropName;
|
||||
pTargetProps[nInd-1].Value <<= aContModuleName;
|
||||
}
|
||||
|
||||
if ( !bDispProvSet && xSourceDisp.is() )
|
||||
{
|
||||
aTargetProps.realloc( ++nInd );
|
||||
aTargetProps[nInd-1].Name = aDispProvPropName;
|
||||
aTargetProps[nInd-1].Value <<= xSourceDisp;
|
||||
auto pTargetProps = aTargetProps.getArray();
|
||||
pTargetProps[nInd-1].Name = aDispProvPropName;
|
||||
pTargetProps[nInd-1].Value <<= xSourceDisp;
|
||||
}
|
||||
|
||||
xTargetMenu->insertByIndex( nTargetIndex, uno::makeAny( aTargetProps ) );
|
||||
@@ -156,17 +159,6 @@ DocumentHolder::DocumentHolder( const uno::Reference< uno::XComponentContext >&
|
||||
m_nNoBorderResizeReact( 0 ),
|
||||
m_nNoResizeReact( 0 )
|
||||
{
|
||||
m_aOutplaceFrameProps.realloc( 3 );
|
||||
beans::NamedValue aArg;
|
||||
|
||||
aArg.Name = "TopWindow";
|
||||
aArg.Value <<= true;
|
||||
m_aOutplaceFrameProps[0] <<= aArg;
|
||||
|
||||
aArg.Name = "MakeVisible";
|
||||
aArg.Value <<= false;
|
||||
m_aOutplaceFrameProps[1] <<= aArg;
|
||||
|
||||
uno::Reference< frame::XDesktop2 > xDesktop = frame::Desktop::create( m_xContext );
|
||||
osl_atomic_increment(&m_refCount);
|
||||
try
|
||||
@@ -178,9 +170,10 @@ DocumentHolder::DocumentHolder( const uno::Reference< uno::XComponentContext >&
|
||||
}
|
||||
osl_atomic_decrement(&m_refCount);
|
||||
|
||||
aArg.Name = "ParentFrame";
|
||||
aArg.Value <<= xDesktop; //TODO/LATER: should use parent document frame
|
||||
m_aOutplaceFrameProps[2] <<= aArg;
|
||||
m_aOutplaceFrameProps = { uno::Any(beans::NamedValue{ "TopWindow", uno::Any(true) }),
|
||||
uno::Any(beans::NamedValue{ "MakeVisible", uno::Any(false) }),
|
||||
//TODO/LATER: should use parent document frame
|
||||
uno::Any(beans::NamedValue{ "ParentFrame", uno::Any(xDesktop) }) };
|
||||
}
|
||||
|
||||
|
||||
@@ -430,26 +423,25 @@ bool DocumentHolder::ShowInplace( const uno::Reference< awt::XWindowPeer >& xPar
|
||||
|
||||
uno::Reference< awt::XWindowPeer > xNewWinPeer = xToolkit->createWindow( aOwnWinDescriptor );
|
||||
uno::Reference< awt::XWindow > xOwnWindow( xNewWinPeer, uno::UNO_QUERY_THROW );
|
||||
uno::Reference< frame::XFrame > xContFrame( xContDisp, uno::UNO_QUERY );
|
||||
|
||||
// create a frame based on the specified window
|
||||
uno::Reference< lang::XSingleServiceFactory > xFrameFact = frame::TaskCreator::create(m_xContext);
|
||||
|
||||
uno::Sequence< uno::Any > aArgs( 2 );
|
||||
uno::Sequence< uno::Any > aArgs( xContFrame.is() ? 2 : 1 );
|
||||
auto pArgs = aArgs.getArray();
|
||||
beans::NamedValue aArg;
|
||||
|
||||
aArg.Name = "ContainerWindow";
|
||||
aArg.Value <<= xOwnWindow;
|
||||
aArgs[0] <<= aArg;
|
||||
pArgs[0] <<= aArg;
|
||||
|
||||
uno::Reference< frame::XFrame > xContFrame( xContDisp, uno::UNO_QUERY );
|
||||
if ( xContFrame.is() )
|
||||
{
|
||||
aArg.Name = "ParentFrame";
|
||||
aArg.Value <<= xContFrame;
|
||||
aArgs[1] <<= aArg;
|
||||
pArgs[1] <<= aArg;
|
||||
}
|
||||
else
|
||||
aArgs.realloc( 1 );
|
||||
|
||||
// the call will create, initialize the frame, and register it in the parent
|
||||
m_xFrame.set( xFrameFact->createInstanceWithArguments( aArgs ), uno::UNO_QUERY_THROW );
|
||||
|
||||
@@ -114,10 +114,7 @@ uno::Sequence< sal_Int32 > SAL_CALL ODummyEmbeddedObject::getReachableStates()
|
||||
::osl::MutexGuard aGuard( m_aMutex );
|
||||
CheckInit_WrongState();
|
||||
|
||||
uno::Sequence< sal_Int32 > aResult( 1 );
|
||||
aResult[0] = embed::EmbedStates::LOADED;
|
||||
|
||||
return aResult;
|
||||
return { embed::EmbedStates::LOADED };
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -26,9 +26,13 @@
|
||||
|
||||
using namespace ::com::sun::star;
|
||||
|
||||
#define IUL 6
|
||||
|
||||
uno::Sequence< OUString > Interceptor::m_aInterceptedURL(IUL);
|
||||
constexpr OUStringLiteral IU0 = u".uno:Save";
|
||||
constexpr OUStringLiteral IU1 = u".uno:SaveAll";
|
||||
constexpr OUStringLiteral IU2 = u".uno:CloseDoc";
|
||||
constexpr OUStringLiteral IU3 = u".uno:CloseWin";
|
||||
constexpr OUStringLiteral IU4 = u".uno:CloseFrame";
|
||||
constexpr OUStringLiteral IU5 = u".uno:SaveAs";
|
||||
const uno::Sequence< OUString > Interceptor::m_aInterceptedURL{ IU0, IU1, IU2, IU3, IU4, IU5 };
|
||||
|
||||
class StatusChangeListenerContainer
|
||||
: public comphelper::OMultiTypeInterfaceContainerHelperVar2<OUString>
|
||||
@@ -49,12 +53,6 @@ void Interceptor::DisconnectDocHolder()
|
||||
Interceptor::Interceptor( DocumentHolder* pDocHolder )
|
||||
: m_pDocHolder( pDocHolder )
|
||||
{
|
||||
m_aInterceptedURL[0] = ".uno:Save";
|
||||
m_aInterceptedURL[1] = ".uno:SaveAll";
|
||||
m_aInterceptedURL[2] = ".uno:CloseDoc";
|
||||
m_aInterceptedURL[3] = ".uno:CloseWin";
|
||||
m_aInterceptedURL[4] = ".uno:CloseFrame";
|
||||
m_aInterceptedURL[5] = ".uno:SaveAs";
|
||||
}
|
||||
|
||||
Interceptor::~Interceptor()
|
||||
@@ -94,7 +92,7 @@ Interceptor::dispatch(
|
||||
{
|
||||
if ( aNewArgs[nInd].Name == "SaveTo" )
|
||||
{
|
||||
aNewArgs[nInd].Value <<= true;
|
||||
aNewArgs.getArray()[nInd].Value <<= true;
|
||||
break;
|
||||
}
|
||||
nInd++;
|
||||
@@ -103,8 +101,9 @@ Interceptor::dispatch(
|
||||
if ( nInd == aNewArgs.getLength() )
|
||||
{
|
||||
aNewArgs.realloc( nInd + 1 );
|
||||
aNewArgs[nInd].Name = "SaveTo";
|
||||
aNewArgs[nInd].Value <<= true;
|
||||
auto pNewArgs = aNewArgs.getArray();
|
||||
pNewArgs[nInd].Name = "SaveTo";
|
||||
pNewArgs[nInd].Value <<= true;
|
||||
}
|
||||
|
||||
uno::Reference< frame::XDispatch > xDispatch = m_xSlaveDispatchProvider->queryDispatch(
|
||||
@@ -257,20 +256,20 @@ Interceptor::queryDispatches(
|
||||
aRet = m_xSlaveDispatchProvider->queryDispatches(Requests);
|
||||
else
|
||||
aRet.realloc(Requests.getLength());
|
||||
|
||||
auto aRetRange = asNonConstRange(aRet);
|
||||
for(sal_Int32 i = 0; i < Requests.getLength(); ++i)
|
||||
if(m_aInterceptedURL[0] == Requests[i].FeatureURL.Complete)
|
||||
aRet[i] = static_cast<frame::XDispatch*>(this);
|
||||
aRetRange[i] = static_cast<frame::XDispatch*>(this);
|
||||
else if(m_aInterceptedURL[1] == Requests[i].FeatureURL.Complete)
|
||||
aRet[i] = nullptr;
|
||||
aRetRange[i] = nullptr;
|
||||
else if(m_aInterceptedURL[2] == Requests[i].FeatureURL.Complete)
|
||||
aRet[i] = static_cast<frame::XDispatch*>(this);
|
||||
aRetRange[i] = static_cast<frame::XDispatch*>(this);
|
||||
else if(m_aInterceptedURL[3] == Requests[i].FeatureURL.Complete)
|
||||
aRet[i] = static_cast<frame::XDispatch*>(this);
|
||||
aRetRange[i] = static_cast<frame::XDispatch*>(this);
|
||||
else if(m_aInterceptedURL[4] == Requests[i].FeatureURL.Complete)
|
||||
aRet[i] = static_cast<frame::XDispatch*>(this);
|
||||
aRetRange[i] = static_cast<frame::XDispatch*>(this);
|
||||
else if(m_aInterceptedURL[5] == Requests[i].FeatureURL.Complete)
|
||||
aRet[i] = static_cast<frame::XDispatch*>(this);
|
||||
aRetRange[i] = static_cast<frame::XDispatch*>(this);
|
||||
|
||||
return aRet;
|
||||
}
|
||||
|
||||
@@ -109,7 +109,7 @@ private:
|
||||
css::uno::Reference< css::frame::XDispatchProvider > m_xSlaveDispatchProvider;
|
||||
css::uno::Reference< css::frame::XDispatchProvider > m_xMasterDispatchProvider;
|
||||
|
||||
static css::uno::Sequence< OUString > m_aInterceptedURL;
|
||||
static const css::uno::Sequence< OUString > m_aInterceptedURL;
|
||||
|
||||
std::unique_ptr<StatusChangeListenerContainer> m_pStatCL;
|
||||
};
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
#include <com/sun/star/beans/PropertyValue.hpp>
|
||||
#include <unotools/streamwrap.hxx>
|
||||
#include <comphelper/processfactory.hxx>
|
||||
#include <comphelper/propertyvalue.hxx>
|
||||
#include <comphelper/seqstream.hxx>
|
||||
#include <tools/stream.hxx>
|
||||
#include <vcl/graphicfilter.hxx>
|
||||
@@ -65,19 +66,17 @@ bool ConvertBufferToFormat( void* pBuf,
|
||||
try
|
||||
{
|
||||
uno::Reference < graphic::XGraphicProvider > xGraphicProvider( graphic::GraphicProvider::create(comphelper::getProcessComponentContext()));
|
||||
uno::Sequence< beans::PropertyValue > aMediaProperties( 1 );
|
||||
aMediaProperties[0].Name = "InputStream";
|
||||
aMediaProperties[0].Value <<= xIn;
|
||||
uno::Sequence< beans::PropertyValue > aMediaProperties{ comphelper::makePropertyValue(
|
||||
"InputStream", xIn) };
|
||||
uno::Reference< graphic::XGraphic > xGraphic( xGraphicProvider->queryGraphic( aMediaProperties ) );
|
||||
if( xGraphic.is() )
|
||||
{
|
||||
SvMemoryStream aNewStream( 65535, 65535 );
|
||||
uno::Reference < io::XStream > xOut = new utl::OStreamWrapper( aNewStream );
|
||||
uno::Sequence< beans::PropertyValue > aOutMediaProperties( 2 );
|
||||
aOutMediaProperties[0].Name = "OutputStream";
|
||||
aOutMediaProperties[0].Value <<= xOut;
|
||||
aOutMediaProperties[1].Name = "MimeType";
|
||||
aOutMediaProperties[1].Value <<= aMimeType;
|
||||
uno::Sequence< beans::PropertyValue > aOutMediaProperties{
|
||||
comphelper::makePropertyValue("OutputStream", xOut),
|
||||
comphelper::makePropertyValue("MimeType", aMimeType)
|
||||
};
|
||||
|
||||
xGraphicProvider->storeGraphic( xGraphic, aOutMediaProperties );
|
||||
aResult <<= uno::Sequence< sal_Int8 >( static_cast< const sal_Int8* >( aNewStream.GetData() ), aNewStream.TellEnd() );
|
||||
|
||||
@@ -77,32 +77,33 @@ struct OleComponentNative_Impl {
|
||||
OleComponentNative_Impl()
|
||||
{
|
||||
// TODO: Extend format list
|
||||
m_aSupportedGraphFormats.realloc( 5 );
|
||||
m_aSupportedGraphFormats = {
|
||||
|
||||
m_aSupportedGraphFormats[0] = datatransfer::DataFlavor(
|
||||
datatransfer::DataFlavor(
|
||||
"application/x-openoffice-emf;windows_formatname=\"Image EMF\"",
|
||||
"Windows Enhanced Metafile",
|
||||
cppu::UnoType<uno::Sequence< sal_Int8 >>::get() );
|
||||
cppu::UnoType<uno::Sequence< sal_Int8 >>::get() ),
|
||||
|
||||
m_aSupportedGraphFormats[1] = datatransfer::DataFlavor(
|
||||
datatransfer::DataFlavor(
|
||||
"application/x-openoffice-wmf;windows_formatname=\"Image WMF\"",
|
||||
"Windows Metafile",
|
||||
cppu::UnoType<uno::Sequence< sal_Int8 >>::get() );
|
||||
cppu::UnoType<uno::Sequence< sal_Int8 >>::get() ),
|
||||
|
||||
m_aSupportedGraphFormats[2] = datatransfer::DataFlavor(
|
||||
datatransfer::DataFlavor(
|
||||
"application/x-openoffice-bitmap;windows_formatname=\"Bitmap\"",
|
||||
"Bitmap",
|
||||
cppu::UnoType<uno::Sequence< sal_Int8 >>::get() );
|
||||
cppu::UnoType<uno::Sequence< sal_Int8 >>::get() ),
|
||||
|
||||
m_aSupportedGraphFormats[3] = datatransfer::DataFlavor(
|
||||
datatransfer::DataFlavor(
|
||||
"image/png",
|
||||
"PNG",
|
||||
cppu::UnoType<uno::Sequence< sal_Int8 >>::get() );
|
||||
cppu::UnoType<uno::Sequence< sal_Int8 >>::get() ),
|
||||
|
||||
m_aSupportedGraphFormats[4] = datatransfer::DataFlavor(
|
||||
datatransfer::DataFlavor(
|
||||
"application/x-openoffice-gdimetafile;windows_formatname=\"GDIMetaFile\"",
|
||||
"GDIMetafile",
|
||||
cppu::UnoType<uno::Sequence< sal_Int8 >>::get() );
|
||||
cppu::UnoType<uno::Sequence< sal_Int8 >>::get() )
|
||||
};
|
||||
}
|
||||
|
||||
bool ConvertDataForFlavor( const STGMEDIUM& aMedium,
|
||||
@@ -463,12 +464,13 @@ uno::Sequence< datatransfer::DataFlavor > OleComponentNative_Impl::GetFlavorsFor
|
||||
|
||||
sal_Int32 nLength = aResult.getLength();
|
||||
aResult.realloc( nLength + m_aSupportedGraphFormats.getLength() );
|
||||
auto pResult = aResult.getArray();
|
||||
|
||||
for ( sal_Int32 nInd = 0; nInd < m_aSupportedGraphFormats.getLength(); nInd++ )
|
||||
{
|
||||
aResult[nLength + nInd].MimeType = m_aSupportedGraphFormats[nInd].MimeType + aAspectSuffix;
|
||||
aResult[nLength + nInd].HumanPresentableName = m_aSupportedGraphFormats[nInd].HumanPresentableName;
|
||||
aResult[nLength + nInd].DataType = m_aSupportedGraphFormats[nInd].DataType;
|
||||
pResult[nLength + nInd].MimeType = m_aSupportedGraphFormats[nInd].MimeType + aAspectSuffix;
|
||||
pResult[nLength + nInd].HumanPresentableName = m_aSupportedGraphFormats[nInd].HumanPresentableName;
|
||||
pResult[nLength + nInd].DataType = m_aSupportedGraphFormats[nInd].DataType;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -922,12 +924,13 @@ uno::Sequence< embed::VerbDescriptor > OleComponent::GetVerbList()
|
||||
if( hr == S_OK || hr == S_FALSE )
|
||||
{
|
||||
m_aVerbList.realloc( nSeqSize += nNum );
|
||||
auto pVerbList = m_aVerbList.getArray();
|
||||
for( sal_uInt32 nInd = 0; nInd < nNum; nInd++ )
|
||||
{
|
||||
m_aVerbList[nSeqSize-nNum+nInd].VerbID = szEle[ nInd ].lVerb;
|
||||
m_aVerbList[nSeqSize-nNum+nInd].VerbName = WinAccToVcl_Impl( o3tl::toU(szEle[ nInd ].lpszVerbName) );
|
||||
m_aVerbList[nSeqSize-nNum+nInd].VerbFlags = szEle[ nInd ].fuFlags;
|
||||
m_aVerbList[nSeqSize-nNum+nInd].VerbAttributes = szEle[ nInd ].grfAttribs;
|
||||
pVerbList[nSeqSize-nNum+nInd].VerbID = szEle[ nInd ].lVerb;
|
||||
pVerbList[nSeqSize-nNum+nInd].VerbName = WinAccToVcl_Impl( o3tl::toU(szEle[ nInd ].lpszVerbName) );
|
||||
pVerbList[nSeqSize-nNum+nInd].VerbFlags = szEle[ nInd ].fuFlags;
|
||||
pVerbList[nSeqSize-nNum+nInd].VerbAttributes = szEle[ nInd ].grfAttribs;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@@ -49,6 +49,7 @@
|
||||
#include <cppuhelper/exc_hlp.hxx>
|
||||
#include <comphelper/multicontainer2.hxx>
|
||||
#include <comphelper/mimeconfighelper.hxx>
|
||||
#include <comphelper/propertyvalue.hxx>
|
||||
#include <sal/log.hxx>
|
||||
#include <tools/diagnose_ex.h>
|
||||
|
||||
@@ -96,7 +97,8 @@ uno::Sequence< sal_Int32 > OleEmbeddedObject::GetReachableStatesList_Impl(
|
||||
if ( vd.VerbID == embed::EmbedVerbs::MS_OLEVERB_OPEN )
|
||||
{
|
||||
aStates.realloc(3);
|
||||
aStates[2] = embed::EmbedStates::ACTIVE;
|
||||
aStates.getArray()[2] = embed::EmbedStates::ACTIVE;
|
||||
break;
|
||||
}
|
||||
|
||||
return aStates;
|
||||
@@ -283,8 +285,8 @@ bool OleEmbeddedObject::TryToConvertToOOo( const uno::Reference< io::XStream >&
|
||||
if ( !aDocServiceName.isEmpty() )
|
||||
{
|
||||
// create the model
|
||||
uno::Sequence< uno::Any > aArguments(1);
|
||||
aArguments[0] <<= beans::NamedValue( "EmbeddedObject", uno::makeAny( true ));
|
||||
uno::Sequence< uno::Any > aArguments{ uno::Any(
|
||||
beans::NamedValue( "EmbeddedObject", uno::makeAny( true ))) };
|
||||
|
||||
uno::Reference< util::XCloseable > xDocument( m_xContext->getServiceManager()->createInstanceWithArgumentsAndContext( aDocServiceName, aArguments, m_xContext ), uno::UNO_QUERY_THROW );
|
||||
uno::Reference< frame::XLoadable > xLoadable( xDocument, uno::UNO_QUERY_THROW );
|
||||
@@ -292,23 +294,18 @@ bool OleEmbeddedObject::TryToConvertToOOo( const uno::Reference< io::XStream >&
|
||||
|
||||
// let the model behave as embedded one
|
||||
uno::Reference< frame::XModel > xModel( xDocument, uno::UNO_QUERY_THROW );
|
||||
uno::Sequence< beans::PropertyValue > aSeq( 1 );
|
||||
aSeq[0].Name = "SetEmbedded";
|
||||
aSeq[0].Value <<= true;
|
||||
uno::Sequence< beans::PropertyValue > aSeq{ comphelper::makePropertyValue(
|
||||
"SetEmbedded", true) };
|
||||
xModel->attachResource( OUString(), aSeq );
|
||||
|
||||
// load the model from the stream
|
||||
uno::Sequence< beans::PropertyValue > aArgs( 5 );
|
||||
aArgs[0].Name = "HierarchicalDocumentName";
|
||||
aArgs[0].Value <<= m_aEntryName;
|
||||
aArgs[1].Name = "ReadOnly";
|
||||
aArgs[1].Value <<= true;
|
||||
aArgs[2].Name = "FilterName";
|
||||
aArgs[2].Value <<= m_aFilterName;
|
||||
aArgs[3].Name = "URL";
|
||||
aArgs[3].Value <<= OUString( "private:stream" );
|
||||
aArgs[4].Name = "InputStream";
|
||||
aArgs[4].Value <<= xStream->getInputStream();
|
||||
uno::Sequence< beans::PropertyValue > aArgs{
|
||||
comphelper::makePropertyValue("HierarchicalDocumentName", m_aEntryName),
|
||||
comphelper::makePropertyValue("ReadOnly", true),
|
||||
comphelper::makePropertyValue("FilterName", m_aFilterName),
|
||||
comphelper::makePropertyValue("URL", OUString( "private:stream" )),
|
||||
comphelper::makePropertyValue("InputStream", xStream->getInputStream())
|
||||
};
|
||||
|
||||
xSeekable->seek( 0 );
|
||||
xLoadable->load( aArgs );
|
||||
@@ -689,9 +686,8 @@ namespace
|
||||
uno::UNO_QUERY_THROW);
|
||||
uno::Reference < io::XStream > xStream(xNativeTempFile, uno::UNO_QUERY_THROW);
|
||||
|
||||
uno::Sequence< uno::Any > aArgs( 2 );
|
||||
aArgs[0] <<= xObjectStream;
|
||||
aArgs[1] <<= true; // do not create copy
|
||||
uno::Sequence< uno::Any > aArgs{ uno::Any(xObjectStream),
|
||||
uno::Any(true) }; // do not create copy
|
||||
uno::Reference< container::XNameContainer > xNameContainer(
|
||||
xContext->getServiceManager()->createInstanceWithArgumentsAndContext(
|
||||
"com.sun.star.embed.OLESimpleStorage",
|
||||
@@ -1005,7 +1001,7 @@ uno::Sequence< embed::VerbDescriptor > SAL_CALL OleEmbeddedObject::getSupportedV
|
||||
// So in SfxViewFrame::GetState_Impl in case SID_OBJECT hasVerbs is not
|
||||
// empty, so that the doVerb attempt with -9 fallback is attempted
|
||||
uno::Sequence<embed::VerbDescriptor> aRet(1);
|
||||
aRet[0].VerbID = -9;
|
||||
aRet.getArray()[0].VerbID = -9;
|
||||
return aRet;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -364,9 +364,8 @@ void OleEmbeddedObject::InsertVisualCache_Impl( const uno::Reference< io::XStrea
|
||||
if ( !xTargetStream.is() || !xCachedVisualRepresentation.is() )
|
||||
throw uno::RuntimeException();
|
||||
|
||||
uno::Sequence< uno::Any > aArgs( 2 );
|
||||
aArgs[0] <<= xTargetStream;
|
||||
aArgs[1] <<= true; // do not create copy
|
||||
uno::Sequence< uno::Any > aArgs{ uno::Any(xTargetStream),
|
||||
uno::Any(true) }; // do not create copy
|
||||
|
||||
uno::Reference< container::XNameContainer > xNameContainer(
|
||||
m_xContext->getServiceManager()->createInstanceWithArgumentsAndContext(
|
||||
@@ -394,7 +393,8 @@ void OleEmbeddedObject::InsertVisualCache_Impl( const uno::Reference< io::XStrea
|
||||
|
||||
// write 0xFFFFFFFF at the beginning
|
||||
uno::Sequence< sal_Int8 > aData( 4 );
|
||||
* reinterpret_cast<sal_uInt32*>(aData.getArray()) = 0xFFFFFFFF;
|
||||
auto pData = aData.getArray();
|
||||
* reinterpret_cast<sal_uInt32*>(pData) = 0xFFFFFFFF;
|
||||
|
||||
xTempOutStream->writeBytes( aData );
|
||||
|
||||
@@ -407,33 +407,33 @@ void OleEmbeddedObject::InsertVisualCache_Impl( const uno::Reference< io::XStrea
|
||||
if ( aSigData[0] == 'B' && aSigData[1] == 'M' )
|
||||
{
|
||||
// it's a bitmap
|
||||
aData[0] = 0x02; aData[1] = 0; aData[2] = 0; aData[3] = 0;
|
||||
pData[0] = 0x02; pData[1] = 0; pData[2] = 0; pData[3] = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
// treat it as a metafile
|
||||
aData[0] = 0x03; aData[1] = 0; aData[2] = 0; aData[3] = 0;
|
||||
pData[0] = 0x03; pData[1] = 0; pData[2] = 0; pData[3] = 0;
|
||||
}
|
||||
xTempOutStream->writeBytes( aData );
|
||||
|
||||
// write job related information
|
||||
aData[0] = 0x04; aData[1] = 0; aData[2] = 0; aData[3] = 0;
|
||||
pData[0] = 0x04; pData[1] = 0; pData[2] = 0; pData[3] = 0;
|
||||
xTempOutStream->writeBytes( aData );
|
||||
|
||||
// write aspect
|
||||
aData[0] = 0x01; aData[1] = 0; aData[2] = 0; aData[3] = 0;
|
||||
pData[0] = 0x01; pData[1] = 0; pData[2] = 0; pData[3] = 0;
|
||||
xTempOutStream->writeBytes( aData );
|
||||
|
||||
// write l-index
|
||||
* reinterpret_cast<sal_uInt32*>(aData.getArray()) = 0xFFFFFFFF;
|
||||
* reinterpret_cast<sal_uInt32*>(pData) = 0xFFFFFFFF;
|
||||
xTempOutStream->writeBytes( aData );
|
||||
|
||||
// write adv. flags
|
||||
aData[0] = 0x02; aData[1] = 0; aData[2] = 0; aData[3] = 0;
|
||||
pData[0] = 0x02; pData[1] = 0; pData[2] = 0; pData[3] = 0;
|
||||
xTempOutStream->writeBytes( aData );
|
||||
|
||||
// write compression
|
||||
* reinterpret_cast<sal_uInt32*>(aData.getArray()) = 0x0;
|
||||
* reinterpret_cast<sal_uInt32*>(pData) = 0x0;
|
||||
xTempOutStream->writeBytes( aData );
|
||||
|
||||
// get the size
|
||||
@@ -443,7 +443,7 @@ void OleEmbeddedObject::InsertVisualCache_Impl( const uno::Reference< io::XStrea
|
||||
// write width
|
||||
for ( nIndex = 0; nIndex < 4; nIndex++ )
|
||||
{
|
||||
aData[nIndex] = static_cast<sal_Int8>( aSize.Width % 0x100 );
|
||||
pData[nIndex] = static_cast<sal_Int8>( aSize.Width % 0x100 );
|
||||
aSize.Width /= 0x100;
|
||||
}
|
||||
xTempOutStream->writeBytes( aData );
|
||||
@@ -451,7 +451,7 @@ void OleEmbeddedObject::InsertVisualCache_Impl( const uno::Reference< io::XStrea
|
||||
// write height
|
||||
for ( nIndex = 0; nIndex < 4; nIndex++ )
|
||||
{
|
||||
aData[nIndex] = static_cast<sal_Int8>( aSize.Height % 0x100 );
|
||||
pData[nIndex] = static_cast<sal_Int8>( aSize.Height % 0x100 );
|
||||
aSize.Height /= 0x100;
|
||||
}
|
||||
xTempOutStream->writeBytes( aData );
|
||||
@@ -474,7 +474,7 @@ void OleEmbeddedObject::InsertVisualCache_Impl( const uno::Reference< io::XStrea
|
||||
}
|
||||
for ( sal_Int32 nInd = 0; nInd < 4; nInd++ )
|
||||
{
|
||||
aData[nInd] = static_cast<sal_Int8>( static_cast<sal_uInt64>(nLength) % 0x100 );
|
||||
pData[nInd] = static_cast<sal_Int8>( static_cast<sal_uInt64>(nLength) % 0x100 );
|
||||
nLength /= 0x100;
|
||||
}
|
||||
xTempSeek->seek( 36 );
|
||||
@@ -504,9 +504,8 @@ void OleEmbeddedObject::RemoveVisualCache_Impl( const uno::Reference< io::XStrea
|
||||
if ( !xTargetStream.is() )
|
||||
throw uno::RuntimeException();
|
||||
|
||||
uno::Sequence< uno::Any > aArgs( 2 );
|
||||
aArgs[0] <<= xTargetStream;
|
||||
aArgs[1] <<= true; // do not create copy
|
||||
uno::Sequence< uno::Any > aArgs{ uno::Any(xTargetStream),
|
||||
uno::Any(true) }; // do not create copy
|
||||
uno::Reference< container::XNameContainer > xNameContainer(
|
||||
m_xContext->getServiceManager()->createInstanceWithArgumentsAndContext(
|
||||
"com.sun.star.embed.OLESimpleStorage",
|
||||
@@ -566,9 +565,8 @@ bool OleEmbeddedObject::HasVisReplInStream()
|
||||
{
|
||||
bool bExists = false;
|
||||
|
||||
uno::Sequence< uno::Any > aArgs( 2 );
|
||||
aArgs[0] <<= xStream;
|
||||
aArgs[1] <<= true; // do not create copy
|
||||
uno::Sequence< uno::Any > aArgs{ uno::Any(xStream),
|
||||
uno::Any(true) }; // do not create copy
|
||||
uno::Reference< container::XNameContainer > xNameContainer(
|
||||
m_xContext->getServiceManager()->createInstanceWithArgumentsAndContext(
|
||||
"com.sun.star.embed.OLESimpleStorage",
|
||||
@@ -610,9 +608,8 @@ uno::Reference< io::XStream > OleEmbeddedObject::TryToRetrieveCachedVisualRepres
|
||||
SAL_INFO( "embeddedobj.ole", "embeddedobj (mv76033) OleEmbeddedObject::TryToRetrieveCachedVisualRepresentation, retrieving" );
|
||||
|
||||
uno::Reference< container::XNameContainer > xNameContainer;
|
||||
uno::Sequence< uno::Any > aArgs( 2 );
|
||||
aArgs[0] <<= xStream;
|
||||
aArgs[1] <<= true; // do not create copy
|
||||
uno::Sequence< uno::Any > aArgs{ uno::Any(xStream),
|
||||
uno::Any(true) }; // do not create copy
|
||||
try
|
||||
{
|
||||
xNameContainer.set(
|
||||
|
||||
@@ -104,23 +104,24 @@ bool OwnView_Impl::CreateModelFromURL( const OUString& aFileURL )
|
||||
uno::Reference < frame::XDesktop2 > xDocumentLoader = frame::Desktop::create(m_xContext);
|
||||
|
||||
uno::Sequence< beans::PropertyValue > aArgs( m_aFilterName.isEmpty() ? 4 : 5 );
|
||||
auto pArgs = aArgs.getArray();
|
||||
|
||||
aArgs[0].Name = "URL";
|
||||
aArgs[0].Value <<= aFileURL;
|
||||
pArgs[0].Name = "URL";
|
||||
pArgs[0].Value <<= aFileURL;
|
||||
|
||||
aArgs[1].Name = "ReadOnly";
|
||||
aArgs[1].Value <<= true;
|
||||
pArgs[1].Name = "ReadOnly";
|
||||
pArgs[1].Value <<= true;
|
||||
|
||||
aArgs[2].Name = "InteractionHandler";
|
||||
aArgs[2].Value <<= uno::Reference< task::XInteractionHandler >( new DummyHandler_Impl() );
|
||||
pArgs[2].Name = "InteractionHandler";
|
||||
pArgs[2].Value <<= uno::Reference< task::XInteractionHandler >( new DummyHandler_Impl() );
|
||||
|
||||
aArgs[3].Name = "DontEdit";
|
||||
aArgs[3].Value <<= true;
|
||||
pArgs[3].Name = "DontEdit";
|
||||
pArgs[3].Value <<= true;
|
||||
|
||||
if ( !m_aFilterName.isEmpty() )
|
||||
{
|
||||
aArgs[4].Name = "FilterName";
|
||||
aArgs[4].Value <<= m_aFilterName;
|
||||
pArgs[4].Name = "FilterName";
|
||||
pArgs[4].Value <<= m_aFilterName;
|
||||
}
|
||||
|
||||
uno::Reference< frame::XModel > xModel( xDocumentLoader->loadComponentFromURL(
|
||||
@@ -193,14 +194,15 @@ OUString OwnView_Impl::GetFilterNameFromExtentionAndInStream(
|
||||
}
|
||||
|
||||
uno::Sequence< beans::PropertyValue > aArgs( aTypeName.isEmpty() ? 2 : 3 );
|
||||
aArgs[0].Name = "URL";
|
||||
aArgs[0].Value <<= OUString( "private:stream" );
|
||||
aArgs[1].Name = "InputStream";
|
||||
aArgs[1].Value <<= xInputStream;
|
||||
auto pArgs = aArgs.getArray();
|
||||
pArgs[0].Name = "URL";
|
||||
pArgs[0].Value <<= OUString( "private:stream" );
|
||||
pArgs[1].Name = "InputStream";
|
||||
pArgs[1].Value <<= xInputStream;
|
||||
if ( !aTypeName.isEmpty() )
|
||||
{
|
||||
aArgs[2].Name = "TypeName";
|
||||
aArgs[2].Value <<= aTypeName;
|
||||
pArgs[2].Name = "TypeName";
|
||||
pArgs[2].Value <<= aTypeName;
|
||||
}
|
||||
|
||||
aTypeName = xTypeDetection->queryTypeByDescriptor( aArgs, true );
|
||||
@@ -395,8 +397,7 @@ void OwnView_Impl::CreateNative()
|
||||
if ( !xInStream.is() )
|
||||
throw uno::RuntimeException();
|
||||
|
||||
uno::Sequence< uno::Any > aArgs( 1 );
|
||||
aArgs[0] <<= xInStream;
|
||||
uno::Sequence< uno::Any > aArgs{ uno::Any(xInStream) };
|
||||
uno::Reference< container::XNameAccess > xNameAccess(
|
||||
m_xContext->getServiceManager()->createInstanceWithArgumentsAndContext(
|
||||
"com.sun.star.embed.OLESimpleStorage",
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
#include "platform.h"
|
||||
#include <comphelper/mimeconfighelper.hxx>
|
||||
#include <comphelper/processfactory.hxx>
|
||||
#include <comphelper/propertyvalue.hxx>
|
||||
#include <cppuhelper/supportsservice.hxx>
|
||||
#include <cppuhelper/weak.hxx>
|
||||
#include <comphelper/sequenceashashmap.hxx>
|
||||
@@ -201,9 +202,8 @@ embed::InsertedObjectInfo SAL_CALL MSOLEDialogObjectCreator::createInstanceByDia
|
||||
if ( osl::FileBase::getFileURLFromSystemPath( aFileName, aFileURL ) != osl::FileBase::E_None )
|
||||
throw uno::RuntimeException();
|
||||
|
||||
uno::Sequence< beans::PropertyValue > aMediaDescr( 1 );
|
||||
aMediaDescr[0].Name = "URL";
|
||||
aMediaDescr[0].Value <<= aFileURL;
|
||||
uno::Sequence< beans::PropertyValue > aMediaDescr{ comphelper::makePropertyValue("URL",
|
||||
aFileURL) };
|
||||
|
||||
// TODO: use config helper for type detection
|
||||
uno::Reference< embed::XEmbeddedObjectCreator > xEmbCreator;
|
||||
@@ -266,11 +266,8 @@ embed::InsertedObjectInfo SAL_CALL MSOLEDialogObjectCreator::createInstanceByDia
|
||||
"Image WMF",
|
||||
cppu::UnoType<uno::Sequence< sal_Int8 >>::get() );
|
||||
|
||||
aObjectInfo.Options.realloc( 2 );
|
||||
aObjectInfo.Options[0].Name = "Icon";
|
||||
aObjectInfo.Options[0].Value <<= aMetafile;
|
||||
aObjectInfo.Options[1].Name = "IconFormat";
|
||||
aObjectInfo.Options[1].Value <<= aFlavor;
|
||||
aObjectInfo.Options = { { "Icon", css::uno::Any(aMetafile) },
|
||||
{ "IconFormat", css::uno::Any(aFlavor) } };
|
||||
}
|
||||
|
||||
GlobalUnlock( io.hMetaPict );
|
||||
|
||||
Reference in New Issue
Block a user