[Libreoffice-commits] core.git: Branch 'distro/suse/suse-4.0' - 4 commits - comphelper/inc comphelper/source instsetoo_native/util sfx2/source solenv/inc svtools/source
Andras Timar
andras.timar at collabora.com
Tue Aug 26 08:41:54 PDT 2014
comphelper/inc/comphelper/embeddedobjectcontainer.hxx | 3
comphelper/source/container/embeddedobjectcontainer.cxx | 36 ++++++--
instsetoo_native/util/openoffice.lst | 24 ++---
sfx2/source/appl/impldde.cxx | 65 +++-------------
sfx2/source/appl/linkmgr2.cxx | 12 ++
solenv/inc/minor.mk | 4
svtools/source/misc/embedhlp.cxx | 29 ++++---
7 files changed, 89 insertions(+), 84 deletions(-)
New commits:
commit f07f4c751e938d5a1e705e97aa1455f0ec45bb7e
Author: Andras Timar <andras.timar at collabora.com>
Date: Tue Aug 26 06:20:51 2014 -0700
Bump for 4.0-26
Change-Id: I994c153bb47e2270237910ca7eedf2cbe3a2cc7c
diff --git a/instsetoo_native/util/openoffice.lst b/instsetoo_native/util/openoffice.lst
index acfcea3..f445802 100644
--- a/instsetoo_native/util/openoffice.lst
+++ b/instsetoo_native/util/openoffice.lst
@@ -33,7 +33,7 @@ Globals
CREATE_MSP_INSTALLSET 1
UPDATE_DATABASE_LISTNAME finals_instsetoo.txt
PACKAGEMAP package_names.txt,package_names_ext.txt
- WINDOWSPATCHLEVEL 25
+ WINDOWSPATCHLEVEL 26
OOOVENDOR The Document Foundation
OOODOWNLOADNAME 1
BUILDIDCWS {buildidcws}
@@ -50,13 +50,13 @@ LibreOffice
{
PRODUCTNAME LibreOffice
PRODUCTVERSION 4.0
- PRODUCTEXTENSION -25
+ PRODUCTEXTENSION -26
POSTVERSIONEXTENSION
POSTVERSIONEXTENSIONUNIX
BRANDPACKAGEVERSION 4.0
USERDIRPRODUCTVERSION 4
ABOUTBOXPRODUCTVERSION 4.0
- ABOUTBOXPRODUCTVERSIONSUFFIX :build-325
+ ABOUTBOXPRODUCTVERSIONSUFFIX :build-326
BASEPRODUCTVERSION 4.0
PCPFILENAME libreoffice.pcp
UPDATEURL http://update.libreoffice.org/check.php
@@ -100,14 +100,14 @@ LibreOffice_Dev
{
PRODUCTNAME LOdev
PRODUCTVERSION 4.0
- PRODUCTEXTENSION -25
+ PRODUCTEXTENSION -26
UNIXBASISROOTNAME lodev4.0
POSTVERSIONEXTENSION
POSTVERSIONEXTENSIONUNIX
BRANDPACKAGEVERSION 4.0
USERDIRPRODUCTVERSION 4
ABOUTBOXPRODUCTVERSION 4.0
- ABOUTBOXPRODUCTVERSIONSUFFIX :build-325
+ ABOUTBOXPRODUCTVERSIONSUFFIX :build-326
BASEPRODUCTVERSION 4.0
DEVELOPMENTPRODUCT 1
BASISPACKAGEPREFIX lodevbasis
@@ -161,7 +161,7 @@ URE
PRODUCTVERSION 4.0
PACKAGEVERSION 4.0
PACKAGEREVISION 1
- PRODUCTEXTENSION -25
+ PRODUCTEXTENSION -26
BRANDPACKAGEVERSION 4.0
LICENSENAME LGPL
NOVERSIONINDIRNAME 1
@@ -192,7 +192,7 @@ LibreOffice_SDK
{
PRODUCTNAME LibreOffice
PRODUCTVERSION 4.0
- PRODUCTEXTENSION -25
+ PRODUCTEXTENSION -26
POSTVERSIONEXTENSION SDK
POSTVERSIONEXTENSIONUNIX sdk
BRANDPACKAGEVERSION 4.0
@@ -231,7 +231,7 @@ LibreOffice_Dev_SDK
{
PRODUCTNAME LOdev
PRODUCTVERSION 4.0
- PRODUCTEXTENSION -25
+ PRODUCTEXTENSION -26
UNIXBASISROOTNAME lodev4.0
POSTVERSIONEXTENSION SDK
POSTVERSIONEXTENSIONUNIX sdk
@@ -276,7 +276,7 @@ LibreOffice_Test
{
PRODUCTNAME LibreOffice
PRODUCTVERSION 4.0
- PRODUCTEXTENSION -25
+ PRODUCTEXTENSION -26
POSTVERSIONEXTENSION TEST
POSTVERSIONEXTENSIONUNIX test
BRANDPACKAGEVERSION 4.0
@@ -315,7 +315,7 @@ LibreOffice_Dev_Test
{
PRODUCTNAME LOdev
PRODUCTVERSION 4.0
- PRODUCTEXTENSION -25
+ PRODUCTEXTENSION -26
UNIXBASISROOTNAME lodev4.0
POSTVERSIONEXTENSION TEST
POSTVERSIONEXTENSIONUNIX test
@@ -359,13 +359,13 @@ OxygenOffice
{
PRODUCTNAME OxygenOffice
PRODUCTVERSION 4.0
- PRODUCTEXTENSION -25
+ PRODUCTEXTENSION -26
POSTVERSIONEXTENSION
POSTVERSIONEXTENSIONUNIX
BRANDPACKAGEVERSION 4.0
USERDIRPRODUCTVERSION 4
ABOUTBOXPRODUCTVERSION 4.0
- ABOUTBOXPRODUCTVERSIONSUFFIX :build-325
+ ABOUTBOXPRODUCTVERSIONSUFFIX :build-326
BASEPRODUCTVERSION 4.0
PCPFILENAME openoffice.pcp
UPDATEURL http://update.libreoffice.org/check.php
diff --git a/solenv/inc/minor.mk b/solenv/inc/minor.mk
index 4f5726a..dbc4b57 100644
--- a/solenv/inc/minor.mk
+++ b/solenv/inc/minor.mk
@@ -1,6 +1,6 @@
RSCVERSION=400
-RSCREVISION=400m1(Build:325)
-BUILD=325
+RSCREVISION=400m1(Build:326)
+BUILD=326
LAST_MINOR=m0
SOURCEVERSION=OOO400
commit dff07a501855d9b05c1622a86521a818c7763831
Author: Herbert Dürr <hdu at apache.org>
Date: Mon Jul 14 07:17:59 2014 +0000
Related: #i125226# expect DDE servers to be already up
"soffice" is always up anyway and other DDE apps should be started manually
(cherry picked from commit e0bfdb26cef87c8d3b3435293116a33cf99c11f0)
Conflicts:
sfx2/source/appl/impldde.cxx
(cherry picked from commit f4a8d7cd10cda57143b22519e16cdf8d5f19e759)
Reviewed-on: https://gerrit.libreoffice.org/10288
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>
Tested-by: Christian Lohmaier <lohmaier+LibreOffice at googlemail.com>
Conflicts:
sfx2/source/appl/impldde.cxx
Change-Id: I52ebb26528952a4abf33ac95cb67c598f08b2790
diff --git a/sfx2/source/appl/impldde.cxx b/sfx2/source/appl/impldde.cxx
index f1da6b4..d2b4683 100644
--- a/sfx2/source/appl/impldde.cxx
+++ b/sfx2/source/appl/impldde.cxx
@@ -199,9 +199,6 @@ sal_Bool SvDDEObject::GetData( ::com::sun::star::uno::Any & rData /*out param*/,
sal_Bool SvDDEObject::Connect( SvBaseLink * pSvLink )
{
-#if defined(WNT)
- static sal_Bool bInWinExec = sal_False;
-#endif
sal_uInt16 nLinkType = pSvLink->GetUpdateMode();
if( pConnection ) // Connection is already made
{
@@ -228,69 +225,22 @@ sal_Bool SvDDEObject::Connect( SvBaseLink * pSvLink )
pConnection = new DdeConnection( sServer, sTopic );
if( pConnection->GetError() )
{
- // Is it possible to address the system-Topic?
- // then the server is up, it just does not know the topic!
+ // check if the DDE server knows the "SYSTEM" topic
+ bool bSysTopic = false;
if( sTopic.EqualsIgnoreCaseAscii( "SYSTEM" ) )
{
- sal_Bool bSysTopic;
- {
- DdeConnection aTmp(sServer, rtl::OUString("SYSTEM"));
- bSysTopic = !aTmp.GetError();
- }
-
- if( bSysTopic )
- {
- nError = DDELINK_ERROR_DATA;
- return sal_False;
- }
- // otherwise in Win/WinNT, start the Application directly
+ DdeConnection aTmp(sServer, rtl::OUString("SYSTEM"));
+ bSysTopic = !aTmp.GetError();
}
-#if defined(WNT)
- // check the suitability of starting the DDE server
- const SvtSecurityOptions aSecOpts;
- bool bForbidden = (aSecOpts.GetMacroSecurityLevel() == eNEVER_EXECUTE);
- bForbidden |= (comphelper::string::indexOfAny(sServer, L":./%\\") != -1);
- static const char* aBadServers[] = { "cmd", "rundll32" };
- for (size_t i = 0; i < sizeof(aBadServers)/sizeof(*aBadServers); ++i)
- bForbidden |= sServer.equalsAscii(aBadServers[i]);
-
- // try to start the DDE server if it is not there already
- bForbidden |= (bInWinExec != false);
- if( !bForbidden )
+ if( bSysTopic )
{
- rtl::OStringBuffer aCmdLine(rtl::OUStringToOString(sServer, RTL_TEXTENCODING_ASCII_US));
- aCmdLine.append(RTL_CONSTASCII_STRINGPARAM(".exe "));
- aCmdLine.append(rtl::OUStringToOString(sTopic, RTL_TEXTENCODING_ASCII_US));
-
- if( WinExec( aCmdLine.getStr(), SW_SHOWMINIMIZED ) < 32 ) // TODO: use CreateProcess() instead
- nError = DDELINK_ERROR_APP;
- else
- {
- sal_uInt16 i;
- for( i=0; i<5; i++ )
- {
- bInWinExec = sal_True;
- Application::Reschedule();
- bInWinExec = sal_False;
-
- delete pConnection;
- pConnection = new DdeConnection( sServer, sTopic );
- if( !pConnection->GetError() )
- break;
- }
-
- if( i == 5 )
- {
- nError = DDELINK_ERROR_APP;
- }
- }
- }
- else
-#endif // WNT
- {
- nError = DDELINK_ERROR_APP;
+ // if the system topic works then the server is up but just doesn't know the original topic
+ nError = DDELINK_ERROR_DATA;
+ return sal_False;
}
+
+ nError = DDELINK_ERROR_APP;
}
if( LINKUPDATE_ALWAYS == nLinkType && !pLink && !pConnection->GetError() )
commit 2385e35558bb95d187dc15d92535e1db4b842f7b
Author: Herbert Dürr <hdu at apache.org>
Date: Wed Jul 9 15:23:59 2014 +0000
Related: #i125226# don't try to access known-bad DDE servers
(cherry picked from commit 88de6a59d9d7933b86fdcba733277aa4fbd5e132)
Conflicts:
sfx2/source/appl/impldde.cxx
Change-Id: If4dcd49cfe15188d06e4e06cd8e58cdcc66ed5a4
(cherry picked from commit b16f164650f8345e51bf0b0c73bf9c8eee775bc2)
Related: #i125226# some macro preferences are directly...
applicable to DDE servers
(cherry picked from commit 2c835e761e1e9ddb6794895e6f3538b918160dd1)
Conflicts:
sfx2/source/appl/impldde.cxx
Change-Id: Ic16b3df34ac1b003a8a5cabab15ea655d05bdd18
Related: #i125226# typo fix
(cherry picked from commit 727ea069c6342e01a50c8b068ec302574b251cbd)
Conflicts:
sfx2/source/appl/impldde.cxx
Change-Id: I8db53b7e8529d05e660a2d69e669b44c9045712c
(cherry picked from commit 13b68e24db26374ca17572de9abb429edeac32e9)
Related: #i125226# disallow absolute and relative paths for DDE servers
(cherry picked from commit 6b64ada6e3a902ac4b44fe49476514d49138d4d4)
Conflicts:
sfx2/source/appl/impldde.cxx
Change-Id: I127add375a127dbbd0eaf12a10884e2636f1a332
(cherry picked from commit d1fc47793c1efbe9ff5271656283211647dd0b33)
Reviewed-on: https://gerrit.libreoffice.org/10200
Reviewed-by: Markus Mohrhard <markus.mohrhard at googlemail.com>
Tested-by: Markus Mohrhard <markus.mohrhard at googlemail.com>
diff --git a/sfx2/source/appl/impldde.cxx b/sfx2/source/appl/impldde.cxx
index d81367d..f1da6b4 100644
--- a/sfx2/source/appl/impldde.cxx
+++ b/sfx2/source/appl/impldde.cxx
@@ -25,6 +25,7 @@
#include "impldde.hxx"
+#include <comphelper/string.hxx>
#include <vcl/svapp.hxx>
#include <vcl/fixed.hxx>
#include <vcl/edit.hxx>
@@ -45,6 +46,8 @@
#include <svl/svdde.hxx>
#include <sot/formats.hxx>
+#include <unotools/securityoptions.hxx>
+
#define DDELINK_ERROR_APP 1
#define DDELINK_ERROR_DATA 2
#define DDELINK_ERROR_LINK 3
@@ -244,15 +247,23 @@ sal_Bool SvDDEObject::Connect( SvBaseLink * pSvLink )
}
#if defined(WNT)
-
- // Server not up, try once more to start it.
- if( !bInWinExec )
+ // check the suitability of starting the DDE server
+ const SvtSecurityOptions aSecOpts;
+ bool bForbidden = (aSecOpts.GetMacroSecurityLevel() == eNEVER_EXECUTE);
+ bForbidden |= (comphelper::string::indexOfAny(sServer, L":./%\\") != -1);
+ static const char* aBadServers[] = { "cmd", "rundll32" };
+ for (size_t i = 0; i < sizeof(aBadServers)/sizeof(*aBadServers); ++i)
+ bForbidden |= sServer.equalsAscii(aBadServers[i]);
+
+ // try to start the DDE server if it is not there already
+ bForbidden |= (bInWinExec != false);
+ if( !bForbidden )
{
rtl::OStringBuffer aCmdLine(rtl::OUStringToOString(sServer, RTL_TEXTENCODING_ASCII_US));
aCmdLine.append(RTL_CONSTASCII_STRINGPARAM(".exe "));
aCmdLine.append(rtl::OUStringToOString(sTopic, RTL_TEXTENCODING_ASCII_US));
- if( WinExec( aCmdLine.getStr(), SW_SHOWMINIMIZED ) < 32 )
+ if( WinExec( aCmdLine.getStr(), SW_SHOWMINIMIZED ) < 32 ) // TODO: use CreateProcess() instead
nError = DDELINK_ERROR_APP;
else
{
commit 6674f71c693b16c07b1f46bc7b4971644daf70ba
Author: Armin Le Grand <alg at apache.org>
Date: Thu Aug 7 09:59:26 2014 +0000
Resolves: #i125386# secured user request and changed some bools to bitfield
(cherry picked from commit 5e3cbe056c19bea5018dbf1fd4b2bc8f8b030ff3)
Conflicts:
comphelper/inc/comphelper/embeddedobjectcontainer.hxx
comphelper/source/container/embeddedobjectcontainer.cxx
sfx2/source/appl/linkmgr2.cxx
svtools/source/misc/embedhlp.cxx
(cherry picked from commit d005acae3aa315921f2c331612131626c470bd22)
Conflicts:
include/comphelper/embeddedobjectcontainer.hxx
Change-Id: I7e9b20a87ca6afe8cb91c577860a6c6b72368ee9
Reviewed-on: https://gerrit.libreoffice.org/10882
Reviewed-by: David Tardon <dtardon at redhat.com>
Tested-by: David Tardon <dtardon at redhat.com>
diff --git a/comphelper/inc/comphelper/embeddedobjectcontainer.hxx b/comphelper/inc/comphelper/embeddedobjectcontainer.hxx
index f9b7bd9..8d7376c 100644
--- a/comphelper/inc/comphelper/embeddedobjectcontainer.hxx
+++ b/comphelper/inc/comphelper/embeddedobjectcontainer.hxx
@@ -172,6 +172,9 @@ public:
* \return <FALSE/> if no error occurred, otherwise <TRUE/>.
*/
sal_Bool SetPersistentEntries(const com::sun::star::uno::Reference< com::sun::star::embed::XStorage >& _xStorage,bool _bClearModifedFlag = true);
+
+ bool getUserAllowsLinkUpdate() const;
+ void setUserAllowsLinkUpdate(bool bNew);
};
}
diff --git a/comphelper/source/container/embeddedobjectcontainer.cxx b/comphelper/source/container/embeddedobjectcontainer.cxx
index 935bf33..1e9e004 100644
--- a/comphelper/source/container/embeddedobjectcontainer.cxx
+++ b/comphelper/source/container/embeddedobjectcontainer.cxx
@@ -86,7 +86,10 @@ struct EmbedImpl
uno::WeakReference < uno::XInterface > m_xModel;
//EmbeddedObjectContainerNameMap maTempObjectContainer;
//uno::Reference < embed::XStorage > mxTempStorage;
- bool bOwnsStorage;
+
+ /// bitfield
+ bool mbOwnsStorage : 1;
+ bool mbUserAllowsLinkUpdate : 1;
const uno::Reference < embed::XStorage >& GetReplacements();
};
@@ -117,7 +120,8 @@ EmbeddedObjectContainer::EmbeddedObjectContainer()
{
pImpl = new EmbedImpl;
pImpl->mxStorage = ::comphelper::OStorageHelper::GetTemporaryStorage();
- pImpl->bOwnsStorage = true;
+ pImpl->mbOwnsStorage = true;
+ pImpl->mbUserAllowsLinkUpdate = true;
pImpl->mpTempObjectContainer = 0;
}
@@ -125,7 +129,8 @@ EmbeddedObjectContainer::EmbeddedObjectContainer( const uno::Reference < embed::
{
pImpl = new EmbedImpl;
pImpl->mxStorage = rStor;
- pImpl->bOwnsStorage = false;
+ pImpl->mbOwnsStorage = false;
+ pImpl->mbUserAllowsLinkUpdate = true;
pImpl->mpTempObjectContainer = 0;
}
@@ -133,7 +138,8 @@ EmbeddedObjectContainer::EmbeddedObjectContainer( const uno::Reference < embed::
{
pImpl = new EmbedImpl;
pImpl->mxStorage = rStor;
- pImpl->bOwnsStorage = false;
+ pImpl->mbOwnsStorage = false;
+ pImpl->mbUserAllowsLinkUpdate = true;
pImpl->mpTempObjectContainer = 0;
pImpl->m_xModel = xModel;
}
@@ -142,11 +148,11 @@ void EmbeddedObjectContainer::SwitchPersistence( const uno::Reference < embed::X
{
ReleaseImageSubStorage();
- if ( pImpl->bOwnsStorage )
+ if ( pImpl->mbOwnsStorage )
pImpl->mxStorage->dispose();
pImpl->mxStorage = rStor;
- pImpl->bOwnsStorage = false;
+ pImpl->mbOwnsStorage = false;
}
sal_Bool EmbeddedObjectContainer::CommitImageSubStorage()
@@ -202,7 +208,7 @@ EmbeddedObjectContainer::~EmbeddedObjectContainer()
{
ReleaseImageSubStorage();
- if ( pImpl->bOwnsStorage )
+ if ( pImpl->mbOwnsStorage )
pImpl->mxStorage->dispose();
delete pImpl->mpTempObjectContainer;
@@ -1366,7 +1372,7 @@ sal_Bool EmbeddedObjectContainer::StoreAsChildren(sal_Bool _bOasisFormat,sal_Boo
xStream = GetGraphicStream( xObj, &aMediaType );
}
- if ( !xStream.is() )
+ if ( !xStream.is() && getUserAllowsLinkUpdate() )
{
// the image must be regenerated
// TODO/LATER: another aspect could be used
@@ -1633,6 +1639,20 @@ sal_Bool EmbeddedObjectContainer::SetPersistentEntries(const uno::Reference< emb
}
return bError;
}
+
+bool EmbeddedObjectContainer::getUserAllowsLinkUpdate() const
+{
+ return pImpl->mbUserAllowsLinkUpdate;
+}
+
+void EmbeddedObjectContainer::setUserAllowsLinkUpdate(bool bNew)
+{
+ if(pImpl->mbUserAllowsLinkUpdate != bNew)
+ {
+ pImpl->mbUserAllowsLinkUpdate = bNew;
+ }
+}
+
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sfx2/source/appl/linkmgr2.cxx b/sfx2/source/appl/linkmgr2.cxx
index 08ff451..851bac3 100644
--- a/sfx2/source/appl/linkmgr2.cxx
+++ b/sfx2/source/appl/linkmgr2.cxx
@@ -349,7 +349,17 @@ void LinkManager::UpdateAllLinks(
{
int nRet = QueryBox( pParentWin, WB_YES_NO | WB_DEF_YES, SfxResId( STR_QUERY_UPDATE_LINKS ).toString() ).Execute();
if( RET_YES != nRet )
- return ; // nothing should be updated
+ {
+ SfxObjectShell* pShell = pLink->GetLinkManager()->GetPersist();
+
+ if(pShell)
+ {
+ comphelper::EmbeddedObjectContainer& rEmbeddedObjectContainer = pShell->getEmbeddedObjectContainer();
+ rEmbeddedObjectContainer.setUserAllowsLinkUpdate(false);
+ }
+
+ return ; // nothing should be updated
+ }
bAskUpdate = false; // once is enough
}
diff --git a/svtools/source/misc/embedhlp.cxx b/svtools/source/misc/embedhlp.cxx
index 5d6ac82..25614af 100644
--- a/svtools/source/misc/embedhlp.cxx
+++ b/svtools/source/misc/embedhlp.cxx
@@ -576,19 +576,30 @@ SvStream* EmbeddedObjectRef::GetGraphicStream( sal_Bool bUpdate ) const
if ( !xStream.is() )
{
RTL_LOGFILE_CONTEXT_TRACE( aLog, "getting stream from object" );
- // update wanted or no stream in container storage available
- xStream = GetGraphicReplacementStream( mpImp->nViewAspect, mxObj, &mpImp->aMediaType );
+ bool bUserAllowsLinkUpdate(true);
+ const comphelper::EmbeddedObjectContainer* pContainer = GetContainer();
- if ( xStream.is() )
+ if(pContainer)
{
- if ( mpImp->pContainer )
- mpImp->pContainer->InsertGraphicStream( xStream, mpImp->aPersistName, mpImp->aMediaType );
+ bUserAllowsLinkUpdate = pContainer->getUserAllowsLinkUpdate();
+ }
- SvStream* pResult = ::utl::UcbStreamHelper::CreateStream( xStream );
- if ( pResult && bUpdate )
- mpImp->bNeedUpdate = sal_False;
+ if(bUserAllowsLinkUpdate)
+ {
+ // update wanted or no stream in container storage available
+ xStream = GetGraphicReplacementStream( mpImp->nViewAspect, mxObj, &mpImp->aMediaType );
- return pResult;
+ if ( xStream.is() )
+ {
+ if ( mpImp->pContainer )
+ mpImp->pContainer->InsertGraphicStream( xStream, mpImp->aPersistName, mpImp->aMediaType );
+
+ SvStream* pResult = ::utl::UcbStreamHelper::CreateStream( xStream );
+ if ( pResult && bUpdate )
+ mpImp->bNeedUpdate = sal_False;
+
+ return pResult;
+ }
}
}
More information about the Libreoffice-commits
mailing list