fdo#69079 - fix multiple user gallery creations.
Change-Id: I0539e2708b973b8bea7bd63488277f00201c6c46
This commit is contained in:
@@ -53,7 +53,9 @@ private:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
GalleryThemeEntry( const INetURLObject& rBaseURL, const OUString& rName,
|
GalleryThemeEntry( bool bCreateUniqueURL,
|
||||||
|
const INetURLObject& rBaseURL,
|
||||||
|
const OUString& rName,
|
||||||
sal_Bool bReadOnly, sal_Bool bNewFile,
|
sal_Bool bReadOnly, sal_Bool bNewFile,
|
||||||
sal_uInt32 nId, sal_Bool bThemeNameFromResource );
|
sal_uInt32 nId, sal_Bool bThemeNameFromResource );
|
||||||
~GalleryThemeEntry() {};
|
~GalleryThemeEntry() {};
|
||||||
|
@@ -42,7 +42,15 @@ using namespace ::com::sun::star;
|
|||||||
|
|
||||||
// - GalleryThemeEntry -
|
// - GalleryThemeEntry -
|
||||||
|
|
||||||
GalleryThemeEntry::GalleryThemeEntry( const INetURLObject& rBaseURL, const OUString& rName,
|
static bool FileExists( const INetURLObject &rURL, const rtl::OUString &rExt )
|
||||||
|
{
|
||||||
|
INetURLObject aURL( rURL );
|
||||||
|
aURL.setExtension( rExt );
|
||||||
|
return FileExists( aURL );
|
||||||
|
}
|
||||||
|
|
||||||
|
GalleryThemeEntry::GalleryThemeEntry( bool bCreateUniqueURL,
|
||||||
|
const INetURLObject& rBaseURL, const OUString& rName,
|
||||||
sal_Bool _bReadOnly, sal_Bool _bNewFile,
|
sal_Bool _bReadOnly, sal_Bool _bNewFile,
|
||||||
sal_uInt32 _nId, sal_Bool _bThemeNameFromResource ) :
|
sal_uInt32 _nId, sal_Bool _bThemeNameFromResource ) :
|
||||||
nId ( _nId ),
|
nId ( _nId ),
|
||||||
@@ -52,6 +60,19 @@ GalleryThemeEntry::GalleryThemeEntry( const INetURLObject& rBaseURL, const OUStr
|
|||||||
INetURLObject aURL( rBaseURL );
|
INetURLObject aURL( rBaseURL );
|
||||||
DBG_ASSERT( aURL.GetProtocol() != INET_PROT_NOT_VALID, "invalid URL" );
|
DBG_ASSERT( aURL.GetProtocol() != INET_PROT_NOT_VALID, "invalid URL" );
|
||||||
|
|
||||||
|
if (bCreateUniqueURL)
|
||||||
|
{
|
||||||
|
INetURLObject aBaseNoCase( ImplGetURLIgnoreCase( rBaseURL ) );
|
||||||
|
aURL = aBaseNoCase;
|
||||||
|
static sal_Int32 nIdx = 0;
|
||||||
|
while( FileExists( aURL, "thm" ) )
|
||||||
|
{ // create new URLs
|
||||||
|
nIdx++;
|
||||||
|
aURL = aBaseNoCase;
|
||||||
|
aURL.setName( aURL.getName() + OUString::number(nIdx));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
aURL.setExtension( "thm" );
|
aURL.setExtension( "thm" );
|
||||||
aThmURL = ImplGetURLIgnoreCase( aURL );
|
aThmURL = ImplGetURLIgnoreCase( aURL );
|
||||||
|
|
||||||
@@ -491,7 +512,8 @@ sal_Bool Gallery::CreateTheme( const OUString& rThemeName )
|
|||||||
{
|
{
|
||||||
INetURLObject aURL( GetUserURL() );
|
INetURLObject aURL( GetUserURL() );
|
||||||
aURL.Append( rThemeName );
|
aURL.Append( rThemeName );
|
||||||
GalleryThemeEntry* pNewEntry = new GalleryThemeEntry( aURL, rThemeName,
|
GalleryThemeEntry* pNewEntry = new GalleryThemeEntry(
|
||||||
|
true, aURL, rThemeName,
|
||||||
sal_False, sal_True, 0, sal_False );
|
sal_False, sal_True, 0, sal_False );
|
||||||
|
|
||||||
aThemeList.push_back( pNewEntry );
|
aThemeList.push_back( pNewEntry );
|
||||||
|
@@ -746,7 +746,7 @@ GalleryThemeEntry* GalleryTheme::CreateThemeEntry( const INetURLObject& rURL, sa
|
|||||||
}
|
}
|
||||||
|
|
||||||
INetURLObject aPathURL( rURL );
|
INetURLObject aPathURL( rURL );
|
||||||
pRet = new GalleryThemeEntry( aPathURL, aThemeName,
|
pRet = new GalleryThemeEntry( false, aPathURL, aThemeName,
|
||||||
bReadOnly, sal_False, nThemeId,
|
bReadOnly, sal_False, nThemeId,
|
||||||
bThemeNameFromResource );
|
bThemeNameFromResource );
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user