diff options
author | Muthu Subramanian <sumuthu@suse.com> | 2012-02-01 18:01:17 +0530 |
---|---|---|
committer | David Tardon <dtardon@redhat.com> | 2012-02-08 06:48:42 +0100 |
commit | 6d49075a032191b4f7034b1b8c799d163d35a58c (patch) | |
tree | 66a515032150d14b270e2d56c0bcd1cf1219880c | |
parent | b979d1b9ddb97737ac9cf3c8b72bc4d4eba3ede1 (diff) |
n#735533: Donot set duplicate master slide names.
Signed-off-by: David Tardon <dtardon@redhat.com>
-rw-r--r-- | sd/source/ui/unoidl/unopage.cxx | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/sd/source/ui/unoidl/unopage.cxx b/sd/source/ui/unoidl/unopage.cxx index 84a76d39d05a..2f441e958c35 100644 --- a/sd/source/ui/unoidl/unopage.cxx +++ b/sd/source/ui/unoidl/unopage.cxx @@ -3015,7 +3015,7 @@ void SdMasterPage::getBackground( Any& rValue ) throw() } // XNamed -void SAL_CALL SdMasterPage::setName( const OUString& aName ) +void SAL_CALL SdMasterPage::setName( const OUString& rName ) throw(uno::RuntimeException) { ::SolarMutexGuard aGuard; @@ -3024,11 +3024,18 @@ void SAL_CALL SdMasterPage::setName( const OUString& aName ) if(SvxFmDrawPage::mpPage && GetPage()->GetPageKind() != PK_NOTES) { - String aNewName( aName ); + SdDrawDocument* pDoc = GetModel()->GetDoc(); + sal_Bool bOutDummy; + String aNewName( rName ); + + // Slide Name has to be unique + if( pDoc && pDoc->GetPageByName( aNewName, bOutDummy ) != SDRPAGE_NOTFOUND ) + return; // throw Exception ? + GetPage()->SetName( aNewName ); - if(GetModel()->GetDoc()) - GetModel()->GetDoc()->RenameLayoutTemplate(GetPage()->GetLayoutName(), aNewName); + if( pDoc ) + pDoc->RenameLayoutTemplate( GetPage()->GetLayoutName(), aNewName ); // fake a mode change to repaint the page tab bar ::sd::DrawDocShell* pDocSh = GetModel()->GetDocShell(); |