diff options
author | Daniel Rentz [dr] <daniel.rentz@oracle.com> | 2010-12-09 10:13:55 +0100 |
---|---|---|
committer | Daniel Rentz [dr] <daniel.rentz@oracle.com> | 2010-12-09 10:13:55 +0100 |
commit | 9103c81b03961788743d6248099f6a7f35f735d9 (patch) | |
tree | 693b2ab70bacc925b9dbf01a2ed0db5e0911d7f8 /unotools/source | |
parent | 38440ad6b24f618923a48d722a861f78c1715be5 (diff) | |
parent | a5509a421f2f3d43aad1ba5d32e6c7bf1c015b3b (diff) |
mib19: rebase to DEV300m95
Diffstat (limited to 'unotools/source')
-rw-r--r-- | unotools/source/config/menuoptions.cxx | 561 | ||||
-rw-r--r-- | unotools/source/config/pathoptions.cxx | 13 | ||||
-rw-r--r-- | unotools/source/ucbhelper/tempfile.cxx | 14 | ||||
-rw-r--r-- | unotools/source/ucbhelper/xtempfile.cxx | 58 |
4 files changed, 20 insertions, 626 deletions
diff --git a/unotools/source/config/menuoptions.cxx b/unotools/source/config/menuoptions.cxx deleted file mode 100644 index 2c5756c2140c..000000000000 --- a/unotools/source/config/menuoptions.cxx +++ /dev/null @@ -1,561 +0,0 @@ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_unotools.hxx" -#ifndef GCC -#endif - -//_________________________________________________________________________________________________________________ -// includes -//_________________________________________________________________________________________________________________ - -#include <unotools/menuoptions.hxx> -#include <unotools/configmgr.hxx> -#include <unotools/configitem.hxx> -#include <tools/debug.hxx> -#include <com/sun/star/uno/Any.hxx> -#include <com/sun/star/uno/Sequence.hxx> -#include <vcl/svapp.hxx> - -#include <rtl/logfile.hxx> -#include "itemholder1.hxx" - -//_________________________________________________________________________________________________________________ -// namespaces -//_________________________________________________________________________________________________________________ - -using namespace ::utl ; -using namespace ::rtl ; -using namespace ::osl ; -using namespace ::com::sun::star::uno ; - -//_________________________________________________________________________________________________________________ -// const -//_________________________________________________________________________________________________________________ - -#define ROOTNODE_MENU OUString(RTL_CONSTASCII_USTRINGPARAM("Office.Common/View/Menu" )) -#define DEFAULT_DONTHIDEDISABLEDENTRIES sal_False -#define DEFAULT_FOLLOWMOUSE sal_True -#define DEFAULT_MENUICONS 2 - -#define PROPERTYNAME_DONTHIDEDISABLEDENTRIES OUString(RTL_CONSTASCII_USTRINGPARAM("DontHideDisabledEntry" )) -#define PROPERTYNAME_FOLLOWMOUSE OUString(RTL_CONSTASCII_USTRINGPARAM("FollowMouse" )) -#define PROPERTYNAME_SHOWICONSINMENUES OUString(RTL_CONSTASCII_USTRINGPARAM("ShowIconsInMenues" )) -#define PROPERTYNAME_SYSTEMICONSINMENUES OUString(RTL_CONSTASCII_USTRINGPARAM("IsSystemIconsInMenus" )) - -#define PROPERTYHANDLE_DONTHIDEDISABLEDENTRIES 0 -#define PROPERTYHANDLE_FOLLOWMOUSE 1 -#define PROPERTYHANDLE_SHOWICONSINMENUES 2 -#define PROPERTYHANDLE_SYSTEMICONSINMENUES 3 - -#define PROPERTYCOUNT 4 - -#include <tools/link.hxx> -#include <tools/list.hxx> -DECLARE_LIST( LinkList, Link * ) - -//_________________________________________________________________________________________________________________ -// private declarations! -//_________________________________________________________________________________________________________________ - -class SvtMenuOptions_Impl : public ConfigItem -{ - //------------------------------------------------------------------------------------------------------------- - // private member - //------------------------------------------------------------------------------------------------------------- - - private: - LinkList aList; - sal_Bool m_bDontHideDisabledEntries ; /// cache "DontHideDisabledEntries" of Menu section - sal_Bool m_bFollowMouse ; /// cache "FollowMouse" of Menu section - sal_Int16 m_nMenuIcons ; /// cache "MenuIcons" of Menu section - - //------------------------------------------------------------------------------------------------------------- - // public methods - //------------------------------------------------------------------------------------------------------------- - - public: - - //--------------------------------------------------------------------------------------------------------- - // constructor / destructor - //--------------------------------------------------------------------------------------------------------- - - SvtMenuOptions_Impl(); - ~SvtMenuOptions_Impl(); - - void AddListener( const Link& rLink ); - void RemoveListener( const Link& rLink ); - - //--------------------------------------------------------------------------------------------------------- - // overloaded methods of baseclass - //--------------------------------------------------------------------------------------------------------- - - /*-****************************************************************************************************//** - @short called for notify of configmanager - @descr These method is called from the ConfigManager before application ends or from the - PropertyChangeListener if the sub tree broadcasts changes. You must update your - internal values. - - @seealso baseclass ConfigItem - - @param "seqPropertyNames" is the list of properties which should be updated. - @return - - - @onerror - - *//*-*****************************************************************************************************/ - - virtual void Notify( const Sequence< OUString >& seqPropertyNames ); - - /*-****************************************************************************************************//** - @short write changes to configuration - @descr These method writes the changed values into the sub tree - and should always called in our destructor to guarantee consistency of config data. - - @seealso baseclass ConfigItem - - @param - - @return - - - @onerror - - *//*-*****************************************************************************************************/ - - virtual void Commit(); - - //--------------------------------------------------------------------------------------------------------- - // public interface - //--------------------------------------------------------------------------------------------------------- - - /*-****************************************************************************************************//** - @short access method to get internal values - @descr These method give us a chance to regulate acces to ouer internal values. - It's not used in the moment - but it's possible for the feature! - - @seealso - - - @param - - @return - - - @onerror - - *//*-*****************************************************************************************************/ - - sal_Bool IsEntryHidingEnabled() const - { return m_bDontHideDisabledEntries; } - - sal_Bool IsFollowMouseEnabled() const - { return m_bFollowMouse; } - - sal_Int16 GetMenuIconsState() const - { return m_nMenuIcons; } - - void SetEntryHidingState ( sal_Bool bState ) - { - m_bDontHideDisabledEntries = bState; - SetModified(); - for ( USHORT n=0; n<aList.Count(); n++ ) - aList.GetObject(n)->Call( this ); - Commit(); - } - - void SetFollowMouseState ( sal_Bool bState ) - { - m_bFollowMouse = bState; - SetModified(); - for ( USHORT n=0; n<aList.Count(); n++ ) - aList.GetObject(n)->Call( this ); - Commit(); - } - - void SetMenuIconsState ( sal_Int16 bState ) - { - m_nMenuIcons = bState; - SetModified(); - for ( USHORT n=0; n<aList.Count(); n++ ) - aList.GetObject(n)->Call( this ); - Commit(); - } - - //------------------------------------------------------------------------------------------------------------- - // private methods - //------------------------------------------------------------------------------------------------------------- - - private: - - /*-****************************************************************************************************//** - @short return list of fix key names of ouer configuration management which represent oue module tree - @descr These methods return a static const list of key names. We need it to get needed values from our - configuration management. - - @seealso - - - @param - - @return A list of needed configuration keys is returned. - - @onerror - - *//*-*****************************************************************************************************/ - - static Sequence< OUString > impl_GetPropertyNames(); -}; - -//_________________________________________________________________________________________________________________ -// definitions -//_________________________________________________________________________________________________________________ - -//***************************************************************************************************************** -// constructor -//***************************************************************************************************************** -SvtMenuOptions_Impl::SvtMenuOptions_Impl() - // Init baseclasses first - : ConfigItem ( ROOTNODE_MENU ) - // Init member then. - , m_bDontHideDisabledEntries ( DEFAULT_DONTHIDEDISABLEDENTRIES ) - , m_bFollowMouse ( DEFAULT_FOLLOWMOUSE ) - , m_nMenuIcons ( DEFAULT_MENUICONS ) -{ - // Use our static list of configuration keys to get his values. - Sequence< OUString > seqNames = impl_GetPropertyNames(); - Sequence< Any > seqValues = GetProperties( seqNames ) ; - - // Safe impossible cases. - // We need values from ALL configuration keys. - // Follow assignment use order of values in relation to our list of key names! - DBG_ASSERT( !(seqNames.getLength()!=seqValues.getLength()), "SvtMenuOptions_Impl::SvtMenuOptions_Impl()\nI miss some values of configuration keys!\n" ); - - sal_Bool bMenuIcons = true; - sal_Bool bSystemMenuIcons = true; - - // Copy values from list in right order to ouer internal member. - sal_Int32 nPropertyCount = seqValues.getLength() ; - sal_Int32 nProperty = 0 ; - for( nProperty=0; nProperty<nPropertyCount; ++nProperty ) - { - // Safe impossible cases. - // Check any for valid value. - DBG_ASSERT( !(seqValues[nProperty].hasValue()==sal_False), "SvtMenuOptions_Impl::SvtMenuOptions_Impl()\nInvalid property value for property detected!\n" ); - switch( nProperty ) - { - case PROPERTYHANDLE_DONTHIDEDISABLEDENTRIES : { - DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtMenuOptions_Impl::SvtMenuOptions_Impl()\nWho has changed the value type of \"Office.Common\\View\\Menu\\DontHideDisabledEntry\"?" ); - seqValues[nProperty] >>= m_bDontHideDisabledEntries; - } - break; - - case PROPERTYHANDLE_FOLLOWMOUSE : { - DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtMenuOptions_Impl::SvtMenuOptions_Impl()\nWho has changed the value type of \"Office.Common\\View\\Menu\\FollowMouse\"?" ); - seqValues[nProperty] >>= m_bFollowMouse; - } - break; - case PROPERTYHANDLE_SHOWICONSINMENUES : { - DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtMenuOptions_Impl::SvtMenuOptions_Impl()\nWho has changed the value type of \"Office.Common\\View\\Menu\\ShowIconsInMenues\"?" ); - seqValues[nProperty] >>= bMenuIcons; - } - break; - case PROPERTYHANDLE_SYSTEMICONSINMENUES : { - DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtMenuOptions_Impl::SvtMenuOptions_Impl()\nWho has changed the value type of \"Office.Common\\View\\Menu\\IsSystemIconsInMenus\"?" ); - seqValues[nProperty] >>= bSystemMenuIcons; - } - break; - } - } - - m_nMenuIcons = bSystemMenuIcons ? 2 : bMenuIcons; - - EnableNotification( seqNames ); -} - -//***************************************************************************************************************** -// destructor -//***************************************************************************************************************** -SvtMenuOptions_Impl::~SvtMenuOptions_Impl() -{ - // Flush data to configuration! - // User has no chance to do that. - if( IsModified() == sal_True ) - { - Commit(); - } - - for ( USHORT n=0; n<aList.Count(); ) - delete aList.Remove(n); -} - -//***************************************************************************************************************** -// public method -//***************************************************************************************************************** -void SvtMenuOptions_Impl::Notify( const Sequence< OUString >& seqPropertyNames ) -{ - // Use given list of updated properties to get his values from configuration directly! - Sequence< Any > seqValues = GetProperties( seqPropertyNames ); - // Safe impossible cases. - // We need values from ALL notified configuration keys. - DBG_ASSERT( !(seqPropertyNames.getLength()!=seqValues.getLength()), "SvtMenuOptions_Impl::Notify()\nI miss some values of configuration keys!\n" ); - - sal_Bool bMenuIcons = true; - sal_Bool bSystemMenuIcons = true; - - // Step over list of property names and get right value from coreesponding value list to set it on internal members! - sal_Int32 nCount = seqPropertyNames.getLength(); - for( sal_Int32 nProperty=0; nProperty<nCount; ++nProperty ) - { - if( seqPropertyNames[nProperty] == PROPERTYNAME_DONTHIDEDISABLEDENTRIES ) - { - DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtMenuOptions_Impl::Notify()\nWho has changed the value type of \"Office.Common\\View\\Menu\\DontHideDisabledEntry\"?" ); - seqValues[nProperty] >>= m_bDontHideDisabledEntries; - } - else if( seqPropertyNames[nProperty] == PROPERTYNAME_FOLLOWMOUSE ) - { - DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtMenuOptions_Impl::Notify()\nWho has changed the value type of \"Office.Common\\View\\Menu\\FollowMouse\"?" ); - seqValues[nProperty] >>= m_bFollowMouse; - } - else if( seqPropertyNames[nProperty] == PROPERTYNAME_SHOWICONSINMENUES ) - { - DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtMenuOptions_Impl::SvtMenuOptions_Impl()\nWho has changed the value type of \"Office.Common\\View\\Menu\\ShowIconsInMenues\"?" ); - seqValues[nProperty] >>= bMenuIcons; - } - else if( seqPropertyNames[nProperty] == PROPERTYNAME_SYSTEMICONSINMENUES ) - { - DBG_ASSERT(!(seqValues[nProperty].getValueTypeClass()!=TypeClass_BOOLEAN), "SvtMenuOptions_Impl::SvtMenuOptions_Impl()\nWho has changed the value type of \"Office.Common\\View\\Menu\\IsSystemIconsInMenus\"?" ); - seqValues[nProperty] >>= bSystemMenuIcons; - } - - #if OSL_DEBUG_LEVEL > 1 - else DBG_ASSERT( sal_False, "SvtMenuOptions_Impl::Notify()\nUnkown property detected ... I can't handle these!\n" ); - #endif - } - - m_nMenuIcons = bSystemMenuIcons ? 2 : bMenuIcons; - - for ( USHORT n=0; n<aList.Count(); n++ ) - aList.GetObject(n)->Call( this ); -} - -//***************************************************************************************************************** -// public method -//***************************************************************************************************************** -void SvtMenuOptions_Impl::Commit() -{ - // Get names of supported properties, create a list for values and copy current values to it. - Sequence< OUString > seqNames = impl_GetPropertyNames(); - sal_Int32 nCount = seqNames.getLength(); - Sequence< Any > seqValues ( nCount ); - for( sal_Int32 nProperty=0; nProperty<nCount; ++nProperty ) - { - switch( nProperty ) - { - case PROPERTYHANDLE_DONTHIDEDISABLEDENTRIES : { - seqValues[nProperty] <<= m_bDontHideDisabledEntries; - } - break; - - case PROPERTYHANDLE_FOLLOWMOUSE : { - seqValues[nProperty] <<= m_bFollowMouse; - } - break; - //Output cache of current setting as possibly modified by System Theme for older version - case PROPERTYHANDLE_SHOWICONSINMENUES : { - seqValues[nProperty] <<=(sal_Bool)(Application::GetSettings().GetStyleSettings().GetUseImagesInMenus()); - } - break; - case PROPERTYHANDLE_SYSTEMICONSINMENUES : { - seqValues[nProperty] <<= (m_nMenuIcons == 2 ? sal_True : sal_False) ; - } - break; - } - } - // Set properties in configuration. - PutProperties( seqNames, seqValues ); -} - -//***************************************************************************************************************** -// private method -//***************************************************************************************************************** -Sequence< OUString > SvtMenuOptions_Impl::impl_GetPropertyNames() -{ - // Build static list of configuration key names. - static const OUString pProperties[] = - { - PROPERTYNAME_DONTHIDEDISABLEDENTRIES , - PROPERTYNAME_FOLLOWMOUSE , - PROPERTYNAME_SHOWICONSINMENUES , - PROPERTYNAME_SYSTEMICONSINMENUES - }; - // Initialize return sequence with these list ... - static const Sequence< OUString > seqPropertyNames( pProperties, PROPERTYCOUNT ); - // ... and return it. - return seqPropertyNames; -} - -void SvtMenuOptions_Impl::AddListener( const Link& rLink ) -{ - aList.Insert( new Link( rLink ) ); -} - -void SvtMenuOptions_Impl::RemoveListener( const Link& rLink ) -{ - for ( USHORT n=0; n<aList.Count(); n++ ) - { - if ( (*aList.GetObject(n) ) == rLink ) - { - delete aList.Remove(n); - break; - } - } -} - -//***************************************************************************************************************** -// initialize static member -// DON'T DO IT IN YOUR HEADER! -// see definition for further informations -//***************************************************************************************************************** -SvtMenuOptions_Impl* SvtMenuOptions::m_pDataContainer = NULL ; -sal_Int32 SvtMenuOptions::m_nRefCount = 0 ; - -//***************************************************************************************************************** -// constructor -//***************************************************************************************************************** -SvtMenuOptions::SvtMenuOptions() -{ - // Global access, must be guarded (multithreading!). - MutexGuard aGuard( GetOwnStaticMutex() ); - // Increase ouer refcount ... - ++m_nRefCount; - // ... and initialize ouer data container only if it not already! - if( m_pDataContainer == NULL ) - { - RTL_LOGFILE_CONTEXT(aLog, "unotools ( ??? ) ::SvtMenuOptions_Impl::ctor()"); - m_pDataContainer = new SvtMenuOptions_Impl(); - - ItemHolder1::holdConfigItem(E_MENUOPTIONS); - } -} - -//***************************************************************************************************************** -// destructor -//***************************************************************************************************************** -SvtMenuOptions::~SvtMenuOptions() -{ - // Global access, must be guarded (multithreading!) - MutexGuard aGuard( GetOwnStaticMutex() ); - // Decrease ouer refcount. - --m_nRefCount; - // If last instance was deleted ... - // we must destroy ouer static data container! - if( m_nRefCount <= 0 ) - { - delete m_pDataContainer; - m_pDataContainer = NULL; - } -} - -//***************************************************************************************************************** -// public method -//***************************************************************************************************************** -sal_Bool SvtMenuOptions::IsEntryHidingEnabled() const -{ - MutexGuard aGuard( GetOwnStaticMutex() ); - return m_pDataContainer->IsEntryHidingEnabled(); -} - -//***************************************************************************************************************** -// public method -//***************************************************************************************************************** -sal_Bool SvtMenuOptions::IsFollowMouseEnabled() const -{ - MutexGuard aGuard( GetOwnStaticMutex() ); - return m_pDataContainer->IsFollowMouseEnabled(); -} - -//***************************************************************************************************************** -// public method -//***************************************************************************************************************** -void SvtMenuOptions::SetEntryHidingState( sal_Bool bState ) -{ - MutexGuard aGuard( GetOwnStaticMutex() ); - m_pDataContainer->SetEntryHidingState( bState ); -} - -//***************************************************************************************************************** -// public method -//***************************************************************************************************************** -void SvtMenuOptions::SetFollowMouseState( sal_Bool bState ) -{ - MutexGuard aGuard( GetOwnStaticMutex() ); - m_pDataContainer->SetFollowMouseState( bState ); -} - -//***************************************************************************************************************** -// public method -//***************************************************************************************************************** -sal_Int16 SvtMenuOptions::GetMenuIconsState() const -{ - MutexGuard aGuard( GetOwnStaticMutex() ); - return m_pDataContainer->GetMenuIconsState(); -} - -//***************************************************************************************************************** -// public method -//***************************************************************************************************************** -void SvtMenuOptions::SetMenuIconsState( sal_Int16 bState ) -{ - MutexGuard aGuard( GetOwnStaticMutex() ); - m_pDataContainer->SetMenuIconsState( bState ); -} - -//***************************************************************************************************************** -// private method -//***************************************************************************************************************** -Mutex& SvtMenuOptions::GetOwnStaticMutex() -{ - // Initialize static mutex only for one time! - static Mutex* pMutex = NULL; - // If these method first called (Mutex not already exist!) ... - if( pMutex == NULL ) - { - // ... we must create a new one. Protect follow code with the global mutex - - // It must be - we create a static variable! - MutexGuard aGuard( Mutex::getGlobalMutex() ); - // We must check our pointer again - because it can be that another instance of ouer class will be fastr then these! - if( pMutex == NULL ) - { - // Create the new mutex and set it for return on static variable. - static Mutex aMutex; - pMutex = &aMutex; - } - } - // Return new created or already existing mutex object. - return *pMutex; -} - -void SvtMenuOptions::AddListener( const Link& rLink ) -{ - m_pDataContainer->AddListener( rLink ); -} - -void SvtMenuOptions::RemoveListener( const Link& rLink ) -{ - m_pDataContainer->RemoveListener( rLink ); -} diff --git a/unotools/source/config/pathoptions.cxx b/unotools/source/config/pathoptions.cxx index 2ae6f0c97f0c..3cf43a1f3bc9 100644 --- a/unotools/source/config/pathoptions.cxx +++ b/unotools/source/config/pathoptions.cxx @@ -46,12 +46,14 @@ #include <unotools/ucbhelper.hxx> #include <vos/process.hxx> #include <comphelper/processfactory.hxx> +#include <comphelper/componentcontext.hxx> #include <com/sun/star/beans/XFastPropertySet.hpp> #include <com/sun/star/beans/XPropertySet.hpp> #include <com/sun/star/beans/PropertyAttribute.hpp> #include <com/sun/star/beans/XPropertySetInfo.hpp> #include <com/sun/star/util/XStringSubstitution.hpp> #include <com/sun/star/lang/XMultiServiceFactory.hpp> +#include <com/sun/star/util/XMacroExpander.hpp> #include <rtl/instance.hxx> #include <itemholder1.hxx> @@ -998,6 +1000,17 @@ sal_Bool SvtPathOptions::SearchFile( String& rIniFile, Pathes ePath ) if ( LocalFileHelper::ConvertPhysicalNameToURL( aPathToken, aURL ) ) aObj.SetURL( aURL ); } + if ( aObj.GetProtocol() == INET_PROT_VND_SUN_STAR_EXPAND ) + { + ::comphelper::ComponentContext aContext( ::comphelper::getProcessServiceFactory() ); + Reference< XMacroExpander > xMacroExpander( aContext.getSingleton( "com.sun.star.util.theMacroExpander" ), UNO_QUERY ); + OSL_ENSURE( xMacroExpander.is(), "SvtPathOptions::SearchFile: unable to access the MacroExpander singleton!" ); + if ( xMacroExpander.is() ) + { + const ::rtl::OUString sExpandedPath = xMacroExpander->expandMacros( aObj.GetURLPath( INetURLObject::DECODE_WITH_CHARSET ) ); + aObj.SetURL( sExpandedPath ); + } + } xub_StrLen i, nCount = aIniFile.GetTokenCount( '/' ); for ( i = 0; i < nCount; ++i ) diff --git a/unotools/source/ucbhelper/tempfile.cxx b/unotools/source/ucbhelper/tempfile.cxx index e77dc529e410..87fddc0c65cd 100644 --- a/unotools/source/ucbhelper/tempfile.cxx +++ b/unotools/source/ucbhelper/tempfile.cxx @@ -198,19 +198,19 @@ String ConstructTempDir_Impl( const String* pParent ) void CreateTempName_Impl( String& rName, sal_Bool bKeep, sal_Bool bDir = sal_True ) { // add a suitable tempname - // Prefix can have 5 chars, leaving 3 for numbers. 26 ** 3 == 17576 - // ER 13.07.00 why not radix 36 [0-9A-Z] ?!? - const unsigned nRadix = 26; + // 36 ** 6 == 2176782336 + unsigned const nRadix = 36; + unsigned long const nMax = (nRadix*nRadix*nRadix*nRadix*nRadix*nRadix); String aName( rName ); aName += String::CreateFromAscii( "sv" ); rName.Erase(); - static unsigned long u = Time::GetSystemTicks(); - for ( unsigned long nOld = u; ++u != nOld; ) + unsigned long nSeed = Time::GetSystemTicks() % nMax; + for ( unsigned long u = nSeed; ++u != nSeed; ) { - u %= (nRadix*nRadix*nRadix); + u %= nMax; String aTmp( aName ); - aTmp += String::CreateFromInt32( (sal_Int32) (unsigned) u, nRadix ); + aTmp += String::CreateFromInt64( static_cast<sal_Int64>(u), nRadix ); aTmp += String::CreateFromAscii( ".tmp" ); if ( bDir ) diff --git a/unotools/source/ucbhelper/xtempfile.cxx b/unotools/source/ucbhelper/xtempfile.cxx index 023211dc3527..525596fae854 100644 --- a/unotools/source/ucbhelper/xtempfile.cxx +++ b/unotools/source/ucbhelper/xtempfile.cxx @@ -28,12 +28,6 @@ #include <XTempFile.hxx> #include <cppuhelper/factory.hxx> #include <cppuhelper/typeprovider.hxx> -#ifndef _COM_SUN_STAR_REGISTRY_XREGISTRYKEY_HPP -#include <com/sun/star/registry/XRegistryKey.hpp> -#endif -#ifndef _COM_SUN_STAR_BEANS_PROPERTYATTRIBUTE_HPP -#include <com/sun/star/beans/PropertyAttribute.hpp> -#endif #include <unotools/tempfile.hxx> #include <osl/file.hxx> #include <unotools/configmgr.hxx> @@ -489,43 +483,6 @@ throw ( ::css::uno::RuntimeException ) return ::cppu::createSingleComponentFactory( XTempFile_createInstance, getImplementationName_Static(), getSupportedServiceNames_Static() ); } -static sal_Bool writeInfo( void * pRegistryKey, - const ::rtl::OUString & rImplementationName, - ::css::uno::Sequence< ::rtl::OUString > const & rServiceNames ) -{ - ::rtl::OUString aKeyName( RTL_CONSTASCII_USTRINGPARAM ( "/" ) ); - aKeyName += rImplementationName; - aKeyName += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "/UNO/SERVICES" ) ); - - ::css::uno::Reference< ::css::registry::XRegistryKey > xKey; - try - { - xKey = static_cast< ::css::registry::XRegistryKey * >( - pRegistryKey )->createKey( aKeyName ); - } - catch ( ::css::registry::InvalidRegistryException const & ) - { - } - - if ( !xKey.is() ) - return sal_False; - - sal_Bool bSuccess = sal_True; - - for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n ) - { - try - { - xKey->createKey( rServiceNames[ n ] ); - } - catch ( ::css::registry::InvalidRegistryException const & ) - { - bSuccess = sal_False; - break; - } - } - return bSuccess; -} // C functions to implement this as a component extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment( @@ -535,21 +492,6 @@ extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnviron } /** - * This function creates an implementation section in the registry and another subkey - * for each supported service. - * @param pServiceManager generic uno interface providing a service manager - * @param pRegistryKey generic uno interface providing registry key to write - */ -extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/, void* pRegistryKey ) -{ - return pRegistryKey && - writeInfo (pRegistryKey, - OTempFileService::getImplementationName_Static(), - OTempFileService::getSupportedServiceNames_Static() ); -} - - -/** * This function is called to get service factories for an implementation. * @param pImplName name of implementation * @param pServiceManager generic uno interface providing a service manager to instantiate components |