diff options
author | Caolán McNamara <caolanm@redhat.com> | 2014-05-28 10:34:32 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2014-05-28 10:45:23 +0100 |
commit | 74baee744c8ff5b3a34c40ed16803d07f3f5fc2d (patch) | |
tree | a43b92939f0d617b97ff2b90a5878b4303836a31 | |
parent | 36f1f514963f3bbfe77893745b71b4cac5a966b5 (diff) |
Resolves: fdo#79142 When Creating Styles - The 2nd One Always Replaces the 1st
regression from 0c17ccc493d0c7a80f37600dae76a09a119bef78
I think it might actually make more sense for SetName to always Reindex
and have another SetNameNoReindex for selective use where its known
safe to get away with it
Change-Id: I6bf7e1f45130f741954ab525b838f3ac5ff61a89
(cherry picked from commit aa8b268935b07c9bf95a596ee84c76eed4c03634)
-rw-r--r-- | include/sfx2/mgetempl.hxx | 1 | ||||
-rw-r--r-- | sfx2/source/dialog/mgetempl.cxx | 14 |
2 files changed, 12 insertions, 3 deletions
diff --git a/include/sfx2/mgetempl.hxx b/include/sfx2/mgetempl.hxx index 6082fbe370b3..085da933ed2e 100644 --- a/include/sfx2/mgetempl.hxx +++ b/include/sfx2/mgetempl.hxx @@ -54,6 +54,7 @@ class SfxManageStyleSheetPage : public SfxTabPage SfxStyleSheetBase *pStyle; SfxStyleFamilies *pFamilies; + SfxStyleSheetBasePool *pPool; const SfxStyleFamilyItem *pItem; OUString aBuf; bool bModified; diff --git a/sfx2/source/dialog/mgetempl.cxx b/sfx2/source/dialog/mgetempl.cxx index 733abce27130..07e7b1d49569 100644 --- a/sfx2/source/dialog/mgetempl.cxx +++ b/sfx2/source/dialog/mgetempl.cxx @@ -45,6 +45,7 @@ SfxManageStyleSheetPage::SfxManageStyleSheetPage(Window* pParent, const SfxItemSet& rAttrSet) : SfxTabPage(pParent, "ManageStylePage", "sfx/ui/managestylepage.ui", rAttrSet) , pStyle(&((SfxStyleDialog*)GetParentDialog())->GetStyleSheet()) + , pPool(NULL) , pItem(0) , bModified(false) , aName(pStyle->GetName()) @@ -78,7 +79,6 @@ SfxManageStyleSheetPage::SfxManageStyleSheetPage(Window* pParent, const SfxItemS OSL_ENSURE( pResMgr, "No ResMgr in Module" ); pFamilies = new SfxStyleFamilies( ResId( DLG_STYLE_DESIGNER, *pResMgr ) ); - SfxStyleSheetBasePool* pPool = 0; SfxObjectShell* pDocShell = SfxObjectShell::Current(); if ( pDocShell ) @@ -105,6 +105,7 @@ SfxManageStyleSheetPage::SfxManageStyleSheetPage(Window* pParent, const SfxItemS aNoName += OUString::number( nNo ); } pStyle->SetName( aNoName ); + pPool->Reindex(); aName = aNoName; aFollow = pStyle->GetFollow(); aParent = pStyle->GetParent(); @@ -419,7 +420,11 @@ void SfxManageStyleSheetPage::Reset( const SfxItemSet& /*rAttrSet*/ ) OUString sCmp( pStyle->GetName() ); if ( sCmp != aName ) - pStyle->SetName( aName ); + { + pStyle->SetName(aName); + if (pPool) + pPool->Reindex(); + } m_pNameRw->SetText( aName ); m_pNameRw->SetSelection( Selection( SELECTION_MIN, SELECTION_MAX ) ); @@ -542,7 +547,8 @@ int SfxManageStyleSheetPage::DeactivatePage( SfxItemSet* pItemSet ) if ( m_pNameRw->HasFocus() ) LoseFocusHdl( m_pNameRw ); - if (!pStyle->SetName(comphelper::string::stripStart(m_pNameRw->GetText(), ' '))) + bool bOk = pStyle->SetName(comphelper::string::stripStart(m_pNameRw->GetText(), ' ')); + if (!bOk) { InfoBox aBox( this, SfxResId( MSG_TABPAGE_INVALIDNAME ) ); aBox.Execute(); @@ -550,6 +556,8 @@ int SfxManageStyleSheetPage::DeactivatePage( SfxItemSet* pItemSet ) m_pNameRw->SetSelection( Selection( SELECTION_MIN, SELECTION_MAX ) ); return SfxTabPage::KEEP_PAGE; } + else if (pPool) + pPool->Reindex(); bModified = true; } |