Kaydet (Commit) 398519cb authored tarafından Michael Meeks's avatar Michael Meeks

fdo#69079 - fix multiple user gallery creations.

Change-Id: I0539e2708b973b8bea7bd63488277f00201c6c46
üst 470b4a03
...@@ -53,7 +53,9 @@ private: ...@@ -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; ...@@ -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 ...@@ -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,8 +512,9 @@ sal_Bool Gallery::CreateTheme( const OUString& rThemeName ) ...@@ -491,8 +512,9 @@ 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(
sal_False, sal_True, 0, sal_False ); true, aURL, rThemeName,
sal_False, sal_True, 0, sal_False );
aThemeList.push_back( pNewEntry ); aThemeList.push_back( pNewEntry );
delete( new GalleryTheme( this, pNewEntry ) ); delete( new GalleryTheme( this, pNewEntry ) );
......
...@@ -746,7 +746,7 @@ GalleryThemeEntry* GalleryTheme::CreateThemeEntry( const INetURLObject& rURL, sa ...@@ -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 );
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment